Function at 0x1800f3790
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0xa0
mov rax, qword [0x180350010]
xor rax, rsp
mov qword [rsp + 0x48], rax
cmp qword [rcx + 0x100], 0
mov rbx, rcx
je 0x1800f3a31
mov rax, qword [rcx + 0x10]
cmp byte [rax + 9], 0
je 0x1800f3a31
mov rax, qword [0x18035ac58]
cmp byte [rax + 0x70], 0
je 0x1800f3a31
mov rax, qword [rcx + 8]
mov qword [rsp + 0xb8], rdi
mov qword [rax], 0
mov rax, qword [rcx + 8]
mov dword [rax + 0x18], 0
mov rax, qword [0x18035ac28]
mov rcx, qword [rax + 0x28]
mov rax, qword [rbx + 8]
movups xmm0, xmmword [rcx]
movups xmmword [rax + 8], xmm0
mov rax, qword [rbx + 0x10]
mov rcx, qword [rax + 0x10]
add rcx, 8
call fcn.180074420
mov rcx, rax
mov rdi, rax
mov rdx, qword [rax]
call qword [rdx + reloc.WS2_32.dll_recv]
test al, al
jne 0x1800f3a29
mov rcx, rbx
call fcn.1800f3a50
mov r8, qword [0x18035ac58]
cmp byte [r8 + 0x305], 1
jne 0x1800f3854
cmp byte [rdi + 0x4c], 0
je 0x1800f3a29
add r8, 0x568
lea rdx, [rsp + 0x30]
lea rcx, [rbx + 0xc0]
call fcn.1800f7600
mov rdx, qword [rax]
cmp qword [rdx + 0x18], 0
je 0x1800f3a29
mov r8, qword [0x18035ac58]
lea rdx, [rsp + 0x30]
add r8, 0x568
lea rcx, [rbx + 0xc0]
call fcn.1800f7600
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
call qword [rax]
mov rcx, qword [rbx + 8]
mov qword [rcx], rax
test rax, rax
je 0x1800f3a29
mov r8, qword [0x18035ac58]
mov ecx, dword [r8 + 0x300]
test ecx, ecx
je 0x1800f38f6
cmp ecx, 1
jne 0x1800f3a29
add r8, 0x828
lea rcx, [rbx + 0x60]
lea rdx, [rsp + 0x30]
call fcn.1800f7600
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x18]
mov rax, qword [rcx]
call qword [rax]
jmp 0x1800f3a29
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800f3a29
mov rax, qword [0x18035ac58]
movaps xmmword [rsp + 0x90], xmm7
movaps xmmword [rsp + 0x80], xmm8
movaps xmmword [rsp + 0x70], xmm9
movss xmm9, dword [rbx + 0x114]
movaps xmmword [rsp + 0x60], xmm10
movss xmm10, dword [rax + 0x30c]
movaps xmmword [rsp + 0x50], xmm11
movss xmm11, dword [rax + 0x308]
mov rax, qword [rbx + 8]
mov rcx, qword [rax]
mov rax, qword [0x18035ac28]
movss xmm8, dword [rcx + 0x74]
mov rbx, qword [rax + 0x18]
movss xmm7, dword [rcx + 0x78]
test rbx, rbx
je 0x1800f3a06
xorps xmm0, xmm0
mov dword [rsp + 0x30], 0x18
xor eax, eax
lea rcx, [rsp + 0x30]
movups xmmword [rsp + 0x34], xmm0
mov dword [rsp + 0x44], eax
call qword [sym.imp.USER32.dll_GetCursorInfo]
test eax, eax
je 0x1800f3a06
cmp dword [rsp + 0x34], 1
je 0x1800f3a06
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov rax, qword [rbx]
mov rcx, rbx
mulss xmm0, dword [0x18032a6c0]
subss xmm8, xmm0
mulss xmm8, xmm11
mulss xmm8, xmm9
call qword [rax + ioctlsocket]
xor r9d, r9d
mov qword [rsp + 0x20], 0
mulss xmm0, dword [0x18032a6c0]
cvttss2si rdx, xmm8
lea ecx, [r9 + 1]
subss xmm7, xmm0
xorps xmm0, xmm0
mulss xmm7, xmm10
mulss xmm7, xmm9
minss xmm7, xmm0
cvttss2si r8, xmm7
call qword [sym.imp.USER32.dll_mouse_event]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm11, xmmword [rsp + 0x50]
mov rdi, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.18012c2e0
add rsp, 0xa0
pop rbx
ret