Function at 0x180057100
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 0x180057172
mov eax, dword [rcx + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x18008d050]
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 0x180057191
mov dword [r14 + 0x70], r13d
movss xmm1, dword [0x18008d180]
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 0x1800571c1
mov dword [r14 + 0x70], 1
mov rax, qword [0x180097a30]
mov rcx, qword [rax + 0x3ed0]
cmp byte [rcx + 0xbb], r13b
jne 0x1800571f2
mov eax, dword [rcx + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x18008d050]
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 0x18005723b
lea rcx, [0x1800aa628]
call fcn.18005e0b0
cmp dword [0x1800aa628], 0xffffffff
jne 0x18005723b
lea rcx, [0x1800aa628]
call fcn.18005e050
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa630], eax
jle 0x180057268
lea rcx, [0x1800aa630]
call fcn.18005e0b0
cmp dword [0x1800aa630], 0xffffffff
jne 0x180057268
lea rcx, [0x1800aa630]
call fcn.18005e050
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa62c], eax
jle 0x1800572a1
lea rcx, [0x1800aa62c]
call fcn.18005e0b0
cmp dword [0x1800aa62c], 0xffffffff
jne 0x1800572a1
lea rcx, [0x18005f510]
call fcn.18005db6c
lea rcx, [0x1800aa62c]
call fcn.18005e050
lea rcx, str.Script_Source__.MKO_
call fcn.1800351f0
movss xmm1, dword [0x18008d180]
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.180053160
movss xmm0, dword [0x18008d164]
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 0x18005738a
lea rcx, [0x1800aa438]
call fcn.18005e0b0
cmp dword [0x1800aa438], 0xffffffff
jne 0x18005738a
mov rax, qword [0x180097dc8]
mov qword [0x1800aa440], rax
lea rcx, [0x1800aa438]
call fcn.18005e050
mov rax, qword [0x1800aa440]
test rax, rax
je 0x180057cf0
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call rax
mov qword [r14 + 0x80], rax
test rax, rax
je 0x180057cf7
lea rsi, [0x1800a9a00]
mov r12, 0xffffffffffffffff
cmp dword [0x1800a81e0], r13d
jne 0x18005782d
lea rcx, str.Function_List
call fcn.180034f50
mov ecx, 4
mov eax, dword [r15 + rcx]
cmp dword [0x1800aa50c], eax
jle 0x18005745d
lea rcx, [0x1800aa50c]
call fcn.18005e0b0
cmp dword [0x1800aa50c], r12d
jne 0x18005745d
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, [0x18005f4e0]
call fcn.18005db6c
nop
lea rcx, [0x1800aa50c]
call fcn.18005e050
lea rcx, str.Search
call fcn.180034f50
movss xmm0, dword [0x18008d164]
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 0x180057521
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 0x180057600
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 0x1800575d1
test r15d, r15d
je 0x180057687
mov edi, r13d
mov rbx, qword [0x1800aa618]
nop dword [rax + rax]
mov r9, qword [rbx + 8]
mov r8, qword [rbx]
cmp r8, r9
je 0x18005765f
mov rcx, rsi
cmp byte [r8], 0x2d
jne 0x180057655
inc r8
call fcn.180006010
test rax, rax
je 0x18005765f
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 0x180057570
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 0x180057610
test rax, rax
je 0x18005782d
mov rdx, rsi
lea rcx, str.Selected_function:__s
call fcn.1800351f0
call fcn.180058dd0
lea rcx, [rbp - 0x11]
test al, al
je 0x180057816
movaps xmm0, xmmword [0x18008d4a0]
lea rdx, str.This_function__probably__can_be_called.
jmp 0x180057824
call fcn.180006010
test rax, rax
jne 0x180057680
inc edi
add rbx, 0x10
cmp edi, r15d
jne 0x1800575a0
mov edi, dword [rbp - 0x29]
cmp dword [0x1800aa620], 0
jne 0x1800575d1
jmp 0x180057683
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 0x180057803
mov rcx, qword [0x1800a80c0]
mov rdx, qword [0x1800a80c8]
cmp rcx, rdx
je 0x1800576d5
call fcn.180059500
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 0x180057800
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 0x1800577de
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 0x180057760
lea rcx, [rbp + 0xf]
call fcn.180051950
nop
mov rax, qword [0x1800a80c8]
cmp rax, qword [0x1800a80d0]
je 0x18005779a
lea rdx, [rbp + 0xf]
mov rcx, rax
call fcn.180059220
add qword [0x1800a80c8], 0x20
jmp 0x1800577a7
lea r8, [rbp + 0xf]
mov rdx, rax
call fcn.180059a80
nop
mov rdx, qword [rbp + 0x27]
cmp rdx, 0x10
jb 0x1800577de
inc rdx
mov rcx, qword [rbp + 0xf]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800577d9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18005780f
call fcn.18005d7fc
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 0x180057720
mov edi, dword [rbp - 0x29]
mov r15d, dword [0x1800aa610]
jmp 0x1800575d1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movaps xmm0, xmmword [0x18008d490]
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 0x18005789a
lea rcx, [0x1800aa47c]
call fcn.18005e0b0
cmp dword [0x1800aa47c], 0xffffffff
jne 0x18005789a
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.18005e050
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 0x18005799c
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 0x1800578d0
mov edi, ebx
test ecx, ecx
je 0x180057904
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 0x1800578f0
mov dword [r14 + 0x78], edi
mov rsi, qword [r14 + 0x80]
mov eax, 4
mov eax, dword [r15 + rax]
cmp dword [0x1800aa428], eax
jle 0x18005794f
lea rcx, [0x1800aa428]
call fcn.18005e0b0
cmp dword [0x1800aa428], 0xffffffff
jne 0x18005794f
mov rax, qword [0x180097dd0]
mov qword [0x1800aa430], rax
lea rcx, [0x1800aa428]
call fcn.18005e050
mov rax, qword [0x1800aa430]
test rax, rax
je 0x180057962
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 0x180057aa3
movaps xmm0, xmmword [0x18008d410]
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 0x1800579e3
inc edi
cmp edi, 0xff
jl 0x1800579c5
jmp 0x180057aa3
lea eax, [rdi - 8]
cmp eax, 0xf5
ja 0x180057aa3
mov dword [0x1800aa484], edi
lea rcx, [r14 + 0x4398]
mov rdx, qword [r14 + 0x43a0]
cmp rdx, qword [r14 + 0x43a8]
je 0x180057a92
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 0x180057a9e
lea r8, [0x1800aa480]
call fcn.180059590
mov byte [r14 + 3], 0
movss xmm1, dword [0x18008d180]
xorps xmm0, xmm0
call fcn.180015ec0
mov qword [rbp - 0x25], 0
xor r8d, r8d
lea rdx, [rbp - 0x25]
lea rcx, [0x18008a908]
call fcn.180035fc0
test al, al
je 0x180057d1d
mov rax, r12
nop dword [rax]
lea rax, [rax + 1]
inc r12d
cmp byte [rax + rsi], 0
jne 0x180057ae0
test r12d, r12d
je 0x180057b15
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 0x180057b00
mov dword [r14 + 0x78], ebx
mov rdi, qword [r14 + 0x80]
mov esi, 4
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa428], eax
jle 0x180057b60
lea rcx, [0x1800aa428]
call fcn.18005e0b0
cmp dword [0x1800aa428], 0xffffffff
jne 0x180057b60
mov rax, qword [0x180097dd0]
mov qword [0x1800aa430], rax
lea rcx, [0x1800aa428]
call fcn.18005e050
mov r8, qword [0x1800aa430]
test r8, r8
je 0x180057b7b
mov edx, ebx
mov rcx, rdi
call r8
mov r8, qword [0x1800aa430]
mov rbx, qword [r14 + 0x80]
test rbx, rbx
je 0x180057d1d
mov edi, dword [r14 + 0x78]
mov eax, dword [r15 + rsi]
cmp dword [0x1800aa428], eax
jle 0x180057bd1
lea rcx, [0x1800aa428]
call fcn.18005e0b0
cmp dword [0x1800aa428], 0xffffffff
jne 0x180057bca
mov rax, qword [0x180097dd0]
mov qword [0x1800aa430], rax
lea rcx, [0x1800aa428]
call fcn.18005e050
mov r8, qword [0x1800aa430]
test r8, r8
je 0x180057ccd
mov edx, edi
mov rcx, rbx
call r8
test eax, eax
je 0x180057ccd
xor edx, edx
call fcn.1800522f0
mov rbx, rax
test rax, rax
je 0x180057c47
mov ecx, dword [r15 + rsi]
cmp dword [0x1800aa3c8], ecx
jle 0x180057c34
lea rcx, [0x1800aa3c8]
call fcn.18005e0b0
cmp dword [0x1800aa3c8], 0xffffffff
jne 0x180057c34
mov rcx, qword [0x180097db0]
mov qword [0x1800aa3d8], rcx
lea rcx, [0x1800aa3c8]
call fcn.18005e050
mov rax, qword [0x1800aa3d8]
test rax, rax
je 0x180057c47
mov rcx, rbx
call rax
jmp 0x180057c4a
mov rax, r13
cmp dword [r14 + 0x70], 1
jne 0x180057cb3
mov edx, 1
call fcn.1800522f0
mov rbx, rax
test rax, rax
je 0x180057d1d
mov edx, dword [r15 + rsi]
cmp dword [0x1800aa3c8], edx
jle 0x180057ca2
lea rcx, [0x1800aa3c8]
call fcn.18005e0b0
cmp dword [0x1800aa3c8], 0xffffffff
jne 0x180057ca2
mov rdx, qword [0x180097db0]
mov qword [0x1800aa3d8], rdx
lea rcx, [0x1800aa3c8]
call fcn.18005e050
mov rax, qword [0x1800aa3d8]
test rax, rax
je 0x180057d1d
mov rcx, rbx
call rax
test rax, rax
je 0x180057d1d
mov r8d, dword [r14 + 0x78]
mov rdx, qword [r14 + 0x80]
mov rcx, rax
call fcn.180052b30
jmp 0x180057d1d
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 0x180057d1d
mov qword [r14 + 0x80], r13
mov r12, 0xffffffffffffffff
nop
inc r12
cmp byte [rbx + r12], r13b
jne 0x180057d00
test r12, r12
je 0x180057d1d
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 0x180057d4e
mov eax, dword [rcx + 0x1b4]
neg eax
sbb ecx, ecx
add ecx, 6
movss xmm1, dword [0x18008d050]
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 0x180057df0
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 0x180057d90
mov qword [rbp - 0x25], 0
xor r8d, r8d
lea rdx, [rbp - 0x25]
lea rcx, str.Clear_All
call fcn.180035fc0
test al, al
je 0x180057e26
mov rax, qword [r14 + 0x4398]
cmp rax, qword [r14 + 0x43a0]
je 0x180057e26
mov qword [r14 + 0x43a0], rax
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.18005d7a0
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