; ; CWin32InputBox::AnsiToUtf8 from 0x18001e810 to 0x18001e9f5 (485 bytes) ; ; 3 xrefs: ; > CWin32InputBox::DlgProc @ 0x18001e73d ; > @ 0x18002fdf8 ; > @ 0x18004b118 ; ; 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_10], rbx ; +0x0, 0x18001e810 push rbp ; +0x5, 0x18001e815 push rsi ; +0x6, 0x18001e816 push rdi ; +0x7, 0x18001e817 push r12 ; +0x8, 0x18001e818 push r13 ; +0xa, 0x18001e81a push r14 ; +0xc, 0x18001e81c push r15 ; +0xe, 0x18001e81e sub rsp, 60h ; +0x10, 0x18001e820 mov rax, cs:__security_cookie ; +0x14, 0x18001e824 xor rax, rsp ; +0x1b, 0x18001e82b mov [rsp+98h+var_40], rax ; +0x1e, 0x18001e82e mov r14, rdx ; +0x23, 0x18001e833 mov r15, rcx ; +0x26, 0x18001e836 mov [rsp+98h+var_50], rcx ; +0x29, 0x18001e839 mov [rsp+98h+var_48], rdx ; +0x2e, 0x18001e83e xor r13d, r13d ; +0x33, 0x18001e843 mov [rsp+98h+var_58], r13d ; +0x36, 0x18001e846 xorps xmm0, xmm0 ; +0x3b, 0x18001e84b movups xmmword ptr [rcx], xmm0 ; +0x3e, 0x18001e84e mov [rcx+10h], r13 ; +0x41, 0x18001e851 mov qword ptr [rcx+18h], 0Fh ; +0x45, 0x18001e855 mov [rcx], r13b ; +0x4d, 0x18001e85d mov [rsp+98h+var_58], 1 ; +0x50, 0x18001e860 cmp [rdx+10h], r13 ; +0x58, 0x18001e868 jbe loc_18001E980 ; +0x5c, 0x18001e86c mov r8, rdx ; +0x62, 0x18001e872 cmp qword ptr [rdx+18h], 0Fh ; +0x65, 0x18001e875 jbe short loc_18001E87F ; +0x6a, 0x18001e87a mov r8, [rdx]; lpMultiByteStr ; +0x6c, 0x18001e87c mov [rsp+98h+cchWideChar], r13d; cchWideChar ; +0x6f, 0x18001e87f mov [rsp+98h+lpWideCharStr], r13; lpWideCharStr ; +0x74, 0x18001e884 mov rbx, 0FFFFFFFFFFFFFFFFh ; +0x79, 0x18001e889 mov r9d, ebx; cbMultiByte ; +0x80, 0x18001e890 xor edx, edx; dwFlags ; +0x83, 0x18001e893 xor ecx, ecx; CodePage ; +0x85, 0x18001e895 call cs:MultiByteToWideChar ; +0x87, 0x18001e897 mov esi, eax ; +0x8d, 0x18001e89d inc eax ; +0x8f, 0x18001e89f movsxd rdi, eax ; +0x91, 0x18001e8a1 add rdi, rdi ; +0x94, 0x18001e8a4 mov rcx, rdi; Size ; +0x97, 0x18001e8a7 call cs:__imp_malloc ; +0x9a, 0x18001e8aa mov r12, rax ; +0xa0, 0x18001e8b0 mov r8, rdi; Size ; +0xa3, 0x18001e8b3 xor edx, edx; Val ; +0xa6, 0x18001e8b6 mov rcx, rax; void * ; +0xa8, 0x18001e8b8 call memset ; +0xab, 0x18001e8bb mov r8, r14 ; +0xb0, 0x18001e8c0 cmp qword ptr [r14+18h], 0Fh ; +0xb3, 0x18001e8c3 jbe short loc_18001E8CD ; +0xb8, 0x18001e8c8 mov r8, [r14]; lpMultiByteStr ; +0xba, 0x18001e8ca lea eax, ds:2[rsi*2] ; +0xbd, 0x18001e8cd mov [rsp+98h+cchWideChar], eax; cchWideChar ; +0xc4, 0x18001e8d4 mov [rsp+98h+lpWideCharStr], r12; lpWideCharStr ; +0xc8, 0x18001e8d8 mov r9d, ebx; cbMultiByte ; +0xcd, 0x18001e8dd xor edx, edx; dwFlags ; +0xd0, 0x18001e8e0 xor ecx, ecx; CodePage ; +0xd2, 0x18001e8e2 call cs:MultiByteToWideChar ; +0xd4, 0x18001e8e4 mov [rsp+98h+lpUsedDefaultChar], r13; lpUsedDefaultChar ; +0xda, 0x18001e8ea mov [rsp+98h+lpDefaultChar], r13; lpDefaultChar ; +0xdf, 0x18001e8ef mov [rsp+98h+cchWideChar], r13d; cbMultiByte ; +0xe4, 0x18001e8f4 mov [rsp+98h+lpWideCharStr], r13; lpMultiByteStr ; +0xe9, 0x18001e8f9 mov r9d, ebx; cchWideChar ; +0xee, 0x18001e8fe mov r8, r12; lpWideCharStr ; +0xf1, 0x18001e901 xor edx, edx; dwFlags ; +0xf4, 0x18001e904 mov ecx, 0FDE9h; CodePage ; +0xf6, 0x18001e906 call cs:WideCharToMultiByte ; +0xfb, 0x18001e90b lea esi, [rax+1] ; +0x101, 0x18001e911 movsxd rdi, esi ; +0x104, 0x18001e914 mov rcx, rdi; Size ; +0x107, 0x18001e917 call cs:__imp_malloc ; +0x10a, 0x18001e91a mov rbp, rax ; +0x110, 0x18001e920 mov r8, rdi; Size ; +0x113, 0x18001e923 xor edx, edx; Val ; +0x116, 0x18001e926 mov rcx, rax; void * ; +0x118, 0x18001e928 call memset ; +0x11b, 0x18001e92b mov [rsp+98h+lpUsedDefaultChar], r13; lpUsedDefaultChar ; +0x120, 0x18001e930 mov [rsp+98h+lpDefaultChar], r13; lpDefaultChar ; +0x125, 0x18001e935 mov [rsp+98h+cchWideChar], esi; cbMultiByte ; +0x12a, 0x18001e93a mov [rsp+98h+lpWideCharStr], rbp; lpMultiByteStr ; +0x12e, 0x18001e93e mov r9d, ebx; cchWideChar ; +0x133, 0x18001e943 mov r8, r12; lpWideCharStr ; +0x136, 0x18001e946 xor edx, edx; dwFlags ; +0x139, 0x18001e949 mov ecx, 0FDE9h; CodePage ; +0x13b, 0x18001e94b call cs:WideCharToMultiByte ; +0x140, 0x18001e950 inc rbx ; +0x146, 0x18001e956 cmp byte ptr [rbx+rbp], 0 ; +0x149, 0x18001e959 jnz short loc_18001E956 ; +0x14d, 0x18001e95d mov r8, rbx; Size ; +0x14f, 0x18001e95f mov rdx, rbp; Src ; +0x152, 0x18001e962 mov rcx, r15; void * ; +0x155, 0x18001e965 call sub_180003BC0 ; +0x158, 0x18001e968 mov rcx, rbp; Block ; +0x15d, 0x18001e96d call cs:__imp_free ; +0x160, 0x18001e970 mov rcx, r12; Block ; +0x166, 0x18001e976 call cs:__imp_free ; +0x169, 0x18001e979 nop ; +0x16f, 0x18001e97f mov rdx, [r14+18h] ; +0x170, 0x18001e980 cmp rdx, 0Fh ; +0x174, 0x18001e984 jbe short loc_18001E9B6 ; +0x178, 0x18001e988 inc rdx ; +0x17a, 0x18001e98a mov rcx, [r14] ; +0x17d, 0x18001e98d cmp rdx, 1000h ; +0x180, 0x18001e990 jb short loc_18001E9B1 ; +0x187, 0x18001e997 add rdx, 27h ; ''' ; +0x189, 0x18001e999 mov r8, [rcx-8] ; +0x18d, 0x18001e99d sub rcx, r8 ; +0x191, 0x18001e9a1 lea rax, [rcx-8] ; +0x194, 0x18001e9a4 cmp rax, 1Fh ; +0x198, 0x18001e9a8 ja short loc_18001E9EE ; +0x19c, 0x18001e9ac mov rcx, r8; Block ; +0x19e, 0x18001e9ae call j_j_free ; +0x1a1, 0x18001e9b1 mov [r14+10h], r13 ; +0x1a6, 0x18001e9b6 mov qword ptr [r14+18h], 0Fh ; +0x1aa, 0x18001e9ba mov byte ptr [r14], 0 ; +0x1b2, 0x18001e9c2 mov rax, r15 ; +0x1b6, 0x18001e9c6 mov rcx, [rsp+98h+var_40] ; +0x1b9, 0x18001e9c9 xor rcx, rsp; StackCookie ; +0x1be, 0x18001e9ce call __security_check_cookie ; +0x1c1, 0x18001e9d1 mov rbx, [rsp+98h+arg_10] ; +0x1c6, 0x18001e9d6 add rsp, 60h ; +0x1ce, 0x18001e9de pop r15 ; +0x1d2, 0x18001e9e2 pop r14 ; +0x1d4, 0x18001e9e4 pop r13 ; +0x1d6, 0x18001e9e6 pop r12 ; +0x1d8, 0x18001e9e8 pop rdi ; +0x1da, 0x18001e9ea pop rsi ; +0x1db, 0x18001e9eb pop rbp ; +0x1dc, 0x18001e9ec retn ; +0x1dd, 0x18001e9ed call cs:_invalid_parameter_noinfo_noreturn ; +0x1de, 0x18001e9ee db 0CCh ; +0x1e4, 0x18001e9f4