Function at 0x446530
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45f7a2
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x492984]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x50], ecx
push 0x11
mov dword [ebp - 0x80], edi
mov eax, dword [edi + 8]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x7c], ecx
call dword [sym.imp.USER32.dll_GetKeyState]
mov ebx, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
mov ecx, 0x8000
test cx, ax
jne 0x446816
mov ecx, dword [edi + 4]
cmp ecx, 0x104
je 0x4465b3
cmp ecx, 0x100
jne 0x446816
xor eax, eax
mov dword [ebp - 0x54], eax
cmp ecx, 0x104
jne 0x4465d3
test dword [edi + 0xc], 0x20000000
je 0x4465d3
mov eax, 1
jmp 0x4467d3
lea ecx, [ebp - 0x50]
call dword [sym.imp.mfc120u.dll_Ordinal_296]
mov edi, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 0
call edi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 1
call edi
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.004371a0
push 9
mov ecx, esi
mov edi, eax
call fcn.00433270
test eax, eax
je 0x446628
mov eax, dword [eax]
test eax, eax
je 0x446621
add eax, 0xffffff34
mov dword [ebp - 0x60], eax
jmp 0x446628
mov dword [ebp - 0x60], 0
test edi, edi
je 0x446705
lea eax, [ebp - 0x84]
mov ecx, edi
push eax
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetMultiLine_int__]
cmp dword [ebp - 0x84], 0
mov ecx, edi
je 0x446684
call sub.mfc120u.dll_Ordinal_13404
push 1
push 0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov esi, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 1
call esi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call esi
lea ecx, [ebp - 0x50]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
xor eax, eax
jmp 0x44758f
lea eax, [ebp - 0x50]
push eax
call sub.mfc120u.dll_Ordinal_7704
lea ecx, [ebp - 0x50]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_Wide2Utf8_wchar_t_const__]
add esp, 8
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 2
call ebx
cmp dword [esi + 0xdc], 0
jne 0x446705
cmp dword [esi + 0xe0], 0
jne 0x446705
cmp dword [esi + 0xe4], 0
jne 0x446705
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetCommand_struct_DMString__]
mov eax, dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
lea ecx, [ebp - 0x70]
call eax
test al, al
je 0x446742
cmp edi, dword [ebp - 0x60]
jne 0x446742
lea eax, [esi + 0x4b4]
push eax
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
mov edi, dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
push str..alt
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::operator_char_const__const]
test al, al
je 0x446794
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.byondcore.dll_bool___cdecl_operator_struct_DMString_const___struct_DMString_const__]
add esp, 8
test al, al
je 0x446794
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x54], 1
jmp 0x4467ab
mov edi, dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
lea ecx, [ebp - 0x70]
call edi
test al, al
jne 0x446781
mov eax, dword [ebp - 0x70]
cmp byte [eax], 0x21
jne 0x446781
push 1
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Mid_int_]
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 4
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 2
call ebx
jmp 0x44670b
push 0x4643fb
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_char_const__]
jmp 0x44670b
lea ecx, [ebp - 0x58]
call edi
test al, al
mov ecx, 2
mov edi, 0
cmovne edi, ecx
mov dword [ebp - 0x6c], edi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 1
call ebx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call ebx
lea ecx, [ebp - 0x50]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov edi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x6c]
push 1
lea ecx, [ebp - 0x49]
push ecx
mov ecx, dword [ebp - 0x5c]
push eax
push ecx
lea ecx, [esi + 0x23b8]
call fcn.00419140
test eax, eax
je 0x446805
push dword [eax]
lea ecx, [esi + 0x9c]
call dword [sym.imp.byondcore.dll_public:_unsigned_char___thiscall_DungClient::ExecMacro_char_const__]
mov eax, 1
jmp 0x44758f
cmp dword [ebp - 0x54], 0
je 0x446816
mov al, byte [ebp - 0x49]
test al, al
je 0x446816
cmp al, 0x2f
jne 0x4467fb
mov eax, dword [edi + 4]
sub eax, 0x100
je 0x446c91
sub eax, 2
je 0x446a1f
sub eax, 0x108
jne 0x447587
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 5
push dword [ebp - 0x60]
xor ebx, ebx
push dword [ebp - 0x64]
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ChildWindowFromPointEx]
push eax
call sub.mfc120u.dll_Ordinal_4843
mov edi, eax
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x6c], ebx
test edi, edi
je 0x4469a8
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x8c]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ScreenToClient]
push 5
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ChildWindowFromPointEx]
push eax
call sub.mfc120u.dll_Ordinal_4843
mov edi, eax
test edi, edi
je 0x4469a8
cmp edi, dword [ebp - 0x68]
je 0x4469a8
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.00433360
test eax, eax
je 0x446906
mov ecx, dword [eax + 8]
cmp ecx, 6
je 0x446965
cmp ecx, 7
mov ecx, 1
cmove ebx, ecx
cmp dword [ebp - 0x6c], 0
jne 0x446906
mov eax, dword [eax + 4]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x6c], edi
push 0x17
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x48], 0x1c
push eax
push 0
mov ecx, edi
mov dword [ebp - 0x2c], 0x1c
call sub.mfc120u.dll_Ordinal_6777
mov dword [ebp - 0x78], eax
mov ecx, edi
push 0x17
lea eax, [ebp - 0x48]
push eax
push 1
call sub.mfc120u.dll_Ordinal_6777
test ebx, ebx
jne 0x446980
cmp dword [ebp - 0x78], ebx
je 0x44694b
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x24]
je 0x44694b
cmp dword [ebp - 0x1c], ebx
jne 0x446987
test eax, eax
je 0x44695d
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
je 0x44695d
cmp dword [ebp - 0x38], 0
jne 0x446987
mov dword [ebp - 0x68], edi
jmp 0x446884
mov ecx, dword [ebp - 0x80]
push dword [ecx + 0xc]
push dword [ecx + 8]
mov ecx, edi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CVHTMLCtrl::ForceMouseWheel_unsigned_int__long_int_]
mov eax, 1
jmp 0x44758f
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13404
mov ecx, dword [ebp - 0x80]
push dword [ecx + 0xc]
push dword [ecx + 8]
push 0x20a
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x44758f
lea ecx, [ebp - 0x74]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_Cid::Clear_void_]
push dword [ebp - 0x88]
mov ecx, dword [ebp - 0x80]
or eax, 0xffffffff
push dword [ebp - 0x8c]
mov edi, dword [esi + 0x98]
push dword [ebp - 0x5c]
mov word [ebp - 0x58], ax
push dword [ebp - 0x6c]
mov word [ebp - 0x56], ax
xor eax, eax
mov word [ebp - 0x50], ax
mov ax, word [ecx + 0xa]
mov word [ebp - 0x4e], ax
movzx eax, word [ecx + 8]
lea ecx, [esi + 0x98]
push eax
mov dword [ebp - 0x68], 0x80008000
call dword [edi + 0x38]
push eax
mov eax, dword [ebp - 0x68]
lea ecx, [esi + 0x98]
push eax
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x50]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
call dword [edi + 0x20]
mov eax, 1
jmp 0x44758f
mov ecx, esi
call fcn.004371a0
mov dword [ebp - 0x6c], eax
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call sub.mfc120u.dll_Ordinal_4843
mov edi, eax
test edi, edi
je 0x446ab0
push edi
mov ecx, esi
call fcn.004331e0
test eax, eax
je 0x446a62
mov ecx, eax
call dword [sym.imp.byondwin.dll_public:_class_IMacroInfo____thiscall_CIMainCtrl::GetMacroTable_void_]
test eax, eax
je 0x446a62
cmp dword [eax + 0x14], 0
je 0x446a62
cmp edi, dword [ebp - 0x6c]
jne 0x44667d
mov ecx, edi
call sub.mfc120u.dll_Ordinal_6870
test eax, 0x40000000
je 0x446a79
mov ecx, edi
call sub.mfc120u.dll_Ordinal_6207
mov edi, eax
test edi, edi
je 0x446ab0
mov ecx, dword [esi + 0x2244]
test ecx, ecx
je 0x446aa7
dec ecx
js 0x446acd
cmp ecx, dword [esi + 0x2244]
jge 0x446acd
mov eax, dword [esi + 0x2240]
mov eax, dword [eax + ecx*8]
mov eax, dword [eax + 0x20]
cmp eax, dword [edi + 0x20]
je 0x446aa8
test ecx, ecx
jne 0x446a87
dec ecx
test ecx, ecx
js 0x44667d
push 9
mov ecx, esi
call fcn.00433270
test eax, eax
je 0x446ad9
mov eax, dword [eax]
test eax, eax
je 0x446ad2
add eax, 0xffffff34
mov dword [ebp - 0x60], eax
jmp 0x446ad9
call sub.mfc120u.dll_Ordinal_2341
mov dword [ebp - 0x60], 0
mov edi, dword [ebp - 0x6c]
test edi, edi
je 0x447584
lea eax, [ebp - 0x7c]
mov ecx, edi
push eax
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetNonCommand_int__]
cmp dword [ebp - 0x7c], 0
jne 0x447584
cmp edi, dword [ebp - 0x60]
jne 0x446c69
cmp dword [ebp - 0x5c], 0x2f
jne 0x446c69
mov eax, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
lea ecx, [ebp - 0x54]
call eax
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 0x19
call dword [sym.imp.mfc120u.dll_Ordinal_296]
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x1a
push eax
mov ecx, edi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetCommand_struct_DMString__]
mov eax, dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
lea ecx, [ebp - 0x54]
call eax
test al, al
jne 0x446b7b
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x21
jne 0x446b7b
push 1
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0x54]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Mid_int_]
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x1b
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0x1a
call ebx
jmp 0x446b8b
lea eax, [esi + 0x4b4]
push eax
lea ecx, [ebp - 0x54]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call sub.mfc120u.dll_Ordinal_7704
lea ecx, [ebp - 0x58]
call dword [sym.imp.mfc120u.dll_Ordinal_8064]
test al, al
jne 0x446bec
push dword [ebp - 0x54]
lea eax, [ebp - 0x94]
push eax
call dword [sym.imp.byondcore.dll_struct_DMWideStringStub___cdecl_Utf82Wide_char_const__]
add esp, 8
push dword [eax]
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x50], 4
call dword [sym.imp.mfc120u.dll_Ordinal_286]
push eax
lea eax, [ebp - 0x58]
mov ecx, 0xc
push eax
mov dword [ebp - 0x68], ecx
call fcn.00426cb0
add esp, 8
mov byte [ebp - 0x49], 1
test al, al
jne 0x446bf0
mov byte [ebp - 0x49], 0
mov eax, dword [ebp - 0x68]
test al, 8
je 0x446c0c
and eax, 0xfffffff7
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x68], eax
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 4], 0x1a
test al, 4
je 0x446c23
lea ecx, [ebp - 0x94]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMWideStringStub::destructor_void_]
cmp byte [ebp - 0x49], 0
je 0x446c54
push 0x466520
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13997
lea ecx, [ebp - 0x58]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
call ebx
mov eax, 1
jmp 0x44758f
lea ecx, [ebp - 0x58]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
call ebx
mov ecx, dword [ebp - 0x80]
push dword [ecx + 0xc]
push dword [ecx + 8]
push 0x102
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13404
mov eax, 1
jmp 0x44758f
mov ecx, esi
call fcn.004371a0
mov edi, eax
mov ecx, esi
push 9
mov dword [ebp - 0x90], edi
call fcn.00433270
test eax, eax
je 0x446cc4
mov eax, dword [eax]
test eax, eax
je 0x446cbd
add eax, 0xffffff34
mov dword [ebp - 0x60], eax
jmp 0x446cc4
mov dword [ebp - 0x60], 0
mov eax, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
lea ecx, [ebp - 0x54]
call eax
mov dword [ebp - 4], 5
test edi, edi
je 0x446ce5
lea eax, [ebp - 0x54]
mov ecx, edi
push eax
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetCommand_struct_DMString__]
mov eax, dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
lea ecx, [ebp - 0x54]
call eax
test al, al
je 0x446d0a
cmp edi, dword [ebp - 0x60]
jne 0x446d0a
lea eax, [esi + 0x4b4]
push eax
lea ecx, [ebp - 0x54]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
jmp 0x446d5b
lea ecx, [ebp - 0x54]
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
test al, al
jne 0x446d4d
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0x21
jne 0x446d4d
push 1
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x54]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Mid_int_]
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 6
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 5
call ebx
jmp 0x446d5b
push 0x4643fb
lea ecx, [ebp - 0x54]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_char_const__]
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call sub.mfc120u.dll_Ordinal_4843
mov edx, eax
mov dword [ebp - 0x60], edx
test edx, edx
je 0x446e09
push edx
mov ecx, esi
call fcn.004331e0
test eax, eax
je 0x446d9b
mov ecx, eax
call dword [sym.imp.byondwin.dll_public:_class_IMacroInfo____thiscall_CIMainCtrl::GetMacroTable_void_]
mov ecx, dword [ebp - 0x60]
test eax, eax
je 0x446d9e
cmp dword [eax + 0x14], 0
je 0x446d9e
cmp ecx, edi
jne 0x446df4
jmp 0x446d9e
mov ecx, dword [ebp - 0x60]
call sub.mfc120u.dll_Ordinal_6870
test eax, 0x40000000
je 0x446db6
mov ecx, dword [ebp - 0x60]
call sub.mfc120u.dll_Ordinal_6207
mov edx, eax
jmp 0x446db9
mov edx, dword [ebp - 0x60]
test edx, edx
je 0x446e09
mov ecx, dword [esi + 0x2244]
test ecx, ecx
je 0x446def
dec ecx
js 0x446acd
cmp ecx, dword [esi + 0x2244]
jge 0x446acd
mov eax, dword [esi + 0x2240]
mov eax, dword [eax + ecx*8]
mov eax, dword [eax + 0x20]
cmp eax, dword [edx + 0x20]
je 0x446df0
test ecx, ecx
jne 0x446dc7
dec ecx
test ecx, ecx
jns 0x446e09
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
xor esi, esi
call ebx
mov eax, esi
jmp 0x44758f
mov eax, dword [ebp - 0x5c]
cmp eax, 9
jne 0x446e32
cmp dword [esi + 0x22c4], 0
je 0x446e32
jle 0x446acd
mov ecx, dword [esi + 0x22c0]
mov ecx, dword [ecx]
call sub.mfc120u.dll_Ordinal_13404
jmp 0x447563
test edi, edi
je 0x44755e
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 7
push eax
mov ecx, edi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetCommand_struct_DMString__]
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::TrimLeft_void_]
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::TrimRight_void_]
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x78], 0
call dword [sym.imp.mfc120u.dll_Ordinal_296]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 8
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 9
push eax
mov ecx, edi
call sub.mfc120u.dll_Ordinal_7704
lea ecx, [ebp - 0x6c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_Wide2Utf8_wchar_t_const__]
add esp, 8
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xa
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 9
call ebx
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
test al, al
jne 0x446ee8
mov eax, dword [ebp - 0x70]
cmp byte [eax], 0x21
jne 0x446ee8
push 0x4643fb
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_char_const__]
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::IsEmpty_void_const]
test al, al
jne 0x446fe1
push 1
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x78], 1
push eax
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Right_int_]
mov ecx, 1
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x50], ecx
mov ecx, eax
push 0x462b90
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::operator__char_const__const]
test al, al
je 0x446f65
push 1
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0x70]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Right_int_]
mov ecx, 3
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x50], ecx
mov ecx, eax
push 0x466374
call dword [sym.imp.byondcore.dll_public:_bool___thiscall_DMString::operator__char_const__const]
mov byte [ebp - 0x49], 1
test al, al
jne 0x446f69
mov byte [ebp - 0x49], 0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 4], 0xb
test al, 2
je 0x446f88
and eax, 0xfffffffd
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x50], eax
call ebx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 4], 9
test al, 1
je 0x446f9b
lea ecx, [ebp - 0xa0]
call ebx
cmp byte [ebp - 0x49], 0
je 0x446faf
push 0x462b94
lea ecx, [ebp - 0x70]
call dword [0x46193c]
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xb8]
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_operator_struct_DMString_const___struct_DMString_const__]
add esp, 0xc
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xd
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 9
call ebx
lea eax, [ebp - 0x84]
mov ecx, edi
push eax
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetMultiLine_int__]
lea eax, [ebp - 0x7c]
mov ecx, edi
push eax
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::GetNonCommand_int__]
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff8
cmp eax, 0x67
ja case.0x447012.10
movzx eax, byte [eax + 0x4475dc]
jmp dword [eax*4 + 0x4475b0]
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13404
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x68]
push eax
push 0xb0
push dword [edi + 0x20]
call esi
mov eax, dword [ebp - 0x68]
dec eax
jmp 0x447061
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13404
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x68]
push eax
push 0xb0
push dword [edi + 0x20]
call esi
mov eax, dword [ebp - 0x58]
inc eax
push eax
push eax
push 0xb1
push dword [edi + 0x20]
call esi
push 0
push 0
push 0xb7
push dword [edi + 0x20]
call esi
mov esi, 1
jmp 0x447506
cmp dword [ebp - 0x84], 0
jne 0x4470b3
cmp dword [ebp - 0x7c], 0
jne 0x447388
mov ecx, edi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::HistoryBack_void_]
mov esi, 1
jmp 0x447506
cmp dword [ebp - 0x84], 0
je 0x4470ba
xor esi, esi
jmp 0x447506
cmp dword [ebp - 0x7c], 0
jne 0x447388
mov ecx, edi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::HistoryFwd_void_]
mov esi, 1
jmp 0x447506
cmp dword [ebp - 0x7c], 0
jne 0x447388
cmp dword [ebp - 0x84], 0
jne 0x447138
push 1
push dword [ebp - 0x78]
mov ecx, esi
push edi
push dword [ebp - 0x60]
call fcn.00445830
cmp dword [esi + 0xdc], 0
jne 0x447388
cmp dword [esi + 0xe0], 0
jne 0x447388
cmp dword [esi + 0xe4], 0
jne 0x447388
push dword [esi + 0x4b4]
mov ecx, edi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::ResetCommand_char_const__]
mov esi, 1
jmp 0x447506
cmp dword [esi + 0xdc], 0
jne 0x447388
cmp dword [esi + 0xe0], 0
jne 0x447388
cmp dword [esi + 0xe4], 0
jne 0x447388
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_296]
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xe
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_void_]
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0xf
push eax
mov ecx, edi
call sub.mfc120u.dll_Ordinal_7704
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_Wide2Utf8_wchar_t_const__]
add esp, 8
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x10
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0xf
call ebx
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x78]
push eax
push 0xb0
push dword [edi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
call edi
push dword [ebp - 0x80]
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x50]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Mid_int_]
mov esi, eax
push dword [ebp - 0x78]
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x50]
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::Left_int_]
push 0x46c8c0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x12
push ecx
mov ecx, eax
call dword [sym.imp.byondcore.dll_public:_struct_DMString___thiscall_DMString::operator_char_const__]
push esi
push eax
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x13
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_operator_struct_DMString_const___struct_DMString_const__]
add esp, 0xc
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x14
call dword [sym.imp.byondcore.dll_public:_struct_DMString____thiscall_DMString::operator_struct_DMString_const__]
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x13
call ebx
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x12
call ebx
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x11
call ebx
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xf
call ebx
push ecx
lea eax, [ebp - 0x50]
mov ecx, esp
push eax
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::constructor_struct_DMString_const__]
mov esi, dword [ebp - 0x90]
mov ecx, esi
call dword [sym.imp.byondwin.dll_public:_void___thiscall_CIInputCtrl::SetText_struct_DMString_]
mov eax, dword [ebp - 0x78]
add eax, 2
push eax
push eax
push 0xb1
push dword [esi + 0x20]
call edi
push 0
push 0
push 0xb7
push dword [esi + 0x20]
call edi
push 1
push 0
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xe
call ebx
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov esi, 1
jmp 0x447506
cmp dword [ebp - 0x7c], 0
jne case.0x447012.10
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x68]
push eax
push 0xb0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp - 0x84], 0
jne case.0x447012.10
mov ecx, edi
call sub.mfc120u.dll_Ordinal_7699
cmp dword [ebp - 0x58], eax
jne case.0x447012.10
push 1
push dword [ebp - 0x60]
lea ecx, [esi + 0x9c]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DungClient::FullExpandCommand_char_const___unsigned_char_]
mov esi, 1
jmp 0x447506
cmp dword [ebp - 0x7c], 0
jne case.0x447012.10
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x68]
push eax
push 0xb0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp - 0x84], 0
jne case.0x447012.10
mov ecx, edi
call sub.mfc120u.dll_Ordinal_7699
cmp dword [ebp - 0x58], eax
jne case.0x447012.10
push 1
push dword [ebp - 0x60]
lea ecx, [esi + 0x9c]
call dword [sym.imp.byondcore.dll_public:_void___thiscall_DungClient::ExpandCommand_char_const___unsigned_char_]
mov esi, 1
jmp 0x447506
push 0x466520
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13997
mov esi, 1
jmp 0x447506
cmp dword [ebp - 0x7c], 0
jne case.0x447012.10
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_296]
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x15
push eax
mov ecx, edi
call sub.mfc120u.dll_Ordinal_7704
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea eax, [ebp - 0xac]
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_Wide2Utf8_wchar_t_const__]
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x16
call dword [sym.imp.byondcore.dll_public:_int___thiscall_DMString::Compare_char_const__const]
test eax, eax
mov byte [ebp - 4], 0x15
mov eax, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
lea ecx, [ebp - 0xac]
sete bl
call eax
test bl, bl
je 0x447416
push 0x466520
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13997
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov esi, 1
jmp 0x447500
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x90]
push eax
push 0xb0
push dword [edi + 0x20]
call esi
mov eax, dword [ebp - 0x90]
test eax, eax
je 0x44745d
mov ecx, dword [ebp - 0x78]
cmp eax, ecx
jne 0x44745d
push ecx
dec eax
push eax
push 0xb1
push dword [edi + 0x20]
call esi
push 0
push 0
push 0xb7
push dword [edi + 0x20]
call esi
push 0x466520
push 0
push 0xc2
push dword [edi + 0x20]
call esi
lea ecx, [ebp - 0x5c]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov esi, 1
jmp 0x447500
cmp dword [ebp - 0x7c], 0
jne case.0x447012.10
lea ecx, [ebp - 0x50]
call dword [sym.imp.mfc120u.dll_Ordinal_296]
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x17
push eax
mov ecx, edi
call sub.mfc120u.dll_Ordinal_7704
lea ecx, [ebp - 0x50]
call dword [sym.imp.mfc120u.dll_Ordinal_1658]
push eax
lea eax, [ebp - 0xb4]
push eax
call dword [sym.imp.byondcore.dll_struct_DMString___cdecl_Wide2Utf8_wchar_t_const__]
add esp, 8
push dword [eax]
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x18
call dword [sym.imp.byondcore.dll_public:_int___thiscall_DMString::Compare_char_const__const]
test eax, eax
mov byte [ebp - 4], 0x17
mov eax, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
lea ecx, [ebp - 0xb4]
sete bl
call eax
test bl, bl
je 0x447531
push 0x466520
mov ecx, edi
call sub.mfc120u.dll_Ordinal_13997
lea ecx, [ebp - 0x50]
mov esi, 1
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov ebx, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 8
call ebx
lea ecx, [ebp - 0x6c]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 5
call ebx
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
call ebx
mov eax, esi
jmp 0x44758f
lea ecx, [ebp - 0x50]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
mov ebx, dword [sym.imp.byondcore.dll_public:_void___thiscall_DMString::destructor_void_]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 8
call ebx
lea ecx, [ebp - 0x6c]
call dword [sym.imp.mfc120u.dll_Ordinal_1042]
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 5
call ebx
mov eax, dword [ebp - 0x5c]
cmp eax, 0xd
jne 0x447578
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
mov esi, 1
call ebx
mov eax, esi
jmp 0x44758f
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0xffffffff
call ebx
mov edi, dword [ebp - 0x80]
push edi
mov ecx, esi
call sub.mfc120u.dll_Ordinal_12047
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004580b8
mov esp, ebp
pop ebp
ret 4