Function at 0x1800514b0
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
sub rsp, 0x50
mov rax, qword [0x18017df68]
mov rsi, rcx
shl rax, 5
add rax, qword [0x18017c080]
cmp qword [rax + 0x10], 8
lea rdx, [rax + 0x18]
jbe 0x1800514d9
mov rdx, qword [rdx]
cmp byte [rdx], 0
je 0x18005185b
mov rcx, qword [0x18017d790]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x18005185b
mov rcx, qword [0x18017d790]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x18005185b
mov qword [rsp + 0x70], rdi
mov rdi, qword [0x18017d7a0]
test rdi, rdi
je 0x180051856
mov rax, qword gs:[0x58]
mov ecx, dword [0x18017c794]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x78], r14
mov r14d, 4
mov rbx, qword [rax + rcx*8]
mov eax, dword [rbx + r14]
cmp dword [0x18017d770], eax
jle 0x180051592
lea rcx, [0x18017d770]
call fcn.1800dc234
cmp dword [0x18017d770], 0xffffffff
jne 0x180051592
movabs rcx, 0xdccf003ada4c08e3
call fcn.18006c200
lea rcx, [0x18017d770]
mov dword [0x18017d78c], eax
call fcn.1800dc1c8
mov eax, dword [0x18017d78c]
cmp byte [rax + rdi], 0
je 0x18005184c
mov rax, qword [rsi + 0x50]
test al, 0x20
jne 0x18005184c
test al, 1
jne 0x18005184c
mov eax, dword [rbx + r14]
cmp dword [0x18017d7a8], eax
mov rdi, qword [0x18017d7a0]
jle 0x1800515ff
lea rcx, [0x18017d7a8]
call fcn.1800dc234
cmp dword [0x18017d7a8], 0xffffffff
jne 0x1800515ff
movabs rcx, 0xcbdf49e242648c6f
call fcn.18006c200
lea rcx, [0x18017d7a8]
mov dword [0x18017d774], eax
call fcn.1800dc1c8
mov eax, dword [0x18017d774]
mov ecx, dword [rax + rdi]
add ecx, 0xfffffff8
cmp ecx, 1
jbe 0x18005184c
mov rax, qword [0x18017d798]
mov rdi, qword [0x18017d7a0]
mov qword [rsp + 0x68], rbp
mov rbp, qword [rax + 0x58]
mov eax, dword [rbx + r14]
cmp dword [0x18017d778], eax
jle 0x18005166d
lea rcx, [0x18017d778]
call fcn.1800dc234
cmp dword [0x18017d778], 0xffffffff
jne 0x18005166d
movabs rcx, 0x9241b8778dd136bd
call fcn.18006c200
lea rcx, [0x18017d778]
mov dword [0x18017d7ac], eax
call fcn.1800dc1c8
mov edx, dword [0x18017d7ac]
mov edx, dword [rdx + rdi]
cmp edx, 0xffffffff
je 0x180051847
and edx, 0x7fff
mov rcx, rbp
call fcn.180050e00
test rax, rax
je 0x180051847
mov rdx, qword [0x18017c080]
mov rax, qword [0x18017df70]
movaps xmmword [rsp + 0x40], xmm6
xorps xmm6, xmm6
shl rax, 5
movaps xmmword [rsp + 0x30], xmm7
lea rcx, [rdx + 0x18]
add rcx, rax
movaps xmmword [rsp + 0x20], xmm8
xorps xmm7, xmm7
cmp qword [rax + rdx + 0x10], 8
jbe 0x1800516d0
mov rcx, qword [rcx]
mov ecx, dword [rcx]
movss xmm8, dword [0x180164188]
sub ecx, 1
je 0x1800516ef
cmp ecx, 1
jne 0x1800516f3
movss xmm6, dword [0x1801640e4]
jmp 0x1800516f3
movaps xmm6, xmm8
mov rax, qword [0x18017df78]
lea rcx, [rdx + 0x18]
shl rax, 5
add rcx, rax
cmp qword [rax + rdx + 0x10], 8
jbe 0x180051710
mov rcx, qword [rcx]
mov ecx, dword [rcx]
sub ecx, 1
je 0x180051726
cmp ecx, 1
jne 0x18005172e
movss xmm7, dword [0x180164184]
jmp 0x18005172e
movss xmm7, dword [0x1801640d4]
mov rax, qword [0x18017df88]
lea rcx, [rdx + 0x18]
shl rax, 5
add rcx, rax
cmp qword [rax + rdx + 0x10], 8
jbe 0x18005174b
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180051761
addss xmm6, dword [0x180164178]
mov rax, qword [0x18017df80]
shl rax, 5
add rax, qword [0x18017c080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x180051781
mov rcx, qword [rcx]
mov ecx, dword [rcx + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180051797
addss xmm6, dword [0x1801640cc]
mov rax, qword [rsi + 0x30]
mov rcx, qword [rax + 0x40]
movss dword [rcx + 0x18], xmm7
mov rax, qword [rsi + 0x30]
mov rcx, qword [rax + 0x40]
addss xmm6, dword [rcx + 0x1c]
movss dword [rcx + 0x1c], xmm6
mov rax, qword [rsi + 0x30]
movss xmm6, dword [0x1801640f8]
movaps xmm1, xmm6
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x1c]
call fcn.1800fc7cc
comiss xmm0, dword [0x1801640e4]
movss xmm7, dword [0x18016418c]
jbe 0x1800517e8
addss xmm0, xmm7
comiss xmm8, xmm0
jbe 0x1800517f2
addss xmm0, xmm6
movss dword [rbx + 0x1c], xmm0
movaps xmm1, xmm6
mov rax, qword [rsi + 0x30]
mov rbx, qword [rax + 0x40]
movss xmm0, dword [rbx + 0x18]
call fcn.1800fc7cc
comiss xmm0, dword [0x1801640e4]
jbe 0x180051819
addss xmm0, xmm7
movaps xmm7, xmmword [rsp + 0x30]
comiss xmm8, xmm0
movaps xmm8, xmmword [rsp + 0x20]
jbe 0x18005182e
addss xmm0, xmm6
movaps xmm6, xmmword [rsp + 0x40]
movss dword [rbx + 0x18], xmm0
mov rax, qword [rsi + 0x30]
mov rcx, qword [rax + 0x40]
mov dword [rcx + 0x20], 0
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
add rsp, 0x50
pop rsi
ret