Function at 0x42a8b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x54
cmp eax, 0x201
push ebx
push ebp
push esi
push edi
mov esi, ecx
ja 0x42ab09
je 0x42ab5c
cmp eax, 0x100
ja 0x42aadc
je 0x42a9ec
sub eax, 3
je 0x42a905
sub eax, 2
jne 0x42ac36
mov eax, dword [esi]
mov edx, dword [eax + 0x1e8]
push 0
call edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
cmp dword [esi + 0xec], 0
je 0x42ac36
mov ecx, dword [esp + 0x68]
xor ebx, ebx
cmp dword [esi + 0xc8], ebx
lea eax, [esp + 0x10]
push eax
push ecx
setne bl
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [sym.imp.USER32.dll_CopyRect]
lea edx, [esp + 0x10]
push edx
lea eax, [esi + 0x188]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push edx
call edi
mov eax, dword [esi + 0xf4]
push 0
neg eax
push eax
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov edx, dword [esi]
mov edx, dword [edx + 0x208]
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call edx
mov edi, 1
cmp dword [esi + 0xf0], edi
jle 0x42a9cb
lea eax, [esi + 0x104]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x38]
push edx
call dword [sym.imp.USER32.dll_IntersectRect]
neg eax
sbb eax, eax
inc eax
jne 0x42a9cb
test ebx, ebx
je 0x42ac36
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x10]
push edi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, esi
call fcn.0042a380
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
test ebx, ebx
jne 0x42a9b8
mov ecx, dword [esi + 0x10]
push ebx
push ecx
mov dword [esi + 0xc8], edi
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov edx, dword [esi]
mov edx, dword [edx + 0xc8]
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], 0x4e
call edx
mov ecx, dword [esi + 0x184]
test ecx, ecx
mov ebx, dword [esp + 0x70]
je 0x42aa4a
mov eax, dword [esp + 0x74]
push eax
push ebx
push 0x100
call fcn.00417650
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa1
call edi
push 0xa0
mov bp, ax
call edi
or bp, ax
and bp, 0x8000
movzx ecx, bp
push 0x12
mov dword [esp + 0x78], ecx
call edi
and ax, 0x8000
push 0x11
movzx ebp, ax
call edi
and ax, 0x8000
cmp ebx, 0x20
movzx eax, ax
jne 0x42ac36
test ax, ax
jne 0x42ac36
test bp, bp
jne 0x42ac36
cmp word [esp + 0x74], bp
jne 0x42ac36
mov ecx, esi
call fcn.00428ac0
test eax, eax
je 0x42ac36
mov esi, dword [esi + 0x184]
test esi, esi
je 0x42ac36
mov ecx, esi
call fcn.00417a20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
cmp eax, 0x113
jne 0x42ac36
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov edx, dword [esi]
mov edx, dword [edx + 0x1f4]
push eax
push ecx
mov ecx, esi
call edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
cmp eax, 0x232
ja 0x42ac12
je 0x42abf6
sub eax, 0x202
je 0x42abd2
sub eax, 2
je 0x42ab5c
sub eax, 1
jne 0x42ac36
cmp dword [esi + 0x17c], eax
je 0x42ac36
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
push eax
push ecx
mov ecx, esi
call fcn.00428ed0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edx, dword [esi]
mov edx, dword [edx + 0x1f8]
lea eax, [esp + 0x10]
push eax
mov ecx, esi
call edx
test eax, eax
je 0x42ac36
cmp dword [esi + 0xe8], 0
je 0x42abb0
mov eax, dword [esp + 0x74]
push eax
mov ecx, esi
call fcn.0042a690
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [esi + 0x10]
push 0
push 0xf012
push 0x112
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
cmp dword [esi + 0x17c], 0
je 0x42ac36
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
push edx
push eax
call fcn.00428f90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [esi + 0x184]
test ecx, ecx
je 0x42ac36
push esi
call fcn.00419640
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
sub eax, 0x4c9
je 0x42ac2f
sub eax, 4
jne 0x42ac36
call fcn.0042a380
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
push 0
call fcn.00429ac0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14