Function at 0x49c6a0
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x5c50b8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov ebp, ecx
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
and eax, 0x8000
mov dword [esp + 0x2c], eax
je 0x49c6e3
lea eax, [ebp + 0xb8]
lea edi, [ebp + 0xb4]
mov dword [esp + 0x10], eax
jmp 0x49c6f3
lea ecx, [ebp + 0xb0]
lea edi, [ebp + 0xac]
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x40]
mov edx, dword [esi]
mov eax, dword [edx - 8]
test eax, eax
je 0x49ca21
push 0x2d
mov ecx, esi
call fcn.00593ba2
test eax, eax
je 0x49ca21
push 0x5f
mov ecx, esi
call fcn.00593ba2
cmp eax, 0xffffffff
je 0x49c72e
mov dword [edi], 0xffffffff
jmp 0x49ca3b
push str.band
mov ecx, esi
call fcn.0058aa67
test eax, eax
jle 0x49c8b2
dec eax
mov ecx, esi
push eax
lea eax, [esp + 0x44]
push 0
push eax
call fcn.0058a8bb
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], 0
call fcn.0058af50
lea ecx, [esp + 0x40]
call fcn.0058ae9c
mov ecx, dword [0x639698]
mov dword [esp + 0x14], ecx
mov edx, dword [0x63fd4c]
mov ebx, 1
mov byte [esp + 0x38], bl
mov ecx, dword [edx + 0xa648]
test ecx, ecx
je 0x49c7a6
mov eax, dword [ecx]
push 0
push 0
push 0
push 0x17
call dword [eax + 4]
push eax
lea ecx, [esp + 0x18]
call fcn.00593864
lea ecx, [esp + 0x14]
lea edx, [esp + 0x40]
push ecx
mov ecx, dword [0x63fd4c]
push edx
call fcn.0045e520
mov esi, eax
test esi, esi
jne 0x49c822
push 0x631140
lea ecx, [esp + 0x20]
call fcn.00593749
mov ecx, dword [0x63fd4c]
push eax
lea eax, [esp + 0x44]
mov byte [esp + 0x3c], 2
push eax
call fcn.0045e520
lea ecx, [esp + 0x1c]
mov esi, eax
mov byte [esp + 0x38], bl
call fcn.005936db
test esi, esi
jne 0x49c822
lea ecx, [esp + 0x14]
mov dword [edi], 0xffffffff
mov byte [esp + 0x38], 0
call fcn.005936db
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], 0xffffffff
call fcn.005936db
jmp 0x49ca3b
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x14]
lea eax, [esp + 0x40]
push edx
mov dword [ecx], esi
mov ecx, dword [0x63fd4c]
push eax
call fcn.0045e5a0
mov esi, eax
or edi, 0xffffffff
cmp esi, edi
jne 0x49c87d
push 0x631140
lea ecx, [esp + 0x20]
call fcn.00593749
lea ecx, [esp + 0x40]
push eax
push ecx
mov ecx, dword [0x63fd4c]
mov byte [esp + 0x40], 3
call fcn.0045e5a0
lea ecx, [esp + 0x1c]
mov esi, eax
mov byte [esp + 0x38], bl
call fcn.005936db
cmp esi, edi
je 0x49c88a
cmp esi, 0x1d
je 0x49c88a
mov dword [ebp + 0xbc], esi
jmp 0x49c890
mov dword [ebp + 0xbc], edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 0
call fcn.005936db
lea ecx, [esp + 0x40]
mov dword [esp + 0x38], edi
call fcn.005936db
mov eax, ebx
jmp 0x49ca3d
push 0x2e
mov ecx, esi
call fcn.00593ba2
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x49c90e
mov eax, dword [esi]
lea edx, [esp + 0x20]
push edx
push 0x625a90
push eax
call fcn.005745e0
mov eax, dword [esp + 0x2c]
add esp, 0xc
cmp eax, 0xf4240
jge 0x49c8fe
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, 1
shl ecx, 3
mov dword [edx], ecx
jmp 0x49ca3d
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, 1
jmp 0x49ca3d
mov edx, dword [0x639698]
mov dword [esp + 0x18], edx
lea edi, [ebp + 1]
lea eax, [esp + 0x40]
mov ebx, 4
push edi
push eax
mov ecx, esi
mov dword [esp + 0x40], ebx
call fcn.0058a898
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3c], 5
call fcn.00593814
lea ecx, [esp + 0x40]
mov byte [esp + 0x38], bl
call fcn.005936db
push 0x2e
lea ecx, [esp + 0x1c]
call fcn.00593ba2
test eax, eax
jl 0x49c9c4
lea ecx, [esp + 0x2c]
push edi
push ecx
mov ecx, esi
call fcn.0058a898
mov edi, eax
lea edx, [esp + 0x28]
push ebp
push edx
mov ecx, esi
mov byte [esp + 0x40], 6
call fcn.0058a9cd
push edi
push eax
lea eax, [esp + 0x2c]
mov byte [esp + 0x40], 7
push eax
call fcn.0059390a
push eax
mov ecx, esi
mov byte [esp + 0x3c], 8
call fcn.00593814
lea ecx, [esp + 0x24]
mov byte [esp + 0x38], 7
call fcn.005936db
lea ecx, [esp + 0x28]
mov byte [esp + 0x38], 6
call fcn.005936db
lea ecx, [esp + 0x2c]
mov byte [esp + 0x38], bl
call fcn.005936db
mov esi, dword [esi]
lea ecx, [esp + 0x1c]
push ecx
push 0x625ad4
push esi
call fcn.005745e0
fld dword [esp + 0x28]
fcomp qword [0x5dd038]
add esp, 0xc
fnstsw ax
test ah, 1
je 0x49ca09
fld dword [esp + 0x1c]
fadd qword [0x5e2b40]
fmul qword [0x5dcc28]
call fcn.00573170
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov dword [edx], eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x38], 0xffffffff
call fcn.005936db
mov eax, 1
jmp 0x49ca3d
push 0x536
mov ecx, ebp
call fcn.00592af8
mov ecx, dword [esp + 0x10]
mov eax, dword [edi]
mov dword [ecx], eax
mov dword [edi], 0
xor eax, eax
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x2c
ret 8