Function at 0x180057530
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xa0
mov rax, qword [0x180097010]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov r14, rcx
lea rcx, str.Execution_Type
call fcn.1800351f0
mov rax, qword [0x180097a30]
mov rcx, qword [rax + 0x3ed0]
cmp byte [rcx + 0xbb], 0
jne 0x1800575a2
mov eax, dword [rcx + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x18008d0b0]
call fcn.1800386b0
cmp dword [r14 + 0x70], 0
sete dl
lea rcx, str.On_Player1
call fcn.180037d30
xor r13d, r13d
test al, al
je 0x1800575c1
mov dword [r14 + 0x70], r13d
movss xmm1, dword [0x18008d1e0]
xorps xmm0, xmm0
call fcn.180015ec0
cmp dword [r14 + 0x70], 1
sete dl
lea rcx, str.On_Player2
call fcn.180037d30
test al, al
je 0x1800575f1
mov dword [r14 + 0x70], 1
mov rax, qword [0x180097a30]
mov rcx, qword [rax + 0x3ed0]
cmp byte [rcx + 0xbb], r13b
jne 0x180057622
mov eax, dword [rcx + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x18008d0b0]
call fcn.1800386b0
mov ecx, dword [0x1800979b4]
mov rax, qword gs:[0x58]
mov esi, 4
mov r15, qword [rax + rcx*8]
mov qword [rbp - 0x11], r15
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa628], eax
jle 0x18005766b
lea rcx, [0x1800aa628]
call fcn.18005e2d0
cmp dword [0x1800aa628], 0xffffffff
jne 0x18005766b
lea rcx, [0x1800aa628]
call fcn.18005e270
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa630], eax
jle 0x180057698
lea rcx, [0x1800aa630]
call fcn.18005e2d0
cmp dword [0x1800aa630], 0xffffffff
jne 0x180057698
lea rcx, [0x1800aa630]
call fcn.18005e270
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa62c], eax
jle 0x1800576d1
lea rcx, [0x1800aa62c]
call fcn.18005e2d0
cmp dword [0x1800aa62c], 0xffffffff
jne 0x1800576d1
lea rcx, [0x18005f740]
call fcn.18005dd8c
lea rcx, [0x1800aa62c]
call fcn.18005e270
lea rcx, str.Script_Source__.MKO_
call fcn.1800351f0
movss xmm1, dword [0x18008d1e0]
xorps xmm0, xmm0
call fcn.180015ec0
lea rcx, str..MKO_file_names_can_be_found_in_MKScript_folder._Alternatively_add_.mko_to_names_from_Character_and_Kameo_tabs.
call fcn.1800534b0
movss xmm0, dword [0x18008d1c4]
call fcn.180015f70
mov qword [rbp - 1], r13
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
lea rax, [rbp - 1]
mov qword [rsp + 0x20], rax
mov r9d, pe_nt_image_headers64
lea rbx, [0x1800a80e0]
mov r8, rbx
xor edx, edx
lea rcx, str.scriptsrc
call fcn.18003e6e0
mov rcx, qword [0x180097a30]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], 1
mov r8, qword [rcx + 0x3ed0]
movsxd rdx, dword [r8 + 0x1c8]
mov rax, qword [r8 + 0x1d0]
mov ecx, dword [rax + rdx*4 - 4]
mov dword [r8 + 0x1bc], ecx
lea eax, [rdx - 1]
mov dword [r8 + 0x1c8], eax
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa438], eax
jle 0x1800577ba
lea rcx, [0x1800aa438]
call fcn.18005e2d0
cmp dword [0x1800aa438], 0xffffffff
jne 0x1800577ba
mov rax, qword [0x180097dc8]
mov qword [0x1800aa440], rax
lea rcx, [0x1800aa438]
call fcn.18005e270
mov rax, qword [0x1800aa440]
test rax, rax
je 0x180058120
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call rax
mov qword [r14 + 0x80], rax
test rax, rax
je 0x180058127
lea rsi, [0x1800a9a00]
mov r12, 0xffffffffffffffff
cmp dword [0x1800a81e0], r13d
jne 0x180057c5d
lea rcx, str.Function_List
call fcn.180034f50
mov ecx, 4
mov eax, dword [r15 + rcx]
cmp dword [0x1800aa50c], eax
jle 0x18005788d
lea rcx, [0x1800aa50c]
call fcn.18005e2d0
cmp dword [0x1800aa50c], r12d
jne 0x18005788d
mov qword [0x1800aa610], r13
mov qword [0x1800aa618], r13
mov byte [0x1800aa510], 0
mov dword [0x1800aa620], r13d
mov r8d, 0xff
lea rdx, [0x180087046]
lea rcx, [0x1800aa510]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov byte [0x1800aa60f], 0
call fcn.180006d10
nop
lea rcx, [0x18005f710]
call fcn.18005dd8c
nop
lea rcx, [0x1800aa50c]
call fcn.18005e270
lea rcx, str.Search
call fcn.180034f50
movss xmm0, dword [0x18008d1c4]
call fcn.180015f70
xorps xmm2, xmm2
call fcn.180006c90
mov rbx, qword [0x180097a30]
mov rax, qword [rbx + 0x3ed0]
mov byte [rax + 0xb8], 1
mov r8, qword [rbx + 0x3ed0]
movsxd rdx, dword [r8 + 0x1c8]
mov rax, qword [r8 + 0x1d0]
mov ecx, dword [rax + rdx*4 - 4]
mov dword [r8 + 0x1bc], ecx
lea eax, [rdx - 1]
mov dword [r8 + 0x1c8], eax
mov dword [rbp - 0x19], 0
mov dword [rbp - 0x15], 0x42fa0000
mov rax, qword [rbx + 0x3ed0]
mov byte [rax + 0xb8], 1
mov rbx, qword [rbx + 0x3ed0]
movsxd rcx, dword [rbx + 0xf0]
mov rax, qword [rbx + 0xf8]
mov r8d, dword [rax + rcx*4 - 4]
xor edx, edx
lea rcx, str.list
call fcn.1800062b0
mov edi, eax
mov rdx, qword [rbx]
cmp dword [rdx + 0x3f18], eax
jne 0x180057951
lea r8, str.list
mov edx, 0xb
mov ecx, eax
call fcn.18001e440
mov dword [rsp + 0x20], r13d
mov r9b, 1
lea r8, [rbp - 0x19]
mov edx, edi
lea rcx, str.list
call fcn.18000d5e0
mov edi, r13d
mov dword [rbp - 0x29], r13d
mov rax, qword [r14 + 0x80]
cmp dword [rax + 0xc0], r13d
jle 0x180057a30
mov rsi, r13
mov qword [rbp - 0x19], r13
mov r15d, dword [0x1800aa610]
nop dword [rax]
nop dword [rax + rax]
mov rbx, qword [rax + 0xb8]
mov qword [rbp + 7], rbx
mov rsi, qword [rsi + rbx + 8]
test rsi, rsi
je 0x180057a01
test r15d, r15d
je 0x180057ab7
mov edi, r13d
mov rbx, qword [0x1800aa618]
nop dword [rax + rax]
mov r9, qword [rbx + 8]
mov r8, qword [rbx]
cmp r8, r9
je 0x180057a8f
mov rcx, rsi
cmp byte [r8], 0x2d
jne 0x180057a85
inc r8
call fcn.180006010
test rax, rax
je 0x180057a8f
mov edi, dword [rbp - 0x29]
inc edi
mov dword [rbp - 0x29], edi
mov rsi, qword [rbp - 0x19]
add rsi, 0x38
mov qword [rbp - 0x19], rsi
mov rax, qword [r14 + 0x80]
cmp edi, dword [rax + 0xc0]
jl 0x1800579a0
lea rsi, [0x1800a9a00]
mov r15, qword [rbp - 0x11]
call fcn.18000d810
mov rax, r12
nop dword [rax + rax]
inc rax
cmp byte [rsi + rax], 0
jne 0x180057a40
test rax, rax
je 0x180057c5d
mov rdx, rsi
lea rcx, str.Selected_function:__s
call fcn.1800351f0
call fcn.180059220
lea rcx, [rbp - 0x11]
test al, al
je 0x180057c46
movaps xmm0, xmmword [0x18008d500]
lea rdx, str.This_function__probably__can_be_called.
jmp 0x180057c54
call fcn.180006010
test rax, rax
jne 0x180057ab0
inc edi
add rbx, 0x10
cmp edi, r15d
jne 0x1800579d0
mov edi, dword [rbp - 0x29]
cmp dword [0x1800aa620], 0
jne 0x180057a01
jmp 0x180057ab3
mov edi, dword [rbp - 0x29]
mov rbx, qword [rbp + 7]
cmp dword [0x1800a80d8], edi
sete dl
mov qword [rbp - 0x25], 0
lea r9, [rbp - 0x25]
xor r8d, r8d
mov rcx, rsi
call fcn.180046e90
test al, al
je 0x180057c33
mov rcx, qword [0x1800a80c0]
mov rdx, qword [0x1800a80c8]
cmp rcx, rdx
je 0x180057b05
call fcn.180059950
mov rax, qword [0x1800a80c0]
mov qword [0x1800a80c8], rax
mov dword [0x1800a80d8], edi
mov rsi, qword [rbp - 0x19]
mov r8, qword [rsi + rbx + 8]
lea rdx, [0x180087edc]
lea rcx, [0x1800a9a00]
call fcn.18001f7d0
mov edi, r13d
mov rdx, qword [r14 + 0x80]
mov rax, qword [rdx + 0xb8]
mov rcx, qword [rsi + rax + 0x10]
cmp dword [rcx + 0x30], r13d
jle 0x180057c30
mov rbx, r13
nop word [rax + rax]
mov rax, qword [rdx + 0xb8]
mov rax, qword [rsi + rax + 0x10]
mov rax, qword [rax + 0x28]
mov eax, dword [rbx + rax]
test eax, eax
jle 0x180057c0e
mov rcx, qword [rdx + 0x18]
dec eax
movsxd rdx, eax
add rdx, qword [rcx + 0xa0]
xorps xmm0, xmm0
movups xmmword [rbp + 0xf], xmm0
mov qword [rbp + 0x1f], r13
mov qword [rbp + 0x27], r13
mov r8, r12
nop dword [rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x180057b90
lea rcx, [rbp + 0xf]
call fcn.180051950
nop
mov rax, qword [0x1800a80c8]
cmp rax, qword [0x1800a80d0]
je 0x180057bca
lea rdx, [rbp + 0xf]
mov rcx, rax
call fcn.180059670
add qword [0x1800a80c8], 0x20
jmp 0x180057bd7
lea r8, [rbp + 0xf]
mov rdx, rax
call fcn.180059ed0
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 0x10
jb 0x180057c0e
inc rdx
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057c09
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057c3f
call fcn.18005da1c
inc edi
add rbx, 4
mov rdx, qword [r14 + 0x80]
mov rax, qword [rdx + 0xb8]
mov rcx, qword [rax + rsi + 0x10]
cmp edi, dword [rcx + 0x30]
jl 0x180057b50
mov edi, dword [rbp - 0x29]
mov r15d, dword [0x1800aa610]
jmp 0x180057a01
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movaps xmm0, xmmword [0x18008d4f0]
lea rdx, str.This_function_will_probably_crash_the_game.
movups xmmword [rbp - 0x11], xmm0
call fcn.180035090
mov eax, 4
mov eax, dword [r15 + rax]
cmp dword [0x1800aa47c], eax
jle 0x180057cca
lea rcx, [0x1800aa47c]
call fcn.18005e2d0
cmp dword [0x1800aa47c], 0xffffffff
jne 0x180057cca
xorps xmm0, xmm0
movups xmmword [0x1800aa488], xmm0
movups xmmword [0x1800aa498], xmm0
movups xmmword [0x1800aa4a8], xmm0
movups xmmword [0x1800aa4b8], xmm0
movups xmmword [0x1800aa4c8], xmm0
movups xmmword [0x1800aa4d8], xmm0
movups xmmword [0x1800aa4e8], xmm0
movups xmmword [0x1800aa4f8], xmm0
lea rcx, [0x1800aa47c]
call fcn.18005e270
mov qword [rbp - 0x25], 0
xor r8d, r8d
lea rdx, [rbp - 0x25]
lea rcx, str.Add_Hotkey
call fcn.180035fc0
mov ebx, 0x811c9dc5
test al, al
je 0x180057dcc
mov rdx, rsi
mov ecx, r12d
mov rax, r12
nop dword [rax + rax]
lea rax, [rax + 1]
inc ecx
cmp byte [rax + rsi], 0
jne 0x180057d00
mov edi, ebx
test ecx, ecx
je 0x180057d34
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
imul edi, edi, 0x1000193
xor edi, eax
sub ecx, 1
jne 0x180057d20
mov dword [r14 + 0x78], edi
mov rsi, qword [r14 + 0x80]
mov eax, 4
mov eax, dword [r15 + rax]
cmp dword [0x1800aa428], eax
jle 0x180057d7f
lea rcx, [0x1800aa428]
call fcn.18005e2d0
cmp dword [0x1800aa428], 0xffffffff
jne 0x180057d7f
mov rax, qword [0x180097dd0]
mov qword [0x1800aa430], rax
lea rcx, [0x1800aa428]
call fcn.18005e270
mov rax, qword [0x1800aa430]
test rax, rax
je 0x180057d92
mov edx, edi
mov rcx, rsi
call rax
mov eax, dword [r14 + 0x78]
mov dword [0x1800aa508], eax
lea r8, [0x1800a80e0]
lea rdx, [0x180087edc]
lea rcx, [0x1800aa488]
call fcn.18001f7d0
mov eax, dword [r14 + 0x70]
mov dword [0x1800aa480], eax
mov byte [r14 + 3], 1
lea rsi, [0x1800a9a00]
cmp byte [r14 + 3], 0
je 0x180057ed3
movaps xmm0, xmmword [0x18008d470]
movups xmmword [rbp - 0x11], xmm0
lea rdx, str.Press_a_key_
lea rcx, [rbp - 0x11]
call fcn.180035090
mov edi, r13d
mov ecx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jb 0x180057e13
inc edi
cmp edi, 0xff
jl 0x180057df5
jmp 0x180057ed3
lea eax, [rdi - 8]
cmp eax, 0xf5
ja 0x180057ed3
mov dword [0x1800aa484], edi
lea rcx, [r14 + 0x4398]
mov rdx, qword [r14 + 0x43a0]
cmp rdx, qword [r14 + 0x43a8]
je 0x180057ec2
movaps xmm0, xmmword [0x1800aa480]
movups xmmword [rdx], xmm0
movaps xmm1, xmmword [0x1800aa490]
movups xmmword [rdx + 0x10], xmm1
movaps xmm0, xmmword [0x1800aa4a0]
movups xmmword [rdx + 0x20], xmm0
movaps xmm1, xmmword [0x1800aa4b0]
movups xmmword [rdx + 0x30], xmm1
movaps xmm0, xmmword [0x1800aa4c0]
movups xmmword [rdx + 0x40], xmm0
movaps xmm1, xmmword [0x1800aa4d0]
movups xmmword [rdx + 0x50], xmm1
movaps xmm0, xmmword [0x1800aa4e0]
movups xmmword [rdx + 0x60], xmm0
movaps xmm1, xmmword [0x1800aa4f0]
movups xmmword [rdx + 0x70], xmm1
movsd xmm0, qword [0x1800aa500]
movsd qword [rdx + 0x80], xmm0
mov eax, dword [0x1800aa508]
mov dword [rdx + 0x88], eax
add qword [r14 + 0x43a0], 0x8c
jmp 0x180057ece
lea r8, [0x1800aa480]
call fcn.1800599e0
mov byte [r14 + 3], 0
movss xmm1, dword [0x18008d1e0]
xorps xmm0, xmm0
call fcn.180015ec0
mov qword [rbp - 0x25], 0
xor r8d, r8d
lea rdx, [rbp - 0x25]
lea rcx, [0x18008a940]
call fcn.180035fc0
test al, al
je 0x18005814d
mov rax, r12
nop dword [rax]
lea rax, [rax + 1]
inc r12d
cmp byte [rax + rsi], 0
jne 0x180057f10
test r12d, r12d
je 0x180057f45
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsi]
lea rsi, [rsi + 1]
imul ebx, ebx, 0x1000193
xor ebx, eax
sub r12d, 1
jne 0x180057f30
mov dword [r14 + 0x78], ebx
mov rdi, qword [r14 + 0x80]
mov esi, 4
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa428], eax
jle 0x180057f90
lea rcx, [0x1800aa428]
call fcn.18005e2d0
cmp dword [0x1800aa428], 0xffffffff
jne 0x180057f90
mov rax, qword [0x180097dd0]
mov qword [0x1800aa430], rax
lea rcx, [0x1800aa428]
call fcn.18005e270
mov r8, qword [0x1800aa430]
test r8, r8
je 0x180057fab
mov edx, ebx
mov rcx, rdi
call r8
mov r8, qword [0x1800aa430]
mov rbx, qword [r14 + 0x80]
test rbx, rbx
je 0x18005814d
mov edi, dword [r14 + 0x78]
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa428], eax
jle 0x180058001
lea rcx, [0x1800aa428]
call fcn.18005e2d0
cmp dword [0x1800aa428], 0xffffffff
jne 0x180057ffa
mov rax, qword [0x180097dd0]
mov qword [0x1800aa430], rax
lea rcx, [0x1800aa428]
call fcn.18005e270
mov r8, qword [0x1800aa430]
test r8, r8
je 0x1800580fd
mov edx, edi
mov rcx, rbx
call r8
test eax, eax
je 0x1800580fd
xor edx, edx
call fcn.180052380
mov rbx, rax
test rax, rax
je 0x180058077
mov ecx, dword [r15 + rsi]
cmp dword [0x1800aa3c8], ecx
jle 0x180058064
lea rcx, [0x1800aa3c8]
call fcn.18005e2d0
cmp dword [0x1800aa3c8], 0xffffffff
jne 0x180058064
mov rcx, qword [0x180097db0]
mov qword [0x1800aa3d8], rcx
lea rcx, [0x1800aa3c8]
call fcn.18005e270
mov rax, qword [0x1800aa3d8]
test rax, rax
je 0x180058077
mov rcx, rbx
call rax
jmp 0x18005807a
mov rax, r13
cmp dword [r14 + 0x70], 1
jne 0x1800580e3
mov edx, 1
call fcn.180052380
mov rbx, rax
test rax, rax
je 0x18005814d
mov edx, dword [r15 + rsi]
cmp dword [0x1800aa3c8], edx
jle 0x1800580d2
lea rcx, [0x1800aa3c8]
call fcn.18005e2d0
cmp dword [0x1800aa3c8], 0xffffffff
jne 0x1800580d2
mov rdx, qword [0x180097db0]
mov qword [0x1800aa3d8], rdx
lea rcx, [0x1800aa3c8]
call fcn.18005e270
mov rax, qword [0x1800aa3d8]
test rax, rax
je 0x18005814d
mov rcx, rbx
call rax
test rax, rax
je 0x18005814d
mov r8d, dword [r14 + 0x78]
mov rdx, qword [r14 + 0x80]
mov rcx, rax
call fcn.180052bc0
jmp 0x18005814d
mov rcx, qword [0x180097e18]
mov dword [rcx + 0x804], 0x40600000
mov r8d, dword [r14 + 0x78]
lea rdx, str.Function__x_does_not_exist_
call fcn.18004e950
jmp 0x18005814d
mov qword [r14 + 0x80], r13
mov r12, 0xffffffffffffffff
nop
inc r12
cmp byte [rbx + r12], r13b
jne 0x180058130
test r12, r12
je 0x18005814d
mov rdx, rbx
lea rcx, str.Cannot_load__s_
call fcn.1800351f0
mov rax, qword [0x180097a30]
mov rcx, qword [rax + 0x3ed0]
cmp byte [rcx + 0xbb], 0
jne 0x18005817e
mov eax, dword [rcx + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x18008d0b0]
call fcn.1800386b0
lea rcx, str.Registered_hotkeys:
call fcn.1800351f0
mov rsi, qword [r14 + 0x4398]
mov rcx, qword [r14 + 0x43a0]
sub rcx, rsi
movabs r15, 0xea0ea0ea0ea0ea1
mov rax, r15
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x180058220
mov r8, r13
nop
imul rdi, r8, 0x8c
mov ebx, dword [rdi + rsi + 0x88]
mov ecx, dword [rdi + rsi + 4]
call fcn.18004ee60
lea r9, [rsi + 8]
add r9, rdi
mov r8d, ebx
mov rdx, rax
lea rcx, str._s___Run__0x_X__from__s
call fcn.1800351f0
inc r13d
mov rsi, qword [r14 + 0x4398]
mov r8d, r13d
mov rcx, qword [r14 + 0x43a0]
sub rcx, rsi
mov rax, r15
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r8, rdx
jb 0x1800581c0
mov qword [rbp - 0x25], 0
xor r8d, r8d
lea rdx, [rbp - 0x25]
lea rcx, str.Clear_All
call fcn.180035fc0
test al, al
je 0x180058256
mov rax, qword [r14 + 0x4398]
cmp rax, qword [r14 + 0x43a0]
je 0x180058256
mov qword [r14 + 0x43a0], rax
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.18005d9c0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret