Function at 0x180017eb0
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
sub rsp, 0x50
mov rax, qword [0x18023cac0]
mov rdi, qword [rax]
test rdi, rdi
je 0x1800181fb
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x1800181fb
mov rax, qword [0x18023caf8]
mov qword [rsp + 0x70], rbp
mov rbp, qword [rax + rdi]
test rbp, rbp
je 0x1800181f6
cmp byte [0x18023cb49], 0
movss xmm1, dword [0x1800ac9b0]
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
je 0x180017f28
comiss xmm1, dword [rdi + 0x280]
jbe 0x180017f28
movss xmm0, dword [rdi + 0x2a0]
movss dword [rdi + 0x280], xmm0
cmp byte [0x18023cb4a], 0
je 0x180017f4e
mov rax, qword [0x18023cae0]
comiss xmm1, dword [rax + rdi]
jbe 0x180017f4e
movd xmm0, dword [0x180197940]
cvtdq2ps xmm0, xmm0
movss dword [rax + rdi], xmm0
movzx eax, byte [0x18023cb5c]
test al, al
je 0x180017f6a
mov edx, eax
movabs rcx, 0xfc18db55ae19e046
call fcn.180001d20
xor r15d, r15d
mov qword [rsp + 0x78], rsi
cmp byte [0x18023cb51], r15b
movabs rsi, 0xd80958fc74e988a6
mov r14, rsi
mov ebx, r15d
jne 0x180017f8f
lea ebx, [r15 + 1]
mov rcx, r14
call fcn.1800015f0
mov edx, eax
mov r8d, ebx
movabs rcx, 0xebd76f2359f190ac
call fcn.180001df0
mov ebx, r15d
mov rcx, r14
cmp byte [0x18023cb50], bl
sete bl
call fcn.1800015f0
mov edx, eax
xor r9d, r9d
mov r8d, ebx
movabs rcx, 0xea1c610a04db6bbb
call fcn.180001ee0
cmp byte [0x18023cb48], r15b
setne al
mov byte [rdi + 0x189], al
movzx ecx, byte [0x18023cb54]
mov r14, qword [rsp + 0x48]
test cl, cl
jne 0x180018003
mov rax, qword [0x18023cb30]
cmp byte [rax + rdi], 0x40
jne 0x180018014
test cl, cl
mov eax, 0x20
cmovne eax, r15d
mov byte [rdi + 0x10b8], al
cmp byte [0x18023cb4e], 0
mov r15, qword [rsp + 0x40]
je 0x18001802f
movd xmm0, dword [0x180197938]
cvtdq2ps xmm0, xmm0
jmp 0x180018037
movss xmm0, dword [0x1800ac90c]
movss dword [rbp + 0xcf0], xmm0
cmp byte [0x18023cb52], 0
je 0x180018076
mov rax, qword [0x18023cad0]
test rax, rax
je 0x180018059
mov rax, qword [rax]
jmp 0x18001805e
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
movss xmm0, dword [0x180197954]
movss dword [rax + 0x30], xmm0
mov byte [0x18023cb52], 0
cmp byte [0x18023cb53], 0
je 0x1800180fb
mov rcx, rsi
call fcn.1800015f0
mov edx, 8
movabs rcx, 0x1bede233e6cd2a1f
mov ebp, eax
call fcn.180001690
mov edx, eax
movabs rcx, 0xa6db27d19ecbb7da
mov ebx, eax
call fcn.180001690
test eax, eax
je 0x1800180f4
mov r8d, ebx
lea rcx, [rsp + 0x30]
movabs rdx, 0x586afe3ff72d996e
call fcn.180001c30
movss xmm0, dword [rsp + 0x38]
mov edx, ebp
movss xmm3, dword [rsp + 0x34]
movabs rcx, 0x9afeff481a85ab2e
movss xmm2, dword [rsp + 0x30]
movss dword [rsp + 0x20], xmm0
call fcn.1800023d0
mov byte [0x18023cb53], 1
cmp byte [0x18023cb5d], 0
mov rbx, qword [rsp + 0x68]
je 0x180018136
mov rcx, rsi
call fcn.1800015f0
movzx ecx, byte [0x18023cb5d]
mov r9d, 1
mov dword [rsp + 0x20], ecx
xor r8d, r8d
movabs rcx, 0xae4086104e067b1
mov edx, eax
call fcn.180001ff0
cmp byte [0x18023cb4b], 0
mov rsi, qword [rsp + 0x78]
je 0x180018163
mov eax, dword [str.ddyzWS]
add eax, 0x64
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x280], xmm0
mov byte [0x18023cb4b], 0
cmp byte [0x18023cb4c], 0
je 0x18001818a
movd xmm0, dword [0x180197940]
mov rax, qword [0x18023cae0]
cvtdq2ps xmm0, xmm0
movss dword [rax + rdi], xmm0
mov byte [0x18023cb4c], 0
mov ecx, dword [0x180197944]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800181a2
mov byte [0x18023cb4b], 1
mov ecx, dword [0x180197948]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800181ba
mov byte [0x18023cb4c], 1
mov ecx, dword [0x18023cf24]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800181d8
cmp byte [0x18023cb4f], 0
sete byte [0x18023cb4f]
mov ecx, dword [0x18023cf28]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800181f6
cmp byte [0x18023cf20], 0
sete byte [0x18023cf20]
mov rbp, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret