Function at 0x180087130
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm7
mov rax, qword [0x1800e5040]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rdi, rcx
cmp byte [rcx + 8], 0
je 0x1800873eb
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
movss xmm7, dword [rdi + 0x10]
cvtps2pd xmm7, xmm7
mulsd xmm7, qword [0x1800d55c0]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov r8d, eax
mov eax, 0x66666667
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*4]
sub r8d, ecx
movd xmm0, r8d
cvtdq2pd xmm0, xmm0
subsd xmm7, xmm0
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1800d56dc]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x1800d55c8]
subsd xmm7, xmm1
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1800d56dc]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [0x1800d55e0]
addsd xmm1, xmm7
cvtpd2ps xmm6, xmm1
mov ecx, dword [0x1800e641c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x1800e81e4], eax
jle 0x18008727a
lea rcx, [0x1800e81e4]
call fcn.1800905cc
cmp dword [0x1800e81e4], 0xffffffff
jne 0x18008727a
movss xmm0, dword [0x1800d56cc]
divss xmm0, dword [rdi + 0x10]
subss xmm0, xmm6
cvttss2si rbx, xmm0
mov qword [0x1800e81e8], 0
lea rcx, [rsp + 0x28]
call fcn.180090450
mov rdx, qword [rax]
mov qword [0x1800e81e8], rdx
mov qword [0x1800e81f0], rbx
lea rcx, [0x1800e81e4]
call fcn.180090560
cmp byte [0x1800e6848], 0
jne 0x1800873eb
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800873eb
cmp byte [rdi + 0x14], 0
jne 0x1800872e6
lea rdx, [rsp + 0x28]
mov rcx, qword [0x1800e6de0]
call fcn.180066c40
mov rbx, qword [rax + 8]
cmp qword [0x1800e6830], 0
je 0x1800872dd
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x1800872dd
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test rbx, rbx
jne 0x1800873eb
lea rcx, [rsp + 0x28]
call fcn.180090450
mov r8, qword [rsp + 0x28]
mov rcx, r8
sub rcx, qword [0x1800e81e8]
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [0x1800e81f0]
je 0x180087329
jl 0x1800873eb
mov qword [0x1800e81e8], r8
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rsp + 0x24]
shl r9d, 0x10
movzx eax, word [rsp + 0x20]
or r9, rax
mov edx, 0x201
mov r8d, 1
mov rcx, qword [0x1800e6840]
call qword [sym.imp.USER32.dll_SendMessageA]
movzx r9d, word [rsp + 0x24]
shl r9d, 0x10
movzx eax, word [rsp + 0x20]
or r9, rax
mov edx, 0x202
mov r8d, 1
mov rcx, qword [0x1800e6840]
call qword [sym.imp.USER32.dll_SendMessageA]
call fcn.180066d80
movss xmm1, dword [rdi + 0x10]
movaps xmm0, xmm1
subss xmm0, xmm6
cvttss2si eax, xmm0
mov dword [rsp + 0x28], eax
cvttss2si eax, xmm1
mov dword [rsp + 0x2c], eax
lea rcx, [rsp + 0x28]
call fcn.1800847c0
mov ecx, eax
mov eax, 0x3e8
cdq
idiv ecx
movsxd rbx, eax
lea rcx, [rsp + 0x28]
call fcn.180090450
mov rcx, qword [rax]
mov qword [0x1800e81e8], rcx
mov qword [0x1800e81f0], rbx
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.180090540
mov rbx, qword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x60
pop rdi
ret