Function at 0x14005d650
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x40
movaps xmmword [rsp + 0x30], xmm6
call fcn.14005d7b0
movsxd rdx, dword [0x1401759a4]
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 2
dec rcx
cmp rdx, rcx
jb 0x14005d307
call fcn.14005d7b0
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
movabs rax, 0xaaaaaaaaaaaaaaab
sar rcx, 2
mul rcx
xor ecx, ecx
shr rdx, 1
call fcn.140002810
jmp 0x14005d30a
lea eax, [rdx + 1]
mov dword [0x1401759a4], eax
call fcn.14005d7b0
movsxd rcx, dword [0x1401759a4]
movss xmm1, dword [0x14016e4fc]
ucomiss xmm1, dword [0x140150124]
mov rax, qword [rax]
movd xmm6, dword [rax + rcx*4]
cvtdq2pd xmm6, xmm6
jp 0x14005d33b
je 0x14005d35d
cmp byte [0x14017597b], 0
jne 0x14005d356
movd xmm0, dword [0x14016e4f4]
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm6
jbe 0x14005d35d
cvtps2pd xmm0, xmm1
mulsd xmm6, xmm0
cmp byte [0x140175977], 0
je 0x14005d383
mov edx, dword [reloc.WS2_32.dll_getpeername]
mov ecx, dword [0x14016e4f8]
call fcn.140002810
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm6, xmm0
cmp byte [0x14017597a], 0
je 0x14005d3b7
mov edx, 0x64
lea ecx, [rdx - 0x63]
call fcn.140002810
cmp eax, 0xa
jge 0x14005d3b7
mov edx, dword [0x14016e500]
mov ecx, dword [0x14016e504]
call fcn.140002810
movd xmm6, eax
cvtdq2pd xmm6, xmm6
mov edx, 0x1e
mov qword [rsp + 0x50], rdi
movaps xmmword [rsp + 0x20], xmm7
cvttsd2si ebx, xmm6
lea ecx, [rdx - 5]
call fcn.140002810
mov esi, eax
cmp eax, ebx
jle 0x14005d4aa
mov rcx, qword [0x140175940]
xor r9d, r9d
mov edx, 0x201
lea r8d, [r9 + 1]
call qword [sym.imp.USER32.dll_PostMessageA]
movd xmm6, ebx
cvtdq2pd xmm6, xmm6
divsd xmm6, qword [0x140150180]
call fcn.1400dc8ac
mov rbx, rax
call fcn.1400dc890
cmp rbx, 0x989680
jne 0x14005d421
imul rbx, rax, 0x64
jmp 0x14005d442
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
movsd xmm7, qword [0x1401501b8]
nop word [rax + rax]
call fcn.1400dc8ac
mov rdi, rax
call fcn.1400dc890
cmp rdi, 0x989680
jne 0x14005d46c
imul rax, rax, 0x64
jmp 0x14005d48a
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
sub rax, rbx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm7
comisd xmm6, xmm0
jbe 0x14005d616
call fcn.140002680
jmp 0x14005d450
sub ebx, esi
movd xmm7, ebx
cvtdq2pd xmm7, xmm7
divsd xmm7, qword [0x140150180]
call fcn.1400dc8ac
mov rbx, rax
call fcn.1400dc890
cmp rbx, 0x989680
jne 0x14005d4d8
imul rbx, rax, 0x64
jmp 0x14005d4f9
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
movsd xmm6, qword [0x1401501b8]
call fcn.1400dc8ac
mov rdi, rax
call fcn.1400dc890
cmp rdi, 0x989680
jne 0x14005d51d
imul rax, rax, 0x64
jmp 0x14005d53b
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
sub rax, rbx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm6
comisd xmm7, xmm0
jbe 0x14005d557
call fcn.140002680
jmp 0x14005d501
mov rcx, qword [0x140175940]
xor r9d, r9d
mov edx, 0x201
lea r8d, [r9 + 1]
call qword [sym.imp.USER32.dll_PostMessageA]
movd xmm7, esi
cvtdq2pd xmm7, xmm7
divsd xmm7, qword [0x140150180]
call fcn.1400dc8ac
mov rbx, rax
call fcn.1400dc890
cmp rbx, 0x989680
jne 0x14005d59c
imul rbx, rax, 0x64
jmp 0x14005d5c0
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
nop dword [rax]
call fcn.1400dc8ac
mov rdi, rax
call fcn.1400dc890
cmp rdi, 0x989680
jne 0x14005d5dc
imul rax, rax, 0x64
jmp 0x14005d5fa
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
sub rax, rbx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm6
comisd xmm7, xmm0
jbe 0x14005d616
call fcn.140002680
jmp 0x14005d5c0
mov rcx, qword [0x140175940]
xor r9d, r9d
mov edx, 0x202
lea r8d, [r9 + 1]
movaps xmm7, xmmword [rsp + 0x20]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x40
pop rsi
jmp qword [sym.imp.USER32.dll_PostMessageA]
push rbx
sub rsp, 0x20
cmp qword [0x140175a40], 0x10
lea rcx, [0x140175a28]
mov r8, qword [0x140175a38]
mov bl, 1
cmovae rcx, qword [0x140175a28]
mov byte [0x14017597c], bl
cmp r8, 4
jne 0x14005d692
lea rdx, [0x1401487e4]
call fcn.1400e0c80
test eax, eax
je 0x14005d6bf
cmp byte [0x14017597d], 0
je 0x14005d6a4
cmp byte [0x140175933], 0
jne 0x14005d6bf
cmp byte [0x14017597f], 0
je 0x14005d6d3
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14005d6cc
mov byte [0x14017597c], 0
add rsp, 0x20
pop rbx
ret
movzx ebx, byte [0x14017597c]
cmp byte [0x1401759a1], 0
je case.default.0x14005d6fc
mov eax, dword [reloc.WS2_32.dll_accept]
dec eax
cmp eax, 8
ja case.default.0x14005d6fc
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x5d780]
add rcx, rdx
jmp rcx
cmp byte [0x140175998], 0
setne bl
mov byte [0x14017597c], bl
test bl, bl
je 0x14005d71c
add rsp, 0x20
pop rbx
jmp 0x14005d2b0
add rsp, 0x20
pop rbx
ret
cmp byte [0x140175999], 0
jmp 0x14005d705
cmp byte [0x14017599a], 0
jmp 0x14005d705
cmp byte [0x14017599b], 0
jmp 0x14005d705
cmp byte [0x14017599c], 0
jmp 0x14005d705
cmp byte [0x14017599d], 0
jmp 0x14005d705
cmp byte [0x14017599e], 0
jmp 0x14005d705
cmp byte [0x14017599f], 0
jmp 0x14005d705
cmp byte [0x1401759a0], 0
je 0x14005d6bf
mov byte [0x14017597c], 1
add rsp, 0x20
pop rbx
jmp 0x14005d2b0