Function at 0x180096800
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xa0
mov rax, qword [0x180352040]
xor rax, rsp
mov qword [rbp + 0x3f], rax
mov rsi, rcx
xor edi, edi
mov dword [rbp - 0x39], edi
mov edx, dword [0x18035313c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov edx, dword [rcx + rax]
cmp dword [0x18035c778], edx
jle 0x1800968b2
lea rcx, [0x18035c778]
call fcn.1800ae288
cmp dword [0x18035c778], 0xffffffff
jne 0x1800968b2
movss xmm0, dword [0x18033ff84]
divss xmm0, dword [0x18035214c]
cvttss2si eax, xmm0
movsxd rbx, eax
mov qword [0x18035c768], rdi
lea rcx, [rbp - 0x39]
call fcn.18009abd0
mov rdx, qword [rax]
mov qword [0x18035c768], rdx
mov qword [0x18035c770], rbx
lea rcx, [0x18035c778]
call fcn.1800ae21c
mov qword [rbp + 0x37], rdi
cmp byte [rsi + 8], dil
je 0x180096f4c
cmp byte [0x1803570d8], dil
jne 0x180096f4c
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180096f4c
cmp byte [0x18035337a], dil
je 0x180096945
cmp byte [0x1803570d8], dil
jne 0x180096945
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180096945
movzx r9d, word [rbp + 0x3b]
shl r9d, 0x10
movzx eax, word [rbp + 0x37]
or r9, rax
movzx eax, byte [0x180353373]
neg al
sbb edx, edx
add edx, 0x205
mov r8d, 2
mov rcx, qword [0x1803570e0]
call qword [sym.imp.USER32.dll_PostMessageA]
cmp byte [0x180353373], dil
sete byte [0x180353373]
lea rdx, [rbp - 0x11]
mov rcx, qword [0x180357760]
call fcn.180069a40
mov rbx, qword [rax + 8]
cmp byte [rbp - 1], 0
je 0x180096984
cmp qword [0x1803570d0], 0
je 0x180096984
mov rdx, qword [rbp - 9]
test rdx, rdx
je 0x180096984
mov rcx, qword [rbp - 0x11]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
cmp byte [0x180353378], 0
jne 0x180096a43
test rbx, rbx
jne 0x180096a60
cmp byte [rsi + 0x28], 0
je 0x180096a71
mov rsi, qword [0x180357760]
cmp qword [rsi + 8], 0
je 0x180096a71
mov rbx, qword [rsi]
xorps xmm0, xmm0
movups xmmword [rbp - 0x31], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x21], xmm1
mov r8d, 0x10
lea rdx, str.leftClickCounter
lea rcx, [rbp - 0x31]
call fcn.180005930
nop
lea rdx, [rbp - 0x31]
lea rcx, [0x1803571f0]
call fcn.180073150
mov r8, qword [rbx]
mov r10, qword [r8 + 0x368]
xor r9d, r9d
mov r8, rax
mov rdx, qword [rsi + 8]
mov rcx, rbx
call r10
nop
mov rdx, qword [rbp - 0x19]
cmp rdx, 0xf
jbe 0x180096a71
inc rdx
mov rcx, qword [rbp - 0x31]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096a6c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180096a6c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rbx, rbx
je 0x18009699a
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x18009699a
mov byte [0x180353373], 0
jmp 0x180096f53
call fcn.1800ae784
lea rcx, [rbp - 0x39]
call fcn.18009abd0
mov rcx, qword [rbp - 0x39]
mov rdx, rcx
sub rdx, qword [0x18035c768]
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [0x18035c770]
je 0x180096ac5
mov r8d, 1
mov r9d, 0xff
cmovl r8d, r9d
test r8b, r8b
js 0x180096f66
mov qword [0x18035c768], rcx
cmp byte [0x18035317f], 0
je 0x180096bcc
lea rdx, [rbp + 0x1f]
mov rcx, qword [0x180357760]
call fcn.180069950
nop
mov dword [rbp - 0x39], 1
lea rdx, [rbp - 0x11]
mov rcx, rax
call fcn.18006ca80
mov r14, rax
mov dword [rbp - 0x39], 3
mov rsi, qword [0x1803570d0]
xorps xmm0, xmm0
movups xmmword [rbp - 0x31], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x21], xmm1
mov r8d, 5
lea rdx, str.BLOCK
lea rcx, [rbp - 0x31]
call fcn.180005930
nop
mov dword [rbp - 0x39], 7
lea rdx, [rbp - 0x31]
lea rcx, [0x180357438]
call fcn.180073150
mov rbx, rax
mov rdx, rsi
lea rcx, [0x180357438]
call fcn.180072f70
mov rcx, qword [rsi]
mov r9, qword [rcx + 0x488]
mov r8, rbx
mov rdx, rax
mov rcx, rsi
call r9
mov rbx, rax
mov qword [rbp + 7], rsi
xor r15b, r15b
mov byte [rbp + 0x17], r15b
test rax, rax
je 0x180096b8f
mov qword [rbp + 0xf], rax
mov r8, rax
jmp 0x180096b98
xor ebx, ebx
mov qword [rbp + 0xf], rbx
xor r8d, r8d
mov edi, 0x1f
mov dword [rbp - 0x39], edi
mov rdx, qword [r14 + 8]
cmp rdx, r8
je 0x180096bc7
test rdx, rdx
je 0x180096bd9
test r8, r8
je 0x180096bd9
mov rcx, qword [r14]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
cmp al, 1
jne 0x180096bd9
mov r14b, 1
jmp 0x180096bdc
movzx r15d, byte [rbp + 0x17]
mov rbx, qword [rbp + 0xf]
mov rsi, qword [rbp + 7]
xor r14b, r14b
test dil, 8
je 0x180096c10
and edi, 0xfffffff7
mov dword [rbp - 0x39], edi
test r15b, r15b
je 0x180096c10
cmp qword [0x1803570d0], 0
je 0x180096c10
test rbx, rbx
je 0x180096c10
mov rax, qword [rsi]
mov r8, qword [rax + 0xb0]
mov rdx, rbx
mov rcx, rsi
call r8
nop
test dil, 4
je 0x180096c68
and edi, 0xfffffffb
mov rdx, qword [rbp - 0x19]
cmp rdx, 0xf
jbe 0x180096c57
inc rdx
mov rcx, qword [rbp - 0x31]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180096c52
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180096c52
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800ae784
movdqa xmm0, xmmword [0x180340040]
movdqu xmmword [rbp - 0x21], xmm0
mov byte [rbp - 0x31], 0
test dil, 2
je 0x180096ca6
and edi, 0xfffffffd
mov dword [rbp - 0x39], edi
cmp byte [rbp - 1], 0
je 0x180096ca6
cmp qword [0x1803570d0], 0
je 0x180096ca6
mov rdx, qword [rbp - 9]
test rdx, rdx
je 0x180096ca6
mov rcx, qword [rbp - 0x11]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
mov qword [rbp - 9], 0
test dil, 1
je 0x180096cd7
cmp byte [rbp + 0x2f], 0
je 0x180096cd7
cmp qword [0x1803570d0], 0
je 0x180096cd7
mov rdx, qword [rbp + 0x27]
test rdx, rdx
je 0x180096cd7
mov rcx, qword [rbp + 0x1f]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test r14b, r14b
jne 0x180096f66
lea rcx, [rbp + 0x37]
call qword [sym.imp.USER32.dll_GetCursorPos]
cmp byte [0x180353376], r14b
je 0x180096d85
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
lea rax, [rcx + rcx*4]
test eax, eax
jne 0x180096d27
nop dword [rax]
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
lea rax, [rcx + rcx*4]
cmp eax, 1
jb 0x180096d10
shr rax, 0x20
lea ebx, [rax + 0x7ffffffe]
btc ebx, 0x1f
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
lea rdx, [rcx + rcx*4]
test edx, edx
jne 0x180096d67
nop dword [rax + rax]
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
lea rdx, [rcx + rcx*4]
cmp edx, 1
jb 0x180096d50
shr rdx, 0x20
add edx, 0x7ffffffe
xor edx, 0x80000000
add edx, dword [rbp + 0x3b]
mov ecx, dword [rbp + 0x37]
add ecx, ebx
call qword [sym.imp.USER32.dll_SetCursorPos]
lea rdx, [rbp + 0x37]
mov rcx, qword [0x1803570e0]
call qword [sym.imp.USER32.dll_ScreenToClient]
call fcn.180096280
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mulsd xmm1, qword [0x18033fe58]
cvttsd2si eax, xmm1
movsxd rbx, eax
lea rcx, [rbp - 0x39]
call fcn.18009abd0
mov rcx, qword [rax]
mov qword [0x18035c768], rcx
mov qword [0x18035c770], rbx
cmp byte [0x180353379], 0
je 0x180096f29
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
imul rax, rcx, 0x65
cmp eax, 0x43
ja 0x180096e07
nop
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
imul rax, rcx, 0x65
cmp eax, 0x44
jb 0x180096df0
shr rax, 0x20
add eax, 0x80000000
xor eax, 0x80000000
cmp eax, dword [0x1803520f8]
jge 0x180096f29
cmp byte [0x180353374], 0
je 0x180096ea6
mov esi, dword [0x18035470c]
btc esi, 0x1f
mov eax, dword [0x1803520fc]
btc eax, 0x1f
sub eax, esi
lea rcx, [0x18035b3b0]
cmp eax, 0xffffffff
jne 0x180096e55
call fcn.180097660
mov ecx, eax
jmp 0x180096e9a
lea ebx, [rax + 1]
call fcn.180097660
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x180096e96
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x180096e96
nop word [rax + rax]
lea rcx, [0x18035b3b0]
call fcn.180097660
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x180096e80
shr rcx, 0x20
add ecx, esi
btc ecx, 0x1f
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx r9d, word [rbp + 0x3b]
shl r9d, 0x10
movzx eax, word [rbp + 0x37]
or r9, rax
movzx eax, byte [0x180353373]
neg al
sbb edx, edx
add edx, 0x202
mov r8d, 1
mov rcx, qword [0x1803570e0]
call qword [sym.imp.USER32.dll_PostMessageA]
cmp byte [0x180353373], 0
sete cl
mov byte [0x180353373], cl
movzx r9d, word [rbp + 0x3b]
shl r9d, 0x10
movzx eax, word [rbp + 0x37]
or r9, rax
movzx edx, cl
xor edx, 1
add edx, 0x201
mov r8d, 1
mov rcx, qword [0x1803570e0]
call qword [sym.imp.USER32.dll_PostMessageA]
cmp byte [0x180353373], 0
sete byte [0x180353373]
jmp 0x180096f66
movzx r9d, word [rbp + 0x3b]
shl r9d, 0x10
movzx eax, word [rbp + 0x37]
or r9, rax
movzx eax, byte [0x180353373]
neg al
sbb edx, edx
add edx, 0x202
jmp 0x180096f06
mov byte [0x180353373], dil
lea rcx, [rbp - 0x39]
call fcn.18009abd0
mov rcx, qword [rax]
mov qword [0x18035c768], rcx
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.1800ae1c0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret