Function at 0x18008a440
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 [0x18035c0c0]
xor rax, rsp
mov qword [rbp + 0x4f], rax
mov rsi, rcx
xor edi, edi
mov dword [rbp + 0x47], edi
mov edx, dword [0x18035eedc]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov eax, dword [rcx + rax]
cmp dword [0x180361d0c], eax
jle 0x18008a4e8
lea rcx, [0x180361d0c]
call fcn.1800a3220
cmp dword [0x180361d0c], 0xffffffff
jne 0x18008a4e8
mov eax, 0x3e8
cdq
idiv dword [rsi + 0x20]
movsxd rbx, eax
mov qword [0x180361d10], rdi
lea rcx, [rbp - 0x29]
call fcn.180092e00
mov rdx, qword [rax]
mov qword [0x180361d10], rdx
mov qword [0x180361d18], rbx
lea rcx, [0x180361d0c]
call fcn.1800a31b4
cmp byte [rsi + 8], dil
je 0x18008a527
cmp byte [0x1803601d0], dil
jne 0x18008a527
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008a527
lea rdx, [rbp - 0x21]
mov rcx, qword [0x180361b68]
call fcn.18006a670
mov edi, 1
cmp qword [rax + 8], 0
jne 0x18008a527
xor bl, bl
jmp 0x18008a529
mov bl, 1
test dil, 1
je 0x18008a55a
cmp byte [rbp - 0x11], 0
je 0x18008a55a
cmp qword [0x18035fc10], 0
je 0x18008a55a
mov rdx, qword [rbp - 0x19]
test rdx, rdx
je 0x18008a55a
mov rcx, qword [rbp - 0x21]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test bl, bl
jne 0x18008a82b
lea rcx, [rbp - 0x29]
call fcn.180092e00
mov rcx, qword [rbp - 0x29]
mov rdx, rcx
sub rdx, qword [0x180361d10]
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [0x180361d18]
je 0x18008a5b6
mov r8d, 1
mov r9d, 0xff
cmovl r8d, r9d
test r8b, r8b
js 0x18008a82b
mov qword [0x180361d10], rcx
lea rdx, [rbp + 0x17]
mov rcx, qword [0x180361b68]
call fcn.18006a580
nop
lea rdx, [rbp - 0x21]
mov rcx, rax
call fcn.18006d140
mov r14, rax
mov rdi, qword [0x18035fc10]
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, [0x180361a70]
call fcn.1800745e0
mov rbx, rax
mov rdx, rdi
lea rcx, [0x180361a70]
call fcn.180074400
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 0x18008a65e
mov bl, 1
jmp 0x18008a681
test rdx, rdx
je 0x18008a67f
test r8, r8
je 0x18008a67f
mov rcx, qword [r14]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
cmp al, 1
sete bl
jmp 0x18008a681
xor bl, bl
mov rdx, qword [rbp + 0xf]
cmp rdx, 0xf
jbe 0x18008a6bc
inc rdx
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008a6b7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18008a854
call fcn.1800a3170
movdqa xmm0, xmmword [0x180342f80]
movdqu xmmword [rbp + 7], xmm0
mov byte [rbp - 9], 0
cmp byte [rbp - 0x11], 0
je 0x18008a6ff
cmp qword [0x18035fc10], 0
je 0x18008a6ff
mov rdx, qword [rbp - 0x19]
test rdx, rdx
je 0x18008a6ff
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 0x18008a72a
cmp qword [0x18035fc10], 0
je 0x18008a72a
mov rdx, qword [rbp + 0x1f]
test rdx, rdx
je 0x18008a72a
mov rcx, qword [rbp + 0x17]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test bl, bl
jne 0x18008a82b
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 [0x1803601c8]
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 [0x1803601c8]
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, [0x1803605b0]
cmp ebx, 0xffffffff
jne 0x18008a7bc
call fcn.180086c80
mov ecx, eax
jmp 0x18008a7fa
inc ebx
call fcn.180086c80
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x18008a7f6
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x18008a7f6
nop dword [rax]
lea rcx, [0x1803605b0]
call fcn.180086c80
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x18008a7e0
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.180092e00
mov rcx, qword [rax]
mov qword [0x180361d10], rcx
mov qword [0x180361d18], rbx
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.1800a3150
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.1800ad070
nop
int3