Function at 0x1400c6af0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
add edx, 0xfffffff8
mov rbx, rcx
cmp edx, 0x50
ja case.0x1400c6b2a.9
lea rcx, [0x140000000]
movzx eax, byte [rcx + rdx + 0xc6eb8]
mov edx, dword [rcx + rax*4 + 0xc6e8c]
add rdx, rcx
xor esi, esi
jmp rdx
mov ecx, reloc.WSOCK32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6e26
mov rcx, rbx
call fcn.1400c6280
mov eax, 1
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov ecx, reloc.WSOCK32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6e26
mov rcx, rbx
call fcn.1400c6340
jmp case.0x1400c6b2a.9
mov ecx, reloc.WSOCK32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6e26
mov rcx, rbx
call fcn.1400c6740
jmp case.0x1400c6b2a.9
mov eax, dword [rbx + 0x30]
mov edx, dword [rbx + 0x2c]
mov r8d, 1
cmp eax, r8d
lea rcx, [rbx + 0x20]
cmovg r8d, eax
call fcn.1400c5f50
mov r11d, dword [rbx + 0x2c]
mov dword [rbx + 0x2c], r11d
mov dword [rbx + 0x34], r11d
jmp 0x1400c6e23
mov r8d, dword [rbx + 0x30]
test r8d, r8d
je 0x1400c6bf7
mov edx, dword [rbx + 0x2c]
lea rcx, [rbx + 0x20]
call fcn.1400c5f50
jmp 0x1400c6e26
mov edx, dword [rbx + 0x34]
test edx, edx
je 0x1400c6e26
lea rcx, [rbx + 0x20]
dec edx
mov r8d, 1
call fcn.1400c5f50
mov eax, dword [rbx + 0x34]
dec eax
mov dword [rbx + 0x2c], eax
mov dword [rbx + 0x34], eax
jmp 0x1400c6e23
mov edi, dword [rbx + 0x34]
mov ecx, reloc.WSOCK32.dll_recvfrom
dec edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6c74
mov rax, qword [rbx + 0x20]
cmp dword [rax - 0x10], esi
jle 0x1400c6c74
movsxd rax, edi
test edi, edi
jle 0x1400c6c76
lea ecx, [rdi - 1]
cmp rax, 1
jl 0x1400c6cbe
mov rdx, qword [rbx + 0x20]
cmp ecx, dword [rdx - 0x10]
jg 0x1400c6cbe
cmp word [rdx + rax*2 - 2], 0x20
je 0x1400c6c74
dec rax
dec edi
dec ecx
test rax, rax
jg 0x1400c6c51
test edi, edi
mov ebp, dword [rbx + 0x34]
cmovs edi, esi
mov ecx, reloc.WSOCK32.dll_recv
sub ebp, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6ce5
mov ecx, dword [rbx + 0x30]
test ecx, ecx
jle 0x1400c6cc9
mov edx, dword [rbx + 0x2c]
lea eax, [rdx + rcx]
cmp eax, dword [rbx + 0x34]
jne 0x1400c6cc9
sub ecx, ebp
mov dword [rbx + 0x2c], edx
mov dword [rbx + 0x30], ecx
cmp edi, 0xffffffff
jne 0x1400c6cb6
lea edi, [rcx + rdx]
mov dword [rbx + 0x34], edi
jmp 0x1400c6e26
mov ecx, 0x80070057
call fcn.14008ec20
int3
sub dword [rbx + 0x2c], ebp
lea edx, [rcx + rbp]
mov dword [rbx + 0x30], edx
cmp edi, 0xffffffff
jne 0x1400c6cdd
mov eax, dword [rbx + 0x2c]
lea edi, [rdx + rax]
mov dword [rbx + 0x34], edi
jmp 0x1400c6e26
mov dword [rbx + 0x2c], edi
mov dword [rbx + 0x34], edi
jmp 0x1400c6e23
mov edi, dword [rbx + 0x34]
mov ecx, reloc.WSOCK32.dll_recvfrom
inc edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6d46
mov rax, qword [rbx + 0x20]
mov ecx, dword [rax - 0x10]
test ecx, ecx
jle 0x1400c6d46
movsxd rax, edi
cmp edi, ecx
jge 0x1400c6d46
lea rcx, [rax - 1]
test rcx, rcx
js 0x1400c6d9b
mov rdx, qword [rbx + 0x20]
lea eax, [rdi - 1]
cmp eax, dword [rdx - 0x10]
jg 0x1400c6d9b
cmp word [rdx + rcx*2], 0x20
je 0x1400c6d46
inc edi
inc rcx
mov rax, rdx
cmp edi, dword [rdx - 0x10]
jl 0x1400c6d21
mov rax, qword [rbx + 0x20]
mov ecx, dword [rax - 0x10]
cmp ecx, edi
cmovl edi, ecx
mov ecx, reloc.WSOCK32.dll_recv
mov ebp, edi
sub ebp, dword [rbx + 0x34]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6ce5
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x1400c6da6
mov ecx, dword [rbx + 0x2c]
cmp ecx, dword [rbx + 0x34]
jne 0x1400c6da6
sub eax, ebp
lea edx, [rcx + rbp]
mov dword [rbx + 0x2c], edx
mov dword [rbx + 0x30], eax
cmp edi, 0xffffffff
jne 0x1400c6d93
lea edi, [rax + rdx]
mov dword [rbx + 0x34], edi
jmp 0x1400c6e26
mov ecx, 0x80070057
call fcn.14008ec20
int3
lea ecx, [rax + rbp]
mov eax, dword [rbx + 0x2c]
mov dword [rbx + 0x2c], eax
add eax, ecx
mov dword [rbx + 0x30], ecx
mov dword [rbx + 0x34], eax
jmp 0x1400c6e26
mov ecx, reloc.WSOCK32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
bt r11d, 0xf
jae 0x1400c6ddd
mov eax, dword [rbx + 0x2c]
mov dword [rbx + 0x2c], esi
mov dword [rbx + 0x34], esi
mov dword [rbx + 0x30], eax
jmp 0x1400c6e26
mov qword [rbx + 0x2c], rsi
mov dword [rbx + 0x34], esi
jmp 0x1400c6e26
mov ecx, reloc.WSOCK32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx r11d, ax
mov rax, qword [rbx + 0x20]
mov ecx, dword [rax - 0x10]
bt r11d, 0xf
jae 0x1400c6e1d
mov edx, dword [rbx + 0x2c]
mov eax, ecx
sub eax, edx
mov dword [rbx + 0x2c], edx
mov dword [rbx + 0x30], eax
cmp ecx, 0xffffffff
jne 0x1400c6e18
lea ecx, [rax + rdx]
mov dword [rbx + 0x34], ecx
jmp 0x1400c6e26
mov dword [rbx + 0x2c], ecx
mov dword [rbx + 0x34], ecx
mov dword [rbx + 0x30], esi
mov rax, qword [rbx + 0x20]
mov edx, dword [rax - 0x10]
mov eax, dword [rbx + 0x30]
test eax, eax
jns 0x1400c6e3c
add dword [rbx + 0x2c], eax
neg eax
mov dword [rbx + 0x30], eax
mov ecx, dword [rbx + 0x2c]
mov eax, edx
test ecx, ecx
cmovs ecx, esi
cmp ecx, edx
cmovl eax, ecx
mov dword [rbx + 0x2c], eax
mov eax, dword [rbx + 0x34]
test eax, eax
cmovs eax, esi
cmp eax, edx
cmovl edx, eax
mov dword [rbx + 0x34], edx
mov dword [rbx + 0x38], 1
jmp case.0x1400c6b2a.9
mov rax, qword [rbx + 0x20]
mov dword [rbx + 0x28], esi
mov qword [rbx + 0x38], 1
mov ecx, dword [rax - 0x10]
mov dword [rbx + 0x2c], esi
xor eax, eax
mov dword [rbx + 0x30], ecx
mov dword [rbx + 0x34], ecx
jmp 0x1400c6b53