Function at 0x1800d2f60
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
sub rsp, 0xd8
cmp qword [0x18023d4c8], 0
je 0x1800d3323
mov rdx, qword [0x18023d4e0]
test rdx, rdx
je 0x1800d3323
mov rcx, qword [0x18023d4d0]
test rcx, rcx
je 0x1800d3323
cmp byte [0x18023bf5d], 0
mov rax, qword [0x18023ff90]
je 0x1800d332b
cmp byte [rax], 0
movaps xmmword [r11 - 0x18], xmm6
xorps xmm6, xmm6
movaps xmmword [r11 - 0x28], xmm7
movaps xmmword [r11 - 0x38], xmm8
xorps xmm8, xmm8
movaps xmmword [r11 - 0x48], xmm9
xorps xmm9, xmm9
movaps xmmword [r11 - 0x78], xmm12
movaps xmmword [rsp + 0x50], xmm13
xorps xmm13, xmm13
je 0x1800d3003
mov rax, qword [0x18023ffe0]
mov r8, qword [rax + rcx]
test r8, r8
je 0x1800d302b
movsd xmm1, qword [r8 + 0x90]
movss xmm6, dword [r8 + 0x98]
jmp 0x1800d3013
movsd xmm1, qword [rcx + 0x90]
movss xmm6, dword [rcx + 0x98]
movaps xmm0, xmm1
movsd qword [rsp + 0x20], xmm1
movss xmm8, dword [rsp + 0x20]
shufps xmm0, xmm0, 0x55
movaps xmm9, xmm0
movsd xmm12, qword [rdx + 0x3d0]
ucomiss xmm12, xmm13
mov eax, dword [rdx + 0x3d8]
mov dword [rsp + 0x28], eax
movaps xmmword [rsp + 0x80], xmm10
movsd qword [rsp + 0x20], xmm12
movaps xmmword [rsp + 0x70], xmm11
movss xmm11, dword [rsp + 0x24]
jp 0x1800d309d
jne 0x1800d309d
ucomiss xmm11, xmm13
jp 0x1800d309d
jne 0x1800d309d
movd xmm10, eax
ucomiss xmm10, xmm13
jp 0x1800d30a4
jne 0x1800d30a4
movsd xmm1, qword [rdx + 0x40]
movss xmm10, dword [rdx + 0x48]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movsd qword [rsp + 0x20], xmm1
movaps xmm11, xmm0
movss xmm12, dword [rsp + 0x20]
jmp 0x1800d30a4
movss xmm10, dword [rsp + 0x28]
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movd xmm1, dword [reloc.WS2_32.dll_accept]
mov ecx, 1
test ax, ax
mov edx, 3
mov rax, qword [0x18023d4d0]
cmovne ecx, edx
cvtdq2ps xmm1, xmm1
test byte [rax + 0x40], 0xef
movd xmm0, ecx
movaps xmm7, xmm1
divss xmm7, dword [0x1801a7f24]
cvtdq2ps xmm0, xmm0
mulss xmm7, xmm0
je 0x1800d30fc
movaps xmm7, xmm1
divss xmm7, dword [0x1801baab4]
mulss xmm7, xmm0
mov ecx, dword [str.ZS_QD_]
movaps xmmword [rsp + 0x40], xmm14
movaps xmmword [rsp + 0x30], xmm15
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800d314c
mulss xmm12, xmm7
mulss xmm11, xmm7
mulss xmm10, xmm7
addss xmm12, xmm8
addss xmm11, xmm9
addss xmm10, xmm6
movaps xmm8, xmm12
movaps xmm15, xmm12
movaps xmm9, xmm11
movaps xmm6, xmm10
jmp 0x1800d3236
mov ecx, dword [0x18023c284]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800d3180
mulss xmm12, xmm7
mulss xmm11, xmm7
mulss xmm10, xmm7
subss xmm8, xmm12
subss xmm9, xmm11
subss xmm6, xmm10
jmp 0x1800d322e
mov ecx, dword [reloc.WLDAP32.dll_Ordinal_32]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800d319a
addss xmm6, xmm7
jmp 0x1800d322e
mov ecx, dword [0x18023c28c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800d31b1
subss xmm6, xmm7
jmp 0x1800d322e
mov ecx, dword [0x18023c290]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800d31ec
mulss xmm12, xmm7
mulss xmm11, xmm7
mulss xmm7, xmm13
addss xmm12, xmm9
subss xmm8, xmm11
addss xmm7, xmm6
movaps xmm9, xmm12
movaps xmm6, xmm7
movaps xmm10, xmm7
jmp 0x1800d3232
mov ecx, dword [0x18023c294]
movaps xmm10, xmm6
movaps xmm14, xmm9
movaps xmm15, xmm8
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800d323a
movaps xmm8, xmm11
mulss xmm12, xmm7
movaps xmm6, xmm7
mulss xmm8, xmm7
mulss xmm6, xmm13
subss xmm9, xmm12
addss xmm8, xmm15
addss xmm6, xmm10
movaps xmm10, xmm6
movaps xmm15, xmm8
movaps xmm14, xmm9
mov rax, qword [0x18023ff90]
movaps xmm13, xmmword [rsp + 0x50]
movaps xmm12, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
cmp byte [rax], 0
movaps xmm7, xmmword [rsp + 0xb0]
je 0x1800d32a3
mov rcx, qword [0x18023d4d0]
mov rax, qword [0x18023ffe0]
mov rcx, qword [rax + rcx]
test rcx, rcx
je 0x1800d32f4
mov rax, qword [rcx + 0x20]
mov dword [rax + 0x2c], 0
movss dword [rcx + 0x90], xmm15
movss dword [rcx + 0x94], xmm14
movss dword [rcx + 0x98], xmm10
mov rcx, qword [rcx + 0x30]
jmp 0x1800d32e2
mov rax, qword [0x18023d4d0]
mov rcx, qword [rax + 0x20]
mov dword [rcx + 0x2c], 0
mov rax, qword [0x18023d4d0]
movss dword [rax + 0x90], xmm15
movss dword [rax + 0x94], xmm14
movss dword [rax + 0x98], xmm10
mov rax, qword [0x18023d4d0]
mov rcx, qword [rax + 0x30]
movaps xmm0, xmm8
unpcklps xmm0, xmm9
movsd qword [rcx + 0x50], xmm0
movss dword [rcx + 0x58], xmm6
movaps xmm14, xmmword [rsp + 0x40]
movaps xmm15, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0x90]
add rsp, 0xd8
ret
cmp byte [rax], 0
je 0x1800d3363
mov rax, qword [0x18023ffe0]
mov rdx, qword [rax + rcx]
test rdx, rdx
je 0x1800d3323
mov rax, qword [rdx + 0x20]
movss xmm0, dword [rax + 0x2c]
ucomiss xmm0, dword [0x1801a17bc]
jp 0x1800d3354
je 0x1800d3323
mov dword [rax + 0x2c], 0x3f800000
add rsp, 0xd8
ret
mov rax, qword [rcx + 0x20]
jmp 0x1800d3344