; ; __acrt_LCMapStringA_stat from 0x180140c14 to 0x180140f29 (789 bytes) ; ; 3 xrefs: ; > __acrt_LCMapStringA @ 0x180140f98 ; > @ 0x180203c44 ; > @ 0x180203c50 ; ; 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 ; push rbp ; +0x0, 0x180140c14 push r12 ; +0x2, 0x180140c16 push r13 ; +0x4, 0x180140c18 push r14 ; +0x6, 0x180140c1a push r15 ; +0x8, 0x180140c1c sub rsp, 60h ; +0xa, 0x180140c1e lea rbp, [rsp+50h] ; +0xe, 0x180140c22 mov [rbp+30h+arg_0], rbx ; +0x13, 0x180140c27 mov [rbp+30h+arg_8], rsi ; +0x17, 0x180140c2b mov [rbp+30h+arg_10], rdi ; +0x1b, 0x180140c2f mov rax, cs:__security_cookie ; +0x1f, 0x180140c33 xor rax, rbp ; +0x26, 0x180140c3a mov [rbp+30h+var_28], rax ; +0x29, 0x180140c3d movsxd rbx, [rbp+30h+arg_20] ; +0x2d, 0x180140c41 mov r15, r9 ; +0x31, 0x180140c45 mov [rbp+30h+var_30], rdx ; +0x34, 0x180140c48 mov r13d, r8d ; +0x38, 0x180140c4c mov rdi, rcx ; +0x3b, 0x180140c4f test ebx, ebx ; +0x3e, 0x180140c52 jle short loc_180140C6A ; +0x40, 0x180140c54 mov rdx, rbx; Count ; +0x42, 0x180140c56 mov rcx, r9; String ; +0x45, 0x180140c59 call __strncnt ; +0x48, 0x180140c5c cmp eax, ebx ; +0x4d, 0x180140c61 lea ebx, [rax+1] ; +0x4f, 0x180140c63 jl short loc_180140C6A ; +0x52, 0x180140c66 mov ebx, eax ; +0x54, 0x180140c68 mov r14d, [rbp+30h+arg_38] ; +0x56, 0x180140c6a test r14d, r14d ; +0x5a, 0x180140c6e jnz short loc_180140C7A ; +0x5d, 0x180140c71 mov rax, [rdi] ; +0x5f, 0x180140c73 mov r14d, [rax+0Ch] ; +0x62, 0x180140c76 neg [rbp+30h+arg_40] ; +0x66, 0x180140c7a mov r9d, ebx ; +0x6c, 0x180140c80 mov r8, r15 ; +0x6f, 0x180140c83 mov ecx, r14d ; +0x72, 0x180140c86 sbb edx, edx ; +0x75, 0x180140c89 and [rsp+80h+var_58], 0 ; +0x77, 0x180140c8b and [rsp+80h+var_60], 0 ; +0x7c, 0x180140c90 and edx, 8 ; +0x82, 0x180140c96 inc edx ; +0x85, 0x180140c99 call __acrt_MultiByteToWideChar ; +0x87, 0x180140c9b movsxd r12, eax ; +0x8c, 0x180140ca0 test eax, eax ; +0x8f, 0x180140ca3 jz loc_180140EE1 ; +0x91, 0x180140ca5 mov rax, r12 ; +0x97, 0x180140cab mov r8, 0FFFFFFFFFFFFFF0h ; +0x9a, 0x180140cae add rax, rax ; +0xa4, 0x180140cb8 lea rcx, [rax+10h] ; +0xa7, 0x180140cbb cmp rax, rcx ; +0xab, 0x180140cbf sbb rdx, rdx ; +0xae, 0x180140cc2 and rdx, rcx ; +0xb1, 0x180140cc5 jz short loc_180140D1D ; +0xb4, 0x180140cc8 cmp rdx, 400h ; +0xb6, 0x180140cca ja short loc_180140D01 ; +0xbd, 0x180140cd1 lea rax, [rdx+0Fh] ; +0xbf, 0x180140cd3 cmp rax, rdx ; +0xc3, 0x180140cd7 ja short loc_180140CDF ; +0xc6, 0x180140cda mov rax, r8 ; +0xc8, 0x180140cdc and rax, 0FFFFFFFFFFFFFFF0h ; +0xcb, 0x180140cdf call __alloca_probe ; +0xcf, 0x180140ce3 sub rsp, rax ; +0xd4, 0x180140ce8 lea rsi, [rsp+80h+var_30] ; +0xd7, 0x180140ceb test rsi, rsi ; +0xdc, 0x180140cf0 jz loc_180140EC7 ; +0xdf, 0x180140cf3 mov dword ptr [rsi], 0CCCCh ; +0xe5, 0x180140cf9 jmp short loc_180140D17 ; +0xeb, 0x180140cff mov rcx, rdx; Size ; +0xed, 0x180140d01 call _malloc_base ; +0xf0, 0x180140d04 mov rsi, rax ; +0xf5, 0x180140d09 test rax, rax ; +0xf8, 0x180140d0c jz short loc_180140D1F ; +0xfb, 0x180140d0f mov dword ptr [rax], 0DDDDh ; +0xfd, 0x180140d11 add rsi, 10h ; +0x103, 0x180140d17 jmp short loc_180140D1F ; +0x107, 0x180140d1b xor esi, esi ; +0x109, 0x180140d1d test rsi, rsi ; +0x10b, 0x180140d1f jz loc_180140EC7 ; +0x10e, 0x180140d22 mov [rsp+80h+var_58], r12d ; +0x114, 0x180140d28 mov r9d, ebx ; +0x119, 0x180140d2d mov r8, r15 ; +0x11c, 0x180140d30 mov [rsp+80h+var_60], rsi ; +0x11f, 0x180140d33 mov edx, 1 ; +0x124, 0x180140d38 mov ecx, r14d ; +0x129, 0x180140d3d call __acrt_MultiByteToWideChar ; +0x12c, 0x180140d40 test eax, eax ; +0x131, 0x180140d45 jz loc_180140EC7 ; +0x133, 0x180140d47 and [rsp+80h+var_40], 0 ; +0x139, 0x180140d4d mov r9d, r12d ; +0x13f, 0x180140d53 and [rsp+80h+var_48], 0 ; +0x142, 0x180140d56 mov r8, rsi ; +0x148, 0x180140d5c and [rsp+80h+var_50], 0 ; +0x14b, 0x180140d5f mov edx, r13d ; +0x151, 0x180140d65 mov r15, [rbp+30h+var_30] ; +0x154, 0x180140d68 and [rsp+80h+var_58], 0 ; +0x158, 0x180140d6c mov rcx, r15 ; +0x15d, 0x180140d71 and [rsp+80h+var_60], 0 ; +0x160, 0x180140d74 call __acrt_LCMapStringEx ; +0x166, 0x180140d7a movsxd rdi, eax ; +0x16b, 0x180140d7f test eax, eax ; +0x16e, 0x180140d82 jz loc_180140EC7 ; +0x170, 0x180140d84 mov edx, 400h ; +0x176, 0x180140d8a test edx, r13d ; +0x17b, 0x180140d8f jz short loc_180140DE6 ; +0x17e, 0x180140d92 mov eax, [rbp+30h+arg_30] ; +0x180, 0x180140d94 test eax, eax ; +0x183, 0x180140d97 jz loc_180140EC9 ; +0x185, 0x180140d99 cmp edi, eax ; +0x18b, 0x180140d9f jg loc_180140EC7 ; +0x18d, 0x180140da1 and [rsp+80h+var_40], 0 ; +0x193, 0x180140da7 mov r9d, r12d ; +0x199, 0x180140dad and [rsp+80h+var_48], 0 ; +0x19c, 0x180140db0 mov r8, rsi ; +0x1a2, 0x180140db6 and [rsp+80h+var_50], 0 ; +0x1a5, 0x180140db9 mov edx, r13d ; +0x1ab, 0x180140dbf mov [rsp+80h+var_58], eax ; +0x1ae, 0x180140dc2 mov rcx, r15 ; +0x1b2, 0x180140dc6 mov rax, [rbp+30h+arg_28] ; +0x1b5, 0x180140dc9 mov [rsp+80h+var_60], rax ; +0x1b9, 0x180140dcd call __acrt_LCMapStringEx ; +0x1be, 0x180140dd2 mov edi, eax ; +0x1c3, 0x180140dd7 test eax, eax ; +0x1c5, 0x180140dd9 jnz loc_180140EC9 ; +0x1c7, 0x180140ddb jmp loc_180140EC7 ; +0x1cd, 0x180140de1 mov rcx, rdi ; +0x1d2, 0x180140de6 add rcx, rcx ; +0x1d5, 0x180140de9 lea rax, [rcx+10h] ; +0x1d8, 0x180140dec cmp rcx, rax ; +0x1dc, 0x180140df0 sbb rcx, rcx ; +0x1df, 0x180140df3 and rcx, rax; Size ; +0x1e2, 0x180140df6 jz short loc_180140E4E ; +0x1e5, 0x180140df9 cmp rcx, rdx ; +0x1e7, 0x180140dfb ja short loc_180140E35 ; +0x1ea, 0x180140dfe lea rax, [rcx+0Fh] ; +0x1ec, 0x180140e00 cmp rax, rcx ; +0x1f0, 0x180140e04 ja short loc_180140E13 ; +0x1f3, 0x180140e07 mov rax, 0FFFFFFFFFFFFFF0h ; +0x1f5, 0x180140e09 and rax, 0FFFFFFFFFFFFFFF0h ; +0x1ff, 0x180140e13 call __alloca_probe ; +0x203, 0x180140e17 sub rsp, rax ; +0x208, 0x180140e1c lea rbx, [rsp+80h+var_30] ; +0x20b, 0x180140e1f test rbx, rbx ; +0x210, 0x180140e24 jz loc_180140EC7 ; +0x213, 0x180140e27 mov dword ptr [rbx], 0CCCCh ; +0x219, 0x180140e2d jmp short loc_180140E48 ; +0x21f, 0x180140e33 call _malloc_base ; +0x221, 0x180140e35 mov rbx, rax ; +0x226, 0x180140e3a test rax, rax ; +0x229, 0x180140e3d jz short loc_180140E50 ; +0x22c, 0x180140e40 mov dword ptr [rax], 0DDDDh ; +0x22e, 0x180140e42 add rbx, 10h ; +0x234, 0x180140e48 jmp short loc_180140E50 ; +0x238, 0x180140e4c xor ebx, ebx ; +0x23a, 0x180140e4e test rbx, rbx ; +0x23c, 0x180140e50 jz short loc_180140EC7 ; +0x23f, 0x180140e53 and [rsp+80h+var_40], 0 ; +0x241, 0x180140e55 mov r9d, r12d ; +0x247, 0x180140e5b and [rsp+80h+var_48], 0 ; +0x24a, 0x180140e5e mov r8, rsi ; +0x250, 0x180140e64 and [rsp+80h+var_50], 0 ; +0x253, 0x180140e67 mov edx, r13d ; +0x259, 0x180140e6d mov [rsp+80h+var_58], edi ; +0x25c, 0x180140e70 mov rcx, r15 ; +0x260, 0x180140e74 mov [rsp+80h+var_60], rbx ; +0x263, 0x180140e77 call __acrt_LCMapStringEx ; +0x268, 0x180140e7c test eax, eax ; +0x26d, 0x180140e81 jz short loc_180140EB6 ; +0x26f, 0x180140e83 and [rsp+80h+var_48], 0 ; +0x271, 0x180140e85 xor edx, edx ; +0x277, 0x180140e8b and [rsp+80h+var_50], rdx ; +0x279, 0x180140e8d mov r9d, edi ; +0x27e, 0x180140e92 mov eax, [rbp+30h+arg_30] ; +0x281, 0x180140e95 mov r8, rbx ; +0x284, 0x180140e98 mov ecx, r14d ; +0x287, 0x180140e9b test eax, eax ; +0x28a, 0x180140e9e jnz short loc_180140F07 ; +0x28c, 0x180140ea0 and [rsp+80h+var_58], edx ; +0x28e, 0x180140ea2 and [rsp+80h+var_60], rdx ; +0x292, 0x180140ea6 call __acrt_WideCharToMultiByte ; +0x297, 0x180140eab mov edi, eax ; +0x29c, 0x180140eb0 test eax, eax ; +0x29e, 0x180140eb2 jnz short loc_180140F16 ; +0x2a0, 0x180140eb4 lea rcx, [rbx-10h]; Block ; +0x2a2, 0x180140eb6 cmp dword ptr [rcx], 0DDDDh ; +0x2a6, 0x180140eba jnz short loc_180140EC7 ; +0x2ac, 0x180140ec0 call _free_base ; +0x2ae, 0x180140ec2 xor edi, edi ; +0x2b3, 0x180140ec7 test rsi, rsi ; +0x2b5, 0x180140ec9 jz short loc_180140EDF ; +0x2b8, 0x180140ecc lea rcx, [rsi-10h]; Block ; +0x2ba, 0x180140ece cmp dword ptr [rcx], 0DDDDh ; +0x2be, 0x180140ed2 jnz short loc_180140EDF ; +0x2c4, 0x180140ed8 call _free_base ; +0x2c6, 0x180140eda mov eax, edi ; +0x2cb, 0x180140edf mov rcx, [rbp+30h+var_28] ; +0x2cd, 0x180140ee1 xor rcx, rbp; StackCookie ; +0x2d1, 0x180140ee5 call __security_check_cookie ; +0x2d4, 0x180140ee8 mov rbx, [rbp+30h+arg_0] ; +0x2d9, 0x180140eed mov rsi, [rbp+30h+arg_8] ; +0x2dd, 0x180140ef1 mov rdi, [rbp+30h+arg_10] ; +0x2e1, 0x180140ef5 lea rsp, [rbp+10h] ; +0x2e5, 0x180140ef9 pop r15 ; +0x2e9, 0x180140efd pop r14 ; +0x2eb, 0x180140eff pop r13 ; +0x2ed, 0x180140f01 pop r12 ; +0x2ef, 0x180140f03 pop rbp ; +0x2f1, 0x180140f05 retn ; +0x2f2, 0x180140f06 mov [rsp+80h+var_58], eax ; +0x2f3, 0x180140f07 mov rax, [rbp+30h+arg_28] ; +0x2f7, 0x180140f0b mov [rsp+80h+var_60], rax ; +0x2fb, 0x180140f0f jmp short loc_180140EAB ; +0x300, 0x180140f14 lea rcx, [rbx-10h]; Block ; +0x302, 0x180140f16 cmp dword ptr [rcx], 0DDDDh ; +0x306, 0x180140f1a jnz short loc_180140EC9 ; +0x30c, 0x180140f20 call _free_base ; +0x30e, 0x180140f22 jmp short loc_180140EC9 ; +0x313, 0x180140f27