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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x14005f040]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov edi, edx
mov rbx, rcx
mov qword [rsp + 0x68], rcx
xor r15d, r15d
mov dword [rsp + 0x60], r15d
xor edx, edx
mov r8d, 0x100
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll_memset
mov edx, edi
sub edx, 1
je 0x140004342
sub edx, 1
je 0x140004305
sub edx, 2
je 0x1400042d4
sub edx, 1
je 0x140004295
cmp edx, 1
je 0x140004256
xor edx, edx
mov ecx, edi
call qword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
mov r8d, 0x100
lea rdx, [rsp + 0x70]
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyNameTextA]
test eax, eax
je 0x140004151
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x30], xmm1
lea rax, [rsp + 0x70]
mov rdi, 0xffffffffffffffff
nop
inc rdi
cmp byte [rax + rdi], r15b
jne 0x140004060
movabs r14, 0x7fffffffffffffff
cmp rdi, r14
ja 0x140004399
cmp rdi, 0xf
ja 0x1400040ac
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
mov r8, rdi
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x20], r15b
jmp 0x140004145
mov rax, rdi
or rax, 0xf
cmp rax, r14
jbe 0x1400040e5
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.14004df80
test rax, rax
je 0x140004245
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140004122
mov r14, rax
mov ecx, 0x16
cmp rax, rcx
cmovb r14, rcx
lea rcx, [r14 + 1]
test rcx, rcx
jne 0x140004102
mov rsi, r15
jmp 0x140004122
cmp rcx, 0x1000
jb 0x14000411a
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000439f
jmp 0x1400040c6
call fcn.14004df80
mov rsi, rax
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], r14
mov r8, rdi
lea rdx, [rsp + 0x70]
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rdi], r15b
lea rax, [rsp + 0x20]
mov edi, 2
jmp 0x140004199
movdqa xmm0, xmmword [0x140057190]
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], 0xf
mov rax, qword [str.Unknown]
mov dword [rsp + 0x40], eax
movzx eax, word [0x1400507cc]
mov word [rsp + 0x44], ax
movzx eax, byte [0x1400507ce]
mov byte [rsp + 0x46], al
mov byte [rsp + 0x47], r15b
lea rax, [rsp + 0x40]
mov edi, 4
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
or edi, 1
test dil, 4
je 0x140004203
and edi, 0xfffffffb
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x140004203
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400041fd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400041fd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14004e2d4
nop
test dil, 2
je 0x140004373
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x140004373
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000424c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000424c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14004e2d4
jmp 0x140004373
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xe
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.Mouse_Button_5]
movsd qword [rbx], xmm0
mov eax, dword [0x1400507c0]
mov dword [rbx + 8], eax
movzx eax, word [0x1400507c4]
mov word [rbx + 0xc], ax
mov byte [rbx + 0xe], r15b
jmp 0x140004373
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xe
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.Mouse_Button_4]
movsd qword [rbx], xmm0
mov eax, dword [0x1400507b0]
mov dword [rbx + 8], eax
movzx eax, word [0x1400507b4]
mov word [rbx + 0xc], ax
mov byte [rbx + 0xe], r15b
jmp 0x140004373
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xc
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.Middle_Mouse]
movsd qword [rbx], xmm0
mov eax, dword [0x1400507a0]
mov dword [rbx + 8], eax
mov byte [rbx + 0xc], r15b
jmp 0x140004373
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xb
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.Right_Mouse]
movsd qword [rbx], xmm0
movzx eax, word [0x140050790]
mov word [rbx + 8], ax
movzx eax, byte [0x140050792]
mov byte [rbx + 0xa], al
mov byte [rbx + 0xb], r15b
jmp 0x140004373
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0xa
mov qword [rbx + 0x18], 0xf
movsd xmm0, qword [str.Left_Mouse]
movsd qword [rbx], xmm0
movzx eax, word [0x140050780]
mov word [rbx + 8], ax
mov byte [rbx + 0xa], r15b
mov rax, rbx
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.14004de40
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x180
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.140001470
int3
call fcn.1400013d0
int3