{"type": "func", "start": 6443745688, "end": 6443745827, "name": "__acrt_add_locale_ref", "pseudocode": "// \n// __acrt_add_locale_ref from 0x18013c198 to 0x18013c223 (139 bytes)\n// \n// 2 xrefs:\n// > replace_current_thread_locale_nolock @ 0x180135263\n// > _updatetlocinfoEx_nolock @ 0x18013c566\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\n__int64 __fastcall _acrt_add_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  __int64 v8; // rcx\n\n  _InterlockedIncrement((volatile signed __int32 *)(a1 + 16));\n  v1 = *(volatile signed __int32 **)(a1 + 224);\n  if ( v1 )\n    _InterlockedIncrement(v1);\n  v2 = *(volatile signed __int32 **)(a1 + 240);\n  if ( v2 )\n    _InterlockedIncrement(v2);\n  v3 = *(volatile signed __int32 **)(a1 + 232);\n  if ( v3 )\n    _InterlockedIncrement(v3);\n  v4 = *(volatile signed __int32 **)(a1 + 256);\n  if ( v4 )\n    _InterlockedIncrement(v4);\n  v5 = (volatile signed __int32 **)(a1 + 56);\n  v6 = 6;\n  do\n  {\n    if ( *(v5 - 2) != (volatile signed __int32 *)&unk_1801B19E8 && *v5 )\n      _InterlockedIncrement(*v5);\n    if ( *(v5 - 3) )\n    {\n      v7 = *(v5 - 1);\n      if ( v7 )\n        _InterlockedIncrement(v7);\n    }\n    v5 += 4;\n    --v6;\n  }\n  while ( v6 );\n  v8 = *(_QWORD *)(a1 + 288);\n  if ( !v8 || (_UNKNOWN **)v8 == &off_180174BA0 )\n    return 0x7FFFFFFF;\n  else\n    return (unsigned int)_InterlockedIncrement((volatile signed __int32 *)(v8 + 348));\n}", "assembly": "; \n; __acrt_add_locale_ref from 0x18013c198 to 0x18013c223 (139 bytes)\n; \n; 2 xrefs:\n; > replace_current_thread_locale_nolock @ 0x180135263\n; > _updatetlocinfoEx_nolock @ 0x18013c566\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\nlock inc dword ptr [rcx+10h]                                           ; +0x0, 0x18013c198\nmov     rax, [rcx+0E0h]                                                ; +0x4, 0x18013c19c\ntest    rax, rax                                                       ; +0xb, 0x18013c1a3\njz      short loc_18013C1AB                                            ; +0xe, 0x18013c1a6\nlock inc dword ptr [rax]                                               ; +0x10, 0x18013c1a8\nmov     rax, [rcx+0F0h]                                                ; +0x13, 0x18013c1ab\ntest    rax, rax                                                       ; +0x1a, 0x18013c1b2\njz      short loc_18013C1BA                                            ; +0x1d, 0x18013c1b5\nlock inc dword ptr [rax]                                               ; +0x1f, 0x18013c1b7\nmov     rax, [rcx+0E8h]                                                ; +0x22, 0x18013c1ba\ntest    rax, rax                                                       ; +0x29, 0x18013c1c1\njz      short loc_18013C1C9                                            ; +0x2c, 0x18013c1c4\nlock inc dword ptr [rax]                                               ; +0x2e, 0x18013c1c6\nmov     rax, [rcx+100h]                                                ; +0x31, 0x18013c1c9\ntest    rax, rax                                                       ; +0x38, 0x18013c1d0\njz      short loc_18013C1D8                                            ; +0x3b, 0x18013c1d3\nlock inc dword ptr [rax]                                               ; +0x3d, 0x18013c1d5\nlea     rax, [rcx+38h]                                                 ; +0x40, 0x18013c1d8\nmov     r8d, 6                                                         ; +0x44, 0x18013c1dc\nlea     rdx, unk_1801B19E8                                             ; +0x4a, 0x18013c1e2\ncmp     [rax-10h], rdx                                                 ; +0x51, 0x18013c1e9\njz      short loc_18013C1FA                                            ; +0x55, 0x18013c1ed\nmov     rdx, [rax]                                                     ; +0x57, 0x18013c1ef\ntest    rdx, rdx                                                       ; +0x5a, 0x18013c1f2\njz      short loc_18013C1FA                                            ; +0x5d, 0x18013c1f5\nlock inc dword ptr [rdx]                                               ; +0x5f, 0x18013c1f7\ncmp     qword ptr [rax-18h], 0                                         ; +0x62, 0x18013c1fa\njz      short loc_18013C20D                                            ; +0x67, 0x18013c1ff\nmov     rdx, [rax-8]                                                   ; +0x69, 0x18013c201\ntest    rdx, rdx                                                       ; +0x6d, 0x18013c205\njz      short loc_18013C20D                                            ; +0x70, 0x18013c208\nlock inc dword ptr [rdx]                                               ; +0x72, 0x18013c20a\nadd     rax, 20h ; ' '                                                 ; +0x75, 0x18013c20d\nsub     r8, 1                                                          ; +0x79, 0x18013c211\njnz     short loc_18013C1E2                                            ; +0x7d, 0x18013c215\nmov     rcx, [rcx+120h]                                                ; +0x7f, 0x18013c217\njmp     __acrt_locale_add_lc_time_reference                            ; +0x86, 0x18013c21e", "xrefs": ["replace_current_thread_locale_nolock @ 0x180135263", "_updatetlocinfoEx_nolock @ 0x18013c566"], "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"}