; ; _mbtowc_l from 0x18013729c to 0x18013741a (382 bytes) ; ; 6 xrefs: ; > unknown_libname_48 @ 0x18012e42a ; > unknown_libname_49 @ 0x18012e4d2 ; > unknown_libname_57 @ 0x18012ee90 ; > unknown_libname_58 @ 0x18012ef92 ; > mbtowc @ 0x18013741f ; > @ 0x1802035cc ; ; 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+arg_0], rbx ; +0x0, 0x18013729c mov [rsp+arg_8], rbp ; +0x5, 0x1801372a1 mov [rsp+arg_10], rsi ; +0xa, 0x1801372a6 push rdi ; +0xf, 0x1801372ab sub rsp, 50h ; +0x10, 0x1801372ac xor ebp, ebp ; +0x14, 0x1801372b0 mov rsi, r8 ; +0x16, 0x1801372b2 mov rdi, rdx ; +0x19, 0x1801372b5 mov rbx, rcx ; +0x1c, 0x1801372b8 test rdx, rdx ; +0x1f, 0x1801372bb jz loc_1801373FC ; +0x22, 0x1801372be test r8, r8 ; +0x28, 0x1801372c4 jz loc_1801373FC ; +0x2b, 0x1801372c7 cmp [rdx], bpl ; +0x31, 0x1801372cd jnz short loc_1801372E3 ; +0x34, 0x1801372d0 test rcx, rcx ; +0x36, 0x1801372d2 jz loc_180137403 ; +0x39, 0x1801372d5 mov [rcx], bp ; +0x3f, 0x1801372db jmp loc_180137403 ; +0x42, 0x1801372de mov rdx, r9; struct __crt_locale_pointers * ; +0x47, 0x1801372e3 lea rcx, [rsp+58h+var_28]; this ; +0x4a, 0x1801372e6 call ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z ; +0x4f, 0x1801372eb mov rax, [rsp+58h+Locale.locinfo] ; +0x54, 0x1801372f0 cmp dword ptr [rax+0Ch], 0FDE9h ; +0x59, 0x1801372f5 jnz short loc_180137320 ; +0x60, 0x1801372fc lea r9, qword_1801F5568; unsigned __int64 ; +0x62, 0x1801372fe mov r8, rsi; char * ; +0x69, 0x180137305 mov rdx, rdi; wchar_t * ; +0x6c, 0x180137308 mov rcx, rbx; this ; +0x6f, 0x18013730b call ?__mbrtowc_utf8@__crt_mbstring@@YA_KPEA_WPEBD_KPEAU_Mbstatet@@@Z ; +0x72, 0x18013730e mov rcx, rax ; +0x77, 0x180137313 or eax, 0FFFFFFFFh ; +0x7a, 0x180137316 test ecx, ecx ; +0x7d, 0x180137319 cmovs ecx, eax ; +0x7f, 0x18013731b jmp short loc_180137339 ; +0x82, 0x18013731e cmp [rax+138h], rbp ; +0x84, 0x180137320 jnz short loc_180137353 ; +0x8b, 0x180137327 test rbx, rbx ; +0x8d, 0x180137329 jz short loc_180137334 ; +0x90, 0x18013732c movzx eax, byte ptr [rdi] ; +0x92, 0x18013732e mov [rbx], ax ; +0x95, 0x180137331 mov ecx, 1 ; +0x98, 0x180137334 cmp [rsp+58h+var_10], bpl ; +0x9d, 0x180137339 jz short loc_18013734C ; +0xa2, 0x18013733e mov rax, [rsp+58h+var_28] ; +0xa4, 0x180137340 and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0xa9, 0x180137345 mov eax, ecx ; +0xb0, 0x18013734c jmp loc_180137405 ; +0xb2, 0x18013734e movzx ecx, byte ptr [rdi]; C ; +0xb7, 0x180137353 lea rdx, [rsp+58h+Locale]; Locale ; +0xba, 0x180137356 call _isleadbyte_l ; +0xbf, 0x18013735b test eax, eax ; +0xc4, 0x180137360 jz short loc_1801373B6 ; +0xc6, 0x180137362 mov rcx, [rsp+58h+Locale.locinfo] ; +0xc8, 0x180137364 mov r9d, [rcx+8] ; +0xcd, 0x180137369 cmp r9d, 1 ; +0xd1, 0x18013736d jle short loc_1801373A2 ; +0xd5, 0x180137371 cmp esi, r9d ; +0xd7, 0x180137373 jl short loc_1801373A2 ; +0xda, 0x180137376 mov ecx, [rcx+0Ch] ; +0xdc, 0x180137378 mov eax, ebp ; +0xdf, 0x18013737b test rbx, rbx ; +0xe1, 0x18013737d mov r8, rdi ; +0xe4, 0x180137380 mov edx, 9 ; +0xe7, 0x180137383 setnz al ; +0xec, 0x180137388 mov [rsp+58h+var_30], eax ; +0xef, 0x18013738b mov [rsp+58h+var_38], rbx ; +0xf3, 0x18013738f call __acrt_MultiByteToWideChar ; +0xf8, 0x180137394 mov rcx, [rsp+58h+Locale.locinfo] ; +0xfd, 0x180137399 test eax, eax ; +0x102, 0x18013739e jnz short loc_1801373B1 ; +0x104, 0x1801373a0 movsxd rax, dword ptr [rcx+8] ; +0x106, 0x1801373a2 cmp rsi, rax ; +0x10a, 0x1801373a6 jb short loc_1801373E9 ; +0x10d, 0x1801373a9 cmp [rdi+1], bpl ; +0x10f, 0x1801373ab jz short loc_1801373E9 ; +0x113, 0x1801373af mov ecx, [rcx+8] ; +0x115, 0x1801373b1 jmp short loc_180137339 ; +0x118, 0x1801373b4 mov eax, ebp ; +0x11a, 0x1801373b6 mov r9d, 1 ; +0x11c, 0x1801373b8 test rbx, rbx ; +0x122, 0x1801373be mov r8, rdi ; +0x125, 0x1801373c1 setnz al ; +0x128, 0x1801373c4 mov [rsp+58h+var_30], eax ; +0x12b, 0x1801373c7 lea edx, [r9+8] ; +0x12f, 0x1801373cb mov rax, [rsp+58h+Locale.locinfo] ; +0x133, 0x1801373cf mov [rsp+58h+var_38], rbx ; +0x138, 0x1801373d4 mov ecx, [rax+0Ch] ; +0x13d, 0x1801373d9 call __acrt_MultiByteToWideChar ; +0x140, 0x1801373dc test eax, eax ; +0x145, 0x1801373e1 jnz loc_180137334 ; +0x147, 0x1801373e3 call _errno ; +0x14d, 0x1801373e9 or ecx, 0FFFFFFFFh ; +0x152, 0x1801373ee mov dword ptr [rax], 2Ah ; '*' ; +0x155, 0x1801373f1 jmp loc_180137339 ; +0x15b, 0x1801373f7 mov cs:qword_1801F5568, rbp ; +0x160, 0x1801373fc xor eax, eax ; +0x167, 0x180137403 mov rbx, [rsp+58h+arg_0] ; +0x169, 0x180137405 mov rbp, [rsp+58h+arg_8] ; +0x16e, 0x18013740a mov rsi, [rsp+58h+arg_10] ; +0x173, 0x18013740f add rsp, 50h ; +0x178, 0x180137414 pop rdi ; +0x17c, 0x180137418 retn ; +0x17d, 0x180137419