{"type": "func", "start": 6443724888, "end": 6443725061, "name": "__acrt_WideCharToMultiByte", "pseudocode": "// \n// __acrt_WideCharToMultiByte from 0x180137058 to 0x180137105 (173 bytes)\n// \n// 19 xrefs:\n// > _wcstombs_l_helper @ 0x18012b5f6\n// > _wcstombs_l_helper @ 0x18012b63d\n// > _wcstombs_l_helper @ 0x18012b6b3\n// > _wcstombs_l_helper @ 0x18012b794\n// > initialize_environment_by_cloning_nolock<char> @ 0x180132200\n// > initialize_environment_by_cloning_nolock<char> @ 0x180132241\n// > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_no_resizing> @ 0x180134a9c\n// > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_no_resizing> @ 0x180134af3\n// > _wctomb_s_l @ 0x18013756a\n// > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139977\n// > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139a0a\n// > __dcrt_get_narrow_environment_from_os @ 0x18013ac7f\n// > __dcrt_get_narrow_environment_from_os @ 0x18013acb8\n// > tzset_env_copy_to_tzname @ 0x18013cd00\n// > tzset_os_copy_to_tzname @ 0x18013d2a8\n// > write_double_translated_ansi_nolock @ 0x18013fce6\n// > write_text_utf8_nolock @ 0x1801401d5\n// > __acrt_LCMapStringA_stat @ 0x180140eab\n// > <???> @ 0x1802035a8\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\nint __fastcall _acrt_WideCharToMultiByte(\n        UINT a1,\n        int a2,\n        const WCHAR *a3,\n        int a4,\n        CHAR *a5,\n        int a6,\n        const CHAR *a7,\n        BOOL *a8)\n{\n  int v10; // r8d\n  bool v11; // zf\n  DWORD v12; // edx\n  BOOL *v14; // r8\n\n  if ( a1 <= 0xC435 )\n  {\n    if ( a1 - 50220 <= 9 )\n    {\n      v10 = 679;\n      if ( _bittest(&v10, a1 - 50220) )\n        goto LABEL_12;\n    }\n    v11 = a1 == 42;\n    goto LABEL_10;\n  }\n  if ( a1 == 54936 )\n    goto LABEL_12;\n  if ( a1 > 0xDEA9 )\n  {\n    if ( a1 <= 0xDEB3 || a1 == 65000 )\n      goto LABEL_12;\n    v11 = a1 == 65001;\nLABEL_10:\n    if ( !v11 )\n      goto LABEL_11;\nLABEL_12:\n    v12 = 0;\n    goto LABEL_13;\n  }\nLABEL_11:\n  v12 = a2 & 0xFFFFFF7F;\nLABEL_13:\n  v14 = a8;\n  if ( a1 - 65000 <= 1 )\n  {\n    v14 = nullptr;\n    a7 = nullptr;\n    if ( a8 )\n      *a8 = 0;\n  }\n  return WideCharToMultiByte(a1, v12, a3, a4, a5, a6, a7, v14);\n}", "assembly": "; \n; __acrt_WideCharToMultiByte from 0x180137058 to 0x180137105 (173 bytes)\n; \n; 19 xrefs:\n; > _wcstombs_l_helper @ 0x18012b5f6\n; > _wcstombs_l_helper @ 0x18012b63d\n; > _wcstombs_l_helper @ 0x18012b6b3\n; > _wcstombs_l_helper @ 0x18012b794\n; > initialize_environment_by_cloning_nolock<char> @ 0x180132200\n; > initialize_environment_by_cloning_nolock<char> @ 0x180132241\n; > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_no_resizing> @ 0x180134a9c\n; > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_no_resizing> @ 0x180134af3\n; > _wctomb_s_l @ 0x18013756a\n; > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139977\n; > __acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139a0a\n; > __dcrt_get_narrow_environment_from_os @ 0x18013ac7f\n; > __dcrt_get_narrow_environment_from_os @ 0x18013acb8\n; > tzset_env_copy_to_tzname @ 0x18013cd00\n; > tzset_os_copy_to_tzname @ 0x18013d2a8\n; > write_double_translated_ansi_nolock @ 0x18013fce6\n; > write_text_utf8_nolock @ 0x1801401d5\n; > __acrt_LCMapStringA_stat @ 0x180140eab\n; > <???> @ 0x1802035a8\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, 0x180137058\npush    rdi                                                            ; +0x5, 0x18013705d\nlea     eax, [rcx-0FDE8h]                                              ; +0x6, 0x18013705e\nmov     r11d, r9d                                                      ; +0xc, 0x180137064\ncmp     eax, 1                                                         ; +0xf, 0x180137067\nmov     rbx, r8                                                        ; +0x12, 0x18013706a\nsetbe   r10b                                                           ; +0x15, 0x18013706d\nxor     edi, edi                                                       ; +0x19, 0x180137071\ncmp     ecx, 0C435h                                                    ; +0x1b, 0x180137073\nja      short loc_180137097                                            ; +0x21, 0x180137079\nlea     eax, [rcx-0C42Ch]                                              ; +0x23, 0x18013707b\ncmp     eax, 9                                                         ; +0x29, 0x180137081\nja      short loc_180137092                                            ; +0x2c, 0x180137084\nmov     r8d, 2A7h                                                      ; +0x2e, 0x180137086\nbt      r8d, eax                                                       ; +0x34, 0x18013708c\njb      short loc_1801370C5                                            ; +0x38, 0x180137090\ncmp     ecx, 2Ah ; '*'                                                 ; +0x3a, 0x180137092\njmp     short loc_1801370BD                                            ; +0x3d, 0x180137095\ncmp     ecx, 0D698h                                                    ; +0x3f, 0x180137097\njz      short loc_1801370C5                                            ; +0x45, 0x18013709d\ncmp     ecx, 0DEA9h                                                    ; +0x47, 0x18013709f\njbe     short loc_1801370BF                                            ; +0x4d, 0x1801370a5\ncmp     ecx, 0DEB3h                                                    ; +0x4f, 0x1801370a7\njbe     short loc_1801370C5                                            ; +0x55, 0x1801370ad\ncmp     ecx, 0FDE8h                                                    ; +0x57, 0x1801370af\njz      short loc_1801370C5                                            ; +0x5d, 0x1801370b5\ncmp     ecx, 0FDE9h                                                    ; +0x5f, 0x1801370b7\njz      short loc_1801370C5                                            ; +0x65, 0x1801370bd\nbtr     edx, 7                                                         ; +0x67, 0x1801370bf\njmp     short loc_1801370C7                                            ; +0x6b, 0x1801370c3\nmov     edx, edi                                                       ; +0x6d, 0x1801370c5\nmov     rax, [rsp+8+arg_38]                                            ; +0x6f, 0x1801370c7\ntest    r10b, r10b                                                     ; +0x74, 0x1801370cc\nmov     r9, [rsp+8+arg_30]                                             ; +0x77, 0x1801370cf\nmov     r8, rax                                                        ; +0x7c, 0x1801370d4\ncmovnz  r8, rdi                                                        ; +0x7f, 0x1801370d7\ncmovnz  r9, rdi                                                        ; +0x83, 0x1801370db\njz      short loc_1801370E8                                            ; +0x87, 0x1801370df\ntest    rax, rax                                                       ; +0x89, 0x1801370e1\njz      short loc_1801370E8                                            ; +0x8c, 0x1801370e4\nmov     [rax], edi                                                     ; +0x8e, 0x1801370e6\nmov     [rsp+8+arg_38], r8                                             ; +0x90, 0x1801370e8\nmov     r8, rbx                                                        ; +0x95, 0x1801370ed\nmov     [rsp+8+arg_30], r9                                             ; +0x98, 0x1801370f0\nmov     r9d, r11d                                                      ; +0x9d, 0x1801370f5\nmov     rbx, [rsp+8+arg_0]                                             ; +0xa0, 0x1801370f8\npop     rdi                                                            ; +0xa5, 0x1801370fd\njmp     cs:WideCharToMultiByte                                         ; +0xa6, 0x1801370fe", "xrefs": ["_wcstombs_l_helper @ 0x18012b5f6", "_wcstombs_l_helper @ 0x18012b63d", "_wcstombs_l_helper @ 0x18012b6b3", "_wcstombs_l_helper @ 0x18012b794", "initialize_environment_by_cloning_nolock<char> @ 0x180132200", "initialize_environment_by_cloning_nolock<char> @ 0x180132241", "__acrt_wcs_to_mbs_cp<__crt_win32_buffer_no_resizing> @ 0x180134a9c", "__acrt_wcs_to_mbs_cp<__crt_win32_buffer_no_resizing> @ 0x180134af3", "_wctomb_s_l @ 0x18013756a", "__acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139977", "__acrt_wcs_to_mbs_cp<__crt_win32_buffer_internal_dynamic_resizing> @ 0x180139a0a", "__dcrt_get_narrow_environment_from_os @ 0x18013ac7f", "__dcrt_get_narrow_environment_from_os @ 0x18013acb8", "tzset_env_copy_to_tzname @ 0x18013cd00", "tzset_os_copy_to_tzname @ 0x18013d2a8", "write_double_translated_ansi_nolock @ 0x18013fce6", "write_text_utf8_nolock @ 0x1801401d5", "__acrt_LCMapStringA_stat @ 0x180140eab", "<???> @ 0x1802035a8"], "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"}