Function at 0x1800503d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x40], xmm8
mov rax, qword [0x180106040]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbp, rcx
cmp byte [rcx + 0x48], 0
je 0x180050034
call fcn.18004cdf0
mov rcx, rax
call fcn.18004d5f0
test al, al
je 0x180050034
mov rbx, qword [0x1801d4b38]
mov rax, qword [0x1801d4b80]
mov rdx, qword [rax]
mov rax, qword [rbx]
mov r9, qword [rax + 0x2f8]
mov r8, qword [0x1801d4cd0]
mov rcx, rbx
call r9
mov rdx, qword [rbx]
mov r9, qword [rdx + 0xc0]
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call r9
test al, al
je 0x180050034
mov rax, qword [0x1801d4b80]
mov rbx, qword [rax + 8]
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.1800b4180
mov rdi, qword [0x1801d4b38]
mov rdx, qword [rbx]
test rdx, rdx
je 0x18004fdd1
mov rax, qword [rdi]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rcx, rdi
call r9
test al, al
jne 0x18004fdd1
mov rax, qword [rdi]
mov r9, qword [rax + 0x330]
mov r8, qword [0x1801d4c48]
mov rdx, qword [rbx]
mov rcx, rdi
call r9
mov rcx, rbx
call fcn.1800b4860
call fcn.18004cdf0
lea rcx, [rax + 0xa0]
lea rdx, [rsp + 0x20]
call fcn.18004e2e0
nop
mov rsi, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
cmp rsi, r14
je 0x18005002a
movss xmm8, dword [0x1800e8520]
xorps xmm6, xmm6
movsd xmm7, qword [0x1800e7e90]
nop word [rax + rax]
mov rcx, qword [0x1801d4b38]
mov rax, qword [rcx]
mov r9, qword [rax + 0x320]
mov r8, qword [0x1801d4cb8]
mov rdx, qword [rbx]
call r9
mov r8d, eax
mov eax, 0x55555556
imul r8d
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea ecx, [rdx + rdx*2]
cmp r8d, ecx
jne 0x18005002a
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004fea4
mov rax, qword [0x1801d4b80]
mov rcx, qword [rax + 8]
mov rax, qword [rbp + 0x78]
movss xmm3, dword [rax + 8]
cvtps2pd xmm3, xmm3
mov r10, qword [0x1801d4b38]
mov rax, qword [r10]
mov r9, qword [rax + 0x380]
mov r8, qword [0x1801d4d20]
mov rdx, qword [rcx]
mov rcx, r10
call r9
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18004fef4
mov rax, qword [0x1801d4b80]
mov rcx, qword [rax + 8]
mov rax, qword [rbp + 0x78]
movss xmm0, dword [rax + 8]
xorps xmm0, xmm8
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
mov r10, qword [0x1801d4b38]
mov rax, qword [r10]
mov r9, qword [rax + 0x380]
mov r8, qword [0x1801d4d20]
mov rdx, qword [rcx]
mov rcx, r10
call r9
mov rdi, qword [0x1801d4b38]
mov rdx, qword [rbx]
test rdx, rdx
je 0x18004ffa5
mov rax, qword [rdi]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rcx, rdi
call r9
test al, al
jne 0x18004ffa5
mov rax, qword [rdi]
mov r9, qword [rax + 0x330]
mov r8, qword [0x1801d4dd8]
mov rdx, qword [rbx]
mov rcx, rdi
call r9
comiss xmm0, xmm6
jbe 0x18004ffa5
mov rcx, qword [0x1801d4b38]
mov rax, qword [rcx]
mov r9, qword [rax + 0x380]
movaps xmm3, xmm7
mov r8, qword [0x1801d4d20]
mov rdx, qword [rbx]
call r9
mov rdi, qword [0x1801d4b38]
mov rdx, qword [rbx]
test rdx, rdx
je 0x18004ffa5
mov rax, qword [rdi]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rcx, rdi
call r9
test al, al
jne 0x18004ffa5
mov rax, qword [rdi]
mov r9, qword [rax + 0x378]
movaps xmm3, xmm6
mov r8, qword [0x1801d4dd8]
mov rdx, qword [rbx]
mov rcx, rdi
call r9
mov rax, qword [rbp + 0x70]
movss xmm1, dword [rax + 8]
mov rcx, rbx
call fcn.1800b3cc0
mov rcx, qword [0x1801d4b38]
mov rax, qword [rcx]
mov r9, qword [rax + 0x330]
mov r8, qword [0x1801d4fa8]
mov rdx, qword [rbx]
call r9
ucomiss xmm0, xmm6
jp 0x18005001d
jne 0x18005001d
mov rcx, qword [0x1801d4b38]
mov rax, qword [rcx]
mov r9, qword [rax + 0x380]
xorps xmm3, xmm3
mov r8, qword [0x1801d4ed8]
mov rdx, qword [rbx]
call r9
mov rcx, qword [0x1801d4b38]
mov rax, qword [rcx]
mov r9, qword [rax + 0x380]
xorps xmm3, xmm3
mov r8, qword [0x1801d4d10]
mov rdx, qword [rbx]
call r9
add rsi, 0x38
cmp rsi, r14
jne 0x18004fe20
lea rcx, [rsp + 0x20]
call fcn.18004dee0
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1800caa50
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
mov rcx, qword [rcx + 8]
jmp 0x18004fce0