Function at 0x1800df0f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0xb0
cmp qword [0x18024b098], 0
mov rbx, rcx
je 0x1800df443
mov r8, qword [0x18024b0b0]
test r8, r8
je 0x1800df443
mov rdx, qword [0x18024b0a0]
test rdx, rdx
je 0x1800df443
cmp byte [0x180248f6d], 0
mov rax, qword [0x180249380]
je 0x1800df48d
test dword [rax + rdx + 4], 0x40000000
movaps xmmword [r11 - 0x18], xmm6
movaps xmmword [r11 - 0x28], xmm7
xorps xmm7, xmm7
movaps xmmword [r11 - 0x48], xmm9
movaps xmmword [r11 - 0x68], xmm11
xorps xmm11, xmm11
movaps xmmword [r11 - 0x78], xmm12
xorps xmm12, xmm12
movaps xmmword [rsp + 0x30], xmm13
xorps xmm13, xmm13
je 0x1800df19a
mov rax, qword [0x1802492f0]
mov rcx, qword [rax + rdx]
test rcx, rcx
je 0x1800df1c2
movsd xmm1, qword [rcx + 0x90]
movss xmm7, dword [rcx + 0x98]
jmp 0x1800df1aa
movsd xmm1, qword [rdx + 0x90]
movss xmm7, dword [rdx + 0x98]
movaps xmm0, xmm1
movsd qword [rsp + 0x20], xmm1
movss xmm11, dword [rsp + 0x20]
shufps xmm0, xmm0, 0x55
movaps xmm12, xmm0
movsd xmm9, qword [r8 + 0x3d0]
ucomiss xmm9, xmm13
mov eax, dword [r8 + 0x3d8]
mov dword [rsp + 0x28], eax
movaps xmmword [rsp + 0x80], xmm8
movsd qword [rsp + 0x20], xmm9
movss xmm8, dword [rsp + 0x24]
movaps xmmword [rsp + 0x60], xmm10
jp 0x1800df236
jne 0x1800df236
ucomiss xmm8, xmm13
jp 0x1800df236
jne 0x1800df236
movd xmm10, eax
ucomiss xmm10, xmm13
jp 0x1800df23d
jne 0x1800df23d
movsd xmm1, qword [r8 + 0x40]
movss xmm10, dword [r8 + 0x48]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movsd qword [rsp + 0x20], xmm1
movaps xmm8, xmm0
movss xmm9, dword [rsp + 0x20]
jmp 0x1800df23d
movss xmm10, dword [rsp + 0x28]
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm1, dword [0x180248f70]
mov ecx, 1
test ax, ax
movaps xmm6, xmm1
divss xmm6, dword [0x1801b3f24]
mov rax, qword [0x18024b0a0]
mov edx, 3
cmovne ecx, edx
test byte [rax + 0x40], 0xef
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm6, xmm0
je 0x1800df292
movaps xmm6, xmm1
divss xmm6, dword [0x1801c6d94]
mulss xmm6, xmm0
mov ecx, dword [str.ZS_QD_]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800df2d2
mulss xmm9, xmm6
mulss xmm8, xmm6
mulss xmm10, xmm6
addss xmm9, xmm11
addss xmm8, xmm12
addss xmm10, xmm7
movaps xmm11, xmm9
movaps xmm12, xmm8
movaps xmm7, xmm10
jmp 0x1800df394
mov ecx, dword [0x180249534]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800df306
mulss xmm9, xmm6
mulss xmm8, xmm6
mulss xmm10, xmm6
subss xmm11, xmm9
subss xmm12, xmm8
subss xmm7, xmm10
jmp 0x1800df394
mov ecx, dword [reloc.WLDAP32.dll_Ordinal_32]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800df31d
addss xmm7, xmm6
jmp 0x1800df394
mov ecx, dword [0x18024953c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800df334
subss xmm7, xmm6
jmp 0x1800df394
mov ecx, dword [0x180249540]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800df35f
mulss xmm9, xmm6
mulss xmm8, xmm6
addss xmm9, xmm12
subss xmm11, xmm8
movaps xmm12, xmm9
jmp 0x1800df388
mov ecx, dword [0x180249544]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800df394
mulss xmm8, xmm6
mulss xmm9, xmm6
addss xmm8, xmm11
subss xmm12, xmm9
movaps xmm11, xmm8
mulss xmm6, xmm13
addss xmm6, xmm7
movaps xmm7, xmm6
mov rcx, qword [0x18024b0a0]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0xa0]
test rcx, rcx
je 0x1800df44c
mov rax, qword [0x180249380]
test dword [rax + rcx + 4], 0x40000000
je 0x1800df44c
mov rax, qword [0x1802492f0]
mov rdx, qword [rax + rcx]
test rdx, rdx
je 0x1800df429
mov rax, qword [rdx + 0x20]
movss xmm0, dword [rax + 0x2c]
ucomiss xmm0, xmm13
jp 0x1800df3f3
je 0x1800df3f8
movss dword [rbx + 4], xmm0
mov rax, qword [rdx + 0x20]
movaps xmm0, xmm11
unpcklps xmm0, xmm12
mov dword [rax + 0x2c], 0
mov rax, qword [rdx + 0x30]
movsd qword [rdx + 0x90], xmm0
movss dword [rdx + 0x98], xmm7
movsd qword [rax + 0x50], xmm0
movss dword [rax + 0x58], xmm7
movaps xmm12, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm13, xmmword [rsp + 0x30]
add rsp, 0xb0
pop rbx
ret
mov rax, qword [rcx + 0x20]
movaps xmm0, xmm11
unpcklps xmm0, xmm12
mov dword [rax + 0x2c], 0
mov rax, qword [0x18024b0a0]
movsd qword [rax + 0x90], xmm0
movss dword [rax + 0x98], xmm7
mov rax, qword [0x18024b0a0]
mov rcx, qword [rax + 0x30]
movsd qword [rcx + 0x50], xmm0
movss dword [rcx + 0x58], xmm7
jmp 0x1800df429
test dword [rax + rdx + 4], 0x40000000
je 0x1800df4ca
mov rax, qword [0x1802492f0]
mov rcx, qword [rax + rdx]
test rcx, rcx
je 0x1800df443
mov rax, qword [rcx + 0x20]
movss xmm1, dword [rbx + 4]
movss xmm0, dword [rax + 0x2c]
ucomiss xmm0, xmm1
jp 0x1800df4bc
je 0x1800df443
movss dword [rax + 0x2c], xmm1
add rsp, 0xb0
pop rbx
ret
mov rax, qword [rdx + 0x20]
movss xmm0, dword [rax + 0x2c]
ucomiss xmm0, dword [0x1801ad7bc]
jp 0x1800df4e2
je 0x1800df443
mov dword [rax + 0x2c], 0x3f800000
add rsp, 0xb0
pop rbx
ret