; ; setmbcp_internal from 0x18013a59c to 0x18013a75a (446 bytes) ; ; 2 xrefs: ; > __acrt_initialize_multibyte @ 0x18013a861 ; > @ 0x180203860 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; mov [rsp-18h+arg_0], rbx ; +0x0, 0x18013a59c mov [rsp-18h+arg_18], r9 ; +0x5, 0x18013a5a1 mov [rsp-18h+arg_10], r8 ; +0xa, 0x18013a5a6 push rbp ; +0xf, 0x18013a5ab push rsi ; +0x10, 0x18013a5ac push rdi ; +0x11, 0x18013a5ad mov rbp, rsp ; +0x12, 0x18013a5ae sub rsp, 40h ; +0x15, 0x18013a5b1 mov sil, dl ; +0x19, 0x18013a5b5 mov ebx, ecx ; +0x1c, 0x18013a5b8 mov rdx, r9; struct __crt_multibyte_data ** ; +0x1e, 0x18013a5ba mov rcx, r8; struct __acrt_ptd * ; +0x21, 0x18013a5bd call ?update_thread_multibyte_data_internal@@YAPEAU__crt_multibyte_data@@QEAU__acrt_ptd@@QEAPEAU1@@Z ; +0x24, 0x18013a5c0 mov ecx, ebx; int ; +0x29, 0x18013a5c5 call ?getSystemCP@@YAHH@Z ; +0x2b, 0x18013a5c7 mov rcx, [rbp+arg_10] ; +0x30, 0x18013a5cc mov edi, eax ; +0x34, 0x18013a5d0 mov r8, [rcx+88h] ; +0x36, 0x18013a5d2 cmp eax, [r8+4] ; +0x3d, 0x18013a5d9 jnz short loc_18013A5E6 ; +0x41, 0x18013a5dd xor eax, eax ; +0x43, 0x18013a5df jmp loc_18013A69E ; +0x45, 0x18013a5e1 mov ecx, 228h; Size ; +0x4a, 0x18013a5e6 call _malloc_base ; +0x4f, 0x18013a5eb mov rbx, rax ; +0x54, 0x18013a5f0 test rax, rax ; +0x57, 0x18013a5f3 jz loc_18013A691 ; +0x5a, 0x18013a5f6 mov rax, [rbp+arg_10] ; +0x60, 0x18013a5fc mov edx, 4 ; +0x64, 0x18013a600 mov rcx, rbx ; +0x69, 0x18013a605 mov rax, [rax+88h] ; +0x6c, 0x18013a608 lea r8d, [rdx+7Ch] ; +0x73, 0x18013a60f movups xmm0, xmmword ptr [rax] ; +0x77, 0x18013a613 movups xmmword ptr [rcx], xmm0 ; +0x7a, 0x18013a616 movups xmm1, xmmword ptr [rax+10h] ; +0x7d, 0x18013a619 movups xmmword ptr [rcx+10h], xmm1 ; +0x81, 0x18013a61d movups xmm0, xmmword ptr [rax+20h] ; +0x85, 0x18013a621 movups xmmword ptr [rcx+20h], xmm0 ; +0x89, 0x18013a625 movups xmm1, xmmword ptr [rax+30h] ; +0x8d, 0x18013a629 movups xmmword ptr [rcx+30h], xmm1 ; +0x91, 0x18013a62d movups xmm0, xmmword ptr [rax+40h] ; +0x95, 0x18013a631 movups xmmword ptr [rcx+40h], xmm0 ; +0x99, 0x18013a635 movups xmm1, xmmword ptr [rax+50h] ; +0x9d, 0x18013a639 movups xmmword ptr [rcx+50h], xmm1 ; +0xa1, 0x18013a63d movups xmm0, xmmword ptr [rax+60h] ; +0xa5, 0x18013a641 movups xmmword ptr [rcx+60h], xmm0 ; +0xa9, 0x18013a645 add rcx, r8 ; +0xad, 0x18013a649 movups xmm1, xmmword ptr [rax+70h] ; +0xb0, 0x18013a64c add rax, r8 ; +0xb4, 0x18013a650 movups xmmword ptr [rcx-10h], xmm1 ; +0xb7, 0x18013a653 sub rdx, 1 ; +0xbb, 0x18013a657 jnz short loc_18013A613 ; +0xbf, 0x18013a65b movups xmm0, xmmword ptr [rax] ; +0xc1, 0x18013a65d movups xmmword ptr [rcx], xmm0 ; +0xc4, 0x18013a660 movups xmm1, xmmword ptr [rax+10h] ; +0xc7, 0x18013a663 movups xmmword ptr [rcx+10h], xmm1 ; +0xcb, 0x18013a667 mov rax, [rax+20h] ; +0xcf, 0x18013a66b mov [rcx+20h], rax ; +0xd3, 0x18013a66f mov ecx, edi ; +0xd7, 0x18013a673 and [rbx], edx ; +0xd9, 0x18013a675 mov rdx, rbx ; +0xdb, 0x18013a677 call _setmbcp_nolock ; +0xde, 0x18013a67a mov edi, eax ; +0xe3, 0x18013a67f cmp eax, 0FFFFFFFFh ; +0xe5, 0x18013a681 jnz short loc_18013A6AB ; +0xe8, 0x18013a684 call _errno ; +0xea, 0x18013a686 mov dword ptr [rax], 16h ; +0xef, 0x18013a68b or edi, 0FFFFFFFFh ; +0xf5, 0x18013a691 mov rcx, rbx; Block ; +0xf8, 0x18013a694 call _free_base ; +0xfb, 0x18013a697 mov eax, edi ; +0x100, 0x18013a69c mov rbx, [rsp+40h+arg_0] ; +0x102, 0x18013a69e add rsp, 40h ; +0x107, 0x18013a6a3 pop rdi ; +0x10b, 0x18013a6a7 pop rsi ; +0x10c, 0x18013a6a8 pop rbp ; +0x10d, 0x18013a6a9 retn ; +0x10e, 0x18013a6aa test sil, sil ; +0x10f, 0x18013a6ab jnz short loc_18013A6B5 ; +0x112, 0x18013a6ae call __acrt_set_locale_changed; Microsoft VisualC v7/14 64bit runtime ; +0x114, 0x18013a6b0 mov rax, [rbp+arg_10] ; +0x119, 0x18013a6b5 mov rcx, [rax+88h] ; +0x11d, 0x18013a6b9 or eax, 0FFFFFFFFh ; +0x124, 0x18013a6c0 lock xadd [rcx], eax ; +0x127, 0x18013a6c3 cmp eax, 1 ; +0x12b, 0x18013a6c7 jnz short loc_18013A6E8 ; +0x12e, 0x18013a6ca mov rax, [rbp+arg_10] ; +0x130, 0x18013a6cc mov rcx, [rax+88h]; Block ; +0x134, 0x18013a6d0 lea rax, unk_1801B1A50 ; +0x13b, 0x18013a6d7 cmp rcx, rax ; +0x142, 0x18013a6de jz short loc_18013A6E8 ; +0x145, 0x18013a6e1 call _free_base ; +0x147, 0x18013a6e3 mov dword ptr [rbx], 1 ; +0x14c, 0x18013a6e8 mov rcx, rbx ; +0x152, 0x18013a6ee mov rax, [rbp+arg_10] ; +0x155, 0x18013a6f1 xor ebx, ebx ; +0x159, 0x18013a6f5 mov [rax+88h], rcx ; +0x15b, 0x18013a6f7 mov rax, [rbp+arg_10] ; +0x162, 0x18013a6fe mov ecx, [rax+3A8h] ; +0x166, 0x18013a702 test cs:dword_1801B1F90, ecx ; +0x16c, 0x18013a708 jnz short loc_18013A694 ; +0x172, 0x18013a70e lea rax, [rbp+arg_10] ; +0x174, 0x18013a710 mov [rbp+var_10], rax ; +0x178, 0x18013a714 lea r9, [rbp+var_1C] ; +0x17c, 0x18013a718 lea rax, [rbp+arg_18] ; +0x180, 0x18013a71c mov [rbp+var_8], rax ; +0x184, 0x18013a720 lea r8, [rbp+var_10] ; +0x188, 0x18013a724 lea eax, [rbx+5] ; +0x18c, 0x18013a728 lea rdx, [rbp+var_18] ; +0x18f, 0x18013a72b mov [rbp+var_1C], eax ; +0x193, 0x18013a72f lea rcx, [rbp+var_20] ; +0x196, 0x18013a732 mov [rbp+var_18], eax ; +0x19a, 0x18013a736 call ??$?RV_lambda_efdfa57d1f175319df784efa44bb7b81_@@AEAV_lambda_5f0a4c1567f8adc6734073e5d1e1b35c_@@V_lambda_2e8a7d3640ea6ccb4c2413664c2db6fd_@@@?$__crt_seh_guarded_call@X@@QEAAX$$QEAV_lambda_efdfa57d1f175319df784efa44bb7b81_@@AEAV_lambda_5f0a4c1567f8adc6734073e5d1e1b35c_@@$$QEAV_lambda_2e8a7d3640ea6ccb4c2413664c2db6fd_@@@Z ; +0x19d, 0x18013a739 test sil, sil ; +0x1a2, 0x18013a73e jz loc_18013A694 ; +0x1a5, 0x18013a741 mov rax, [rbp+arg_18] ; +0x1ab, 0x18013a747 mov rcx, [rax] ; +0x1af, 0x18013a74b mov cs:off_1801B19E0, rcx ; +0x1b2, 0x18013a74e jmp loc_18013A694 ; +0x1b9, 0x18013a755