Function at 0x1400159d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x80
movss xmm0, dword [r8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
jp 0x140015a18
jne 0x140015a18
movss xmm0, dword [r8 + 4]
ucomiss xmm0, xmm1
jp 0x140015a18
jne 0x140015a18
movss xmm0, dword [r8 + 8]
ucomiss xmm0, xmm1
jp 0x140015a18
je 0x140015ca8
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm8
call fcn.140005410
mov r8, qword [0x1400fe458]
lea rdx, [rsp + 0xa0]
mov rcx, rax
call fcn.140015e40
movss xmm3, dword [rbx + 8]
lea rcx, [rsp + 0x28]
movss xmm2, dword [rbx + 4]
movss xmm1, dword [rbx]
subss xmm3, dword [rdi + 8]
subss xmm2, dword [rdi + 4]
subss xmm1, dword [rdi]
call fcn.1400156c0
movss xmm7, dword [rsp + 0x28]
movss xmm6, dword [rsp + 0x2c]
movaps xmm1, xmm7
movaps xmm0, xmm6
call fcn.140096238
movss xmm1, dword [rsp + 0xa4]
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm2, qword [0x1400daad0]
movaps xmm0, xmm6
subsd xmm2, xmm1
cvtpd2ps xmm8, xmm2
call fcn.140015e80
movaps xmm6, xmm0
movaps xmm0, xmm7
call fcn.140015e80
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x140015ace
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x140015ad6
movaps xmm0, xmm6
call fcn.14009a598
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [rsp + 0x30]
divss xmm0, xmm1
call fcn.140015550
xorps xmm0, xmmword [0x1400dae00]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm0, dword [rsp + 0xa0]
mulsd xmm1, qword [0x1400daad0]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
cvtpd2ps xmm6, xmm1
movaps xmm0, xmm6
call fcn.140015e80
movaps xmm7, xmm0
movaps xmm0, xmm8
call fcn.140015e80
addsd xmm7, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm7
ja 0x140015b40
xorps xmm0, xmm0
sqrtsd xmm0, xmm7
jmp 0x140015b48
movaps xmm0, xmm7
call fcn.14009a598
movaps xmm7, xmmword [rsp + 0x60]
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x1400edce0]
ja 0x140015c9d
addss xmm8, dword [rsp + 0xa4]
addss xmm6, dword [rsp + 0xa0]
mov rcx, rsi
call fcn.140015590
cmp eax, 1
jle 0x140015c41
lea rcx, [rsp + 0xa8]
call fcn.140014110
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.140015610
cmp qword [rax], 0
jbe 0x140015c9d
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.140015610
cmp qword [rax], 0xffff
ja 0x140015c9d
call fcn.140005410
lea rdx, [rsp + 0x28]
mov rcx, rsi
mov rdi, rax
call fcn.140015610
lea rdx, [rsp + 0x38]
mov rcx, qword [rax]
lea rbx, [rcx + rcx*2]
mov rcx, rsi
shl rbx, 2
call fcn.140015610
mov r9d, 8
lea r8, [rsp + 0xa8]
mov rcx, rdi
mov rdx, qword [rax + 8]
add rdx, 0xfffffffffffffff4
add rdx, rbx
call fcn.140004850
test al, al
je 0x140015c9d
movss xmm0, dword [rsp + 0xac]
mulss xmm0, dword [0x1400daab0]
subss xmm8, xmm0
movss xmm0, dword [rsp + 0xa8]
mulss xmm0, dword [0x1400daab0]
subss xmm6, xmm0
movaps xmm2, xmm8
lea rcx, [rsp + 0x20]
movaps xmm1, xmm6
call fcn.1400156a0
mov ecx, dword [0x1400fe468]
cmp ecx, 1
jne 0x140015c6f
call fcn.140005410
mov rdx, qword [0x1400fe470]
add rdx, 0x50
jmp 0x140015c90
test ecx, ecx
jne 0x140015c9d
mov ecx, dword [0x1400edce4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140015c9d
call fcn.140005410
mov rdx, qword [0x1400fe458]
lea r8, [rsp + 0x20]
mov rcx, rax
call fcn.140015560
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x50]
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret