; ; __crt_mbstring::__mbrtoc32_utf8 from 0x180141250 to 0x180141425 (469 bytes) ; ; 4 xrefs: ; > __crt_mbstring::__mbrtowc_utf8 @ 0x18013da7e ; > __crt_mbstring::__mbsrtowcs_utf8 @ 0x18013db1f ; > __crt_mbstring::__mbsrtowcs_utf8 @ 0x18013dc01 ; > @ 0x180203c98 ; ; 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_8], rbx ; +0x0, 0x180141250 push rbp ; +0x5, 0x180141255 push rsi ; +0x6, 0x180141256 push rdi ; +0x7, 0x180141257 push r14 ; +0x8, 0x180141258 push r15 ; +0xa, 0x18014125a sub rsp, 40h ; +0xc, 0x18014125c mov rax, cs:__security_cookie ; +0x10, 0x180141260 xor rax, rsp ; +0x17, 0x180141267 mov [rsp+68h+var_38], rax ; +0x1a, 0x18014126a xor r10d, r10d ; +0x1f, 0x18014126f lea r11, unk_1801F5730 ; +0x22, 0x180141272 test r9, r9 ; +0x29, 0x180141279 lea rdi, byte_18014572F ; +0x2c, 0x18014127c mov rax, rdx ; +0x33, 0x180141283 mov r15, rdx ; +0x36, 0x180141286 cmovnz r11, r9 ; +0x39, 0x180141289 test rdx, rdx ; +0x3d, 0x18014128d lea ebp, [r10+1] ; +0x40, 0x180141290 cmovnz rdi, rdx ; +0x44, 0x180141294 mov r14d, ebp ; +0x48, 0x180141298 cmovnz r14, r8 ; +0x4b, 0x18014129b neg rax ; +0x4f, 0x18014129f sbb rsi, rsi ; +0x52, 0x1801412a2 and rsi, rcx ; +0x55, 0x1801412a5 test r14, r14 ; +0x58, 0x1801412a8 jnz short loc_1801412B9 ; +0x5b, 0x1801412ab mov rax, 0FFFFFFFFFFFFFFFEh ; +0x5d, 0x1801412ad jmp loc_180141407 ; +0x64, 0x1801412b4 cmp [r11+6], r10w ; +0x69, 0x1801412b9 jnz short loc_180141328 ; +0x6e, 0x1801412be movzx r9d, byte ptr [rdi] ; +0x70, 0x1801412c0 inc rdi ; +0x74, 0x1801412c4 test r9b, r9b ; +0x77, 0x1801412c7 js short loc_1801412E3 ; +0x7a, 0x1801412ca test rsi, rsi ; +0x7c, 0x1801412cc jz short loc_1801412D4 ; +0x7f, 0x1801412cf mov [rsi], r9d ; +0x81, 0x1801412d1 test r9b, r9b ; +0x84, 0x1801412d4 setnz r10b ; +0x87, 0x1801412d7 mov rax, r10 ; +0x8b, 0x1801412db jmp loc_180141407 ; +0x8e, 0x1801412de mov al, r9b ; +0x93, 0x1801412e3 and al, 0E0h ; +0x96, 0x1801412e6 cmp al, 0C0h ; +0x98, 0x1801412e8 jnz short loc_1801412F1 ; +0x9a, 0x1801412ea mov r8b, 2 ; +0x9c, 0x1801412ec jmp short loc_18014130F ; +0x9f, 0x1801412ef mov al, r9b ; +0xa1, 0x1801412f1 and al, 0F0h ; +0xa4, 0x1801412f4 cmp al, 0E0h ; +0xa6, 0x1801412f6 jnz short loc_1801412FF ; +0xa8, 0x1801412f8 mov r8b, 3 ; +0xaa, 0x1801412fa jmp short loc_18014130F ; +0xad, 0x1801412fd mov al, r9b ; +0xaf, 0x1801412ff and al, 0F8h ; +0xb2, 0x180141302 cmp al, 0F0h ; +0xb4, 0x180141304 jnz loc_1801413F5 ; +0xb6, 0x180141306 mov r8b, 4 ; +0xbc, 0x18014130c movzx eax, r8b ; +0xbf, 0x18014130f mov ecx, 7 ; +0xc3, 0x180141313 sub ecx, eax ; +0xc8, 0x180141318 mov edx, ebp ; +0xca, 0x18014131a shl edx, cl ; +0xcc, 0x18014131c mov bl, r8b ; +0xce, 0x18014131e sub edx, ebp ; +0xd1, 0x180141321 and edx, r9d ; +0xd3, 0x180141323 jmp short loc_180141351 ; +0xd6, 0x180141326 mov r8b, [r11+4] ; +0xd8, 0x180141328 mov edx, [r11] ; +0xdc, 0x18014132c mov bl, [r11+6] ; +0xdf, 0x18014132f lea eax, [r8-2] ; +0xe3, 0x180141333 cmp al, 2 ; +0xe7, 0x180141337 ja loc_1801413F5 ; +0xe9, 0x180141339 cmp bl, bpl ; +0xef, 0x18014133f jb loc_1801413F5 ; +0xf2, 0x180141342 cmp bl, r8b ; +0xf8, 0x180141348 jnb loc_1801413F5 ; +0xfb, 0x18014134b movzx ebp, bl ; +0x101, 0x180141351 cmp rbp, r14 ; +0x104, 0x180141354 mov r9d, ebp ; +0x107, 0x180141357 cmovnb r9, r14 ; +0x10a, 0x18014135a jmp short loc_18014137E ; +0x10e, 0x18014135e movzx ecx, byte ptr [rdi] ; +0x110, 0x180141360 inc rdi ; +0x113, 0x180141363 mov al, cl ; +0x116, 0x180141366 and al, 0C0h ; +0x118, 0x180141368 cmp al, 80h ; +0x11a, 0x18014136a jnz loc_1801413F5 ; +0x11c, 0x18014136c mov eax, edx ; +0x122, 0x180141372 and ecx, 3Fh ; +0x124, 0x180141374 shl eax, 6 ; +0x127, 0x180141377 mov edx, ecx ; +0x12a, 0x18014137a or edx, eax ; +0x12c, 0x18014137c mov rax, rdi ; +0x12e, 0x18014137e sub rax, r15 ; +0x131, 0x180141381 cmp rax, r9 ; +0x134, 0x180141384 jb short loc_180141360 ; +0x137, 0x180141387 cmp r9, rbp ; +0x139, 0x180141389 jnb short loc_1801413AA ; +0x13c, 0x18014138c movzx eax, r8b ; +0x13e, 0x18014138e sub bl, r9b ; +0x142, 0x180141392 mov [r11+4], ax ; +0x145, 0x180141395 movzx eax, bl ; +0x14a, 0x18014139a mov [r11+6], ax ; +0x14d, 0x18014139d mov [r11], edx ; +0x152, 0x1801413a2 jmp loc_1801412AD ; +0x155, 0x1801413a5 lea eax, [rdx-0D800h] ; +0x15a, 0x1801413aa cmp eax, 7FFh ; +0x160, 0x1801413b0 jbe short loc_1801413F5 ; +0x165, 0x1801413b5 cmp edx, 110000h ; +0x167, 0x1801413b7 jnb short loc_1801413F5 ; +0x16d, 0x1801413bd movzx eax, r8b ; +0x16f, 0x1801413bf mov [rsp+68h+var_48], 80h ; +0x173, 0x1801413c3 mov [rsp+68h+var_44], 800h ; +0x17b, 0x1801413cb mov [rsp+68h+var_40], 10000h ; +0x183, 0x1801413d3 cmp edx, [rsp+rax*4+68h+var_50] ; +0x18b, 0x1801413db jb short loc_1801413F5 ; +0x18f, 0x1801413df test rsi, rsi ; +0x191, 0x1801413e1 jz short loc_1801413E8 ; +0x194, 0x1801413e4 mov [rsi], edx ; +0x196, 0x1801413e6 neg edx ; +0x198, 0x1801413e8 mov [r11], r10 ; +0x19a, 0x1801413ea sbb rax, rax ; +0x19d, 0x1801413ed and rax, rbp ; +0x1a0, 0x1801413f0 jmp short loc_180141407 ; +0x1a3, 0x1801413f3 mov [r11], r10 ; +0x1a5, 0x1801413f5 call _errno ; +0x1a8, 0x1801413f8 mov dword ptr [rax], 2Ah ; '*' ; +0x1ad, 0x1801413fd or rax, 0FFFFFFFFFFFFFFFFh ; +0x1b3, 0x180141403 mov rcx, [rsp+68h+var_38] ; +0x1b7, 0x180141407 xor rcx, rsp; StackCookie ; +0x1bc, 0x18014140c call __security_check_cookie ; +0x1bf, 0x18014140f mov rbx, [rsp+68h+arg_8] ; +0x1c4, 0x180141414 add rsp, 40h ; +0x1c9, 0x180141419 pop r15 ; +0x1cd, 0x18014141d pop r14 ; +0x1cf, 0x18014141f pop rdi ; +0x1d1, 0x180141421 pop rsi ; +0x1d2, 0x180141422 pop rbp ; +0x1d3, 0x180141423 retn ; +0x1d4, 0x180141424