Function at 0x140050b10
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x50
mov rbx, qword [0x14006ca60]
mov r14, rdx
mov rdi, rcx
movaps xmmword [rax - 0x18], xmm6
movdqa xmm6, xmmword [0x140063ad0]
lea rdx, [rax - 0x38]
mov rbp, r8
mov dword [rax - 0x38], 0x15
movups xmm0, xmmword [rbx + 0x3b40]
lea rcx, [rbx + 0x4b08]
movups xmmword [rax - 0x34], xmm0
call fcn.14001e270
cmp dword [rbx + 0x4b04], 0x15
je 0x140050b77
movups xmmword [rbx + 0x3b40], xmm6
mov rbx, qword [0x14006ca60]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x17
movups xmm0, xmmword [rbx + 0x3b60]
lea rcx, [rbx + 0x4b08]
movups xmmword [rsp + 0x24], xmm0
call fcn.14001e270
cmp dword [rbx + 0x4b04], 0x17
je 0x140050bb3
movups xmmword [rbx + 0x3b60], xmm6
mov rbx, qword [0x14006ca60]
lea rdx, [rsp + 0x20]
movdqa xmm6, xmmword [0x140063ad0]
mov dword [rsp + 0x20], 0x16
movups xmm0, xmmword [rbx + 0x3b50]
lea rcx, [rbx + 0x4b08]
movups xmmword [rsp + 0x24], xmm0
call fcn.14001e270
cmp dword [rbx + 0x4b04], 0x16
je 0x140050bf7
movups xmmword [rbx + 0x3b50], xmm6
cmp byte [0x14006ca8c], 0
jne 0x140050c0c
call fcn.140050590
mov byte [0x14006ca8c], 1
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14006d4e8], eax
jle 0x140050c55
lea rcx, [0x14006d4e8]
call fcn.14005990c
cmp dword [0x14006d4e8], 0xffffffff
jne 0x140050c55
lea rcx, [0x14005bd90]
call fcn.140059bac
lea rcx, [0x14006d4e8]
call fcn.1400598a0
cmp byte [0x14006d4c2], 0
lea rsi, [0x14006c368]
je 0x140050cf3
cmp qword [rdi + 0x18], 0xf
mov rdx, rdi
jbe 0x140050c76
mov rdx, qword [rdi]
cmp qword [0x14006c380], 0xf
mov rcx, rsi
mov r8, qword [0x14006c378]
cmova rcx, qword [0x14006c368]
cmp r8, qword [rdi + 0x10]
jne 0x140050cf3
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140050cf3
mov rdx, rbp
lea rcx, str.Press_a_key...
call fcn.140035830
xor ebx, ebx
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140050cc9
inc ebx
cmp ebx, 0x100
jl 0x140050cb0
jmp 0x140050d32
mov dword [r14], ebx
cmp qword [0x14006c380], 0xf
mov qword [0x14006c378], 0
cmova rsi, qword [0x14006c368]
mov byte [0x14006d4c2], 0
mov byte [rsi], 0
jmp 0x140050d32
movsxd rax, dword [r14]
lea rcx, [0x14006cc00]
mov rdx, rbp
mov rcx, qword [rcx + rax*8]
call fcn.140035830
test al, al
je 0x140050d32
mov byte [0x14006d4c2], 1
cmp rsi, rdi
je 0x140050d32
cmp qword [rdi + 0x18], 0xf
mov rdx, rdi
jbe 0x140050d26
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
mov rcx, rsi
call fcn.1400577b0
movss xmm1, dword [0x140063798]
xorps xmm0, xmm0
call fcn.140014ed0
cmp qword [rdi + 0x18], 0xf
jbe 0x140050d4c
mov rdi, qword [rdi]
mov rcx, rdi
call fcn.140034f30
mov r8, qword [0x14006ca60]
mov r9d, 3
mov eax, dword [r8 + 0x4b08]
cmp eax, r9d
jge 0x140050d80
mov r9d, eax
test eax, eax
jle 0x140050dbb
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [r8 + 0x4b10]
dec r9d
cdqe
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm0, xmmword [rcx + rdx*4 - 0x10]
add rax, 0x39f
add rax, rax
movups xmmword [r8 + rax*8], xmm0
dec dword [r8 + 0x4b08]
mov eax, dword [r8 + 0x4b08]
test r9d, r9d
jg 0x140050d80
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x50
pop r14
ret