Function at 0x10017e10
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x820
mov eax, dword [0x1020b06c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x818], 0x7ff
mov eax, dword [ebp - 0x818]
push eax
push 0
lea ecx, [ebp - 0x804]
push ecx
call fcn.1019bb90
add esp, 0xc
lea edx, [ebp + 0x14]
mov dword [ebp - 0x81c], edx
mov eax, dword [ebp - 0x81c]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x818]
push edx
lea eax, [ebp - 0x804]
push eax
call sym.Client_Clean_.dll_vsprintf_s
add esp, 0x10
mov dword [ebp - 0x820], eax
mov dword [ebp - 0x81c], 0
lea ecx, [ebp - 0x804]
push ecx
lea edx, [ebp - 0x814]
push edx
mov ecx, 0x1023dc90
call fcn.10018a20
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
je 0x10017fc1
push ecx
movss xmm0, dword [0x10611048]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
push ecx
movss xmm0, dword [ecx + 0x18]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
push ecx
movss xmm0, dword [edx + 4]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
push ecx
movss xmm0, dword [eax]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10018190
movzx ecx, al
test ecx, ecx
je 0x10017f23
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2a]
test eax, eax
jne 0x10017f23
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x2a], 1
cvtsi2ss xmm0, dword [0x879340c]
mov edx, dword [ebp + 0xc]
movss dword [edx + 0x10], xmm0
cvtsi2ss xmm0, dword [0x8793410]
mov eax, dword [ebp + 0xc]
movss dword [eax + 0x14], xmm0
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x2a]
test edx, edx
je 0x10017fbf
cvtsi2ss xmm0, dword [0x879340c]
mov eax, dword [ebp + 0xc]
subss xmm0, dword [eax + 0x10]
mov ecx, dword [ebp + 0xc]
addss xmm0, dword [ecx]
mov edx, dword [ebp + 0xc]
movss dword [edx], xmm0
cvtsi2ss xmm0, dword [0x8793410]
mov eax, dword [ebp + 0xc]
subss xmm0, dword [eax + 0x14]
mov ecx, dword [ebp + 0xc]
addss xmm0, dword [ecx + 4]
mov edx, dword [ebp + 0xc]
movss dword [edx + 4], xmm0
cvtsi2ss xmm0, dword [0x879340c]
mov eax, dword [ebp + 0xc]
movss dword [eax + 0x10], xmm0
cvtsi2ss xmm0, dword [0x8793410]
mov ecx, dword [ebp + 0xc]
movss dword [ecx + 0x14], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
movss xmm0, dword [edx]
addss xmm0, dword [eax + 0x18]
mov ecx, dword [ebp + 0xc]
movss dword [ecx + 0x20], xmm0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
movss xmm0, dword [edx + 4]
addss xmm0, dword [eax + 0x1c]
mov ecx, dword [ebp + 0xc]
movss dword [ecx + 0x24], xmm0
jmp 0x10017fd3
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x2a]
test eax, eax
je 0x10017fd3
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x2a], 0
mov edx, dword [ebp + 0xc]
movss xmm0, dword [0x101fb864]
divss xmm0, dword [edx + 0x18]
divss xmm0, dword [0xe7c3d4]
movss dword [0x1061104c], xmm0
mov eax, dword [ebp + 0xc]
movss xmm0, dword [0x101fb864]
divss xmm0, dword [eax + 0x1c]
divss xmm0, dword [0xe7c3d8]
movss dword [0x10611050], xmm0
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [ecx + 0x1c]
divss xmm0, dword [0x101fb864]
mulss xmm0, dword [0x101fb398]
movss dword [0x10611048], xmm0
mov edx, dword [ebp + 0xc]
movss xmm0, dword [edx + 4]
addss xmm0, dword [0x10611048]
subss xmm0, dword [ebp - 0x808]
movss xmm1, dword [0x101fb0a0]
mulss xmm1, dword [0xe7c3d8]
subss xmm0, xmm1
movss dword [0x10611054], xmm0
push 0
push ecx
movss xmm0, dword [0x10611050]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x1061104c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fb864]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
push ecx
movss xmm0, dword [eax + 4]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
push ecx
movss xmm0, dword [ecx]
movss dword [esp], xmm0
push 0xf1007
mov ecx, 0x1023dc90
call fcn.10016f70
lea edx, [ebp - 0x804]
push edx
push 3
cvttss2si eax, dword [ebp - 0x808]
push eax
mov ecx, dword [ebp + 0xc]
cvttss2si edx, dword [ecx + 0x18]
push edx
push 0
push 0xffffffffffffffff
cvttss2si eax, dword [0x10611054]
push eax
mov ecx, dword [ebp + 0xc]
cvttss2si edx, dword [ecx]
push edx
mov eax, dword [0x10261174]
push eax
push 0x10261170
call fcn.10066c20
add esp, 0x28
mov ecx, dword [ebp + 0xc]
push ecx
movss xmm0, dword [ecx + 0x1c]
movss dword [esp], xmm0
mov edx, dword [ebp + 0xc]
push ecx
movss xmm0, dword [edx + 0x18]
movss dword [esp], xmm0
mov eax, dword [ebp + 0xc]
push ecx
movss xmm0, dword [eax + 4]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
push ecx
movss xmm0, dword [ecx]
movss dword [esp], xmm0
mov ecx, dword [ebp + 8]
call fcn.10018190
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1014d1c5
mov esp, ebp
pop ebp
ret