Function at 0x7ff6989f2f40
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x128]
sub rsp, 0x1e8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
lea rcx, [0x7ff698a89b20]
call sub.msvcp140.dll__Mtx_lock
test eax, eax
jne 0x7ff6989f375d
cmp dword [0x7ff698a89b6c], 0x7fffffff
je 0x7ff6989f3768
lea rdx, [0x7ff698a89ef0]
lea rcx, [rbp - 0x58]
call fcn.7ff6989e9980
nop
mov rcx, qword [0x7ff698a89ef8]
sub rcx, qword [0x7ff698a89ef0]
movabs rsi, 0x6666666666666667
mov rax, rsi
imul rcx
mov r8, rdx
sar r8, 5
mov rax, r8
shr rax, 0x3f
add r8, rax
mov rcx, qword [rbp - 0x48]
mov rdi, qword [rbp - 0x58]
sub rcx, rdi
mov rax, rsi
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r8, rdx
jbe 0x7ff6989f303d
movabs rax, 0x333333333333333
cmp r8, rax
ja 0x7ff6989f3757
mov rdx, r8
lea rcx, [rbp - 0x58]
call fcn.7ff6989f2bb0
mov rdi, qword [rbp - 0x58]
lea rcx, [0x7ff698a89b20]
call sub.msvcp140.dll__Mtx_unlock
movss xmm12, dword [0x7ff698a61cb0]
xor ebx, ebx
xorps xmm9, xmm9
xorps xmm10, xmm10
xorps xmm11, xmm11
mov r12d, ebx
mov rcx, qword [rbp - 0x50]
sub rcx, rdi
mov rax, rsi
imul rcx
mov rcx, rdx
sar rcx, 5
mov rax, rcx
shr rax, 0x3f
add rcx, rax
mov qword [rbp + 0x140], rcx
je 0x7ff6989f33e7
mov eax, ebx
movsd xmm13, qword [0x7ff698a677e0]
nop dword [rax]
lea rax, [rax + rax*4]
add rax, rax
movups xmm6, xmmword [rdi + rax*8]
movups xmm7, xmmword [rdi + rax*8 + 0x10]
mov r8d, 0x42
movq qword [rbp + 0x138], xmm7
movq rdx, xmm7
lea rcx, [rsp + 0x60]
call fcn.7ff6989eccc0
movsd xmm0, qword [rsp + 0x60]
movsd qword [rbp - 0x40], xmm0
mov r14d, dword [rsp + 0x68]
mov dword [rbp - 0x38], r14d
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x50]
call fcn.7ff6989f2460
mov r8d, 3
movq rdx, xmm7
lea rcx, [rsp + 0x40]
call fcn.7ff6989eccc0
movsd xmm0, qword [rsp + 0x40]
movsd qword [rbp - 0x30], xmm0
mov r13d, dword [rsp + 0x48]
mov dword [rbp - 0x28], r13d
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x10]
call fcn.7ff6989f2460
mov r8d, 5
movq rdx, xmm7
lea rcx, [rsp + 0x70]
call fcn.7ff6989eccc0
movsd xmm0, qword [rsp + 0x70]
movsd qword [rbp - 0x20], xmm0
mov r15d, dword [rsp + 0x78]
mov dword [rbp - 0x18], r15d
lea rdx, [rbp - 0x20]
lea rcx, [rbp]
call fcn.7ff6989f2460
movq rdi, xmm6
lea rdx, [rdi + 0x158]
lea rax, [rbp + 0x148]
mov qword [rsp + 0x20], rax
mov r9d, 8
lea r8, [rbp + 0x130]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_ReadProcessMemory]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x38], 0
mov rdx, qword [rbp + 0x130]
add rdx, 0x164
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0xc
lea r8, [rsp + 0x30]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_ReadProcessMemory]
movsd xmm0, qword [rsp + 0x30]
movsd qword [rbp - 0x80], xmm0
mov esi, dword [rsp + 0x38]
mov dword [rbp - 0x78], esi
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x70]
call fcn.7ff6989f2460
cmp byte [0x7ff698a898cc], 0
je 0x7ff6989f33c6
shufps xmm7, xmm7, 0xaa
movss xmm0, dword [0x7ff698a89858]
comiss xmm0, xmm7
jbe 0x7ff6989f33c6
cmp byte [0x7ff698a898d3], 0
je 0x7ff6989f322b
mov rcx, qword [rbp + 0x138]
call fcn.7ff6989f3dd0
test al, al
je 0x7ff6989f33c6
cmp byte [0x7ff698a89860], 0
je 0x7ff6989f32fe
mov eax, dword [0x7ff698a897d4]
cdq
sub eax, edx
sar eax, 1
movd xmm8, eax
cvtdq2pd xmm8, xmm8
mov eax, dword [0x7ff698a897d0]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movss xmm7, dword [rbp - 0x6c]
cvtps2pd xmm7, xmm7
movss xmm1, dword [rbp - 0x70]
cvtps2pd xmm1, xmm1
subsd xmm0, xmm1
movaps xmm1, xmm13
call sub.ucrtbase.dll_pow
movaps xmm6, xmm0
subsd xmm8, xmm7
movaps xmm1, xmm13
movaps xmm0, xmm8
call sub.ucrtbase.dll_pow
movaps xmm1, xmm0
addsd xmm1, xmm6
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x7ff6989f32ab
xorps xmm0, xmm0
sqrtsd xmm0, xmm1
jmp 0x7ff6989f32b3
movaps xmm0, xmm1
call sub.ucrtbase.dll_sqrt
movss xmm1, dword [0x7ff698a89824]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
jbe 0x7ff6989f33c6
xorps xmm1, xmm1
cvtss2sd xmm1, xmm12
comisd xmm1, xmm0
jbe 0x7ff6989f33c6
xorps xmm12, xmm12
cvtsd2ss xmm12, xmm0
mov rbx, rdi
movss xmm9, dword [rsp + 0x30]
movss xmm10, dword [rsp + 0x34]
movd xmm11, esi
jmp 0x7ff6989f33c6
mov eax, dword [0x7ff698a897d0]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm1, dword [rsp + 0x50]
subss xmm1, xmm0
mov eax, dword [0x7ff698a897d4]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm2, dword [rsp + 0x54]
subss xmm2, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x7ff6989f3353
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x7ff6989f335b
movaps xmm0, xmm2
call sub.ucrtbase.dll_sqrtf
movss xmm1, dword [0x7ff698a89824]
comiss xmm1, xmm0
jbe 0x7ff6989f33c6
comiss xmm12, xmm0
jbe 0x7ff6989f33c6
mov eax, dword [0x7ff698a89ba8]
test eax, eax
mov rbx, rdi
movaps xmm12, xmm0
jne 0x7ff6989f3394
movd xmm11, r14d
movss xmm10, dword [rsp + 0x64]
movss xmm9, dword [rsp + 0x60]
jmp 0x7ff6989f33c6
cmp eax, 1
jne 0x7ff6989f33ae
movd xmm11, r15d
movss xmm10, dword [rsp + 0x74]
movss xmm9, dword [rsp + 0x70]
jmp 0x7ff6989f33c6
cmp eax, 2
jne 0x7ff6989f33c6
movd xmm11, r13d
movss xmm10, dword [rsp + 0x44]
movss xmm9, dword [rsp + 0x40]
inc r12d
mov eax, r12d
cmp rax, qword [rbp + 0x140]
mov rdi, qword [rbp - 0x58]
jb 0x7ff6989f30a0
movabs rsi, 0x6666666666666667
cmp byte [0x7ff698a898cc], 0
je 0x7ff6989f35b4
test rbx, rbx
je 0x7ff6989f35b4
mov ecx, dword [0x7ff698a896e8]
call qword [sym.imp.user32.dll_GetAsyncKeyState]
test ax, ax
jns 0x7ff6989f35b4
cmp byte [0x7ff698a89850], 0
je 0x7ff6989f358f
movaps xmm0, xmm10
subss xmm0, dword [0x7ff698a89fb4]
movss xmm6, dword [0x7ff698a61c54]
movaps xmm1, xmm6
call sub.ucrtbase.dll_powf
movaps xmm7, xmm0
movaps xmm0, xmm9
subss xmm0, dword [0x7ff698a89fb0]
movaps xmm1, xmm6
call sub.ucrtbase.dll_powf
addss xmm7, xmm0
movaps xmm0, xmm11
subss xmm0, dword [0x7ff698a89fb8]
movaps xmm1, xmm6
call sub.ucrtbase.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x7ff6989f347c
sqrtss xmm7, xmm7
jmp 0x7ff6989f3487
movaps xmm0, xmm7
call sub.ucrtbase.dll_sqrtf
movaps xmm7, xmm0
divss xmm7, dword [0x7ff698a6783c]
lea rdx, [rbx + 0x158]
lea rax, [rbp + 0x138]
mov qword [rsp + 0x20], rax
mov r9d, 8
lea r8, [rbp + 0x130]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_ReadProcessMemory]
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
mov rdx, qword [rbp + 0x130]
add rdx, 0x1c0
lea rax, [rbp + 0x140]
mov qword [rsp + 0x20], rax
mov r9d, 0xc
lea r8, [rsp + 0x40]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_ReadProcessMemory]
movss xmm3, dword [0x7ff698a67858]
andps xmm3, xmmword [0x7ff698a61cf0]
movss xmm1, dword [0x7ff698a67844]
andps xmm1, xmmword [0x7ff698a61cf0]
divss xmm7, xmm1
divss xmm3, dword [0x7ff698a6783c]
mulss xmm3, xmm7
mulss xmm3, xmm7
movss xmm0, dword [rsp + 0x40]
mulss xmm0, xmm7
addss xmm0, xmm9
movss dword [rsp + 0x50], xmm0
movss xmm2, dword [rsp + 0x44]
mulss xmm2, xmm7
addss xmm2, xmm10
movss dword [rsp + 0x54], xmm2
mulss xmm3, dword [0x7ff698a61c9c]
addss xmm3, xmm11
movss xmm0, dword [rsp + 0x48]
mulss xmm0, xmm7
addss xmm3, xmm0
movss dword [rsp + 0x58], xmm3
movaps xmm1, xmm12
lea rcx, [rsp + 0x50]
call fcn.7ff6989f4b80
jmp 0x7ff6989f36bc
movaps xmm0, xmm9
unpcklps xmm0, xmm10
movsd qword [rbp - 0x80], xmm0
movss dword [rbp - 0x78], xmm11
movaps xmm1, xmm12
lea rcx, [rbp - 0x80]
call fcn.7ff6989f4b80
jmp 0x7ff6989f36bc
mov rdx, qword [0x7ff698a89658]
add rdx, 0x3d0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 8
lea r8, [rbp - 0x60]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_ReadProcessMemory]
mov rbx, qword [rbp - 0x60]
mov dword [rbp + 0x130], 0xc2b3fff3
mov dword [rbp + 0x138], 0x42b3fff3
mov dword [rbp + 0x140], 0
mov dword [rbp + 0x148], 0x43b3fffd
lea rdx, [rbx + 0x2454]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rbp + 0x130]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
lea rdx, [rbx + 0x2458]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rbp + 0x138]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
lea rdx, [rbx + 0x245c]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rbp + 0x140]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
lea rdx, [rbx + 0x2460]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x20], rcx
mov r9d, 4
lea r8, [rbp + 0x148]
mov rcx, qword [0x7ff698a897b8]
call qword [sym.imp.kernel32.dll_WriteProcessMemory]
nop
test rdi, rdi
je 0x7ff6989f3714
mov rcx, qword [rbp - 0x48]
sub rcx, rdi
mov rax, rsi
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 4
mov rax, rdi
cmp rdx, 0x1000
jb 0x7ff6989f370c
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x7ff6989f370c
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rdi
call fcn.7ff698a5b9ac
lea r11, [rsp + 0x1e8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.7ff6989f2ee0
nop
mov ecx, 5
call sub.msvcp140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3
mov dword [0x7ff698a89b6c], 0x7ffffffe
mov ecx, 6
call sub.msvcp140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3