Function at 0x140037a80
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0xb0
mov rax, qword [0x1400ff080]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov ecx, dword [0x140100a5c]
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rdi
call qword [sym.imp.KERNEL32.dll_DebugActiveProcess]
cmp qword [0x140100b00], 0
jne 0x140037bfe
cmp qword [0x140100b10], 0
je 0x140037bfe
lea rax, [rbp + 0x27]
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xa0], r15
lea r9, [rbp - 9]
mov r15, qword [0x140100a60]
lea r8, [rbp - 1]
lea rdx, [rbp + 0x2f]
mov qword [rsp + 0x20], rax
mov rcx, qword [r15 + 0xa8]
call fcn.14001e2a0
mov rcx, qword [0x140100b10]
lea rdx, [0x140100b00]
mov r14d, dword [rbp - 9]
xor ebx, ebx
mov edi, dword [rbp - 1]
mov r8d, r14d
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rdx
mov edx, edi
mov qword [0x140100b00], rbx
lea r9d, [rbx + 1]
mov rax, qword [rcx]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], reloc.WS2_32.dll_setsockopt
mov dword [rsp + 0x20], 0x200
call qword [rax + 0xb8]
test eax, eax
js 0x140037bee
mov rcx, qword [0x140100b00]
lea r8, [rbp + 0x17]
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x98]
test eax, eax
jne 0x140037bee
test r14d, r14d
jle 0x140037bca
imul edi, dword [rbp + 0x27]
mov qword [rsp + 0xc8], rsi
movsxd rsi, edi
mov rdi, qword [rbp + 0x2f]
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rbp + 0x17]
mov r8, rsi
imul eax, ebx
mov rdx, rdi
movsxd rcx, eax
add rcx, qword [rbp + 0x1f]
call sub.VCRUNTIME140.dll_memcpy
inc ebx
add rdi, rsi
cmp ebx, r14d
jl 0x140037ba0
mov rsi, qword [rsp + 0xc8]
mov rcx, qword [0x140100b00]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0xa0]
mov rcx, qword [r15 + 0xa8]
mov rax, qword [0x140100b00]
mov qword [rcx + 8], rax
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0xa0]
mov rcx, qword [0x140100b20]
lea rdx, [rbp + 7]
mov rdi, qword [0x140100a60]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rbp + 0xf]
lea rcx, [rbp + 0x2f]
sub eax, dword [rbp + 7]
movd xmm1, eax
mov eax, dword [rbp + 0x13]
sub eax, dword [rbp + 0xb]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x10], xmm1
movss dword [rdi + 0x14], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rbp + 0x2f]
xorps xmm1, xmm1
mov rax, rcx
xorps xmm0, xmm0
sub rax, qword [0x140100b28]
cvtsi2ss xmm0, qword [0x140100b30]
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
mov qword [0x140100b28], rcx
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, reloc.WS2_32.dll_recv
and al, 1
mov byte [rdi + 0x140], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, reloc.WS2_32.dll_select
and al, 1
mov byte [rdi + 0x141], al
call qword [sym.imp.USER32.dll_GetKeyState]
mov rbx, qword [0x140100a60]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x143], 0
mov byte [rdi + 0x142], al
cmp byte [rbx + 0x39b], 0
je 0x140037d02
cvttss2si eax, dword [rbx + 0x128]
mov rcx, qword [0x140100b20]
lea rdx, [rbp + 0x27]
mov dword [rbp + 0x27], eax
cvttss2si eax, dword [rbx + 0x12c]
mov dword [rbp + 0x2b], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rbp + 0x2b]
mov ecx, dword [rbp + 0x27]
call qword [sym.imp.USER32.dll_SetCursorPos]
lea rcx, [rbp - 1]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm0, dword [rbp - 1]
movd xmm1, dword [rbp + 3]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx + 0x128], xmm0
movss dword [rbx + 0x12c], xmm1
cmp byte [rdi + 0xc8], 0
mov rdi, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xc0]
je 0x140037d4c
mov eax, 0xffffffff
jmp 0x140037d59
mov rax, qword [0x140100a60]
mov eax, dword [rax + 0x1f68]
cmp dword [reloc.WS2_32.dll_htons], eax
je 0x140037d6c
mov dword [reloc.WS2_32.dll_htons], eax
call fcn.140023210
call fcn.140023390
call fcn.140005a50
mov rcx, qword [0x140100ac8]
mov rax, qword [rcx]
call qword [rax + 0x148]
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.14009d440
add rsp, 0xb0
pop rbp
ret