{"type": "func", "start": 6443668564, "end": 6443668719, "name": "_LocaleUpdate::_LocaleUpdate", "pseudocode": "// \n// _LocaleUpdate::_LocaleUpdate from 0x180129454 to 0x1801294ef (155 bytes)\n// \n// 34 xrefs:\n// > _stat64i32 @ 0x1801298a0\n// > __crt_strtox::parse_integer<ulong,__crt_strtox::c_string_character_source<char>> @ 0x18012a590\n// > __crt_strtox::parse_integer<ulong,__crt_strtox::c_string_character_source<wchar_t>> @ 0x18012a88f\n// > _wcstombs_l_helper @ 0x18012b507\n// > common_vsprintf<__crt_stdio_output::standard_base,char> @ 0x18012b8c5\n// > common_vsprintf<__crt_stdio_output::standard_base,wchar_t> @ 0x18012ba91\n// > _lambda_7e489fec146d5348dbc86d3cce37c1b5_::operator @ 0x18012c306\n// > _wcsnicoll_l @ 0x1801344cd\n// > _strnicoll_l @ 0x180134588\n// > _wcsicmp_l @ 0x180134dc2\n// > _isctype_l @ 0x180136bc4\n// > _mbtowc_l @ 0x1801372eb\n// > _wctomb_s_l @ 0x180137489\n// > fp_format_a @ 0x18013761d\n// > fp_format_e_internal @ 0x180137ab2\n// > fp_format_f_internal @ 0x180137c3f\n// > __acrt_GetModuleFileNameA @ 0x18013929b\n// > _wsetlocale_set_cat @ 0x180139eaa\n// > _wsetlocale_set_cat @ 0x180139f8e\n// > getSystemCP @ 0x18013a2b7\n// > x_ismbbtype_l @ 0x18013ab6b\n// > _strnicmp_l @ 0x18013ba7b\n// > __acrt_CompareStringA @ 0x18013be58\n// > sub_18013C0DC @ 0x18013c0f8\n// > tzset_env_copy_to_tzname @ 0x18013cc7f\n// > __acrt_GetStringTypeA @ 0x18013d769\n// > _isleadbyte_l @ 0x18013da32\n// > write_double_translated_ansi_nolock @ 0x18013fa63\n// > _mbsdec_l @ 0x180140bbb\n// > __acrt_LCMapStringA @ 0x180140f4c\n// > __acrt_SetEnvironmentVariableA @ 0x18014103d\n// > __acrt_SetEnvironmentVariableA @ 0x1801410b6\n// > <???> @ 0x180202a80\n// > <???> @ 0x180202a8c\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_LocaleUpdate *__fastcall _LocaleUpdate::_LocaleUpdate(_LocaleUpdate *this, struct __crt_locale_pointers *const a2)\n{\n  _OWORD *v3; // rsi\n  __int128 v4; // xmm0\n  __int64 v5; // rax\n  int v6; // eax\n\n  *((_BYTE *)this + 24) = 0;\n  v3 = (_OWORD *)((char *)this + 8);\n  if ( a2 )\n  {\n    v4 = (__int128)*a2;\nLABEL_5:\n    *v3 = v4;\n    return this;\n  }\n  if ( !dword_1801F5150 )\n  {\n    v4 = *(_OWORD *)&off_1801B19D8;\n    goto LABEL_5;\n  }\n  v5 = _acrt_getptd();\n  *(_QWORD *)this = v5;\n  *(_QWORD *)v3 = *(_QWORD *)(v5 + 144);\n  *((_QWORD *)this + 2) = *(_QWORD *)(v5 + 136);\n  sub_180135F5C(v5, v3);\n  sub_180135F90(*(_QWORD *)this, (char *)this + 16);\n  v6 = *(_DWORD *)(*(_QWORD *)this + 936LL);\n  if ( (v6 & 2) == 0 )\n  {\n    *(_DWORD *)(*(_QWORD *)this + 936LL) = v6 | 2;\n    *((_BYTE *)this + 24) = 1;\n  }\n  return this;\n}", "assembly": "; \n; _LocaleUpdate::_LocaleUpdate from 0x180129454 to 0x1801294ef (155 bytes)\n; \n; 34 xrefs:\n; > _stat64i32 @ 0x1801298a0\n; > __crt_strtox::parse_integer<ulong,__crt_strtox::c_string_character_source<char>> @ 0x18012a590\n; > __crt_strtox::parse_integer<ulong,__crt_strtox::c_string_character_source<wchar_t>> @ 0x18012a88f\n; > _wcstombs_l_helper @ 0x18012b507\n; > common_vsprintf<__crt_stdio_output::standard_base,char> @ 0x18012b8c5\n; > common_vsprintf<__crt_stdio_output::standard_base,wchar_t> @ 0x18012ba91\n; > _lambda_7e489fec146d5348dbc86d3cce37c1b5_::operator @ 0x18012c306\n; > _wcsnicoll_l @ 0x1801344cd\n; > _strnicoll_l @ 0x180134588\n; > _wcsicmp_l @ 0x180134dc2\n; > _isctype_l @ 0x180136bc4\n; > _mbtowc_l @ 0x1801372eb\n; > _wctomb_s_l @ 0x180137489\n; > fp_format_a @ 0x18013761d\n; > fp_format_e_internal @ 0x180137ab2\n; > fp_format_f_internal @ 0x180137c3f\n; > __acrt_GetModuleFileNameA @ 0x18013929b\n; > _wsetlocale_set_cat @ 0x180139eaa\n; > _wsetlocale_set_cat @ 0x180139f8e\n; > getSystemCP @ 0x18013a2b7\n; > x_ismbbtype_l @ 0x18013ab6b\n; > _strnicmp_l @ 0x18013ba7b\n; > __acrt_CompareStringA @ 0x18013be58\n; > sub_18013C0DC @ 0x18013c0f8\n; > tzset_env_copy_to_tzname @ 0x18013cc7f\n; > __acrt_GetStringTypeA @ 0x18013d769\n; > _isleadbyte_l @ 0x18013da32\n; > write_double_translated_ansi_nolock @ 0x18013fa63\n; > _mbsdec_l @ 0x180140bbb\n; > __acrt_LCMapStringA @ 0x180140f4c\n; > __acrt_SetEnvironmentVariableA @ 0x18014103d\n; > __acrt_SetEnvironmentVariableA @ 0x1801410b6\n; > <???> @ 0x180202a80\n; > <???> @ 0x180202a8c\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, 0x180129454\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x180129459\npush    rdi                                                            ; +0xa, 0x18012945e\nsub     rsp, 20h                                                       ; +0xb, 0x18012945f\nmov     byte ptr [rcx+18h], 0                                          ; +0xf, 0x180129463\nmov     rdi, rcx                                                       ; +0x13, 0x180129467\nlea     rsi, [rcx+8]                                                   ; +0x16, 0x18012946a\ntest    rdx, rdx                                                       ; +0x1a, 0x18012946e\njz      short loc_180129478                                            ; +0x1d, 0x180129471\nmovups  xmm0, xmmword ptr [rdx]                                        ; +0x1f, 0x180129473\njmp     short loc_180129488                                            ; +0x22, 0x180129476\ncmp     cs:dword_1801F5150, 0                                          ; +0x24, 0x180129478\njnz     short loc_18012948E                                            ; +0x2b, 0x18012947f\nmovups  xmm0, xmmword ptr cs:off_1801B19D8                             ; +0x2d, 0x180129481\nmovdqu  xmmword ptr [rsi], xmm0                                        ; +0x34, 0x180129488\njmp     short loc_1801294DC                                            ; +0x38, 0x18012948c\ncall    __acrt_getptd                                                  ; +0x3a, 0x18012948e\nmov     [rdi], rax                                                     ; +0x3f, 0x180129493\nmov     rdx, rsi                                                       ; +0x42, 0x180129496\nmov     rcx, [rax+90h]                                                 ; +0x45, 0x180129499\nmov     [rsi], rcx                                                     ; +0x4c, 0x1801294a0\nmov     rcx, [rax+88h]                                                 ; +0x4f, 0x1801294a3\nmov     [rdi+10h], rcx                                                 ; +0x56, 0x1801294aa\nmov     rcx, rax                                                       ; +0x5a, 0x1801294ae\ncall    sub_180135F5C                                                  ; +0x5d, 0x1801294b1\nmov     rcx, [rdi]                                                     ; +0x62, 0x1801294b6\nlea     rdx, [rdi+10h]                                                 ; +0x65, 0x1801294b9\ncall    sub_180135F90                                                  ; +0x69, 0x1801294bd\nmov     rcx, [rdi]                                                     ; +0x6e, 0x1801294c2\nmov     eax, [rcx+3A8h]                                                ; +0x71, 0x1801294c5\ntest    al, 2                                                          ; +0x77, 0x1801294cb\njnz     short loc_1801294DC                                            ; +0x79, 0x1801294cd\nor      eax, 2                                                         ; +0x7b, 0x1801294cf\nmov     [rcx+3A8h], eax                                                ; +0x7e, 0x1801294d2\nmov     byte ptr [rdi+18h], 1                                          ; +0x84, 0x1801294d8\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x88, 0x1801294dc\nmov     rax, rdi                                                       ; +0x8d, 0x1801294e1\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x90, 0x1801294e4\nadd     rsp, 20h                                                       ; +0x95, 0x1801294e9\npop     rdi                                                            ; +0x99, 0x1801294ed\nretn                                                                   ; +0x9a, 0x1801294ee", "xrefs": ["_stat64i32 @ 0x1801298a0", "__crt_strtox::parse_integer<ulong,__crt_strtox::c_string_character_source<char>> @ 0x18012a590", "__crt_strtox::parse_integer<ulong,__crt_strtox::c_string_character_source<wchar_t>> @ 0x18012a88f", "_wcstombs_l_helper @ 0x18012b507", "common_vsprintf<__crt_stdio_output::standard_base,char> @ 0x18012b8c5", "common_vsprintf<__crt_stdio_output::standard_base,wchar_t> @ 0x18012ba91", "_lambda_7e489fec146d5348dbc86d3cce37c1b5_::operator @ 0x18012c306", "_wcsnicoll_l @ 0x1801344cd", "_strnicoll_l @ 0x180134588", "_wcsicmp_l @ 0x180134dc2", "_isctype_l @ 0x180136bc4", "_mbtowc_l @ 0x1801372eb", "_wctomb_s_l @ 0x180137489", "fp_format_a @ 0x18013761d", "fp_format_e_internal @ 0x180137ab2", "fp_format_f_internal @ 0x180137c3f", "__acrt_GetModuleFileNameA @ 0x18013929b", "_wsetlocale_set_cat @ 0x180139eaa", "_wsetlocale_set_cat @ 0x180139f8e", "getSystemCP @ 0x18013a2b7", "x_ismbbtype_l @ 0x18013ab6b", "_strnicmp_l @ 0x18013ba7b", "__acrt_CompareStringA @ 0x18013be58", "sub_18013C0DC @ 0x18013c0f8", "tzset_env_copy_to_tzname @ 0x18013cc7f", "__acrt_GetStringTypeA @ 0x18013d769", "_isleadbyte_l @ 0x18013da32", "write_double_translated_ansi_nolock @ 0x18013fa63", "_mbsdec_l @ 0x180140bbb", "__acrt_LCMapStringA @ 0x180140f4c", "__acrt_SetEnvironmentVariableA @ 0x18014103d", "__acrt_SetEnvironmentVariableA @ 0x1801410b6", "<???> @ 0x180202a80", "<???> @ 0x180202a8c"], "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"}