Function at 0x140050bf0
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 [0x14006ba60]
mov r14, rdx
mov rdi, rcx
movaps xmmword [rax - 0x18], xmm6
movdqa xmm6, xmmword [0x140062ca0]
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 0x140050c57
movups xmmword [rbx + 0x3b40], xmm6
mov rbx, qword [0x14006ba60]
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 0x140050c93
movups xmmword [rbx + 0x3b60], xmm6
mov rbx, qword [0x14006ba60]
lea rdx, [rsp + 0x20]
movdqa xmm6, xmmword [0x140062ca0]
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 0x140050cd7
movups xmmword [rbx + 0x3b50], xmm6
cmp byte [0x14006ba8c], 0
jne 0x140050cec
call fcn.140050670
mov byte [0x14006ba8c], 1
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14006c4e8], eax
jle 0x140050d35
lea rcx, [0x14006c4e8]
call fcn.14005893c
cmp dword [0x14006c4e8], 0xffffffff
jne 0x140050d35
lea rcx, [0x14005adc0]
call fcn.140058bdc
lea rcx, [0x14006c4e8]
call fcn.1400588d0
cmp byte [0x14006c4c2], 0
lea rsi, [0x14006b368]
je 0x140050dd3
cmp qword [rdi + 0x18], 0xf
mov rdx, rdi
jbe 0x140050d56
mov rdx, qword [rdi]
cmp qword [0x14006b380], 0xf
mov rcx, rsi
mov r8, qword [0x14006b378]
cmova rcx, qword [0x14006b368]
cmp r8, qword [rdi + 0x10]
jne 0x140050dd3
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140050dd3
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 0x140050da9
inc ebx
cmp ebx, 0x100
jl 0x140050d90
jmp 0x140050e12
mov dword [r14], ebx
cmp qword [0x14006b380], 0xf
mov qword [0x14006b378], 0
cmova rsi, qword [0x14006b368]
mov byte [0x14006c4c2], 0
mov byte [rsi], 0
jmp 0x140050e12
movsxd rax, dword [r14]
lea rcx, [0x14006bc00]
mov rdx, rbp
mov rcx, qword [rcx + rax*8]
call fcn.140035830
test al, al
je 0x140050e12
mov byte [0x14006c4c2], 1
cmp rsi, rdi
je 0x140050e12
cmp qword [rdi + 0x18], 0xf
mov rdx, rdi
jbe 0x140050e06
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
mov rcx, rsi
call fcn.1400567e0
movss xmm1, dword [0x1400629a8]
xorps xmm0, xmm0
call fcn.140014ed0
cmp qword [rdi + 0x18], 0xf
jbe 0x140050e2c
mov rdi, qword [rdi]
mov rcx, rdi
call fcn.140034f30
mov r8, qword [0x14006ba60]
mov r9d, 3
mov eax, dword [r8 + 0x4b08]
cmp eax, r9d
jge 0x140050e60
mov r9d, eax
test eax, eax
jle 0x140050e9b
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 0x140050e60
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