Function at 0x180089d10
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xa0
mov rax, qword [0x18035b0c0]
xor rax, rsp
mov qword [rbp + 0x4f], rax
mov rsi, rcx
xor edi, edi
mov dword [rbp + 0x47], edi
mov edx, dword [0x18035debc]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov eax, dword [rcx + rax]
cmp dword [0x180360cdc], eax
jle 0x180089db8
lea rcx, [0x180360cdc]
call fcn.1800a2af0
cmp dword [0x180360cdc], 0xffffffff
jne 0x180089db8
mov eax, 0x3e8
cdq
idiv dword [rsi + 0x20]
movsxd rbx, eax
mov qword [0x180360ce0], rdi
lea rcx, [rbp - 0x29]
call fcn.1800926d0
mov rdx, qword [rax]
mov qword [0x180360ce0], rdx
mov qword [0x180360ce8], rbx
lea rcx, [0x180360cdc]
call fcn.1800a2a84
cmp byte [rsi + 8], dil
je 0x180089df7
cmp byte [0x18035f1a2], dil
jne 0x180089df7
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180089df7
lea rdx, [rbp - 0x21]
mov rcx, qword [0x180360b38]
call fcn.18006a0d0
mov edi, 1
cmp qword [rax + 8], 0
jne 0x180089df7
xor bl, bl
jmp 0x180089df9
mov bl, 1
test dil, 1
je 0x180089e2a
cmp byte [rbp - 0x11], 0
je 0x180089e2a
cmp qword [0x18035ebf0], 0
je 0x180089e2a
mov rdx, qword [rbp - 0x19]
test rdx, rdx
je 0x180089e2a
mov rcx, qword [rbp - 0x21]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test bl, bl
jne 0x18008a0fb
lea rcx, [rbp - 0x29]
call fcn.1800926d0
mov rcx, qword [rbp - 0x29]
mov rdx, rcx
sub rdx, qword [0x180360ce0]
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [0x180360ce8]
je 0x180089e86
mov r8d, 1
mov r9d, 0xff
cmovl r8d, r9d
test r8b, r8b
js 0x18008a0fb
mov qword [0x180360ce0], rcx
lea rdx, [rbp + 0x17]
mov rcx, qword [0x180360b38]
call fcn.180069fe0
nop
lea rdx, [rbp - 0x21]
mov rcx, rax
call fcn.18006cba0
mov r14, rax
mov rdi, qword [0x18035ebf0]
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 7], xmm1
mov r8d, 5
lea rdx, str.BLOCK
lea rcx, [rbp - 9]
call fcn.180008b90
nop
lea rdx, [rbp - 9]
lea rcx, [0x180360a40]
call fcn.180073eb0
mov rbx, rax
mov rdx, rdi
lea rcx, [0x180360a40]
call fcn.180073cd0
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x488]
mov r8, rbx
mov rdx, rax
mov rcx, rdi
call r9
mov r8, rax
mov qword [rbp + 0x2f], rdi
mov byte [rbp + 0x3f], 0
mov qword [rbp + 0x37], rax
mov rdx, qword [r14 + 8]
cmp rdx, rax
jne 0x180089f2e
mov bl, 1
jmp 0x180089f51
test rdx, rdx
je 0x180089f4f
test r8, r8
je 0x180089f4f
mov rcx, qword [r14]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
cmp al, 1
sete bl
jmp 0x180089f51
xor bl, bl
mov rdx, qword [rbp + 0xf]
cmp rdx, 0xf
jbe 0x180089f8c
inc rdx
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180089f87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008a124
call fcn.1800a2a40
movdqa xmm0, xmmword [0x180341ef0]
movdqu xmmword [rbp + 7], xmm0
mov byte [rbp - 9], 0
cmp byte [rbp - 0x11], 0
je 0x180089fcf
cmp qword [0x18035ebf0], 0
je 0x180089fcf
mov rdx, qword [rbp - 0x19]
test rdx, rdx
je 0x180089fcf
mov rcx, qword [rbp - 0x21]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
mov qword [rbp - 0x19], 0
cmp byte [rbp + 0x27], 0
je 0x180089ffa
cmp qword [0x18035ebf0], 0
je 0x180089ffa
mov rdx, qword [rbp + 0x1f]
test rdx, rdx
je 0x180089ffa
mov rcx, qword [rbp + 0x17]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test bl, bl
jne 0x18008a0fb
mov qword [rbp + 0x47], 0
lea rcx, [rbp + 0x47]
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rbp + 0x4b]
shl r9d, 0x10
movzx eax, word [rbp + 0x47]
or r9, rax
mov edx, 0x201
mov r8d, 1
mov rcx, qword [0x18035f1a8]
call qword [sym.imp.USER32.dll_PostMessageA]
movzx r9d, word [rbp + 0x4b]
shl r9d, 0x10
movzx eax, word [rbp + 0x47]
or r9, rax
mov edx, 0x202
mov r8d, 1
mov rcx, qword [0x18035f1a8]
call qword [sym.imp.USER32.dll_PostMessageA]
mov r14d, dword [rsi + 0x20]
btc r14d, 0x1f
mov ebx, dword [rsi + 0x24]
btc ebx, 0x1f
sub ebx, r14d
lea rcx, [0x18035f580]
cmp ebx, 0xffffffff
jne 0x18008a08c
call fcn.180086550
mov ecx, eax
jmp 0x18008a0ca
inc ebx
call fcn.180086550
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x18008a0c6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x18008a0c6
nop dword [rax]
lea rcx, [0x18035f580]
call fcn.180086550
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x18008a0b0
shr rcx, 0x20
lea r8d, [rcx + r14]
xor r8d, 0x80000000
mov eax, 0x3e8
cdq
idiv r8d
movsxd rbx, eax
lea rcx, [rbp - 0x29]
call fcn.1800926d0
mov rcx, qword [rax]
mov qword [0x180360ce0], rcx
mov qword [0x180360ce8], rbx
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.1800a2a20
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.1800ac940
nop
int3