Function at 0x41f060
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push edi
push ebx
push 0
mov edi, ecx
mov eax, dword [edi + 0x110]
push 0x407
push eax
call esi
mov ecx, dword [edi + 0x180]
push ebx
push 0
push 0x407
push ecx
call esi
mov edx, dword [edi + 0x1f0]
push ebx
push 0
push 0x407
push edx
call esi
mov eax, dword [edi + 0x260]
push ebx
push 0
push 0x407
push eax
call esi
mov eax, dword [ebx + 4]
cmp eax, 0x100
je 0x41f158
cmp eax, 0x203
jne case.0x41f16e.14
mov esi, dword [sym.imp.USER32.dll_GetFocus]
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
test eax, eax
je case.0x41f16e.14
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov ecx, dword [eax + 0x20]
cmp ecx, dword [edi + 0x2d0]
jne 0x41f11c
call fcn.0041a320
test al, al
je 0x41f11c
mov ecx, edi
call fcn.0041cfb0
push ebx
mov ecx, edi
call sub.mfc90.dll_Ordinal_5636
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov edx, dword [eax + 0x20]
cmp edx, dword [edi + 0x384]
jne case.0x41f16e.14
call fcn.0041a320
test al, al
je case.0x41f16e.14
mov ecx, edi
call fcn.0041aaf0
push ebx
mov ecx, edi
call sub.mfc90.dll_Ordinal_5636
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 8]
add eax, 0xfffffff3
cmp eax, 0x6a
ja case.0x41f16e.14
movzx eax, byte [eax + 0x41f304]
jmp dword [eax*4 + 0x41f2ec]
mov esi, dword [sym.imp.USER32.dll_GetFocus]
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov ecx, dword [eax + 0x20]
cmp ecx, dword [edi + 0x2d0]
jne 0x41f1a3
mov ecx, edi
call fcn.0041cfb0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov edx, dword [eax + 0x20]
cmp edx, dword [edi + 0x384]
jne 0x41f1cb
mov ecx, edi
call fcn.0041aaf0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov eax, dword [eax + 0x20]
cmp eax, dword [edi + 0x438]
jne 0x41f1f1
call fcn.004175e0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov ecx, dword [eax + 0x20]
cmp ecx, dword [edi + 0x618]
je case.0x41f16e.14
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov edx, dword [eax + 0x20]
cmp edx, dword [edi + 0x570]
je case.0x41f16e.14
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov eax, dword [eax + 0x20]
cmp eax, dword [edi + 0x5c4]
je case.0x41f16e.14
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov ecx, dword [eax + 0x20]
cmp ecx, dword [edi + 0x384]
jne 0x41f25e
mov ecx, edi
call fcn.0041aaf0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call esi
push eax
call sub.mfc90.dll_Ordinal_2592
mov edx, dword [eax + 0x20]
cmp edx, dword [edi + 0x66c]
jne case.0x41f16e.27
lea ecx, [edi + 0x550]
call sub.mfc90.dll_Ordinal_4384
test eax, eax
je case.0x41f16e.27
mov ecx, edi
call fcn.0041d010
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, edi
call fcn.0041c430
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
xor ecx, ecx
cmp cx, ax
jle case.0x41f16e.14
call fcn.004231f0
call fcn.004231f0
mov eax, dword [eax]
test eax, eax
je case.0x41f16e.14
cmp dword [eax + 8], 0
jne 0x41f18e
push ebx
mov ecx, edi
call sub.mfc90.dll_Ordinal_5636
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4