Function at 0x678f3cf0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6798cbae
push eax
mov dword fs:[0], esp
sub esp, 0x94
push ebx
mov ebx, dword [esp + 0xac]
push ebp
push esi
mov eax, dword [ebx + 0x18]
push edi
mov esi, ecx
push eax
call sub.MFC42.DLL_CDC::FromHandle
lea ebp, [ebx + 0x1c]
lea ecx, [esp + 0x18]
push ebp
push ecx
mov edi, eax
call dword [sym.imp.USER32.dll_CopyRect]
lea edx, [esp + 0x48]
push ebp
push edx
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [ebx + 8]
test eax, eax
jge 0x678f3d64
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
add eax, 0xf
push ecx
mov dword [esp + 0x28], eax
mov edx, dword [edi + 4]
push edx
call dword [sym.imp.USER32.dll_DrawFocusRect]
jmp 0x678f4054
mov ecx, dword [esp + 0xb4]
push eax
call sym.MfcHlpr520.dll_public:_struct_CMHPMenuListBox::CONTENT_ITEM____thiscall_CMHPMenuListBox::GetMenuItem_int_
test eax, eax
mov dword [esp + 0x14], eax
je 0x678f4054
mov ebp, dword [edi]
mov ecx, esi
call sym.MfcHlpr520.dll_public:_unsigned_long_int___thiscall_CMHPMenuListBoxTheme::GetTextColor_void_
push eax
mov ecx, edi
call dword [ebp + 0x38]
push 1
mov ecx, edi
call sub.MFC42.DLL_CDC::SetBkMode
mov ebp, dword [esi + 0xb0]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub eax, ebp
sub eax, ecx
mov dword [esp + 0x30], 0
cdq
sub eax, edx
mov edx, dword [esp + 0x1c]
add edx, dword [esi + 0xac]
mov dword [esp + 0x10], 0
sar eax, 1
add ecx, eax
mov eax, dword [esi + 0xb4]
add ebp, ecx
add eax, edx
test byte [ebx + 0x10], 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], 0
je 0x678f3f13
mov ebx, dword [esp + 0x14]
mov ebp, dword [ebx + 4]
test ebp, ebp
je 0x678f3f13
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x20]
push 2
lea edx, [esp + 0x3c]
mov ebp, 1
push 2
push edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
call dword [sym.imp.USER32.dll_InflateRect]
push ebp
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0x678f3ea9
mov ecx, dword [esi + 0xa4]
lea eax, [esi + 0x8c]
cmp ecx, 0xffffffff
jne 0x678f3e64
mov ecx, dword [eax + 0x14]
cmp ecx, 0xffffffff
jne 0x678f3e64
mov ecx, dword [eax + 0xc]
cmp ecx, 0xffffffff
jne 0x678f3e64
mov ecx, dword [eax + 8]
cmp ecx, 0xffffffff
je 0x678f3e7b
push 0
push 0
push eax
lea eax, [esp + 0x44]
push eax
push edi
call sym.MfcHlpr520.dll_class_CMHPDrawHelpers____cdecl_MHPDrawHelpers_void_
mov ecx, eax
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPDrawHelpers::GradientFill_class_CDC___struct_tagRECT_const___class_CMHPPaintManagerColorGradient_const___int__struct_tagRECT_const__
mov eax, dword [esi + 0x64]
cmp eax, 0xffffffff
jne 0x678f3e88
mov ecx, dword [esi + 0x60]
jmp 0x678f3e8a
mov ecx, eax
mov eax, dword [esi + 0x58]
cmp eax, 0xffffffff
jne 0x678f3e95
mov eax, dword [esi + 0x54]
push ecx
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, edi
call sub.MFC42.DLL_CDC::Draw3dRect
mov dword [esp + 0x34], ebp
jmp 0x678f3f17
mov ecx, dword [esi + 0x84]
lea eax, [esi + 0x6c]
cmp ecx, 0xffffffff
jne 0x678f3ecf
mov ecx, dword [eax + 0x14]
cmp ecx, 0xffffffff
jne 0x678f3ecf
mov ecx, dword [eax + 0xc]
cmp ecx, 0xffffffff
jne 0x678f3ecf
mov ecx, dword [eax + 8]
cmp ecx, 0xffffffff
je 0x678f3ee6
push 0
push 0
lea edx, [esp + 0x40]
push eax
push edx
push edi
call sym.MfcHlpr520.dll_class_CMHPDrawHelpers____cdecl_MHPDrawHelpers_void_
mov ecx, eax
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPDrawHelpers::GradientFill_class_CDC___struct_tagRECT_const___class_CMHPPaintManagerColorGradient_const___int__struct_tagRECT_const__
mov eax, dword [esi + 0x58]
cmp eax, 0xffffffff
jne 0x678f3ef3
mov ecx, dword [esi + 0x54]
jmp 0x678f3ef5
mov ecx, eax
mov eax, dword [esi + 0x64]
cmp eax, 0xffffffff
jne 0x678f3f00
mov eax, dword [esi + 0x60]
push ecx
push eax
lea eax, [esp + 0x40]
mov ecx, edi
push eax
call sub.MFC42.DLL_CDC::Draw3dRect
or ebp, 0xffffffff
jmp 0x678f3f17
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0xb4]
push 0
push 0
push 0x31
mov ecx, dword [ebx + 0x20]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
call sub.MFC42.DLL_CGdiObject::FromHandle
mov eax, dword [eax + 4]
lea edx, [esp + 0x68]
push edx
push 0x3c
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp ecx, eax
je 0x678f3f5b
mov cl, byte [ebx + 0x59]
test cl, cl
jne 0x678f3f5b
mov byte [esp + 0x7d], 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0x67995c9c
lea ecx, [esp + 0x68]
mov dword [esp + 0xac], eax
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push eax
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CGdiObject::Attach
lea edx, [esp + 0x28]
lea ecx, [esp + 0x58]
push edx
push edi
call sym.MfcHlpr520.dll_public:_void___thiscall_CMHPFontDC::constructor_class_CDC___class_CFont__
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov byte [esp + 0xac], 1
mov eax, dword [eax + 8]
push eax
call sym.MfcHlpr520.dll_public:_int___thiscall_CMHPMenuListBox::GetTextHeight_char_const__const
mov ecx, dword [esi + 0xac]
mov edx, dword [esp + 0x54]
sub edx, ecx
sub edx, eax
mov eax, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov al, byte [ebx + 0x58]
sub edx, ecx
test al, al
mov dword [esp + 0x50], edx
je 0x678f3ff2
test ebp, ebp
je 0x678f3ff2
mov ebx, dword [sym.imp.USER32.dll_OffsetRect]
push ebp
lea eax, [esp + 0x1c]
push ebp
push eax
call ebx
push ebp
lea ecx, [esp + 0x4c]
push ebp
push ecx
call ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x678f4019
mov ecx, dword [esp + 0x34]
mov edx, dword [esi]
push ecx
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebx + 4]
push ecx
push eax
lea eax, [esp + 0x28]
mov ecx, esi
push eax
push edi
call dword [edx + 0x14]
mov edx, dword [esi]
lea eax, [esp + 0x48]
push ebx
push eax
push edi
mov ecx, esi
call dword [edx + 0x18]
lea ecx, [esp + 0x58]
mov byte [esp + 0xac], 0
call sym.MfcHlpr520.dll_public_virtual:_void___thiscall_CMHPFontDC::destructor_void_
mov dword [esp + 0x28], 0x67995a18
lea ecx, [esp + 0x28]
mov dword [esp + 0xac], 2
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa0
ret 8