Function at 0x42bf50
Capabilities:
Log keystrokes via polling

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push 0x10
call dword [sym.imp.user32.dll_GetAsyncKeyState]
test ax, ax
mov eax, dword [0x4e0374]
je 0x42c122
test eax, eax
mov ebp, dword [0x4e63a8]
jne 0x42bf7f
mov dword [esp + 0x10], 1
jmp 0x42bf93
lea eax, [ebp + ebp*2]
shl eax, 3
sub eax, ebp
mov ecx, dword [eax*4 + 0x4e03e8]
mov dword [esp + 0x10], ecx
mov ebx, dword [0x4e0384]
xor eax, eax
test ebx, ebx
mov edx, 0x80000000
jle 0x42c097
mov edi, dword [esp + 0x10]
mov esi, 0x4e03e8
mov ecx, dword [esi]
cmp ecx, dword [esp + 0x10]
jge 0x42bfc1
cmp ecx, edx
jle 0x42bfc1
mov edx, ecx
mov edi, eax
add esi, 0x5c
inc eax
cmp eax, ebx
jl 0x42bfb1
cmp edx, 0x80000000
je 0x42c09b
mov eax, dword [0x4e0374]
test eax, eax
je 0x42c072
cmp ebp, edi
je 0x42c072
lea eax, [ebp + ebp*2]
shl eax, 3
sub eax, ebp
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
mov edx, dword [eax + 0x4e03c0]
jne 0x42c01a
mov eax, dword [0x466e00]
lea ecx, [eax + edx*4]
push ecx
call fcn.00428e30
add esp, 4
jmp 0x42c072
cmp edx, 0xffffffff
je 0x42c072
mov esi, dword [eax + 0x4e03b0]
mov ebx, dword [0x4e0370]
push 1
add esi, ebx
push esi
mov esi, dword [0x4e63b0]
add ecx, esi
push ecx
mov ecx, dword [0x4e63ac]
push ecx
mov ecx, dword [eax + 0x4e03b8]
push ecx
mov ecx, dword [eax + 0x4e03b4]
push ecx
mov ecx, dword [eax + 0x4e03c4]
push ecx
push edx
mov edx, dword [eax + 0x4e03bc]
mov eax, dword [edx*4 + 0x477380]
push eax
push 0
push 0xffffffffffffffff
push 0
call fcn.00404300
add esp, 0x30
lea eax, [edi + edi*2]
shl eax, 3
sub eax, edi
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
mov dword [0x4e63a8], edi
jne 0x42c250
jmp 0x42c358
mov edi, dword [esp + 0x10]
xor eax, eax
test ebx, ebx
mov edx, 0x80000000
jle 0x42c3ec
mov esi, 0x4e03e8
mov ecx, dword [esi]
cmp ecx, edx
jle 0x42c0b9
mov edx, ecx
mov edi, eax
add esi, 0x5c
inc eax
cmp eax, ebx
jl 0x42c0af
cmp edx, 0x80000000
je 0x42c3ec
mov eax, dword [0x4e0374]
test eax, eax
je 0x42c072
cmp ebp, edi
je 0x42c072
lea eax, [ebp + ebp*2]
shl eax, 3
sub eax, ebp
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
jne 0x42c10e
mov ecx, dword [eax + 0x4e03c0]
mov edx, dword [0x466e00]
lea eax, [edx + ecx*4]
push eax
call fcn.00428e30
add esp, 4
jmp 0x42c072
mov edx, dword [eax + 0x4e03c0]
cmp edx, 0xffffffff
je 0x42c072
jmp 0x42c01f
test eax, eax
mov ebp, dword [0x4e63a8]
jne 0x42c136
mov dword [esp + 0x10], 0xffffffff
jmp 0x42c14a
lea ecx, [ebp + ebp*2]
shl ecx, 3
sub ecx, ebp
mov edx, dword [ecx*4 + 0x4e03e8]
mov dword [esp + 0x10], edx
mov ebx, dword [0x4e0384]
xor eax, eax
test ebx, ebx
mov edx, 0x7fffffff
jle 0x42c262
mov edi, dword [esp + 0x10]
mov esi, 0x4e03e8
mov ecx, dword [esi]
cmp ecx, dword [esp + 0x10]
jle 0x42c178
cmp ecx, edx
jge 0x42c178
mov edx, ecx
mov edi, eax
add esi, 0x5c
inc eax
cmp eax, ebx
jl 0x42c168
cmp edx, 0x7fffffff
je 0x42c266
mov eax, dword [0x4e0374]
test eax, eax
je 0x42c230
cmp ebp, edi
je 0x42c230
lea eax, [ebp + ebp*2]
shl eax, 3
sub eax, ebp
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
jne 0x42c1d2
mov eax, dword [eax + 0x4e03c0]
mov ecx, dword [0x466e00]
lea edx, [ecx + eax*4]
push edx
call fcn.00428e30
add esp, 4
jmp 0x42c230
mov edx, dword [eax + 0x4e03c0]
cmp edx, 0xffffffff
je 0x42c230
mov esi, dword [eax + 0x4e03b0]
mov ebx, dword [0x4e0370]
push 1
add esi, ebx
push esi
mov esi, dword [0x4e63b0]
add ecx, esi
push ecx
mov ecx, dword [0x4e63ac]
push ecx
mov ecx, dword [eax + 0x4e03b8]
push ecx
mov ecx, dword [eax + 0x4e03b4]
push ecx
mov ecx, dword [eax + 0x4e03c4]
push ecx
push edx
mov edx, dword [eax + 0x4e03bc]
mov eax, dword [edx*4 + 0x477380]
push eax
push 0
push 0xffffffffffffffff
push 0
call fcn.00404300
add esp, 0x30
lea eax, [edi + edi*2]
shl eax, 3
sub eax, edi
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
mov dword [0x4e63a8], edi
je 0x42c358
cmp dword [eax + 0x4e03c0], 0xffffffff
je 0x42c3e2
jmp 0x42c389
mov edi, dword [esp + 0x10]
xor eax, eax
test ebx, ebx
mov edx, 0x7fffffff
jle 0x42c3ec
mov esi, 0x4e03e8
mov ecx, dword [esi]
cmp ecx, edx
jge 0x42c284
mov edx, ecx
mov edi, eax
add esi, 0x5c
inc eax
cmp eax, ebx
jl 0x42c27a
cmp edx, 0x7fffffff
je 0x42c3ec
mov eax, dword [0x4e0374]
test eax, eax
je 0x42c33c
cmp ebp, edi
je 0x42c33c
lea eax, [ebp + ebp*2]
shl eax, 3
sub eax, ebp
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
jne 0x42c2de
mov ecx, dword [eax + 0x4e03c0]
mov edx, dword [0x466e00]
lea eax, [edx + ecx*4]
push eax
call fcn.00428e30
add esp, 4
jmp 0x42c33c
mov edx, dword [eax + 0x4e03c0]
cmp edx, 0xffffffff
je 0x42c33c
mov esi, dword [eax + 0x4e03b0]
mov ebx, dword [0x4e0370]
push 1
add esi, ebx
push esi
mov esi, dword [0x4e63b0]
add ecx, esi
push ecx
mov ecx, dword [0x4e63ac]
push ecx
mov ecx, dword [eax + 0x4e03b8]
push ecx
mov ecx, dword [eax + 0x4e03b4]
push ecx
mov ecx, dword [eax + 0x4e03c4]
push ecx
push edx
mov edx, dword [eax + 0x4e03bc]
mov eax, dword [edx*4 + 0x477380]
push eax
push 0
push 0xffffffffffffffff
push 0
call fcn.00404300
add esp, 0x30
lea eax, [edi + edi*2]
shl eax, 3
sub eax, edi
shl eax, 2
mov ecx, dword [eax + 0x4e03ac]
cmp ecx, 0xfffffffd
mov dword [0x4e63a8], edi
jne 0x42c380
mov ecx, dword [eax + 0x4e03cc]
mov edx, dword [0x466e00]
lea eax, [edx + ecx*4]
push eax
call fcn.00428e30
add esp, 4
pop edi
pop esi
pop ebp
mov dword [0x4e0374], 2
pop ebx
pop ecx
ret
cmp dword [eax + 0x4e03c0], 0xffffffff
je 0x42c3e2
mov edx, dword [eax + 0x4e03b0]
mov esi, dword [0x4e0370]
push 1
add edx, esi
push edx
mov edx, dword [0x4e63b0]
add ecx, edx
mov edx, dword [eax + 0x4e03b8]
push ecx
mov ecx, dword [0x4e63ac]
push ecx
mov ecx, dword [eax + 0x4e03b4]
push edx
mov edx, dword [eax + 0x4e03d0]
push ecx
mov ecx, dword [eax + 0x4e03cc]
push edx
mov edx, dword [eax + 0x4e03c8]
mov eax, dword [edx*4 + 0x477380]
push ecx
push eax
push 0
push 0xffffffffffffffff
push 0
call fcn.00404300
add esp, 0x30
mov dword [0x4e0374], 2
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret