Function at 0x140002aa0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4940]
mov eax, 0x4a40
call fcn.1400cb8f0
sub rsp, rax
movaps xmmword [rsp + 0x4a30], xmm6
movaps xmmword [rsp + 0x4a20], xmm7
movaps xmmword [rsp + 0x4a10], xmm8
movaps xmmword [rsp + 0x4a00], xmm9
movaps xmmword [rsp + 0x49f0], xmm10
movaps xmmword [rsp + 0x49e0], xmm11
movaps xmmword [rsp + 0x49d0], xmm12
movaps xmmword [rsp + 0x49c0], xmm13
movaps xmmword [rsp + 0x49b0], xmm14
movaps xmmword [rsp + 0x49a0], xmm15
mov rax, qword [0x140177010]
xor rax, rsp
mov qword [rbp + 0x4890], rax
xor edi, edi
cmp byte [0x140177e58], dil
je 0x1400034da
mov ecx, dword [0x140177e5c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140002b6b
mov ecx, dword [0x140177e08]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400034da
lea r15, [0x14017a9e0]
mov qword [rbp - 0x68], r15
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x140002b8f
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x14017aa2c], 0x7fffffff
jne 0x140002bb1
mov dword [0x14017aa2c], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
lea rax, [0x140002940]
mov qword [rsp + 0x28], rax
lea rax, [0x140002a00]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
lea r8d, [r9 + 0x50]
lea rdx, [0x1401785e0]
lea rcx, [rbp + 0x2490]
call fcn.1400cb268
nop
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
nop
xorps xmm10, xmm10
xorps xmm9, xmm9
movss dword [rsp + 0x50], xmm9
xorps xmm7, xmm7
movss dword [rsp + 0x3c], xmm7
xorps xmm8, xmm8
movss dword [rsp + 0x40], xmm8
movss dword [rbp - 0x6c], xmm10
movss dword [rsp + 0x38], xmm10
xorps xmm0, xmm0
movss dword [rsp + 0x34], xmm0
movss dword [rsp + 0x4c], xmm10
xorps xmm11, xmm11
movss dword [rsp + 0x48], xmm10
mov dword [rsp + 0x44], edi
xor sil, sil
mov byte [rsp + 0x30], sil
movups xmmword [rbp - 0x20], xmm0
mov r14, rdi
mov qword [rbp - 0x10], rdi
mov r13d, 0xf
mov qword [rbp - 8], r13
mov byte [rbp - 0x20], sil
lea rbx, [rbp + 0x2499]
nop dword [rax + rax]
mov rax, qword [rbx - 9]
mov qword [rbp], rax
movzx eax, byte [rbx - 1]
mov byte [rbp + 8], al
movzx eax, byte [rbx]
mov byte [rbp + 9], al
mov rax, qword [rbx + 7]
mov qword [rbp + 0x10], rax
mov eax, dword [rbx + 0xf]
mov dword [rbp + 0x18], eax
mov eax, dword [rbx + 0x13]
mov dword [rbp + 0x1c], eax
mov eax, dword [rbx + 0x17]
mov dword [rbp + 0x20], eax
mov rax, qword [rbx + 0x1f]
mov qword [rbp + 0x28], rax
mov eax, dword [rbx + 0x27]
mov dword [rbp + 0x30], eax
mov eax, dword [rbx + 0x2b]
mov dword [rbp + 0x34], eax
movzx eax, byte [rbx + 0x2f]
mov byte [rbp + 0x38], al
mov rax, qword [rbx + 0x37]
mov qword [rbp + 0x40], rax
movzx eax, byte [rbx + 0x3f]
mov byte [rbp + 0x48], al
movzx eax, byte [rbx + 0x40]
mov byte [rbp + 0x49], al
lea rdx, [rbx + 0x47]
lea rcx, [rbp + 0x50]
call fcn.1400019f0
nop
lea rdx, [rbx + 0x67]
lea rcx, [rbp + 0x70]
call fcn.1400019f0
nop
cmp byte [rbp + 8], 0
jne 0x140002d95
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140002d34
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002d2f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002f50
call fcn.1400cb234
mov rdx, qword [rbp + 0x68]
cmp rdx, 0x10
jb 0x140002d6f
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002d6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002f50
call fcn.1400cb234
add rbx, 0x90
lea rax, [rbx - 9]
lea rcx, [rbp + 0x4890]
cmp rax, rcx
jne 0x140002c70
mov r12, qword [rbp - 0x68]
xor ebx, ebx
jmp 0x140002fac
mov r12, qword [rbp + 0x10]
lea rdx, [rbp + 0x70]
cmp qword [rbp + 0x88], 0x10
cmovae rdx, qword [rbp + 0x70]
mov r8, qword [rbp + 0x80]
lea rcx, [rbp - 0x20]
call fcn.140001bd0
mov rbx, qword [rbp + 0x10]
lea rdx, [rbx + 0x1214]
mov qword [rbp - 0x48], 0
mov dword [rbp - 0x40], 0
mov qword [rsp + 0x20], rdi
mov r9d, 0xc
lea r8, [rbp - 0x48]
mov rcx, qword [0x14017aa30]
call fcn.140049540
lea rdx, [rbx + 0xc48]
mov qword [rbp - 0x38], 0
mov dword [rbp - 0x30], 0
mov qword [rsp + 0x20], rdi
mov r9d, 0xc
lea r8, [rbp - 0x38]
mov rcx, qword [0x14017aa30]
call fcn.140049540
movss xmm9, dword [rbp - 0x48]
addss xmm9, dword [rbp - 0x38]
movss dword [rsp + 0x50], xmm9
movss dword [rbp - 0x48], xmm9
movss xmm7, dword [rbp - 0x44]
addss xmm7, dword [rbp - 0x34]
movss dword [rsp + 0x3c], xmm7
movss dword [rbp - 0x44], xmm7
movss xmm8, dword [rbp - 0x40]
addss xmm8, dword [rbp - 0x30]
movss dword [rsp + 0x40], xmm8
movss dword [rbp - 0x40], xmm8
mov rdx, qword [0x14017aa40]
add rdx, 0x18e5740
mov qword [rbp - 0x58], 0
mov dword [rbp - 0x50], 0
mov qword [rsp + 0x20], rdi
mov r9d, 0xc
lea r8, [rbp - 0x58]
mov rcx, qword [0x14017aa30]
call fcn.140049540
movsd xmm0, qword [rbp - 0x58]
movsd qword [rbp - 0x68], xmm0
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x60], eax
lea rdx, [rbx + 0x1400]
xor ebx, ebx
mov dword [rbp - 0x6c], ebx
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 4]
lea r8, [rbp - 0x6c]
mov rcx, qword [0x14017aa30]
call fcn.140049540
mov eax, dword [rbp - 0x6c]
mov dword [rsp + 0x44], eax
movzx esi, byte [rbp + 9]
mov byte [rsp + 0x30], sil
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140002f1e
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002f19
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002f50
call fcn.1400cb234
mov rdx, qword [rbp + 0x68]
cmp rdx, 0x10
jb 0x140002f84
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002f57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002f57
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400cb234
movss xmm0, dword [rbp - 0x60]
movss dword [rsp + 0x34], xmm0
movss xmm7, dword [rbp - 0x64]
movss dword [rsp + 0x38], xmm7
movss xmm6, dword [rbp - 0x68]
movss dword [rbp - 0x6c], xmm6
movss xmm7, dword [rsp + 0x3c]
jmp 0x140002fa4
movss xmm0, dword [rbp - 0x60]
movss dword [rsp + 0x34], xmm0
movss xmm0, dword [rbp - 0x64]
movss dword [rsp + 0x38], xmm0
movss xmm0, dword [rbp - 0x68]
movss dword [rbp - 0x6c], xmm0
mov r14, qword [rbp - 0x10]
mov r13, qword [rbp - 8]
mov qword [rbp - 0x68], r15
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x140002fc9
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x14017aa2c], 0x7fffffff
jne 0x140002feb
mov dword [0x14017aa2c], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
lea rax, [0x140002940]
mov qword [rsp + 0x28], rax
lea rax, [0x140002a00]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
lea r8d, [r9 + 0x50]
lea rdx, [0x1401785e0]
lea rcx, [rbp + 0x90]
call fcn.1400cb268
nop
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
nop
lea rdi, [rbp + 0x98]
movabs rdx, 0x7fffffffffffffff
mov r8d, 0x16
lea r9, [r8 - 0x17]
mov r15, qword [rbp - 0x20]
movss xmm14, dword [0x140166010]
movsd xmm12, qword [0x140165d68]
movss xmm13, dword [0x140165d60]
movss xmm15, dword [0x140165e10]
nop
cmp byte [rdi + 0x30], 0
je 0x1400033df
cmp byte [rdi], 0
jne 0x1400033df
movzx ecx, byte [rdi + 1]
lea eax, [rcx - 2]
cmp al, 1
ja 0x1400033df
cmp byte [0x140177e59], 0
jne 0x1400030a4
cmp sil, cl
je 0x1400033df
mov eax, dword [rdi + 0x10]
dec eax
cmp eax, 0x63
ja 0x1400033df
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
lea rsi, [rbp - 0x20]
cmp r13, 0x10
cmovae rsi, r15
cmp r14, rdx
ja 0x140003542
mov qword [rsp + 0x78], 0xf
cmp r14, 0x10
jae 0x1400030fa
mov qword [rsp + 0x70], r14
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x60], xmm0
jmp 0x140003184
mov rbx, r14
or rbx, 0xf
cmp rbx, rdx
jbe 0x14000310b
mov rbx, rdx
jmp 0x140003113
cmp rbx, 0x16
cmovb rbx, r8
mov rcx, rbx
add rcx, 1
cmovb rcx, r9
cmp rcx, 0x1000
jb 0x140003156
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140003548
mov rcx, rax
call fcn.1400caed0
mov rcx, rax
test rax, rax
je 0x140003414
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140003164
test rcx, rcx
je 0x140003162
call fcn.1400caed0
jmp 0x140003164
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], rbx
lea r8, [r14 + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
xor ebx, ebx
lea rcx, [rsp + 0x60]
call fcn.140002140
test al, al
jne 0x1400033ca
mov rdx, qword [rdi + 8]
add rdx, 0x310
mov qword [rbp - 0x28], rbx
mov qword [rsp + 0x20], rbx
mov r9d, 8
lea r8, [rbp - 0x28]
mov rcx, qword [0x14017aa30]
call fcn.140049540
mov rbx, qword [rbp - 0x28]
lea rdx, [rbx + 0xe7]
mov byte [rbp - 0x70], 0
mov qword [rsp + 0x20], 0
mov r9d, 1
lea r8, [rbp - 0x70]
mov rcx, qword [0x14017aa30]
call fcn.140049540
cmp byte [rbp - 0x70], 0
jne 0x1400033c8
lea rdx, [rbx + 0x1e0]
xor ebx, ebx
mov qword [rbp - 0x68], rbx
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 8]
lea r8, [rbp - 0x68]
mov rcx, qword [0x14017aa30]
call fcn.140049540
mov eax, dword [0x140177e6c]
shl eax, 5
movsxd rdx, eax
add rdx, qword [rbp - 0x68]
mov qword [rbp - 0x58], rbx
mov dword [rbp - 0x50], ebx
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 0xc]
lea r8, [rbp - 0x58]
mov rcx, qword [0x14017aa30]
call fcn.140049540
cmp dword [rsp + 0x44], ebx
je 0x1400032b9
lea rdx, [r12 + 0x16fc]
mov qword [rsp + 0x54], rbx
mov dword [rsp + 0x5c], ebx
mov qword [rsp + 0x20], rbx
lea r9d, [rbx + 0xc]
lea r8, [rsp + 0x54]
mov rcx, qword [0x14017aa30]
call fcn.140049540
movsd xmm0, qword [rsp + 0x54]
movsd qword [rbp - 0x80], xmm0
movss xmm0, dword [rsp + 0x54]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm12
cvtpd2ps xmm0, xmm0
movss dword [rsp + 0x4c], xmm0
movss xmm11, dword [rbp - 0x7c]
mulss xmm11, xmm13
movss xmm0, dword [rsp + 0x5c]
movss dword [rsp + 0x48], xmm0
movss xmm6, dword [rbp - 0x50]
subss xmm6, xmm8
movss xmm8, dword [rbp - 0x54]
subss xmm8, xmm7
movss xmm7, dword [rbp - 0x58]
subss xmm7, xmm9
movaps xmm1, xmm8
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
xorps xmm6, xmm14
movaps xmm1, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movaps xmm9, xmm0
mulss xmm9, xmm15
movaps xmm1, xmm7
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movaps xmm6, xmm0
mulss xmm6, xmm15
movss xmm1, dword [rsp + 0x48]
addss xmm1, dword [rsp + 0x34]
movaps xmm7, xmm10
subss xmm7, xmm1
movss xmm2, dword [rsp + 0x38]
addss xmm2, xmm11
subss xmm6, xmm2
movss xmm1, dword [rbp - 0x6c]
addss xmm1, dword [rsp + 0x4c]
subss xmm9, xmm1
movaps xmm1, xmm6
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
movss xmm1, dword [0x140177e60]
comiss xmm1, xmm0
jbe 0x1400033ca
ucomiss xmm9, xmm10
jp 0x140003374
jne 0x140003374
ucomiss xmm6, xmm10
jp 0x140003374
jne 0x140003374
ucomiss xmm7, xmm10
jp 0x140003374
je 0x1400033ca
xorps xmm6, xmm14
divss xmm6, dword [0x140165cd4]
mulss xmm6, dword [0x140165cdc]
divss xmm9, dword [0x140165ce0]
mulss xmm9, dword [0x140165cdc]
mulss xmm6, dword [0x140165df4]
mulss xmm9, dword [0x140165e08]
lea rcx, [0x140178590]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x14000341b
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
xor ebx, ebx
mov r9, 0xffffffffffffffff
lea r8d, [r9 + 0x17]
movabs rdx, 0x7fffffffffffffff
add rdi, 0x90
lea rax, [rdi - 8]
lea rcx, [rbp + 0x2490]
cmp rax, rcx
je 0x140003466
movss xmm9, dword [rsp + 0x50]
movss xmm7, dword [rsp + 0x3c]
movss xmm8, dword [rsp + 0x40]
movzx esi, byte [rsp + 0x30]
jmp 0x140003070
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
cmp dword [0x1401785dc], 0x7fffffff
jne 0x14000343d
mov dword [0x1401785dc], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cvttss2si r8d, xmm9
cvttss2si edx, xmm6
mov qword [rsp + 0x20], rbx
xor r9d, r9d
lea ecx, [r9 + 1]
call qword [sym.imp.USER32.dll_mouse_event]
lea rcx, [0x140178590]
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
nop
lea rbx, [0x140002940]
mov r9, rbx
mov edx, 0x90
lea r8d, [rdx - 0x50]
lea rcx, [rbp + 0x90]
call fcn.1400caf0c
nop
cmp r13, 0x10
jb 0x1400034c1
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x1400034b8
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400034b8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r15
call fcn.1400cb234
nop
mov r9, rbx
mov edx, 0x90
lea r8d, [rdx - 0x50]
lea rcx, [rbp + 0x2490]
call fcn.1400caf0c
nop
mov rcx, qword [rbp + 0x4890]
xor rcx, rsp
call fcn.1400caeb0
lea r11, [rsp + 0x4a40]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140001670
nop
call fcn.1400015d0
int3