Function at 0x180028600
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x60
mov rax, qword [0x180227138]
mov rdi, qword [rax]
test rdi, rdi
je 0x18002896b
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x18002896b
mov rax, qword [0x180227168]
mov qword [r11 + 0x18], rbp
mov rbp, qword [rax + rdi]
test rbp, rbp
je 0x180028963
cmp byte [0x1802271b9], 0
movss xmm1, dword [0x1800bd82c]
mov qword [r11 + 0x10], rbx
mov qword [r11 - 0x18], r12
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
je 0x18002867a
comiss xmm1, dword [rdi + 0x280]
jbe 0x18002867a
movss xmm0, dword [rdi + 0x2a0]
movss dword [rdi + 0x280], xmm0
cmp byte [0x1802271ba], 0
je 0x1800286a0
mov rax, qword [0x180227150]
comiss xmm1, dword [rax + rdi]
jbe 0x1800286a0
movd xmm0, dword [0x18018af50]
cvtdq2ps xmm0, xmm0
movss dword [rax + rdi], xmm0
movzx eax, byte [0x1802271d0]
test al, al
je 0x1800286bc
mov edx, eax
movabs rcx, 0xfc18db55ae19e046
call fcn.180003e40
xor r12d, r12d
mov qword [rsp + 0x58], rsi
cmp byte [0x1802271c5], r12b
movabs rsi, 0xd80958fc74e988a6
mov r14, rsi
mov r15d, 1
mov ebx, r12d
jne 0x1800286e6
mov ebx, r15d
mov rcx, r14
call fcn.180003550
mov edx, eax
mov r8d, ebx
movabs rcx, 0xebd76f2359f190ac
call fcn.180003f10
mov ebx, r12d
mov rcx, r14
cmp byte [0x1802271c4], bl
sete bl
call fcn.180003550
mov edx, eax
xor r9d, r9d
mov r8d, ebx
movabs rcx, 0xea1c610a04db6bbb
call fcn.180004000
cmp byte [0x1802271b8], r12b
setne al
mov byte [rdi + 0x189], al
movzx ecx, byte [0x1802271c8]
mov r14, qword [rsp + 0x48]
test cl, cl
jne 0x18002875a
mov rax, qword [0x1802271a0]
cmp byte [rax + rdi], 0x40
jne 0x18002876b
test cl, cl
mov eax, 0x20
cmovne eax, r12d
mov byte [rdi + 0x10b8], al
cmp byte [0x1802271bd], 0
mov r12, qword [rsp + 0x50]
je 0x180028786
movd xmm0, dword [0x18018af48]
cvtdq2ps xmm0, xmm0
jmp 0x18002878e
movss xmm0, dword [0x1800bd79c]
movss dword [rbp + 0xcf0], xmm0
cmp byte [0x1802271c6], 0
je 0x1800287cd
mov rax, qword [0x180227148]
test rax, rax
je 0x1800287b0
mov rax, qword [rax]
jmp 0x1800287b5
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x10]
movss xmm0, dword [0x18018af64]
movss dword [rax + 0x30], xmm0
mov byte [0x1802271c6], 0
cmp byte [0x1802271c7], 0
je 0x180028852
mov rcx, rsi
call fcn.180003550
mov edx, 8
movabs rcx, 0x1bede233e6cd2a1f
mov ebp, eax
call fcn.1800035f0
mov edx, eax
movabs rcx, 0xa6db27d19ecbb7da
mov ebx, eax
call fcn.1800035f0
test eax, eax
je 0x18002884b
mov r8d, ebx
lea rcx, [rsp + 0x30]
movabs rdx, 0x586afe3ff72d996e
call fcn.180003d50
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.180004620
mov byte [0x1802271c7], 0
cmp byte [0x1802271d1], 0
je 0x180028885
mov rcx, rsi
call fcn.180003550
movzx ecx, byte [0x1802271d1]
mov r9d, r15d
mov dword [rsp + 0x20], ecx
xor r8d, r8d
movabs rcx, 0xae4086104e067b1
mov edx, eax
call fcn.180004110
cmp byte [0x1802271bb], 0
mov rsi, qword [rsp + 0x58]
je 0x1800288b2
mov eax, dword [str.ddyzWS]
add eax, 0x64
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x280], xmm0
mov byte [0x1802271bb], 0
cmp byte [0x1802271bc], 0
je 0x1800288d9
movd xmm0, dword [0x18018af50]
mov rax, qword [0x180227150]
cvtdq2ps xmm0, xmm0
movss dword [rax + rdi], xmm0
mov byte [0x1802271bc], 0
mov ecx, dword [0x18018af54]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [0x18018af58]
bt ax, 0xf
movzx eax, byte [0x1802271bb]
cmovb eax, r15d
mov byte [0x1802271bb], al
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [0x1802275a4]
bt ax, 0xf
movzx eax, byte [0x1802271bc]
cmovb eax, r15d
mov byte [0x1802271bc], al
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r15, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x78]
test al, 1
je 0x180028945
cmp byte [0x1802271be], 0
sete byte [0x1802271be]
mov ecx, dword [0x1802275a8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180028963
cmp byte [0x1802275a0], 0
sete byte [0x1802275a0]
mov rbp, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret