Function at 0x4048d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x41c62c]
sub esp, 8
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push ebp
push esi
push edi
push eax
call ebx
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
test ax, ax
mov eax, dword [0x41a2f0]
je 0x4048fd
test eax, eax
jne 0x404913
jmp 0x404957
test eax, eax
je 0x404957
cmp dword [0x41c0d0], 1
jne 0x404957
mov eax, dword [0x41c0e4]
test eax, eax
je 0x404957
mov ecx, dword [0x41cfb8]
mov edx, dword [0x41c5c8]
push 1
push 0x41a2d8
push ecx
push edx
push 0x41c660
push ebp
push esi
call fcn.00401fc0
mov eax, dword [0x41cfd8]
mov ecx, dword [0x41bdf8]
push 1
push 0x41a2d8
push eax
push ecx
push 0x41c658
push ebp
push esi
call fcn.00402360
add esp, 0x38
mov edx, dword [0x41c630]
push edx
call ebx
test ax, ax
mov eax, dword [0x41a2f0]
mov edi, 2
je 0x404981
test eax, eax
je 0x404a3a
mov ecx, dword [0x41c5d0]
test ecx, ecx
je 0x4049a3
test eax, eax
je 0x404a3a
cmp dword [0x41c0d0], 1
jne 0x404a3a
mov eax, dword [0x41c0e8]
test eax, eax
je 0x404a3a
mov eax, dword [0x41c0b0]
test eax, eax
jne 0x404a34
mov eax, dword [0x41cfe0]
test eax, eax
jle 0x404a34
mov eax, dword [0x41c0c8]
cmp eax, dword [0x41c0c4]
jl 0x404a34
lea ecx, [esp + 0x10]
push 0x41a2d8
push ecx
call fcn.00402670
fild dword [esp + 0x18]
mov edx, dword [0x41a2dc]
mov ecx, dword [0x419098]
fsub dword [0x417298]
mov eax, dword [0x41cf9c]
mov dword [0x41c09c], edx
mov edx, dword [0x41cfe0]
add esp, 8
fstp dword [0x41c098]
dec edx
inc ecx
test eax, eax
mov dword [0x41c0b0], edi
mov dword [0x41cfe0], edx
mov dword [0x419098], ecx
je 0x404a34
mov eax, dword [0x419060]
test eax, eax
je 0x404a34
push 0
push 0
mov ecx, 0x41d010
call fcn.0040de90
mov dword [0x41d0c0], esi
mov eax, dword [0x41c64c]
push eax
call ebx
test ax, ax
mov eax, dword [0x41a328]
je 0x404a5e
test eax, eax
je 0x404b15
mov ecx, dword [0x41c5d4]
test ecx, ecx
je 0x404a7f
test eax, eax
je 0x404b15
cmp dword [0x41c0d0], edi
jne 0x404b15
mov eax, dword [0x41c0e8]
test eax, eax
je 0x404b15
mov eax, dword [0x41c558]
test eax, eax
jne 0x404b0f
mov eax, dword [0x41cfe4]
test eax, eax
jle 0x404b0f
mov ecx, dword [0x41c570]
cmp ecx, dword [0x41c56c]
jl 0x404b0f
lea edx, [esp + 0x10]
push 0x41a310
push edx
call fcn.00402670
fild dword [esp + 0x18]
mov eax, dword [0x41a314]
mov edx, dword [0x41cfe4]
mov ecx, dword [0x41909c]
fsub dword [0x417298]
add esp, 8
dec edx
mov dword [0x41c544], eax
fstp dword [0x41c540]
mov eax, dword [0x41cf9c]
inc ecx
test eax, eax
mov dword [0x41c558], edi
mov dword [0x41cfe4], edx
mov dword [0x41909c], ecx
je 0x404b0f
mov eax, dword [0x419060]
test eax, eax
je 0x404b0f
push 0
push 0
mov ecx, 0x41d010
call fcn.0040de90
mov dword [0x41d0bc], esi
cmp dword [0x41c0b0], edi
jne 0x404b60
cmp esi, dword [0x41d0c0]
je 0x404b60
mov ecx, dword [0x41cf9c]
test ecx, ecx
mov eax, 1
mov dword [0x41c0c8], 0
mov dword [0x41c0b0], eax
mov dword [0x41c5d0], eax
je 0x404b65
mov ecx, dword [0x419060]
test ecx, ecx
je 0x404b65
push 0
push 0
mov ecx, 0x41d074
call fcn.0040de90
mov eax, 1
cmp dword [0x41c558], edi
jne 0x404ba9
cmp esi, dword [0x41d0bc]
je 0x404ba9
mov dword [0x41c558], eax
mov dword [0x41c5d4], eax
mov eax, dword [0x41cf9c]
test eax, eax
mov dword [0x41c570], 0
je 0x404ba9
mov eax, dword [0x419060]
test eax, eax
je 0x404ba9
push 0
push 0
mov ecx, 0x41d074
call fcn.0040de90
mov ecx, dword [0x41c648]
push ecx
call ebx
test ax, ax
mov eax, dword [0x41a328]
je 0x404bc8
test eax, eax
jne 0x404bdd
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
test eax, eax
je 0x404c1f
cmp dword [0x41c0d0], edi
jne 0x404c1f
mov eax, dword [0x41c0e4]
test eax, eax
je 0x404c1f
mov edx, dword [0x41cfbc]
mov eax, dword [0x41c5cc]
push edi
push 0x41a310
push edx
push eax
push 0x41c664
push ebp
push esi
call fcn.00401fc0
mov ecx, dword [0x41cfdc]
mov edx, dword [0x41bdfc]
push edi
push 0x41a310
push ecx
push edx
push 0x41c65c
push ebp
push esi
call fcn.00402360
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret