; ; __acrt_GetStringTypeA from 0x18013d72c to 0x18013d8b9 (397 bytes) ; ; 4 xrefs: ; > _isctype_l @ 0x180136c40 ; > setSBUpLow @ 0x18013a47a ; > @ 0x180203ad0 ; > @ 0x180203adc ; ; 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, 0x18013d72c push r12 ; +0x2, 0x18013d72e push r13 ; +0x4, 0x18013d730 push r14 ; +0x6, 0x18013d732 push r15 ; +0x8, 0x18013d734 sub rsp, 60h ; +0xa, 0x18013d736 lea rbp, [rsp+30h] ; +0xe, 0x18013d73a mov [rbp+50h+arg_0], rbx ; +0x13, 0x18013d73f mov [rbp+50h+arg_8], rsi ; +0x17, 0x18013d743 mov [rbp+50h+arg_10], rdi ; +0x1b, 0x18013d747 mov rax, cs:__security_cookie ; +0x1f, 0x18013d74b xor rax, rbp ; +0x26, 0x18013d752 mov [rbp+50h+var_30], rax ; +0x29, 0x18013d755 mov r13d, edx ; +0x2d, 0x18013d759 mov r15d, r9d ; +0x30, 0x18013d75c mov rdx, rcx; struct __crt_locale_pointers * ; +0x33, 0x18013d75f mov r12, r8 ; +0x36, 0x18013d762 lea rcx, [rbp+50h+var_50]; this ; +0x39, 0x18013d765 call ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z ; +0x3d, 0x18013d769 mov edi, [rbp+50h+arg_28] ; +0x42, 0x18013d76e test edi, edi ; +0x48, 0x18013d774 jnz short loc_18013D77F ; +0x4a, 0x18013d776 mov rax, [rbp+50h+var_48] ; +0x4c, 0x18013d778 mov edi, [rax+0Ch] ; +0x50, 0x18013d77c neg [rbp+50h+arg_30] ; +0x53, 0x18013d77f mov r9d, r15d ; +0x59, 0x18013d785 mov r8, r12 ; +0x5c, 0x18013d788 mov ecx, edi ; +0x5f, 0x18013d78b sbb edx, edx ; +0x61, 0x18013d78d and [rsp+80h+var_58], 0 ; +0x63, 0x18013d78f and [rsp+80h+var_60], 0 ; +0x68, 0x18013d794 and edx, 8 ; +0x6e, 0x18013d79a inc edx ; +0x71, 0x18013d79d call __acrt_MultiByteToWideChar ; +0x73, 0x18013d79f movsxd r14, eax ; +0x78, 0x18013d7a4 test eax, eax ; +0x7b, 0x18013d7a7 jnz short loc_18013D7B2 ; +0x7d, 0x18013d7a9 xor edi, edi ; +0x7f, 0x18013d7ab jmp loc_18013D880 ; +0x81, 0x18013d7ad mov rsi, r14 ; +0x86, 0x18013d7b2 add rsi, rsi ; +0x89, 0x18013d7b5 lea rax, [rsi+10h] ; +0x8c, 0x18013d7b8 cmp rsi, rax ; +0x90, 0x18013d7bc sbb rcx, rcx ; +0x93, 0x18013d7bf and rcx, rax; Size ; +0x96, 0x18013d7c2 jz short loc_18013D81A ; +0x99, 0x18013d7c5 cmp rcx, 400h ; +0x9b, 0x18013d7c7 ja short loc_18013D801 ; +0xa2, 0x18013d7ce lea rax, [rcx+0Fh] ; +0xa4, 0x18013d7d0 cmp rax, rcx ; +0xa8, 0x18013d7d4 ja short loc_18013D7E3 ; +0xab, 0x18013d7d7 mov rax, 0FFFFFFFFFFFFFF0h ; +0xad, 0x18013d7d9 and rax, 0FFFFFFFFFFFFFFF0h ; +0xb7, 0x18013d7e3 call __alloca_probe ; +0xbb, 0x18013d7e7 sub rsp, rax ; +0xc0, 0x18013d7ec lea rbx, [rsp+80h+var_50] ; +0xc3, 0x18013d7ef test rbx, rbx ; +0xc8, 0x18013d7f4 jz short loc_18013D868 ; +0xcb, 0x18013d7f7 mov dword ptr [rbx], 0CCCCh ; +0xcd, 0x18013d7f9 jmp short loc_18013D814 ; +0xd3, 0x18013d7ff call _malloc_base ; +0xd5, 0x18013d801 mov rbx, rax ; +0xda, 0x18013d806 test rax, rax ; +0xdd, 0x18013d809 jz short loc_18013D81C ; +0xe0, 0x18013d80c mov dword ptr [rax], 0DDDDh ; +0xe2, 0x18013d80e add rbx, 10h ; +0xe8, 0x18013d814 jmp short loc_18013D81C ; +0xec, 0x18013d818 xor ebx, ebx ; +0xee, 0x18013d81a test rbx, rbx ; +0xf0, 0x18013d81c jz short loc_18013D868 ; +0xf3, 0x18013d81f mov r8, rsi; Size ; +0xf5, 0x18013d821 xor edx, edx; Val ; +0xf8, 0x18013d824 mov rcx, rbx; void * ; +0xfa, 0x18013d826 call memset ; +0xfd, 0x18013d829 mov r9d, r15d ; +0x102, 0x18013d82e mov [rsp+80h+var_58], r14d ; +0x105, 0x18013d831 mov r8, r12 ; +0x10a, 0x18013d836 mov [rsp+80h+var_60], rbx ; +0x10d, 0x18013d839 mov edx, 1 ; +0x112, 0x18013d83e mov ecx, edi ; +0x117, 0x18013d843 call __acrt_MultiByteToWideChar ; +0x119, 0x18013d845 test eax, eax ; +0x11e, 0x18013d84a jz short loc_18013D868 ; +0x120, 0x18013d84c mov r9, [rbp+50h+lpCharType]; lpCharType ; +0x122, 0x18013d84e mov r8d, eax; cchSrc ; +0x129, 0x18013d855 mov rdx, rbx; lpSrcStr ; +0x12c, 0x18013d858 mov ecx, r13d; dwInfoType ; +0x12f, 0x18013d85b call cs:__imp_GetStringTypeW ; +0x132, 0x18013d85e mov edi, eax ; +0x138, 0x18013d864 jmp short loc_18013D86A ; +0x13a, 0x18013d866 xor edi, edi ; +0x13c, 0x18013d868 test rbx, rbx ; +0x13e, 0x18013d86a jz short loc_18013D880 ; +0x141, 0x18013d86d lea rcx, [rbx-10h]; Block ; +0x143, 0x18013d86f cmp dword ptr [rcx], 0DDDDh ; +0x147, 0x18013d873 jnz short loc_18013D880 ; +0x14d, 0x18013d879 call _free_base ; +0x14f, 0x18013d87b cmp [rbp+50h+var_38], 0 ; +0x154, 0x18013d880 jz short loc_18013D891 ; +0x158, 0x18013d884 mov rax, [rbp+50h+var_50] ; +0x15a, 0x18013d886 and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0x15e, 0x18013d88a mov eax, edi ; +0x165, 0x18013d891 mov rcx, [rbp+50h+var_30] ; +0x167, 0x18013d893 xor rcx, rbp; StackCookie ; +0x16b, 0x18013d897 call __security_check_cookie ; +0x16e, 0x18013d89a mov rbx, [rbp+50h+arg_0] ; +0x173, 0x18013d89f mov rsi, [rbp+50h+arg_8] ; +0x177, 0x18013d8a3 mov rdi, [rbp+50h+arg_10] ; +0x17b, 0x18013d8a7 lea rsp, [rbp+30h] ; +0x17f, 0x18013d8ab pop r15 ; +0x183, 0x18013d8af pop r14 ; +0x185, 0x18013d8b1 pop r13 ; +0x187, 0x18013d8b3 pop r12 ; +0x189, 0x18013d8b5 pop rbp ; +0x18b, 0x18013d8b7 retn ; +0x18c, 0x18013d8b8