Function at 0x42a0f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eedb8
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x52c0cc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edi, dword [ebp + 8]
mov eax, dword [eax + 0x90]
call eax
test al, al
jne 0x42a139
mov eax, dword [edi]
cmp eax, 0xd
jle 0x42a139
cmp eax, 0x19
jl 0x42a149
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x88]
call eax
test al, al
jne 0x42a16a
mov ecx, dword [esi + 0x24]
push edi
test ecx, ecx
je 0x42a15e
mov eax, dword [ecx]
call dword [eax + 0xd0]
jmp 0x42a382
mov ecx, esi
call fcn.00447b80
jmp 0x42a382
mov eax, dword [edi]
cmp eax, 0x28
jne 0x42a17e
push edi
mov ecx, esi
call fcn.0042a3a0
jmp 0x42a382
cmp eax, 0xa
jne 0x42a190
push edi
mov ecx, esi
call fcn.0042a5c0
jmp 0x42a382
cmp eax, 8
jne 0x42a1a2
push edi
mov ecx, esi
call fcn.0042a680
jmp 0x42a382
cmp eax, 0xe
jne 0x42a1b2
push edi
push 0x200
jmp 0x42a37b
cmp eax, 0x18
jne 0x42a1d5
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x42a382
push edi
mov ecx, esi
call fcn.00443400
jmp 0x42a382
cmp eax, 0x12
je 0x42a2ed
cmp eax, 0x20
je 0x42a2ed
cmp eax, 0x13
je 0x42a295
cmp eax, 0x22
je 0x42a295
test eax, eax
jne 0x42a21c
mov ecx, esi
cmp byte [esi + 0x451], al
je 0x42a211
call fcn.00429490
jmp 0x42a382
push edi
push 0x203
jmp 0x42a37d
cmp eax, 0x14
jne 0x42a22c
push edi
push 0x204
jmp 0x42a37b
cmp eax, 0x15
jne 0x42a23c
push edi
push 0x205
jmp 0x42a37b
cmp eax, 0x30
jne 0x42a24e
push ecx
mov ecx, esi
call fcn.0042a8c0
jmp 0x42a382
cmp eax, 0x31
jne 0x42a25f
mov byte [esi + 0x45c], 0
jmp 0x42a382
cmp eax, 2
jne 0x42a271
push ecx
mov ecx, esi
call fcn.0042a470
jmp 0x42a382
cmp eax, 3
jne 0x42a1c8
push ecx
mov ecx, esi
call fcn.0042a4d0
push 0
call fcn.00451810
mov ecx, eax
call fcn.004518a0
jmp 0x42a382
cmp byte [esi + 0x81], 0
je 0x42a2e2
cmp byte [esi + 0x457], 0
jne 0x42a2e2
cmp byte [esi + 0x459], 0
mov byte [esi + 0x457], 1
je 0x42a2e2
mov ecx, esi
call fcn.00429490
test byte [esi + 0x48c], 4
mov ecx, esi
mov eax, dword [esi]
je 0x42a2dc
call dword [eax + 0x198]
push edi
push 0x202
jmp 0x42a37b
call dword [eax + 0x1a8]
push edi
push 0x202
jmp 0x42a37b
mov eax, dword [esi + 0x59c]
sub eax, dword [esi + 0x598]
sar eax, 5
test eax, eax
je 0x42a362
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [edi + 0xc]
sub esp, 8
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 4], eax
mov ecx, esi
call fcn.0042bc40
test al, al
je 0x42a353
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x42a349
push 0
push 0
push 0x2f
push esi
call fcn.00431270
lea ecx, [ebp - 0x28]
call fcn.00406ba0
jmp 0x42a382
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.00406ba0
cmp dword [edi], 0x20
jne 0x42a375
push 1
call fcn.00451810
mov ecx, eax
call fcn.004518a0
push edi
push 0x201
mov ecx, esi
call fcn.0042a960
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004abe1b
mov esp, ebp
pop ebp
ret 4