Function at 0x1400080a0
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x258]
sub rsp, 0x320
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x140128040]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
mov r14, rdx
mov qword [rsp + 0x38], rdx
mov rsi, rcx
xor edi, edi
mov rbx, qword [0x140129d20]
mov rax, qword [rbx + 8]
mov qword [rbp - 0x78], rax
mov dword [rbp - 0x70], edi
mov r13, rbx
cmp byte [rax + 0x19], dil
jne 0x14000812c
mov qword [rbp - 0x78], rax
cmp qword [rax + 0x20], rsi
jae 0x140008119
mov dword [rbp - 0x70], edi
mov rax, qword [rax + 0x10]
jmp 0x140008126
mov dword [rbp - 0x70], 1
mov r13, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], dil
je 0x140008106
cmp byte [r13 + 0x19], dil
jne 0x140008138
cmp rsi, qword [r13 + 0x20]
jae 0x14000819f
movabs rax, 0x555555555555555
cmp qword [0x140129d28], rax
je 0x1400087ef
lea r15, [0x140129d20]
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], rdi
mov ecx, 0x30
call fcn.140081eb0
nop
mov qword [rax + 0x20], rsi
xor edx, edx
mov qword [rax + 0x28], rdx
mov dword [rax + 0x2c], edi
mov qword [rax], rbx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
mov word [rax + 0x18], dx
movups xmm0, xmmword [rbp - 0x78]
movaps xmmword [rbp - 0x30], xmm0
mov r8, rax
lea rdx, [rbp - 0x30]
mov rcx, r15
call fcn.14001d0a0
mov r13, rax
mov ecx, dword [r14]
test ecx, ecx
jne 0x14000822c
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rsi + rbx], 0
jne 0x1400081d2
mov r8, rbx
mov rdx, rsi
lea rcx, [rbp - 0x78]
call fcn.140007180
nop
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 0xf
cmova rcx, qword [rbp - 0x78]
lea r9, [rsp + 0x38]
xor r8d, r8d
lea rdx, [rsp + 0x30]
call fcn.140062e60
movzx ebx, al
lea rcx, [rbp - 0x78]
call fcn.140003ae0
test bl, bl
je 0x140008779
mov dword [r14], edi
mov byte [r13 + 0x28], 1
jmp 0x140008782
xor edx, edx
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
shl eax, 0x10
mov r8d, 0x100
lea rdx, [rbp - 0x10]
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyNameTextW]
mov dword [rsp + 0x30], eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x48], xmm1
lea rax, [rbp - 0x10]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140008270
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x58]
call fcn.14001c540
nop
lea rdx, [rbp - 0x58]
cmp qword [rbp - 0x40], 7
cmova rdx, qword [rbp - 0x58]
mov rax, qword [rbp - 0x48]
lea r12, [rdx + rax*2]
lea r15, [rbp - 0x58]
cmova r15, qword [rbp - 0x58]
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 0xf
cmp r15, r12
jne 0x1400082ce
mov byte [rbp - 0x78], 0
jmp 0x1400083d4
sub r12, r15
sar r12, 1
movabs rax, 0x7fffffffffffffff
cmp r12, rax
ja 0x1400087e3
mov r14d, 0xf
cmp r12, r14
jbe 0x140008393
mov r14, r12
or r14, 0xf
cmp r14, rax
jbe 0x14000833c
mov r14, rax
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140081eb0
mov rcx, rax
test rax, rax
je 0x14000836b
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x60], r14
jmp 0x140008397
mov eax, 0x16
cmp r14, rax
cmovb r14, rax
lea rcx, [r14 + 1]
cmp rcx, 0x1000
jb 0x140008372
lea rax, ds:[rcx + 0x27]
cmp rax, rcx
jbe 0x1400087e9
jmp 0x140008316
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x140008386
call fcn.140081eb0
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x60], r14
jmp 0x140008397
mov rax, rdi
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x60], r14
jmp 0x140008397
mov rax, qword [rbp - 0x78]
lea r8, [rbp - 0x78]
cmp r14, 0xf
cmova r8, rax
mov rcx, r8
mov rdx, r12
test r12, r12
je 0x1400083c6
nop
movzx eax, byte ds:[r15]
mov byte [rcx], al
lea rcx, [rcx + 1]
lea r15, [r15 + 2]
sub rdx, 1
jne 0x1400083b0
mov qword [rbp - 0x68], r12
mov byte [r8 + r12], 0
mov r14, qword [rsp + 0x38]
cmp dword [rsp + 0x30], 0
jne 0x1400085ca
mov r8d, dword [r14]
lea eax, [r8 - 1]
cmp r8d, 3
cmovge r8d, eax
lea r9, [rbp - 0x1b]
test r8d, r8d
jns 0x140008440
neg r8d
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140008400
dec r9
mov byte [r9], 0x2d
jmp 0x14000846a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140008440
lea r8, [rbp - 0x1b]
mov rdx, r9
lea rcx, [rsp + 0x60]
call fcn.14001d800
nop
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
sub rax, r8
lea r12, str.Mouse
cmp rax, 5
jb 0x140008526
lea rax, ds:[r8 + 5]
mov qword [rsp + 0x70], rax
lea r14, [rsp + 0x60]
cmp rcx, 0xf
cmova r14, qword [rsp + 0x60]
lea rax, [0x1401070e1]
cmp rax, r14
jbe 0x1400084e2
lea rax, [r14 + r8]
cmp r12, rax
ja 0x1400084e2
cmp r14, r12
ja 0x1400084d8
mov r15, rdi
jmp 0x1400084e8
mov r15, r14
sub r15, r12
jmp 0x1400084e8
mov r15d, 5
inc r8
lea rcx, [r14 + 5]
mov rdx, r14
call sub.VCRUNTIME140.dll_memmove
mov r8, r15
mov rdx, r12
mov rcx, r14
call sub.VCRUNTIME140.dll_memcpy
mov r8d, 5
sub r8, r15
lea rdx, [r12 + 5]
add rdx, r15
lea rcx, [r14 + r15]
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rsp + 0x60]
jmp 0x140008545
mov eax, 5
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.14001f620
movups xmm6, xmmword [rax]
movups xmmword [rbp - 0x30], xmm6
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x14000859d
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140008598
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140008598
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400821fc
movups xmmword [rbp - 0x78], xmm6
movups xmmword [rbp - 0x68], xmm7
movdqa xmm0, xmmword [0x140111b70]
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x30], 0
lea rcx, [rbp - 0x30]
call fcn.140003ae0
nop
lea rcx, [rsp + 0x60]
call fcn.140003ae0
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
nop dword [rax + rax]
inc rbx
cmp byte [rsi + rbx], 0
jne 0x1400085e0
mov r8, rbx
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.140007180
nop
mov r8, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
sub rax, r8
mov r15d, 3
lea r14, [0x1401070e4]
cmp rax, r15
jb 0x1400086ac
lea rax, [r8 + 3]
mov qword [rsp + 0x50], rax
lea rbx, [rsp + 0x40]
cmp rcx, 0xf
cmova rbx, qword [rsp + 0x40]
lea rax, [0x1401070e7]
cmp rax, rbx
jbe 0x14000866a
lea rax, [rbx + r8]
cmp r14, rax
ja 0x14000866a
cmp rbx, r14
ja 0x140008662
mov rsi, rdi
jmp 0x14000866d
mov rsi, rbx
sub rsi, r14
jmp 0x14000866d
mov rsi, r15
inc r8
lea rcx, [rbx + 3]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, rsi
mov rdx, r14
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
sub r15, rsi
lea rdx, [r14 + 3]
add rdx, rsi
lea rcx, [rbx + rsi]
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rsp + 0x40]
jmp 0x1400086c5
mov qword ss:[rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.14001f620
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x20], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea rdx, [rbp - 0x30]
movq rcx, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rax, xmm0
cmp rax, 0xf
cmova rdx, rcx
movq r8, xmm1
lea rcx, [rbp - 0x78]
call fcn.14001a900
nop
lea rcx, [rbp - 0x30]
call fcn.140003ae0
nop
lea rcx, [rsp + 0x40]
call fcn.140003ae0
mov qword [rsp + 0x30], 0
mov qword [rbp - 0x30], 0
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 0xf
cmova rcx, qword [rbp - 0x78]
lea r9, [rsp + 0x30]
xor r8d, r8d
lea rdx, [rbp - 0x30]
call fcn.140062e60
mov r14, qword [rsp + 0x38]
test al, al
je 0x140008766
mov dword [r14], edi
mov byte [r13 + 0x28], 1
lea rcx, [rbp - 0x78]
call fcn.140003ae0
nop
lea rcx, [rbp - 0x58]
call fcn.140003a60
cmp byte ds:[r13 + 0x28], 0
je 0x1400087af
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400087af
nop
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400087a5
mov dword [r14], edi
mov byte [r13 + 0x28], 0
inc edi
cmp edi, 0x100
jl 0x140008790
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.140081d70
lea r11, [rsp + 0x320]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400045e0
nop
call fcn.1400032c0
nop
call fcn.140007100
int3