Function at 0x1005110a
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
sub esp, 0x38
mov eax, 0x100942b8
call fcn.1006d4b8
sub esp, 0x37c
call fcn.1002b86b
test eax, eax
jne 0x100514a1
cmp dword [0x101c74c8], eax
je 0x100514a1
cmp dword [0x101b32bc], eax
je 0x100514a1
cmp dword [0x101b32c0], eax
je 0x100514a1
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 9
call esi
test ax, ax
jns 0x1005116c
cmp dword [0x10196b22], 0
jne 0x100514a0
mov eax, dword [0x101b32d4]
push edi
xor edi, edi
cmp dword [eax], edi
jne 0x1005149f
push 0x79
call esi
test ax, ax
js 0x1005149f
cmp dword [0x101c74dc], edi
je 0x1005149f
push dword [0x101c74e4]
call fcn.1002bb0f
pop ecx
test eax, eax
jne 0x1005149f
call fcn.1002b86b
test eax, eax
jne 0x1005149f
cmp dword [0x101c74c8], edi
je 0x1005149f
cmp dword [0x101b32bc], edi
je 0x1005149f
cmp dword [0x101b32c0], edi
je 0x1005149f
push 9
call esi
test ax, ax
jns 0x100511ef
cmp dword [0x10196b22], edi
jne 0x1005149f
mov eax, dword [0x101b32d4]
cmp dword [eax], edi
jne 0x1005149f
push 0x79
call esi
test ax, ax
js 0x1005149f
cmp dword [0x101c74dc], edi
je 0x1005149f
push dword [0x101c74e4]
call fcn.1002bb0f
pop ecx
test eax, eax
jne 0x1005149f
lea ecx, [ebp - 0x388]
call fcn.1000158d
mov eax, dword [0x10171a30]
mov dword [ebp - 4], edi
cmp byte [eax + 0x155db], 0
je 0x10051494
push ebx
xor ebx, ebx
inc ebx
push ebx
call fcn.10046135
pop ecx
test eax, eax
je 0x10051493
call fcn.1004c156
mov eax, dword [0x10171a30]
cmp dword [eax + 0x1ef45], 0x7d0
jl 0x1005127d
mov dword [eax + 0x1ef45], edi
mov eax, dword [0x10171a30]
push edi
push dword [eax + 0x1ef45]
call fcn.1002dc65
push 0x3f
lea eax, [ebp - 0x4c]
push edi
push eax
call fcn.1006fb00
mov ecx, dword [0x101b32c0]
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.10046916
mov ecx, dword [0x101b32c0]
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 [0x10171a30]
mov ax, word [eax + 0x1ef45]
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.1000158d
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.10001803
push 0x3f
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x274]
call fcn.100017b2
mov ecx, dword [0x101b32a0]
lea eax, [ebp - 0x274]
push edi
push 7
push ebx
push eax
call fcn.1004700f
mov eax, dword [0x10171a30]
xorps xmm0, xmm0
movlpd qword [ebp + 0xe], xmm0
movlpd qword [ebp + 0x2a], xmm0
mov dword [ebp + 0x16], edi
mov ax, word [eax + 0x1ef45]
mov word [ebp], ax
mov eax, dword [0x100f1e18]
movss xmm0, dword [eax + 0x10]
mulss xmm0, dword [0x100a12e8]
addss xmm0, dword [ebp - 0x34]
movss dword [ebp + 2], xmm0
movss xmm0, dword [eax + 0x14]
lea ecx, [ebp - 0x160]
mulss xmm0, dword [0x100a8e4c]
movss xmm1, dword [0x100a8e58]
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.1000158d
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.10001803
push 0x36
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x160]
call fcn.100017b2
mov ecx, dword [0x101b32a0]
lea eax, [ebp - 0x160]
push edi
push 7
push ebx
push eax
call fcn.1004700f
lea ecx, [ebp - 0x160]
call fcn.100015a8
lea ecx, [ebp - 0x274]
call fcn.100015a8
pop ebx
lea ecx, [ebp - 0x388]
call fcn.100015a8
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
add ebp, 0x3c
leave
ret