Function at 0x18005cdb0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push r15
sub rsp, 0x40
mov rax, qword [0x18009cee8]
mov r15, rcx
cmp byte [rax], 0
jne 0x18005d1df
mov r8, qword [rcx + 0x4de8]
movabs rax, 0x6060606060606061
mov rdx, qword [rcx + 0x4df0]
sub rdx, r8
mov qword [r11 - 0x18], r12
imul rdx
xor r12d, r12d
sar rdx, 8
mov rax, rdx
mov dword [rsp + 0x58], r12d
shr rax, 0x3f
add rdx, rax
je 0x18005d1da
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov rsi, qword gs:[0x58]
mov qword [r11 - 0x10], rdi
xor edi, edi
mov qword [r11 - 0x20], r13
xor ebp, ebp
mov r13d, dword [0x18009ca00]
mov qword [r11 - 0x28], r14
mov r14d, 4
mov qword [r11 + 8], rbx
nop dword [rax]
mov ecx, dword [r8 + rbp + 4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18005d175
mov rbx, qword [r15 + 0x4de8]
cmp byte [rbx + rbp + 8], 0
je 0x18005cf8b
cmp qword [rbx + rbp + 0x10], 0
je 0x18005cf69
xor edx, edx
call fcn.180053200
mov rbx, rax
test rax, rax
je 0x18005ced2
mov rcx, qword [rsi + r13*8]
mov edx, dword [r14 + rcx]
cmp dword [0x1800ae6c0], edx
jle 0x18005cebf
lea rcx, [0x1800ae6c0]
call fcn.180062164
cmp dword [0x1800ae6c0], 0xffffffff
jne 0x18005cebf
mov rax, qword [0x18009ce08]
lea rcx, [0x1800ae6c0]
mov qword [0x1800ae6d0], rax
call fcn.1800620f8
mov rax, qword [0x1800ae6d0]
test rax, rax
je 0x18005ced2
mov rcx, rbx
call rax
jmp 0x18005ced4
xor eax, eax
mov rdx, qword [r15 + 0x4de8]
cmp dword [rdx + rbp], 1
jne 0x18005cf4e
mov edx, 1
call fcn.180053200
mov rbx, rax
test rax, rax
je 0x18005cf45
mov rcx, qword [rsi + r13*8]
mov edx, dword [r14 + rcx]
cmp dword [0x1800ae6c0], edx
jle 0x18005cf32
lea rcx, [0x1800ae6c0]
call fcn.180062164
cmp dword [0x1800ae6c0], 0xffffffff
jne 0x18005cf32
mov rcx, qword [0x18009ce08]
mov qword [0x1800ae6d0], rcx
lea rcx, [0x1800ae6c0]
call fcn.1800620f8
mov rax, qword [0x1800ae6d0]
test rax, rax
je 0x18005cf45
mov rcx, rbx
call rax
jmp 0x18005cf47
xor eax, eax
mov rdx, qword [r15 + 0x4de8]
test rax, rax
je 0x18005d175
mov rdx, qword [rdx + rbp + 0x10]
mov rcx, rax
call fcn.180054000
jmp 0x18005d175
mov rcx, qword [0x18009ceb8]
lea rdx, str.Special_move_does_not_exist_
mov dword [rcx + 0x804], 0x40600000
call fcn.18004e7f0
jmp 0x18005d175
mov rsi, qword [rsi + r13*8]
imul rdi, rdi, 0x2a8
mov eax, dword [r14 + rsi]
cmp dword [0x1800ae748], eax
jle 0x18005cfd1
lea rcx, [0x1800ae748]
call fcn.180062164
cmp dword [0x1800ae748], 0xffffffff
jne 0x18005cfd1
mov rax, qword [0x18009ce28]
lea rcx, [0x1800ae748]
mov qword [0x1800ae760], rax
call fcn.1800620f8
mov rax, qword [0x1800ae760]
test rax, rax
je 0x18005d217
lea rcx, [rbx + 0x220]
xor r8d, r8d
add rcx, rdi
xor edx, edx
call rax
mov rdx, qword [r15 + 0x4de8]
mov r12, rax
test rax, rax
je 0x18005d220
mov ecx, dword [r14 + rsi]
cmp dword [0x1800ae73c], ecx
mov ebx, dword [rdx + rbp + 0x2a0]
jle 0x18005d047
lea rcx, [0x1800ae73c]
call fcn.180062164
cmp dword [0x1800ae73c], 0xffffffff
jne 0x18005d047
mov rax, qword [0x18009ce30]
lea rcx, [0x1800ae73c]
mov qword [0x1800ae740], rax
call fcn.1800620f8
mov rax, qword [0x1800ae740]
test rax, rax
je 0x18005d1e6
mov edx, ebx
mov rcx, r12
call rax
test eax, eax
je 0x18005d1e6
xor edx, edx
call fcn.180053200
mov rbx, rax
test rax, rax
je 0x18005d0c3
mov ecx, dword [r14 + rsi]
cmp dword [0x1800ae6c0], ecx
jle 0x18005d0b0
lea rcx, [0x1800ae6c0]
call fcn.180062164
cmp dword [0x1800ae6c0], 0xffffffff
jne 0x18005d0b0
mov rcx, qword [0x18009ce08]
mov qword [0x1800ae6d0], rcx
lea rcx, [0x1800ae6c0]
call fcn.1800620f8
mov rax, qword [0x1800ae6d0]
test rax, rax
je 0x18005d0c3
mov rcx, rbx
call rax
jmp 0x18005d0c5
xor eax, eax
mov r8, qword [r15 + 0x4de8]
cmp dword [r8 + rbp], 1
jne 0x18005d149
mov edx, 1
call fcn.180053200
mov rbx, rax
test rax, rax
je 0x18005d140
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + r13*8]
mov edx, dword [r14 + rcx]
cmp dword [0x1800ae6c0], edx
jle 0x18005d12d
lea rcx, [0x1800ae6c0]
call fcn.180062164
cmp dword [0x1800ae6c0], 0xffffffff
jne 0x18005d12d
mov rcx, qword [0x18009ce08]
mov qword [0x1800ae6d0], rcx
lea rcx, [0x1800ae6c0]
call fcn.1800620f8
mov rax, qword [0x1800ae6d0]
test rax, rax
je 0x18005d140
mov rcx, rbx
call rax
jmp 0x18005d142
xor eax, eax
mov r8, qword [r15 + 0x4de8]
test rax, rax
je 0x18005d161
mov r8d, dword [r8 + rbp + 0x2a0]
mov rdx, r12
mov rcx, rax
call fcn.180053ee0
mov r12d, dword [rsp + 0x58]
mov rsi, qword gs:[0x58]
mov r14d, 4
mov r8, qword [r15 + 0x4de8]
inc r12d
mov rcx, qword [r15 + 0x4df0]
movabs rax, 0x6060606060606061
sub rcx, r8
movsxd rdi, r12d
imul rcx
add rbp, 0x2a8
mov dword [rsp + 0x58], r12d
sar rdx, 8
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdi, rdx
jb 0x18005ce40
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov r12, qword [rsp + 0x30]
add rsp, 0x40
pop r15
ret
mov rcx, qword [0x18009ceb8]
lea rdx, str.Function__x_does_not_exist_
mov r8, qword [r15 + 0x4de8]
mov dword [rcx + 0x804], 0x40600000
mov r8d, dword [r8 + rbp + 0x2a0]
call fcn.18004e7f0
jmp 0x18005d161
mov rdx, qword [r15 + 0x4de8]
jmp 0x18005d225
mov r12d, dword [rsp + 0x58]
mov rcx, qword [0x18009ceb8]
lea r8, [rdx + 0x220]
add r8, rdi
lea rdx, str.Script__s_couldnt_be_loaded_
mov dword [rcx + 0x804], 0x40600000
call fcn.18004e7f0
jmp 0x18005d166