Function at 0x42ccc6
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 4]
sub eax, 0x100
push esi
push edi
mov edi, ecx
je 0x42cb15
sub eax, 4
jne case.0x42cb2b.10
mov eax, dword [ebp + 8]
push eax
call fcn.00429640
push ebp
mov ecx, edi
call sub.mfc90.dll_Ordinal_5636
pop edi
pop esi
pop ebp
pop ebx
ret 4
mov eax, dword [ebp + 8]
add eax, 0xfffffff7
cmp eax, 0x6e
ja case.0x42cb2b.10
movzx ecx, byte [eax + 0x42cd8c]
jmp dword [ecx*4 + 0x42cd74]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call esi
mov ebx, dword [sym.imp.USER32.dll_GetFocus]
mov edx, 0x8000
test dx, ax
je 0x42cba0
call ebx
push eax
call sub.mfc90.dll_Ordinal_2592
mov eax, dword [eax + 0x20]
cmp eax, dword [edi + 0x1f4]
jne 0x42cba0
push 0
push 0x4435b4
push 0x443068
push 0
mov eax, edi
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
lea ecx, [eax + 0x728]
add esp, 0x14
call sub.mfc90.dll_Ordinal_6291
mov eax, edi
call fcn.004010b0
call fcn.00402ed0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 4
push 0x10
call esi
mov ecx, 0x8000
test cx, ax
jne case.0x42cb2b.10
call ebx
push eax
call sub.mfc90.dll_Ordinal_2592
mov edx, dword [eax + 0x20]
cmp edx, dword [edi + 0xf0]
jne case.0x42cb2b.10
push 0
push 0x4435b4
push 0x443068
push 0
mov eax, edi
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
add esp, 0x14
lea ecx, [eax + 0x494]
call sub.mfc90.dll_Ordinal_4384
push 0
push 0x4435b4
push 0x443068
test eax, eax
push 0
mov eax, edi
je 0x42cc1c
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
lea ecx, [eax + 0x494]
jmp 0x42cb80
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
lea ecx, [eax + 0x548]
jmp 0x42cb80
mov esi, dword [sym.imp.USER32.dll_GetFocus]
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov eax, dword [eax + 0x20]
cmp eax, dword [edi + 0x98]
jne 0x42cc5e
mov ecx, edi
call fcn.0042c750
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 4
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov ecx, dword [eax + 0x20]
cmp ecx, dword [edi + 0xf0]
jne 0x42cb94
mov eax, edi
call fcn.004010b0
test eax, eax
je 0x42cb94
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x80ca
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 4
mov eax, edi
call fcn.004010b0
mov eax, dword [eax + 0x20]
push 0
push 0
push 0x10
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 4
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je case.0x42cb2b.10
push 0
push 0x4435b4
push 0x443068
push 0
mov eax, edi
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
add esp, 0x14
lea ecx, [eax + 0x494]
call sub.mfc90.dll_Ordinal_4384
test eax, eax
je case.0x42cb2b.10
push 0
push 0x4435b4
push 0x443068
push 0
mov eax, edi
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
add esp, 0x14
mov ecx, eax
call fcn.004195e0
push ebp
mov ecx, edi
call sub.mfc90.dll_Ordinal_5636
pop edi
pop esi
pop ebp
pop ebx
ret 4
push 0
push 0x4435b4
push 0x443068
push 0
mov eax, edi
call fcn.004010b0
push eax
call sub.MSVCR90.dll___RTDynamicCast
add esp, 0x14
mov ecx, eax
call fcn.004185f0
push ebp
mov ecx, edi
call sub.mfc90.dll_Ordinal_5636
pop edi
pop esi
pop ebp
pop ebx
ret 4