Function at 0x406928
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.00405eb2
mov ebx, eax
cmp ebx, 0xffffffff
je 0x406b4a
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 0x406a00
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.00405648
test eax, eax
jle 0x4069fa
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.0040565b
push edi
mov ecx, esi
call fcn.004056ee
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.00405648
cmp edi, eax
jl 0x4069a8
xor ebp, ebp
push ebp
jmp 0x406afe
cmp eax, ebp
je 0x406b0d
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.00405705
mov ebp, 0x8068
cmp eax, 1
jbe 0x406ac0
and dword [esp + 0x14], 0
mov ecx, esi
call fcn.00405648
test eax, eax
jle 0x406ac0
cmp dword [esp + 0x14], ebx
je 0x406aaf
push 2
push dword [esp + 0x18]
push 0x102c
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x406aaf
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.0040565b
push dword [esp + 0x14]
mov ecx, esi
call fcn.004056ee
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.00405648
cmp dword [esp + 0x14], eax
jl 0x406a49
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.0040565b
push ebx
mov ecx, esi
call fcn.004056ee
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 0x406b5d
call sub.mfc90.dll_Ordinal_3140
xor eax, 0x80000000
push eax
push ebx
mov ecx, esi
call fcn.0040565b
push ebx
mov ecx, esi
call fcn.004056ee
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 0x406b5d
push dword [esp + 0x1c]
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call fcn.004033fa
pop edi
pop esi
pop ebp
pop ebx
ret 0xc