Function at 0x1800178b0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0xd8
mov rax, qword [0x18023c300]
xor rax, rsp
mov qword [rsp + 0x48], rax
cmp byte [0x18023cb70], 0
je 0x180017b94
mov ecx, dword [0x180197c20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180017b94
mov qword [rsp + 0xd0], rbx
call fcn.180016330
mov rbx, rax
test rax, rax
je 0x180017b8c
mov rcx, qword [rax + 0x180]
movdqu xmm0, xmmword [rax + 0x430]
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
movups xmm4, xmmword [rcx]
movups xmm5, xmmword [rcx + 0x10]
movups xmm7, xmmword [rcx + 0x30]
movups xmm6, xmmword [rcx + 0x20]
mov ecx, dword [0x18023cb78]
movaps xmmword [rsp + 0xa0], xmm8
movaps xmm8, xmm4
pshufd xmm1, xmm0, 0
mulps xmm8, xmm1
movaps xmm1, xmm6
movaps xmmword [rsp + 0x90], xmm9
movaps xmmword [rsp + 0x80], xmm10
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x60], xmm12
addps xmm8, xmm7
pshufd xmm3, xmm0, 0xaa
xorps xmm12, xmm12
movaps xmmword [rsp + 0x50], xmm13
xorps xmm13, xmm13
pshufd xmm2, xmm0, 0x55
movaps xmm0, xmm5
mulps xmm0, xmm2
mulps xmm1, xmm3
cvtsi2ss xmm12, dword [0x18023cb38]
addps xmm8, xmm0
mulss xmm12, dword [0x1800ac8e4]
cvtsi2ss xmm13, dword [0x18023cb3c]
addps xmm8, xmm1
mulss xmm13, dword [0x1800ac8e4]
movaps xmm10, xmm8
movaps xmm11, xmm8
shufps xmm10, xmm8, 0x55
shufps xmm11, xmm8, 0xaa
test ecx, ecx
je 0x180017a27
sub ecx, 1
je 0x1800179e7
cmp ecx, 1
jne 0x180017a3c
movdqu xmm0, xmmword [rax + 0x4b0]
jmp 0x1800179ef
movdqu xmm0, xmmword [rax + 0x4a0]
pshufd xmm1, xmm0, 0
mulps xmm4, xmm1
pshufd xmm2, xmm0, 0x55
mulps xmm5, xmm2
addps xmm4, xmm7
pshufd xmm3, xmm0, 0xaa
mulps xmm6, xmm3
addps xmm4, xmm5
addps xmm4, xmm6
movaps xmm10, xmm4
movaps xmm8, xmm4
shufps xmm10, xmm4, 0x55
shufps xmm4, xmm4, 0xaa
movaps xmm11, xmm4
jmp 0x180017a3c
movaps xmm1, xmm8
movaps xmm10, xmm1
shufps xmm10, xmm1, 0x55
shufps xmm1, xmm1, 0xaa
movaps xmm11, xmm1
lea rax, [rsp + 0x44]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x28], rax
movaps xmm3, xmm11
lea rax, [rsp + 0x40]
movaps xmm2, xmm10
movaps xmm1, xmm8
mov qword [rsp + 0x20], rax
movabs rcx, 0x34e82f05df2974f5
call fcn.180001970
movd xmm0, dword [0x18023cb3c]
movd xmm9, dword [0x18023cb38]
mov ecx, dword [0x18023cb7c]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm9, xmm9
mulss xmm0, dword [rsp + 0x44]
mulss xmm9, dword [rsp + 0x40]
movss dword [rsp + 0x44], xmm0
movss dword [rsp + 0x40], xmm9
test ecx, ecx
je 0x180017b47
cmp ecx, 1
jne 0x180017b4f
cvtps2pd xmm1, xmm13
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
movsd xmm1, qword [0x1800ac950]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1800ac950]
movaps xmm7, xmm0
cvtps2pd xmm0, xmm9
cvtps2pd xmm2, xmm12
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
ucomiss xmm1, xmm0
ja 0x180017b0a
sqrtss xmm0, xmm0
jmp 0x180017b0f
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov eax, dword [0x180197bb8]
lea ecx, [rax + rax*4]
add ecx, ecx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x180017b4f
movaps xmm0, xmm8
movss dword [rsp + 0x38], xmm11
unpcklps xmm0, xmm10
lea rcx, [rsp + 0x30]
movsd qword [rsp + 0x30], xmm0
call fcn.180030d10
jmp 0x180017b4f
mov rcx, rbx
call fcn.18002f9e0
movaps xmm12, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm13, xmmword [rsp + 0x50]
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.18006edb0
add rsp, 0xd8
ret