{"type": "func", "start": 6443750632, "end": 6443750720, "name": "free_crt_array_internal", "pseudocode": "// \n// free_crt_array_internal from 0x18013d4e8 to 0x18013d540 (88 bytes)\n// \n// 12 xrefs:\n// > __acrt_locale_free_time @ 0x18013d562\n// > __acrt_locale_free_time @ 0x18013d56d\n// > __acrt_locale_free_time @ 0x18013d57b\n// > __acrt_locale_free_time @ 0x18013d589\n// > __acrt_locale_free_time @ 0x18013d598\n// > __acrt_locale_free_time @ 0x18013d5ca\n// > __acrt_locale_free_time @ 0x18013d5d8\n// > __acrt_locale_free_time @ 0x18013d5e6\n// > __acrt_locale_free_time @ 0x18013d5f4\n// > __acrt_locale_free_time @ 0x18013d603\n// > <???> @ 0x180203aac\n// > <???> @ 0x180203ab8\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\nvoid __fastcall free_crt_array_internal(void **a1, __int64 a2)\n{\n  __int64 v2; // rdi\n  void **v3; // rbx\n  __int64 v4; // rsi\n\n  v2 = 0;\n  v3 = a1;\n  v4 = a2 & 0x1FFFFFFFFFFFFFFFLL;\n  if ( a1 > &a1[a2] )\n    v4 = 0;\n  if ( v4 )\n  {\n    do\n    {\n      free_base(*v3);\n      ++v2;\n      ++v3;\n    }\n    while ( v2 != v4 );\n  }\n}", "assembly": "; \n; free_crt_array_internal from 0x18013d4e8 to 0x18013d540 (88 bytes)\n; \n; 12 xrefs:\n; > __acrt_locale_free_time @ 0x18013d562\n; > __acrt_locale_free_time @ 0x18013d56d\n; > __acrt_locale_free_time @ 0x18013d57b\n; > __acrt_locale_free_time @ 0x18013d589\n; > __acrt_locale_free_time @ 0x18013d598\n; > __acrt_locale_free_time @ 0x18013d5ca\n; > __acrt_locale_free_time @ 0x18013d5d8\n; > __acrt_locale_free_time @ 0x18013d5e6\n; > __acrt_locale_free_time @ 0x18013d5f4\n; > __acrt_locale_free_time @ 0x18013d603\n; > <???> @ 0x180203aac\n; > <???> @ 0x180203ab8\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nmov     [rsp+arg_0], rbx                                               ; +0x0, 0x18013d4e8\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x18013d4ed\npush    rdi                                                            ; +0xa, 0x18013d4f2\nsub     rsp, 20h                                                       ; +0xb, 0x18013d4f3\nxor     edi, edi                                                       ; +0xf, 0x18013d4f7\nlea     rax, [rcx+rdx*8]                                               ; +0x11, 0x18013d4f9\nmov     rbx, rcx                                                       ; +0x15, 0x18013d4fd\nmov     rsi, rdx                                                       ; +0x18, 0x18013d500\nmov     rcx, 1FFFFFFFFFFFFFFFh                                         ; +0x1b, 0x18013d503\nand     rsi, rcx                                                       ; +0x25, 0x18013d50d\ncmp     rbx, rax                                                       ; +0x28, 0x18013d510\ncmova   rsi, rdi                                                       ; +0x2b, 0x18013d513\ntest    rsi, rsi                                                       ; +0x2f, 0x18013d517\njz      short loc_18013D530                                            ; +0x32, 0x18013d51a\nmov     rcx, [rbx]; Block                                              ; +0x34, 0x18013d51c\ncall    _free_base                                                     ; +0x37, 0x18013d51f\ninc     rdi                                                            ; +0x3c, 0x18013d524\nlea     rbx, [rbx+8]                                                   ; +0x3f, 0x18013d527\ncmp     rdi, rsi                                                       ; +0x43, 0x18013d52b\njnz     short loc_18013D51C                                            ; +0x46, 0x18013d52e\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x48, 0x18013d530\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x4d, 0x18013d535\nadd     rsp, 20h                                                       ; +0x52, 0x18013d53a\npop     rdi                                                            ; +0x56, 0x18013d53e\nretn                                                                   ; +0x57, 0x18013d53f", "xrefs": ["__acrt_locale_free_time @ 0x18013d562", "__acrt_locale_free_time @ 0x18013d56d", "__acrt_locale_free_time @ 0x18013d57b", "__acrt_locale_free_time @ 0x18013d589", "__acrt_locale_free_time @ 0x18013d598", "__acrt_locale_free_time @ 0x18013d5ca", "__acrt_locale_free_time @ 0x18013d5d8", "__acrt_locale_free_time @ 0x18013d5e6", "__acrt_locale_free_time @ 0x18013d5f4", "__acrt_locale_free_time @ 0x18013d603", "<???> @ 0x180203aac", "<???> @ 0x180203ab8"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}