Function at 0x10017e10
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x820
mov eax, dword [0x1020a06c]
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.1019aa40
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.Main.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, 0x1023cc80
call fcn.10018a20
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
je 0x10017fc1
push ecx
movss xmm0, dword [0x10610030]
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 [0x101fa74c]
divss xmm0, dword [edx + 0x18]
divss xmm0, dword [0xe7c3d4]
movss dword [0x10610034], xmm0
mov eax, dword [ebp + 0xc]
movss xmm0, dword [0x101fa74c]
divss xmm0, dword [eax + 0x1c]
divss xmm0, dword [0xe7c3d8]
movss dword [0x10610038], xmm0
mov ecx, dword [ebp + 0xc]
movss xmm0, dword [ecx + 0x1c]
divss xmm0, dword [0x101fa74c]
mulss xmm0, dword [0x101fa280]
movss dword [0x10610030], xmm0
mov edx, dword [ebp + 0xc]
movss xmm0, dword [edx + 4]
addss xmm0, dword [0x10610030]
subss xmm0, dword [ebp - 0x808]
movss xmm1, dword [0x101f9f88]
mulss xmm1, dword [0xe7c3d8]
subss xmm0, xmm1
movss dword [0x1061003c], xmm0
push 0
push ecx
movss xmm0, dword [0x10610038]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10610034]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fa74c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fa74c]
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 [0x101fa74c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x101fa74c]
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, 0x1023cc80
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 [0x1061003c]
push eax
mov ecx, dword [ebp + 0xc]
cvttss2si edx, dword [ecx]
push edx
mov eax, dword [0x10260164]
push eax
push 0x10260160
call fcn.10066750
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.1014c2d1
mov esp, ebp
pop ebp
ret