Function at 0x1004cbf8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
sub esp, 0x38
mov eax, 0x1008177c
call fcn.1005ab48
sub esp, 0x37c
call fcn.1002b13b
test eax, eax
jne 0x1004cf8e
cmp dword [0x101b9788], eax
je 0x1004cf8e
cmp dword [0x101a5538], eax
je 0x1004cf8e
cmp dword [0x101a553c], eax
je 0x1004cf8e
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1004cc5a
cmp dword [0x10188da7], 0
jne 0x1004cf8d
mov eax, dword [0x101a5550]
push edi
xor edi, edi
cmp dword [eax], edi
jne 0x1004cf8c
push 0x79
call esi
test ax, ax
js 0x1004cf8c
cmp dword [0x101b979c], edi
je 0x1004cf8c
push dword [0x101b97a4]
call fcn.1002b3df
pop ecx
test eax, eax
jne 0x1004cf8c
call fcn.1002b13b
test eax, eax
jne 0x1004cf8c
cmp dword [0x101b9788], edi
je 0x1004cf8c
cmp dword [0x101a5538], edi
je 0x1004cf8c
cmp dword [0x101a553c], edi
je 0x1004cf8c
push 9
call esi
test ax, ax
jns 0x1004ccdd
cmp dword [0x10188da7], edi
jne 0x1004cf8c
mov eax, dword [0x101a5550]
cmp dword [eax], edi
jne 0x1004cf8c
push 0x79
call esi
test ax, ax
js 0x1004cf8c
cmp dword [0x101b979c], edi
je 0x1004cf8c
push dword [0x101b97a4]
call fcn.1002b3df
pop ecx
test eax, eax
jne 0x1004cf8c
lea ecx, [ebp - 0x388]
call fcn.1000172d
mov eax, dword [0x1015c858]
mov dword [ebp - 4], edi
cmp dword [eax + 0xe9], edi
je 0x1004cf81
push ebx
xor ebx, ebx
inc ebx
push ebx
call fcn.1003fbf6
pop ecx
test eax, eax
je 0x1004cf80
call fcn.10045170
mov eax, dword [0x1015c858]
cmp dword [eax + 0x25497], 0x7d0
jl 0x1004cd6a
mov dword [eax + 0x25497], edi
mov eax, dword [0x1015c858]
push edi
push dword [eax + 0x25497]
call fcn.1002d4ea
push 0x3f
lea eax, [ebp - 0x4c]
push edi
push eax
call fcn.1005d0d0
mov ecx, dword [0x101a553c]
mov eax, dword [ecx + 0x1e]
movss xmm0, dword [eax + 0xc6]
movss dword [ebp - 0x1c], xmm0
mov eax, dword [ecx + 0x1e]
mov ax, word [eax + 0x96]
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
mov eax, dword [eax + 0x14]
add eax, 0x30
push eax
call fcn.100403d7
mov ecx, dword [0x101a553c]
add esp, 0x1c
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
cvttss2si eax, dword [eax + 0x540]
mov byte [ebp - 0x18], al
mov eax, dword [ecx + 0x1e]
mov eax, dword [eax]
mov eax, dword [eax + 0x2a4]
cvttss2si eax, dword [eax + 0x548]
mov byte [ebp - 0x17], al
mov eax, dword [0x1015c858]
mov ax, word [eax + 0x25497]
mov word [ebp - 0x13], ax
mov eax, dword [ecx + 0x1e]
movss xmm0, dword [eax + 0xba]
movss dword [ebp - 0x28], xmm0
mov eax, dword [ecx + 0x1e]
lea ecx, [ebp - 0x274]
movss xmm0, dword [eax + 0xbe]
movss dword [ebp - 0x24], xmm0
mov dword [ebp - 0x20], 0x3dcccccd
call fcn.1000172d
push ebx
push 8
lea eax, [ebp + 0x38]
mov byte [ebp - 4], bl
push eax
lea ecx, [ebp - 0x274]
mov byte [ebp + 0x38], 0xc8
call fcn.100019a3
push 0x3f
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x274]
call fcn.10001952
mov ecx, dword [0x101a5528]
lea eax, [ebp - 0x274]
push edi
push 7
push ebx
push eax
call fcn.100409a6
mov eax, dword [0x1015c858]
xorps xmm0, xmm0
movlpd qword [ebp + 0xe], xmm0
movlpd qword [ebp + 0x2a], xmm0
mov dword [ebp + 0x16], edi
mov ax, word [eax + 0x25497]
mov word [ebp], ax
mov eax, dword [0x100dce18]
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [0x1008d9a8]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp + 2], xmm0
movss xmm0, dword [eax + 0x14]
lea ecx, [ebp - 0x160]
mulss xmm0, dword [0x10094894]
movss xmm1, dword [0x1009489c]
addss xmm0, dword [ebp - 0x30]
movss dword [ebp + 6], xmm0
movss xmm0, dword [eax + 0x18]
addss xmm0, xmm0
mov dword [ebp + 0x1a], 0x3f800000
mov dword [ebp + 0x32], 0x3c23d70a
addss xmm0, dword [ebp - 0x2c]
movss dword [ebp + 0xa], xmm0
movss xmm0, dword [eax + 0x10]
mulss xmm0, xmm1
movss dword [ebp + 0x1e], xmm0
movss xmm0, dword [eax + 0x14]
mulss xmm0, xmm1
movss dword [ebp + 0x22], xmm0
movss xmm0, dword [eax + 0x18]
mulss xmm0, xmm1
movss dword [ebp + 0x26], xmm0
call fcn.1000172d
push ebx
push 8
lea eax, [ebp + 0x38]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x160]
mov byte [ebp + 0x38], 0xd2
call fcn.100019a3
push 0x36
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x160]
call fcn.10001952
mov ecx, dword [0x101a5528]
lea eax, [ebp - 0x160]
push edi
push 7
push ebx
push eax
call fcn.100409a6
lea ecx, [ebp - 0x160]
call fcn.10001748
lea ecx, [ebp - 0x274]
call fcn.10001748
pop ebx
lea ecx, [ebp - 0x388]
call fcn.10001748
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
add ebp, 0x3c
leave
ret