Function at 0x4069a4
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push ebp
push esi
push edi
push dword [esp + 0x1c]
mov esi, ecx
push dword [esp + 0x1c]
call fcn.00405df1
mov ebx, eax
cmp ebx, 0xffffffff
je 0x406bc6
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call edi
xor ecx, ecx
test ax, ax
setl cl
push 0x11
mov dword [esp + 0x18], ecx
call edi
xor ecx, ecx
test ax, ax
setge cl
xor ebp, ebp
push ebx
mov eax, ecx
mov ecx, esi
cmp dword [esp + 0x18], ebp
je 0x406a7c
call sub.mfc90.dll_Ordinal_3140
push ebp
push ebp
not eax
push 0xb
push dword [esi + 0x20]
and eax, 0x80000000
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
xor edi, edi
call fcn.0040556b
test eax, eax
jle 0x406a76
mov ebp, 0x8068
push edi
mov ecx, esi
call sub.mfc90.dll_Ordinal_3140
and eax, 0x7fffffff
or eax, dword [esp + 0x14]
mov ecx, esi
push eax
push edi
call fcn.0040557e
push edi
mov ecx, esi
call fcn.00405611
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.mfc90.dll_Ordinal_2592
xor ecx, ecx
cmp edi, ebx
sete cl
push ecx
push edi
push ebp
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, esi
inc edi
call fcn.0040556b
cmp edi, eax
jl 0x406a24
xor ebp, ebp
push ebp
jmp 0x406b7a
cmp eax, ebp
je 0x406b89
call sub.mfc90.dll_Ordinal_3140
push ebp
push ebp
mov edi, eax
push 0xb
push dword [esi + 0x20]
not edi
and edi, 0x80000000
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
call fcn.00405628
mov ebp, 0x8068
cmp eax, 1
jbe 0x406b3c
and dword [esp + 0x14], 0
mov ecx, esi
call fcn.0040556b
test eax, eax
jle 0x406b3c
cmp dword [esp + 0x14], ebx
je 0x406b2b
push 2
push dword [esp + 0x18]
push 0x102c
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x406b2b
push dword [esp + 0x14]
mov ecx, esi
call sub.mfc90.dll_Ordinal_3140
and eax, 0x7fffffff
or eax, edi
push eax
push dword [esp + 0x18]
mov ecx, esi
call fcn.0040557e
push dword [esp + 0x14]
mov ecx, esi
call fcn.00405611
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.mfc90.dll_Ordinal_2592
push 0
push dword [esp + 0x18]
push ebp
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_PostMessageA]
inc dword [esp + 0x14]
mov ecx, esi
call fcn.0040556b
cmp dword [esp + 0x14], eax
jl 0x406ac5
push ebx
mov ecx, esi
call sub.mfc90.dll_Ordinal_3140
and eax, 0x7fffffff
or eax, edi
push eax
push ebx
mov ecx, esi
call fcn.0040557e
push ebx
mov ecx, esi
call fcn.00405611
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.mfc90.dll_Ordinal_2592
push 1
push ebx
push ebp
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_PostMessageA]
push 0
push 1
push 0xb
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x406bd9
call sub.mfc90.dll_Ordinal_3140
xor eax, 0x80000000
push eax
push ebx
mov ecx, esi
call fcn.0040557e
push ebx
mov ecx, esi
call fcn.00405611
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.mfc90.dll_Ordinal_2592
push 1
push ebx
push 0x8068
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x406bd9
push dword [esp + 0x1c]
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call fcn.004033fd
pop edi
pop esi
pop ebp
pop ebx
ret 0xc