Function at 0x1800131d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0x100
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
mov rax, qword [0x180131010]
xor rax, rsp
mov qword [rbp + 0x17], rax
xorps xmm0, xmm0
lea rdx, [rbp - 0x29]
mov ecx, 0xba7
movaps xmm8, xmm3
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
movups xmmword [rbp - 9], xmm0
movups xmmword [rbp + 7], xmm0
movaps xmm7, xmm2
movaps xmm6, xmm1
call qword [sym.imp.OPENGL32.dll_glGetFloatv]
xorps xmm0, xmm0
lea rdx, [rbp - 0x79]
mov ecx, 0xba6
movups xmmword [rbp - 0x79], xmm0
movups xmmword [rbp - 0x69], xmm0
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rbp - 0x49], xmm0
call qword [sym.imp.OPENGL32.dll_glGetFloatv]
mov rdx, qword [0x180140c48]
lea r8, [rbp - 0x29]
movaps xmm2, xmm6
lea rcx, [0x180140c40]
shufps xmm2, xmm2, 0
movaps xmm0, xmm7
mulps xmm2, xmmword [rbp - 0x79]
movaps xmm1, xmm8
mov r9d, send
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [rbp - 0x69]
shufps xmm1, xmm1, 0
mulps xmm1, xmmword [rbp - 0x59]
addps xmm2, xmm0
addps xmm2, xmm1
addps xmm2, xmmword [rbp - 0x49]
movups xmmword [rbp - 0x49], xmm2
call fcn.180014d20
mov rdx, qword [0x180140c60]
lea r8, [rbp - 0x79]
mov r9d, send
lea rcx, [0x180140c58]
call fcn.180014d20
cmp byte [0x180140b34], 0
jne 0x18001365e
mov rax, qword [0x180140e60]
movss xmm7, dword [0x180121678]
movss xmm6, dword [0x1801216e0]
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x128], r14
xor r14d, r14d
mov qword [rsp + 0x120], rdi
lea ebx, [r14 + 0x30]
cmp byte [rax], r14b
je 0x18001344c
mov r8, qword [0x180140c60]
mov rdx, qword [0x180140c58]
mov rax, r8
sub rax, rdx
mov qword [rsp + 0x118], rsi
sar rax, 2
mov esi, r14d
test rax, rax
je 0x180013421
movss xmm8, dword [0x180121754]
mov edi, ebx
nop word [rax + rax]
lea rdx, [rbp - 0x79]
mov ecx, 0xba6
call qword [sym.imp.OPENGL32.dll_glGetFloatv]
movss xmm0, dword [rbp - 0x45]
movss xmm2, dword [rbp - 0x49]
movss xmm1, dword [rbp - 0x41]
mov rcx, qword [0x180140e60]
mulss xmm2, xmm2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm2, xmm0
movss xmm0, dword [rcx + 4]
addss xmm2, xmm1
mulss xmm2, xmm7
comiss xmm0, xmm2
jbe 0x1800133f6
mov rax, qword [0x180140c58]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
movss xmm0, dword [rdi + rax]
mulss xmm0, dword [rcx + 0xc]
lea ecx, [r9 + 1]
mulss xmm0, xmm8
addss xmm0, xmm6
cvttss2si rdx, xmm0
call qword [sym.imp.USER32.dll_mouse_event]
mov rax, qword [0x180140c58]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
movss xmm0, dword [rdi + rax]
lea ecx, [r9 + 1]
mov rax, qword [0x180140e60]
mulss xmm0, dword [rax + 0xc]
mulss xmm0, xmm8
subss xmm0, xmm6
cvttss2si rdx, xmm0
call qword [sym.imp.USER32.dll_mouse_event]
mov r8, qword [0x180140c60]
add esi, 0x10
mov rdx, qword [0x180140c58]
mov rcx, r8
sub rcx, rdx
movsxd rax, esi
sar rcx, 2
add rdi, 0x40
cmp rax, rcx
jb 0x180013340
mov rax, qword [0x180140c40]
cmp rax, qword [0x180140c48]
mov rsi, qword [rsp + 0x118]
je 0x180013440
mov qword [0x180140c48], rax
cmp rdx, r8
je 0x18001344c
mov qword [0x180140c60], rdx
mov rax, qword [0x180140e60]
cmp byte [rax + 0x10], r14b
je 0x1800135a6
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800135a6
mov r8, qword [0x180140c60]
mov edi, r14d
mov rdx, qword [0x180140c58]
mov rax, r8
sub rax, rdx
sar rax, 2
test rax, rax
je 0x180013583
nop word [rax + rax]
lea rdx, [rbp - 0x79]
mov ecx, 0xba6
call qword [sym.imp.OPENGL32.dll_glGetFloatv]
movss xmm2, dword [rbp - 0x49]
movss xmm0, dword [rbp - 0x45]
movss xmm1, dword [rbp - 0x41]
mov rcx, qword [0x180140e60]
mulss xmm2, xmm2
mulss xmm0, xmm0
movss xmm3, dword [rcx + 4]
mulss xmm1, xmm1
addss xmm3, xmm3
addss xmm2, xmm0
addss xmm2, xmm1
mulss xmm2, xmm7
comiss xmm3, xmm2
jbe 0x180013558
mov rax, qword [0x180140c58]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
movss xmm0, dword [rbx + rax]
mulss xmm0, dword [rcx + 0xc]
lea ecx, [r9 + 1]
addss xmm0, xmm0
addss xmm0, xmm6
cvttss2si rdx, xmm0
call qword [sym.imp.USER32.dll_mouse_event]
mov rax, qword [0x180140c58]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
movss xmm0, dword [rbx + rax]
lea ecx, [r9 + 1]
mov rax, qword [0x180140e60]
mulss xmm0, dword [rax + 0xc]
addss xmm0, xmm0
subss xmm0, xmm6
cvttss2si rdx, xmm0
call qword [sym.imp.USER32.dll_mouse_event]
mov r8, qword [0x180140c60]
add edi, 0x10
mov rdx, qword [0x180140c58]
mov rcx, r8
sub rcx, rdx
movsxd rax, edi
sar rcx, 2
add rbx, 0x40
cmp rax, rcx
jb 0x1800134a0
mov rax, qword [0x180140c40]
cmp rax, qword [0x180140c48]
je 0x18001359a
mov qword [0x180140c48], rax
cmp rdx, r8
je 0x1800135a6
mov qword [0x180140c60], rdx
cmp byte [0x180140b34], 0
mov r14, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x120]
jne 0x180013601
mov rax, qword [0x180140e48]
cmp byte [rax + 4], 0
je 0x180013601
mov rcx, qword [0x180140e50]
mov ecx, dword [rcx + 0x2c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180013601
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [0x180140e50]
mov ecx, dword [rcx + 0x2c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1800135e1
mov rax, qword [0x180140e60]
cmp byte [rax + 8], 0
je 0x180013656
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, 1
mov rcx, rax
mov r9d, edx
mov r8d, edx
mov rbx, rax
call qword [sym.imp.USER32.dll_PostMessageA]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 1]
call qword [sym.imp.USER32.dll_PostMessageA]
mov rcx, qword [0x180140e60]
mov eax, 0x3e8
cdq
idiv dword [rcx + 0x1c]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rbx, qword [rsp + 0x110]
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.18006fda0
lea r11, [rsp + 0x100]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rbp
ret