Function at 0x14003cec0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x180
movaps xmmword [rsp + 0x170], xmm6
mov rax, qword [0x14018c010]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rax, qword [rcx]
mov rsi, rcx
mov rdi, rdx
movsxd rcx, dword [rax]
cmp ecx, 0xc0
jne 0x14003cf06
lea r8, [0x14015b770]
jmp 0x14003cf4b
cmp ecx, 0xbb
jne 0x14003cf17
lea r8, [0x14015b778]
jmp 0x14003cf4b
cmp ecx, 0xbd
jne 0x14003cf28
lea r8, [0x14015b774]
jmp 0x14003cf4b
mov rax, qword [0x140198ce0]
lea r8, [rsp + 0x40]
shl rcx, 5
movups xmm0, xmmword [rcx + rax]
movaps xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rcx + rax + 0x10]
movaps xmmword [rsp + 0x50], xmm1
lea rdx, [0x14014e3a8]
lea rcx, [rsp + 0x60]
call fcn.14001a100
cmp byte [rsi + 8], 0
je 0x14003cf73
lea rdx, [0x14015b780]
lea rcx, [rsp + 0x60]
call fcn.14001a100
mov rbx, qword [0x140195358]
lea rdx, [rsp + 0x28]
movaps xmm6, xmmword [0x1401625b0]
mov dword [rsp + 0x28], socket
movups xmm0, xmmword [rbx + 0x3b18]
lea rcx, [rbx + 0x4998]
movups xmmword [rsp + 0x2c], xmm0
call fcn.1400e8c70
mov rax, qword [0x140195358]
mov edx, edi
movups xmmword [rbx + 0x3b18], xmm6
mov rbx, qword [rax + 0x4028]
mov rcx, rbx
call fcn.1400c6e80
add rbx, 0x128
mov ebp, eax
mov ecx, dword [rbx]
mov r8d, dword [rbx + 4]
cmp ecx, r8d
jne 0x14003d001
inc ecx
test r8d, r8d
je 0x14003cfed
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14003cff2
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
mov rcx, rbx
call fcn.1400e95d0
movsxd rcx, dword [rbx]
lea rdx, [rsp + 0x20]
mov rax, qword [rbx + 8]
xor r8d, r8d
mov qword [rsp + 0x20], 0x430c0000
mov dword [rax + rcx*4], ebp
lea rcx, [rsp + 0x60]
inc dword [rbx]
call fcn.140104710
test al, al
je 0x14003d030
mov byte [rsi + 8], 1
mov r8, qword [0x140195358]
mov rax, qword [r8 + 0x4028]
dec dword [rax + 0x128]
movsxd rax, dword [r8 + 0x4998]
cmp eax, 1
jl 0x14003d078
mov rcx, qword [r8 + 0x49a0]
lea rdx, [rax + rax*4]
movsxd rax, dword [rcx + rdx*4 - 0x14]
movups xmm1, xmmword [rcx + rdx*4 - 0x10]
add rax, rax
movups xmmword [r8 + rax*8 + 0x39b8], xmm1
dec dword [r8 + 0x4998]
movss xmm1, dword [0x14016224c]
xorps xmm0, xmm0
call fcn.1400d5140
mov rax, qword [r8 + 0x4028]
mov byte [rax + 0xed], 1
mov rax, qword [r8 + 0x4028]
cmp byte [rax + 0xf0], 0
jne 0x14003d0e9
movss xmm1, dword [r8 + 0x3918]
movss xmm0, dword [rax + 0x164]
addss xmm1, xmm1
addss xmm1, dword [r8 + 0x3d60]
maxss xmm0, xmm1
movss xmm1, dword [rax + 0x170]
movss dword [rax + 0x164], xmm0
maxss xmm1, dword [r8 + 0x3918]
movss dword [rax + 0x170], xmm1
mov rcx, rdi
call fcn.140103d60
cmp byte [rsi + 8], 0
je 0x14003d19e
xor ebx, ebx
lea r9, [0x140195390]
mov edi, ebx
nop word [rax + rax]
movzx edx, dil
mov r8d, 1
mov eax, edx
and eax, 3
lea ecx, [rax + rax]
shl r8d, cl
add edx, edx
jns 0x14003d12c
add edx, 7
sar edx, 3
movsxd rax, edx
test byte [rax + r9], r8b
jne 0x14003d147
inc edi
cmp edi, 0x100
jl 0x14003d110
mov edi, 0xffffffff
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14003d1c9
inc ebx
cmp ebx, 0x100
jl 0x14003d147
cmp edi, 0xffffffff
je 0x14003d19e
movsxd rcx, edi
shl rcx, 5
add rcx, qword [0x140198ce0]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x14003d17f
mov rcx, qword [rcx]
cmp r8, 0xa
jne 0x14003d195
lea rdx, str.Unassigned
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14003d19e
mov rax, qword [rsi]
mov dword [rax], edi
mov byte [rsi + 8], 0
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.140130030
mov rbx, qword [rsp + 0x1b0]
movaps xmm6, xmmword [rsp + 0x170]
add rsp, 0x180
pop rdi
pop rsi
pop rbp
ret
cmp ebx, 0xffffffff
je 0x14003d15e
movsxd rcx, ebx
shl rcx, 5
add rcx, qword [0x140198ce0]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x14003d1ea
mov rcx, qword [rcx]
cmp r8, 0xa
jne 0x14003d204
lea rdx, str.Unassigned
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14003d15e
mov rax, qword [rsi]
mov dword [rax], ebx
jmp 0x14003d19a