Function at 0x1000aa20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
cmp byte [0x102b18ac], 0
push esi
je 0x1000aca6
push dword [0x102b18a8]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000aca6
mov eax, dword [0x102b16b4]
mov ecx, dword [eax]
test ecx, ecx
je 0x1000aca6
call fcn.10099bc0
cmp eax, 8
je 0x1000aca6
mov eax, dword [0x102b16b4]
mov ecx, dword [eax]
call fcn.1000ef00
test byte [eax], 1
jne 0x1000aca6
mov eax, dword [0x102b16b4]
mov ecx, dword [eax]
call fcn.1000f210
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x1000aab1
sqrtsd xmm0, xmm0
jmp 0x1000aab6
call fcn.100a4700
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x100d2ef8]
comiss xmm0, xmm1
ja 0x1000aca6
push ecx
lea ecx, [esp + 0xb]
movss dword [esp], xmm1
call fcn.1000a830
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
ucomiss xmm0, dword [0x100ce534]
lahf
test ah, 0x44
jnp 0x1000aca6
mov esi, dword [ebp + 8]
mov eax, dword [0x102b16b4]
movss xmm0, dword [esi + 0x10]
mulss xmm0, dword [0x100d2ef0]
mov ecx, dword [eax]
divss xmm0, dword [0x100ce550]
movss dword [esp + 0x14], xmm0
call fcn.1000f210
movss xmm0, dword [eax]
mov eax, dword [0x102b16b4]
movss dword [esp + 0x18], xmm0
mov ecx, dword [eax]
call fcn.1000f210
movss xmm0, dword [eax + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
movss xmm0, dword [esp + 0x18]
fld qword [esp + 8]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.100a4820
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [esp + 0x14]
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x28]
xorps xmm0, xmmword [0x100ce570]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esi + 0x24]
fld qword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.100a4820
movss xmm1, dword [esp + 8]
fstp dword [esp + 0x18]
subss xmm1, dword [esp + 0x18]
push ecx
movss dword [esp + 0x18], xmm1
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.100a482a
movss xmm3, dword [0x100d2f00]
add esp, 4
test ax, ax
jg 0x1000ac12
movss xmm0, dword [esp + 0x14]
sub esp, 8
mov dword [esp + 4], 0x40c90fdb
movss dword [esp], xmm0
call fcn.100a4800
movss xmm3, dword [0x100d2f00]
add esp, 8
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
jmp 0x1000ac15
xorps xmm1, xmm1
movss xmm0, dword [esp + 8]
xorps xmm2, xmm2
comiss xmm0, dword [esp + 0x18]
jbe 0x1000ac34
comiss xmm1, dword [0x100d2ef0]
jb 0x1000ac4b
subss xmm1, xmm3
jmp 0x1000ac4b
movss xmm0, dword [0x100d3370]
comiss xmm0, xmm1
movss xmm0, dword [esp + 8]
jb 0x1000ac4b
addss xmm1, xmm3
comiss xmm2, xmm1
jbe 0x1000ac58
addss xmm0, dword [esp + 0x10]
jmp 0x1000ac5e
subss xmm0, dword [esp + 0x10]
movss dword [esp + 8], xmm0
cvtps2pd xmm0, xmm0
call fcn.100a8280
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x100d3360]
movss dword [esi + 0x24], xmm1
movss xmm1, dword [esp + 8]
cvtps2pd xmm0, xmm1
call fcn.100a8440
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x100ce570]
mulss xmm0, dword [0x100d3360]
movss dword [esi + 0x28], xmm0
pop esi
mov esp, ebp
pop ebp
ret