; ; CWin32InputBox::DlgProc from 0x18001e680 to 0x18001e804 (388 bytes) ; ; 4 xrefs: ; > CWin32InputBox::InputBoxEx @ 0x18001e0fc ; > CWin32InputBox::InputBox @ 0x18001e2aa ; > @ 0x18002fdf8 ; > @ 0x18004b10c ; ; 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 rbx ; +0x0, 0x18001e680 push rbp ; +0x2, 0x18001e682 push rsi ; +0x3, 0x18001e683 push rdi ; +0x4, 0x18001e684 push r14 ; +0x5, 0x18001e685 sub rsp, 70h ; +0x7, 0x18001e687 mov rax, cs:__security_cookie ; +0xb, 0x18001e68b xor rax, rsp ; +0x12, 0x18001e692 mov [rsp+98h+var_30], rax ; +0x15, 0x18001e695 mov ebx, edx ; +0x1a, 0x18001e69a mov rdi, r9 ; +0x1c, 0x18001e69c mov edx, 0FFFFFFEBh; nIndex ; +0x1f, 0x18001e69f mov rbp, r8 ; +0x24, 0x18001e6a4 mov rsi, rcx ; +0x27, 0x18001e6a7 call cs:GetWindowLongPtrW ; +0x2a, 0x18001e6aa mov r14, rax ; +0x30, 0x18001e6b0 sub ebx, 110h ; +0x33, 0x18001e6b3 jz loc_18001E7C7 ; +0x39, 0x18001e6b9 cmp ebx, 1 ; +0x3f, 0x18001e6bf jnz short loc_18001E6E2 ; +0x42, 0x18001e6c2 xor edi, edi ; +0x44, 0x18001e6c4 movzx ebx, bp ; +0x46, 0x18001e6c6 mov ecx, edi ; +0x49, 0x18001e6c9 lea rax, unk_1800234D8 ; +0x4b, 0x18001e6cb cmp rbx, [rcx+rax] ; +0x52, 0x18001e6d2 jz short loc_18001E6E9 ; +0x56, 0x18001e6d6 add rcx, 8 ; +0x58, 0x18001e6d8 cmp rcx, 10h ; +0x5c, 0x18001e6dc jb short loc_18001E6D2 ; +0x60, 0x18001e6e0 xor eax, eax ; +0x62, 0x18001e6e2 jmp loc_18001E7EC ; +0x64, 0x18001e6e4 mov rdx, [r14] ; +0x69, 0x18001e6e9 mov rcx, [r14+8]; hWnd ; +0x6c, 0x18001e6ec mov r8d, [rdx+48h]; nMaxCount ; +0x70, 0x18001e6f0 mov rdx, [rdx+40h]; lpString ; +0x74, 0x18001e6f4 call cs:GetWindowTextA ; +0x78, 0x18001e6f8 mov rax, [r14] ; +0x7e, 0x18001e6fe xorps xmm0, xmm0 ; +0x81, 0x18001e701 mov r8, 0FFFFFFFFFFFFFFFFh ; +0x84, 0x18001e704 mov rdx, [rax+40h] ; +0x8b, 0x18001e70b movups [rsp+98h+var_78], xmm0 ; +0x8f, 0x18001e70f mov [rsp+98h+var_68], rdi ; +0x94, 0x18001e714 mov [rsp+98h+var_60], rdi ; +0x99, 0x18001e719 xchg ax, ax ; +0x9e, 0x18001e71e inc r8 ; +0xa0, 0x18001e720 cmp [rdx+r8], dil ; +0xa3, 0x18001e723 jnz short loc_18001E720 ; +0xa7, 0x18001e727 lea rcx, [rsp+98h+var_78] ; +0xa9, 0x18001e729 call sub_180003AB0 ; +0xae, 0x18001e72e lea rdx, [rsp+98h+var_78] ; +0xb3, 0x18001e733 lea rcx, [rsp+98h+Source]; void * ; +0xb8, 0x18001e738 call ?AnsiToUtf8@CWin32InputBox@@SA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@@Z; CWin32InputBox::AnsiToUtf8(std::string) ; +0xbd, 0x18001e73d mov rcx, [r14] ; +0xc2, 0x18001e742 xor edx, edx; Val ; +0xc5, 0x18001e745 mov r8d, [rcx+48h]; Size ; +0xc7, 0x18001e747 mov rcx, [rcx+40h]; void * ; +0xcb, 0x18001e74b call memset ; +0xcf, 0x18001e74f mov rcx, [r14] ; +0xd4, 0x18001e754 lea rdx, [rsp+98h+Source] ; +0xd7, 0x18001e757 cmp [rsp+98h+var_38], 0Fh ; +0xdc, 0x18001e75c cmova rdx, [rsp+98h+Source]; Source ; +0xe2, 0x18001e762 mov r8d, [rcx+48h] ; +0xe8, 0x18001e768 mov rcx, [rcx+40h]; Destination ; +0xec, 0x18001e76c dec r8d; Count ; +0xf0, 0x18001e770 call cs:strncpy ; +0xf3, 0x18001e773 mov rdx, rbx; nResult ; +0xf9, 0x18001e779 mov rcx, rsi; hDlg ; +0xfc, 0x18001e77c call cs:EndDialog ; +0xff, 0x18001e77f mov rdx, [rsp+98h+var_38] ; +0x105, 0x18001e785 cmp rdx, 0Fh ; +0x10a, 0x18001e78a jbe short loc_18001E7E7 ; +0x10e, 0x18001e78e mov rcx, [rsp+98h+Source]; Block ; +0x110, 0x18001e790 inc rdx ; +0x115, 0x18001e795 mov rax, rcx ; +0x118, 0x18001e798 cmp rdx, 1000h ; +0x11b, 0x18001e79b jb short loc_18001E7C0 ; +0x122, 0x18001e7a2 mov rcx, [rcx-8] ; +0x124, 0x18001e7a4 add rdx, 27h ; ''' ; +0x128, 0x18001e7a8 sub rax, rcx ; +0x12c, 0x18001e7ac add rax, 0FFFFFFFFFFFFFFF8h ; +0x12f, 0x18001e7af cmp rax, 1Fh ; +0x133, 0x18001e7b3 jbe short loc_18001E7C0 ; +0x137, 0x18001e7b7 call cs:_invalid_parameter_noinfo_noreturn ; +0x139, 0x18001e7b9 align 20h ; +0x13f, 0x18001e7bf call j_j_free ; +0x140, 0x18001e7c0 jmp short loc_18001E7E7 ; +0x145, 0x18001e7c5 mov r8, rdi; dwNewLong ; +0x147, 0x18001e7c7 mov edx, 0FFFFFFEBh; nIndex ; +0x14a, 0x18001e7ca mov rcx, rsi; hWnd ; +0x14f, 0x18001e7cf call cs:SetWindowLongPtrW ; +0x152, 0x18001e7d2 mov rax, [rdi] ; +0x158, 0x18001e7d8 mov rcx, rdi; this ; +0x15b, 0x18001e7db mov [rax+68h], rsi ; +0x15e, 0x18001e7de call ?InitDialog@CWin32InputBox@@AEAAXXZ; CWin32InputBox::InitDialog(void) ; +0x162, 0x18001e7e2 mov eax, 1 ; +0x167, 0x18001e7e7 mov rcx, [rsp+98h+var_30] ; +0x16c, 0x18001e7ec xor rcx, rsp; StackCookie ; +0x171, 0x18001e7f1 call __security_check_cookie ; +0x174, 0x18001e7f4 add rsp, 70h ; +0x179, 0x18001e7f9 pop r14 ; +0x17d, 0x18001e7fd pop rdi ; +0x17f, 0x18001e7ff pop rsi ; +0x180, 0x18001e800 pop rbp ; +0x181, 0x18001e801 pop rbx ; +0x182, 0x18001e802 retn ; +0x183, 0x18001e803