Function at 0x14009cb10
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x248
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
movabs r14, 0x7fffffffffffffff
movabs r15, 0x7ffffffffff0bdbf
lea r12, [0x140388610]
xor edi, edi
cmp byte [0x14038943c], 0
jne 0x14009cb9d
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x14009cb86
mov rbx, qword [0x1403898c8]
test rbx, rbx
je 0x14009d209
cmp qword [0x1403898e8], 0
je 0x14009d209
mov ecx, dword [0x140388b40]
add rcx, rbx
je 0x14009cc44
mov eax, dword [0x140389688]
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0x90], edi
mov eax, dword [0x140389680]
mov dword [rsp + 0x94], eax
mov eax, dword [0x140389684]
mov dword [rsp + 0x98], eax
mov qword [rsp + 0xa0], rcx
lea rax, [rsp + 0x280]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], 8
mov rdx, qword [0x140388a90]
test rdx, rdx
je 0x14009cc4b
lea rcx, [rsp + 0x90]
call rdx
test rax, rax
je 0x14009cc44
mov rdx, qword [0x140388a90]
mov rsi, qword [rsp + 0x280]
jmp 0x14009cc56
mov rdx, qword [0x140388a90]
mov rsi, rdi
mov qword [rsp + 0x280], rdi
mov ecx, dword [0x140388b3c]
add rcx, rbx
je 0x14009ccc7
mov eax, dword [0x140389688]
mov dword [rsp + 0x108], eax
mov dword [rsp + 0xd0], edi
mov eax, dword [0x140389680]
mov dword [rsp + 0xd4], eax
mov eax, dword [0x140389684]
mov dword [rsp + 0xd8], eax
mov qword [rsp + 0xe0], rcx
lea rax, [rsp + 0x298]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], 8
test rdx, rdx
je 0x14009ccc7
lea rcx, [rsp + 0xd0]
call rdx
test rax, rax
jne 0x14009cccf
mov qword [rsp + 0x298], rdi
test rbx, rbx
jne 0x14009cce5
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x14009cb86
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, qword [0x140389370]
je 0x14009cd0e
cmp rax, qword [0x140389368]
je 0x14009cd0e
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x14009cb86
lea rcx, [rbx + 0x90]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], 0
test rcx, rcx
je 0x14009cd9e
mov eax, dword [0x140389688]
mov dword [rsp + 0x108], eax
mov dword [rsp + 0xd0], edi
mov eax, dword [0x140389680]
mov dword [rsp + 0xd4], eax
mov eax, dword [0x140389684]
mov dword [rsp + 0xd8], eax
mov qword [rsp + 0xe0], rcx
lea rax, [rsp + 0x20]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], listen
mov rdx, qword [0x140388a90]
test rdx, rdx
je 0x14009cda5
lea rcx, [rsp + 0xd0]
call rdx
test rax, rax
je 0x14009cd9e
mov rdx, qword [0x140388a90]
jmp 0x14009cdb0
mov rdx, qword [0x140388a90]
xor eax, eax
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], eax
lea rcx, [rsi + 0x90]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x38], 0
test rcx, rcx
je 0x14009ce37
mov eax, dword [0x140389688]
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0x90], edi
mov eax, dword [0x140389680]
mov dword [rsp + 0x94], eax
mov eax, dword [0x140389684]
mov dword [rsp + 0x98], eax
mov qword [rsp + 0xa0], rcx
lea rax, [rsp + 0x30]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], listen
test rdx, rdx
je 0x14009ce37
lea rcx, [rsp + 0x90]
call rdx
mov rdx, qword [0x140388a90]
test rax, rax
jne 0x14009ce42
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], eax
cmp byte [0x140389444], 0
jne 0x14009cee0
mov edx, dword [0x140388b10]
add rdx, 4
add rdx, rbx
call fcn.14000c080
bt eax, 0x1e
jae 0x14009ce9b
movss xmm0, dword [rsp + 0x30]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [rsp + 0x34]
movss dword [rsp + 0x44], xmm1
movss xmm0, dword [rsp + 0x38]
movss dword [rsp + 0x48], xmm0
xor r9d, r9d
lea r8, [rsp + 0x40]
mov rdx, rsi
call fcn.14009df50
movss xmm0, dword [rsp + 0x20]
movss dword [rsp + 0x50], xmm0
movss xmm1, dword [rsp + 0x24]
movss dword [rsp + 0x54], xmm1
movss xmm0, dword [rsp + 0x28]
movss dword [rsp + 0x58], xmm0
xor r9d, r9d
lea r8, [rsp + 0x50]
mov rdx, rbx
call fcn.14009df50
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x14009cb86
mov rax, qword [0x1403898d8]
test rax, rax
jne 0x14009cef4
mov rcx, rdi
jmp 0x14009cf82
lea rcx, [rax + 0x3c0]
test rcx, rcx
je 0x14009cf77
mov eax, dword [0x140389688]
mov dword [rsp + 0x148], eax
mov dword [rsp + 0x110], edi
mov eax, dword [0x140389680]
mov dword [rsp + 0x114], eax
mov eax, dword [0x140389684]
mov dword [rsp + 0x118], eax
mov qword [rsp + 0x120], rcx
lea rax, [rsp + 0x288]
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], 8
test rdx, rdx
je 0x14009cf77
lea rcx, [rsp + 0x110]
call rdx
mov rdx, qword [0x140388a90]
test rax, rax
je 0x14009cf77
mov rcx, qword [rsp + 0x288]
jmp 0x14009cf82
mov rcx, rdi
mov qword [rsp + 0x288], rcx
test rcx, rcx
je 0x14009cfe0
mov eax, dword [0x140389688]
mov dword [rsp + 0x188], eax
mov dword [rsp + 0x150], edi
mov eax, dword [0x140389680]
mov dword [rsp + 0x154], eax
mov eax, dword [0x140389684]
mov dword [rsp + 0x158], eax
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], r12
mov qword [rsp + 0x170], 0x3f0
test rdx, rdx
je 0x14009cfe0
lea rcx, [rsp + 0x150]
call rdx
movss xmm12, dword [0x1403889e8]
movss xmm10, dword [0x1403889e4]
movss xmm11, dword [0x1403889e0]
xorps xmm0, xmm0
ucomiss xmm11, xmm0
jne 0x14009d02b
ucomiss xmm10, xmm0
jne 0x14009d02b
ucomiss xmm12, xmm0
jne 0x14009d02b
movss xmm11, dword [0x140388650]
movss xmm10, dword [0x140388654]
movss xmm12, dword [0x140388658]
movss xmm8, dword [rsp + 0x20]
movaps xmm13, xmm8
movss xmm9, dword [rsp + 0x24]
movaps xmm14, xmm9
movss xmm7, dword [rsp + 0x28]
movaps xmm15, xmm7
movss xmm6, dword [0x140389448]
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d069
addss xmm6, xmm6
jmp 0x14009d081
mov ecx, 0xa4
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d081
mulss xmm6, dword [0x140332600]
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d0ba
movaps xmm8, xmm11
mulss xmm8, xmm6
addss xmm8, xmm13
movaps xmm9, xmm10
mulss xmm9, xmm6
addss xmm9, xmm14
movaps xmm7, xmm12
mulss xmm7, xmm6
addss xmm7, xmm15
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d0ee
movaps xmm0, xmm11
mulss xmm0, xmm6
subss xmm8, xmm0
movaps xmm1, xmm10
mulss xmm1, xmm6
subss xmm9, xmm1
mulss xmm12, xmm6
subss xmm7, xmm12
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d118
movaps xmm0, xmm10
mulss xmm0, xmm6
subss xmm8, xmm0
movaps xmm1, xmm11
mulss xmm1, xmm6
addss xmm9, xmm1
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d13c
mulss xmm10, xmm6
addss xmm8, xmm10
mulss xmm11, xmm6
subss xmm9, xmm11
mov ecx, reloc.WLDAP32.dll_Ordinal_32
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d150
addss xmm7, xmm6
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14009d164
subss xmm7, xmm6
mov edx, dword [0x140388b10]
add rdx, 4
add rdx, rbx
call fcn.14000c080
bt eax, 0x1e
jae 0x14009d1a0
movss dword [rsp + 0x60], xmm8
movss dword [rsp + 0x64], xmm9
movss dword [rsp + 0x68], xmm7
mov r9b, 1
lea r8, [rsp + 0x60]
mov rdx, rsi
call fcn.14009df50
movss dword [rsp + 0x70], xmm8
movss dword [rsp + 0x74], xmm9
movss dword [rsp + 0x78], xmm7
mov r9b, 1
lea r8, [rsp + 0x70]
mov rdx, rbx
call fcn.14009df50
lea rcx, [rsp + 0x80]
call fcn.140003790
mov rax, qword [rsp + 0x80]
cmp rax, r15
jge 0x14009d1ee
add rax, 0xf4240
mov qword [rsp + 0x290], rax
jmp 0x14009d1f6
mov qword [rsp + 0x290], r14
lea rcx, [rsp + 0x290]
call fcn.140005680
nop
jmp 0x14009cb86
mov ecx, Ordinal_301
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x14009cb86