Function at 0x180027eb0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0x100
mov rax, qword [0x1802269e8]
xor rax, rsp
mov qword [rbp - 0x11], rax
cmp byte [0x1802271e4], 0
je 0x180028296
mov ecx, dword [0x18018b240]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180028296
mov qword [rsp + 0x110], rbx
call fcn.180026a40
mov rbx, rax
test rax, rax
je 0x18002828e
mov rcx, qword [rax + 0x180]
movdqu xmm0, xmmword [rax + 0x430]
pshufd xmm1, xmm0, 0
movaps xmmword [rsp + 0xf0], xmm6
movups xmm4, xmmword [rcx]
movups xmm6, xmmword [rcx + 0x10]
movaps xmm5, xmm4
pshufd xmm3, xmm0, 0xaa
mulps xmm5, xmm1
movaps xmmword [rsp + 0xe0], xmm7
movups xmm7, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0xd0], xmm8
movaps xmm1, xmm7
movups xmm8, xmmword [rcx + 0x30]
mov ecx, dword [0x1802271ec]
addps xmm5, xmm8
pshufd xmm2, xmm0, 0x55
movaps xmm0, xmm6
mulps xmm0, xmm2
mulps xmm1, xmm3
movaps xmmword [rsp + 0xc0], xmm9
movaps xmmword [rsp + 0xb0], xmm10
addps xmm5, xmm0
movd xmm10, dword [0x1802271a8]
movaps xmmword [rsp + 0xa0], xmm11
movd xmm11, dword [0x1802271ac]
cvtdq2ps xmm10, xmm10
addps xmm5, xmm1
mulss xmm10, dword [0x1800bd774]
cvtdq2ps xmm11, xmm11
movss dword [rbp - 0x39], xmm5
movaps xmm0, xmm5
mulss xmm11, dword [0x1800bd774]
movaps xmm3, xmm5
shufps xmm0, xmm5, 0x55
shufps xmm3, xmm5, 0xaa
movss dword [rbp - 0x35], xmm0
movss dword [rbp - 0x31], xmm3
test ecx, ecx
je 0x180028035
sub ecx, 1
je 0x18002802b
cmp ecx, 1
jne 0x180028052
movdqu xmm0, xmmword [rax + 0x4b0]
pshufd xmm3, xmm0, 0xaa
pshufd xmm1, xmm0, 0
mulps xmm4, xmm1
pshufd xmm2, xmm0, 0x55
mulps xmm7, xmm3
addps xmm4, xmm8
mulps xmm6, xmm2
addps xmm4, xmm6
addps xmm4, xmm7
movaps xmm0, xmm4
movss dword [rbp - 0x39], xmm4
shufps xmm0, xmm4, 0x55
movaps xmm5, xmm4
shufps xmm4, xmm4, 0xaa
movss dword [rbp - 0x31], xmm4
movaps xmm3, xmm4
jmp 0x18002804d
movdqu xmm0, xmmword [rax + 0x4a0]
jmp 0x180027fec
movaps xmm3, xmm5
movaps xmm0, xmm5
movss dword [rbp - 0x39], xmm3
shufps xmm3, xmm3, 0xaa
movss dword [rbp - 0x31], xmm3
shufps xmm0, xmm5, 0x55
movss dword [rbp - 0x35], xmm0
lea rax, [rbp - 0x15]
mov qword [rbp - 0x19], 0
mov qword [rsp + 0x28], rax
movaps xmm2, xmm0
lea rax, [rbp - 0x19]
movaps xmm1, xmm5
movabs rcx, 0x34e82f05df2974f5
mov qword [rsp + 0x20], rax
xorps xmm9, xmm9
call fcn.1800038d0
movss xmm1, dword [rbp - 0x15]
movss xmm8, dword [rbp - 0x19]
movd xmm0, dword [0x1802271a8]
cvtdq2ps xmm0, xmm0
mulss xmm8, xmm0
movd xmm0, dword [0x1802271ac]
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x19], xmm8
mulss xmm1, xmm0
cvtps2pd xmm0, xmm1
movss dword [rbp - 0x15], xmm1
cvtps2pd xmm1, xmm11
subsd xmm0, xmm1
movsd xmm1, qword [0x1800bd7d8]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1800bd7d8]
movaps xmm7, xmm0
cvtps2pd xmm0, xmm8
cvtps2pd xmm2, xmm10
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm11, xmmword [rsp + 0xa0]
addsd xmm7, xmm0
movaps xmm10, xmmword [rsp + 0xb0]
xorps xmm0, xmm0
movaps xmm8, xmmword [rsp + 0xd0]
xorps xmm1, xmm1
cvtsd2ss xmm0, xmm7
ucomiss xmm1, xmm0
ja 0x180028125
xorps xmm1, xmm1
sqrtss xmm1, xmm0
jmp 0x18002812d
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm0
mov ecx, dword [0x1802271f0]
test ecx, ecx
je 0x1800282dd
sub ecx, 1
je 0x1800282ab
cmp ecx, 1
jne 0x180028275
mov eax, dword [0x18018b1cc]
lea ecx, [rax + rax*4]
add ecx, ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x180028275
mov rax, qword [0x180227138]
mov rcx, qword [rax]
test rcx, rcx
je 0x180028275
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x180028275
mov rax, qword [0x180227160]
mov rcx, qword [rax + rdx]
test rcx, rcx
je 0x180028275
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x180028275
mov qword [rsp + 0x118], rdi
mov rdi, qword [rax + 0x10]
call fcn.180026a40
test rax, rax
jne 0x1800281c7
xorps xmm6, xmm6
xorps xmm7, xmm7
jmp 0x1800281e5
movsd xmm1, qword [rax + 0x90]
movss xmm7, dword [rax + 0x98]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movaps xmm9, xmm1
movaps xmm6, xmm0
movabs rcx, 0xd80958fc74e988a6
call fcn.180003550
mov ebx, eax
test eax, eax
je 0x18002826d
mov edx, eax
movabs rcx, 0x34616828cd07f1a1
call fcn.1800035f0
test eax, eax
je 0x18002826d
movss xmm0, dword [0x1800bd7e4]
xor eax, eax
movss dword [rsp + 0x68], xmm0
movaps xmm3, xmm7
mov dword [rsp + 0x60], eax
movaps xmm2, xmm6
mov dword [rsp + 0x58], 1
movaps xmm1, xmm9
mov dword [rsp + 0x50], ebx
movabs rcx, 0x867654cbc7606f2c
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x40], eax
mov eax, dword [0x18018b228]
mov dword [rsp + 0x38], eax
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm9
call fcn.180004840
mov rdi, qword [rsp + 0x118]
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xc0]
mov rbx, qword [rsp + 0x110]
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.18007ede0
add rsp, 0x100
pop rbp
ret
mov eax, dword [0x18018b1cc]
lea ecx, [rax + rax*4]
add ecx, ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x180028275
movsd xmm0, qword [rbp - 0x39]
lea rcx, [rbp - 0x29]
mov eax, dword [rbp - 0x31]
movsd qword [rbp - 0x29], xmm0
mov dword [rbp - 0x21], eax
call fcn.18003fe00
jmp 0x180028275
mov rcx, rbx
call fcn.18003f3a0
jmp 0x180028275