{"type": "func", "start": 6443746340, "end": 6443746508, "name": "__acrt_release_locale_ref", "pseudocode": "// \n// __acrt_release_locale_ref from 0x18013c424 to 0x18013c4cc (168 bytes)\n// \n// 3 xrefs:\n// > replace_current_thread_locale_nolock @ 0x180135228\n// > _updatetlocinfoEx_nolock @ 0x18013c573\n// > <???> @ 0x1802039d4\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 _acrt_release_locale_ref(__int64 a1)\n{\n  volatile signed __int32 *v1; // rax\n  volatile signed __int32 *v2; // rax\n  volatile signed __int32 *v3; // rax\n  volatile signed __int32 *v4; // rax\n  volatile signed __int32 **v5; // rax\n  __int64 v6; // r8\n  volatile signed __int32 *v7; // rdx\n\n  if ( a1 )\n  {\n    _InterlockedAdd((volatile signed __int32 *)(a1 + 16), 0xFFFFFFFF);\n    v1 = *(volatile signed __int32 **)(a1 + 224);\n    if ( v1 )\n      _InterlockedAdd(v1, 0xFFFFFFFF);\n    v2 = *(volatile signed __int32 **)(a1 + 240);\n    if ( v2 )\n      _InterlockedAdd(v2, 0xFFFFFFFF);\n    v3 = *(volatile signed __int32 **)(a1 + 232);\n    if ( v3 )\n      _InterlockedAdd(v3, 0xFFFFFFFF);\n    v4 = *(volatile signed __int32 **)(a1 + 256);\n    if ( v4 )\n      _InterlockedAdd(v4, 0xFFFFFFFF);\n    v5 = (volatile signed __int32 **)(a1 + 56);\n    v6 = 6;\n    do\n    {\n      if ( *(v5 - 2) != (volatile signed __int32 *)&unk_1801B19E8 && *v5 )\n        _InterlockedAdd(*v5, 0xFFFFFFFF);\n      if ( *(v5 - 3) )\n      {\n        v7 = *(v5 - 1);\n        if ( v7 )\n          _InterlockedAdd(v7, 0xFFFFFFFF);\n      }\n      v5 += 4;\n      --v6;\n    }\n    while ( v6 );\n    _acrt_locale_release_lc_time_reference(*(_QWORD *)(a1 + 288));\n  }\n}", "assembly": "; \n; __acrt_release_locale_ref from 0x18013c424 to 0x18013c4cc (168 bytes)\n; \n; 3 xrefs:\n; > replace_current_thread_locale_nolock @ 0x180135228\n; > _updatetlocinfoEx_nolock @ 0x18013c573\n; > <???> @ 0x1802039d4\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\nsub     rsp, 28h                                                       ; +0x0, 0x18013c424\ntest    rcx, rcx                                                       ; +0x4, 0x18013c428\njz      loc_18013C4C7                                                  ; +0x7, 0x18013c42b\nor      r9d, 0FFFFFFFFh                                                ; +0xd, 0x18013c431\nlock add [rcx+10h], r9d                                                ; +0x11, 0x18013c435\nmov     rax, [rcx+0E0h]                                                ; +0x16, 0x18013c43a\ntest    rax, rax                                                       ; +0x1d, 0x18013c441\njz      short loc_18013C44A                                            ; +0x20, 0x18013c444\nlock add [rax], r9d                                                    ; +0x22, 0x18013c446\nmov     rax, [rcx+0F0h]                                                ; +0x26, 0x18013c44a\ntest    rax, rax                                                       ; +0x2d, 0x18013c451\njz      short loc_18013C45A                                            ; +0x30, 0x18013c454\nlock add [rax], r9d                                                    ; +0x32, 0x18013c456\nmov     rax, [rcx+0E8h]                                                ; +0x36, 0x18013c45a\ntest    rax, rax                                                       ; +0x3d, 0x18013c461\njz      short loc_18013C46A                                            ; +0x40, 0x18013c464\nlock add [rax], r9d                                                    ; +0x42, 0x18013c466\nmov     rax, [rcx+100h]                                                ; +0x46, 0x18013c46a\ntest    rax, rax                                                       ; +0x4d, 0x18013c471\njz      short loc_18013C47A                                            ; +0x50, 0x18013c474\nlock add [rax], r9d                                                    ; +0x52, 0x18013c476\nlea     rax, [rcx+38h]                                                 ; +0x56, 0x18013c47a\nmov     r8d, 6                                                         ; +0x5a, 0x18013c47e\nlea     rdx, unk_1801B19E8                                             ; +0x60, 0x18013c484\ncmp     [rax-10h], rdx                                                 ; +0x67, 0x18013c48b\njz      short loc_18013C49D                                            ; +0x6b, 0x18013c48f\nmov     rdx, [rax]                                                     ; +0x6d, 0x18013c491\ntest    rdx, rdx                                                       ; +0x70, 0x18013c494\njz      short loc_18013C49D                                            ; +0x73, 0x18013c497\nlock add [rdx], r9d                                                    ; +0x75, 0x18013c499\ncmp     qword ptr [rax-18h], 0                                         ; +0x79, 0x18013c49d\njz      short loc_18013C4B1                                            ; +0x7e, 0x18013c4a2\nmov     rdx, [rax-8]                                                   ; +0x80, 0x18013c4a4\ntest    rdx, rdx                                                       ; +0x84, 0x18013c4a8\njz      short loc_18013C4B1                                            ; +0x87, 0x18013c4ab\nlock add [rdx], r9d                                                    ; +0x89, 0x18013c4ad\nadd     rax, 20h ; ' '                                                 ; +0x8d, 0x18013c4b1\nsub     r8, 1                                                          ; +0x91, 0x18013c4b5\njnz     short loc_18013C484                                            ; +0x95, 0x18013c4b9\nmov     rcx, [rcx+120h]                                                ; +0x97, 0x18013c4bb\ncall    __acrt_locale_release_lc_time_reference                        ; +0x9e, 0x18013c4c2\nadd     rsp, 28h                                                       ; +0xa3, 0x18013c4c7\nretn                                                                   ; +0xa7, 0x18013c4cb", "xrefs": ["replace_current_thread_locale_nolock @ 0x180135228", "_updatetlocinfoEx_nolock @ 0x18013c573", "<???> @ 0x1802039d4"], "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"}