Function at 0x180174a00
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
xor r12d, r12d
lea r14, [0x18026c094]
test byte [0x1802766d4], 0x10
je 0x180174b28
mov dword [rbp + 0x40], 0xd
lea rdx, [rbp + 0x40]
call fcn.1801ab700
mov rdi, qword [rax]
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x180174b28
mov dword [rbp + 0x40], r12d
lea r15, str.Skeleton
lea r13, str.Tank
lea r12, str.Merasmus
nop dword [rax]
mov rax, qword [rdi]
mov qword [rbp + 0x50], rax
lea rdx, [rbp + 0x50]
lea rcx, [0x180262c60]
call fcn.180176e30
mov rbx, rax
lea rax, [0x18022d0e8]
mov qword [rbp + 0x48], rax
mov rcx, qword [rbp + 0x50]
add rcx, 0x10
call fcn.1800c4970
sub eax, 0x30
je 0x180174ad8
sub eax, 0x19
je 0x180174acf
sub eax, 9
je 0x180174ac9
sub eax, 0xea
je 0x180174ac3
cmp eax, 0x26
jne 0x180174ae3
mov qword [rbp + 0x48], r15
jmp 0x180174ae3
mov qword [rbp + 0x48], r13
jmp 0x180174ae3
mov qword [rbp + 0x48], r12
jmp 0x180174ae3
lea rax, str.Horseless_Headless_Horsemann
jmp 0x180174adf
lea rax, str.Monoculus
mov qword [rbp + 0x48], rax
mov qword [rsp + 0x20], r14
lea r9, [0x180276254]
lea r8, [rbp + 0x48]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.180177c20
nop
lea rdx, [rbp - 0x30]
lea rcx, [rbx + 8]
call fcn.180177230
nop
lea rcx, [rbp - 0x28]
call fcn.1800a0370
add rdi, 8
cmp rdi, rsi
jne 0x180174a70
xor r12d, r12d
test byte [0x1802766d4], 0x20
je 0x180174ba5
mov dword [rbp + 0x40], 6
lea rdx, [rbp + 0x40]
call fcn.1801ab700
mov rdi, qword [rax]
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x180174ba5
mov dword [rbp + 0x40], r12d
mov rax, qword [rdi]
mov qword [rbp + 0x48], rax
lea rdx, [rbp + 0x48]
lea rcx, [0x180262c60]
call fcn.180176e30
lea rbx, [rax + 8]
mov qword [rsp + 0x20], r14
lea r9, [0x180275854]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.180177d30
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.180177230
nop
lea rcx, [rbp - 0x28]
call fcn.1800a0370
add rdi, 8
cmp rdi, rsi
jne 0x180174b51
test byte [0x1802766d4], 0x40
je 0x180174c24
mov dword [rbp + 0x40], 7
lea rdx, [rbp + 0x40]
call fcn.1801ab700
mov rdi, qword [rax]
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x180174c24
mov dword [rbp + 0x40], r12d
nop
mov rax, qword [rdi]
mov qword [rbp + 0x48], rax
lea rdx, [rbp + 0x48]
lea rcx, [0x180262c60]
call fcn.180176e30
lea rbx, [rax + 8]
mov qword [rsp + 0x20], r14
lea r9, [0x180275354]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.180177d90
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.180177230
nop
lea rcx, [rbp - 0x28]
call fcn.1800a0370
add rdi, 8
cmp rdi, rsi
jne 0x180174bd0
test byte [0x1802766d4], 0x80
je 0x180174cab
mov dword [rbp + 0x40], 8
lea rdx, [rbp + 0x40]
call fcn.1801ab700
mov rdi, qword [rax]
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x180174cab
mov dword [rbp + 0x40], r12d
nop dword [rax]
mov rax, qword [rdi]
mov qword [rbp + 0x48], rax
lea rdx, [rbp + 0x48]
lea rcx, [0x180262c60]
call fcn.180176e30
lea rbx, [rax + 8]
mov qword [rsp + 0x20], r14
lea r9, [0x1802761d4]
lea r8, str.Money
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x30]
call fcn.180177cc0
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.180177230
nop
lea rcx, [rbp - 0x28]
call fcn.1800a0370
add rdi, 8
cmp rdi, rsi
jne 0x180174c50
test dword [0x1802766d4], 0x100
je 0x180174f1b
mov dword [rbp + 0x40], 9
lea rdx, [rbp + 0x40]
call fcn.1801ab700
mov rsi, qword [rax]
mov r15, qword [rax + 8]
cmp rsi, r15
je 0x180174f1b
nop dword [rax + rax]
mov rax, qword [rsi]
mov qword [rbp + 0x40], rax
lea rdx, [rbp + 0x40]
lea rcx, [0x180262c60]
call fcn.180176e30
mov r14, rax
lea rdi, str.Powerup
mov rcx, qword [0x1802676f0]
mov rdx, qword [rcx]
mov rbx, qword [rdx + 0x18]
mov rcx, qword [rbp + 0x40]
add rcx, 8
mov rdx, qword [rcx]
call qword [rdx + 0x48]
mov rdx, rax
mov rcx, qword [0x1802676f0]
call rbx
mov r9, rax
mov ecx, 0x811c9dc5
mov rdx, 0xffffffffffffffff
nop dword [rax + rax]
inc rdx
cmp byte [rax + rdx], 0
jne 0x180174d40
mov r8, r12
test rdx, rdx
je 0x180174e6e
nop word [rax + rax]
movsx eax, byte [r8 + r9]
xor eax, ecx
imul ecx, eax, 0x1000193
inc r8
cmp r8, rdx
jb 0x180174d60
cmp ecx, 0x74853533
ja 0x180174e08
je 0x180174dff
cmp ecx, 0x2cba3544
ja 0x180174dd9
je 0x180174dcd
cmp ecx, 0x52d270f
je 0x180174dc1
cmp ecx, 0x9584002
je 0x180174db5
cmp ecx, 0x269e785e
jne 0x180174e6e
lea rdi, str.Strength
jmp 0x180174e6e
lea rdi, str.Reflect
jmp 0x180174e6e
lea rdi, str.Precision
jmp 0x180174e6e
lea rdi, str.King
jmp 0x180174e6e
cmp ecx, 0x5075bc71
je 0x180174df6
cmp ecx, 0x530c8fbf
jne 0x180174e6e
lea rdi, str.Resistance
jmp 0x180174e6e
lea rdi, str.Plague
jmp 0x180174e6e
lea rdi, str.Knockout
jmp 0x180174e6e
cmp ecx, 0xc6733197
ja 0x180174e4e
je 0x180174e45
cmp ecx, 0x7ecadb48
je 0x180174e3c
cmp ecx, 0x935a31a1
je 0x180174e33
cmp ecx, 0xb190879e
jne 0x180174e6e
lea rdi, str.Supernova
jmp 0x180174e6e
lea rdi, str.Vampire
jmp 0x180174e6e
lea rdi, str.Agility
jmp 0x180174e6e
lea rdi, str.Revenge
jmp 0x180174e6e
cmp ecx, 0xca7e7084
je 0x180174e67
cmp ecx, 0xd7445fd6
jne 0x180174e6e
lea rdi, str.Regeneration
jmp 0x180174e6e
lea rdi, str.Haste
mov eax, dword [0x18026c094]
mov dword [rbp - 0x30], eax
mov eax, dword [0x1802750d4]
mov dword [rbp - 0x2c], eax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], r12
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rdi + r8], 0
jne 0x180174ea0
mov rdx, rdi
lea rcx, [rbp - 0x28]
call fcn.1800a2420
mov dword [rbp - 8], r12d
mov rdx, qword [r14 + 0x10]
cmp rdx, qword [r14 + 0x18]
je 0x180174ef4
mov eax, dword [rbp - 0x30]
mov dword [rdx], eax
mov eax, dword [rbp - 0x2c]
mov dword [rdx + 4], eax
vmovups ymm0, ymmword [rbp - 0x28]
vmovups ymmword [rdx + 8], ymm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov dword [rdx + 0x28], r12d
add qword [r14 + 0x10], 0x30
jmp 0x180174f02
lea r8, [rbp - 0x30]
lea rcx, [r14 + 8]
call fcn.180178ab0
nop
lea rcx, [rbp - 0x28]
vzeroupper
call fcn.1800a0370
add rsi, 8
cmp rsi, r15
jne 0x180174ce0
test dword [0x1802766d4], 0x200
je 0x18017504b
mov dword [rbp + 0x40], 0xe
lea rdx, [rbp + 0x40]
call fcn.1801ab700
mov rdi, qword [rax]
mov rsi, qword [rax + 8]
cmp rdi, rsi
je 0x18017504b
lea r14, str.Pumpkin_Bomb
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdi]
mov qword [rbp + 0x40], rax
lea r8, [rbp + 0x40]
lea rdx, [rbp - 0x40]
lea rcx, [0x180262c60]
call fcn.180177df0
mov rbx, qword [rax]
mov rcx, qword [rbp + 0x40]
add rcx, 0x10
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x180174f96
mov eax, dword [rax + 0x28]
jmp 0x180174f99
mov eax, r12d
lea rdx, str.Bomb
cmp eax, 0x11a
cmove rdx, r14
mov eax, dword [0x18026c094]
mov dword [rbp - 0x30], eax
mov eax, dword [0x180275954]
mov dword [rbp - 0x2c], eax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], r12
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x180174fd3
lea rcx, [rbp - 0x28]
call fcn.1800a2420
mov dword [rbp - 8], r12d
mov rdx, qword [rbx + 0x28]
cmp rdx, qword [rbx + 0x30]
je 0x180175024
mov eax, dword [rbp - 0x30]
mov dword [rdx], eax
mov eax, dword [rbp - 0x2c]
mov dword [rdx + 4], eax
vmovups ymm0, ymmword [rbp - 0x28]
vmovups ymmword [rdx + 8], ymm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov dword [rdx + 0x28], r12d
add qword [rbx + 0x28], 0x30
jmp 0x180175032
lea r8, [rbp - 0x30]
lea rcx, [rbx + 0x20]
call fcn.180178ab0
nop
lea rcx, [rbp - 0x28]
vzeroupper
call fcn.1800a0370
add rdi, 8
cmp rdi, rsi
jne 0x180174f60
test dword [0x1802766d4], 0x400
je 0x180175153
mov dword [rbp + 0x40], 0xa
lea r8, [rbp + 0x40]
lea rdx, [rbp - 0x40]
lea rcx, [0x180268220]
call fcn.1801ac590
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x18]
mov rdi, qword [rcx + 0x20]
cmp rbx, rdi
je 0x180175153
nop word [rax + rax]
mov rax, qword [rbx]
mov qword [rbp + 0x40], rax
lea r8, [rbp + 0x40]
lea rdx, [rbp - 0x40]
lea rcx, [0x180262c60]
call fcn.180177df0
mov r9, qword [rax]
mov eax, dword [0x18026c094]
mov dword [rbp - 0x30], eax
mov ecx, dword [0x180275954]
mov dword [rbp - 0x2c], ecx
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 9
mov qword [rbp - 0x10], 0xf
vmovsd xmm0, qword [str.Spellbook]
vmovsd qword [rbp - 0x28], xmm0
movzx edx, byte [0x1802312c0]
mov byte [rbp - 0x20], dl
mov byte [rbp - 0x1f], 0
mov dword [rbp - 8], r12d
mov rdx, qword [r9 + 0x28]
cmp rdx, qword [r9 + 0x30]
je 0x18017512c
mov dword [rdx], eax
mov dword [rdx + 4], ecx
vmovups ymm0, ymmword [rbp - 0x28]
vmovups ymmword [rdx + 8], ymm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov dword [rdx + 0x28], r12d
add qword [r9 + 0x28], 0x30
jmp 0x18017513a
lea r8, [rbp - 0x30]
lea rcx, [r9 + 0x20]
call fcn.180178ab0
nop
lea rcx, [rbp - 0x28]
vzeroupper
call fcn.1800a0370
add rbx, 8
cmp rbx, rdi
jne 0x180175090
test dword [0x1802766d4], 0x800
je 0x180175250
mov dword [rbp + 0x40], 0xf
lea r8, [rbp + 0x40]
lea rdx, [rbp - 0x40]
lea rcx, [0x180268220]
call fcn.1801ac590
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x18]
mov rdi, qword [rcx + 0x20]
cmp rbx, rdi
je 0x180175250
movabs rsi, 0x656c796f67726147
nop dword [rax]
mov rax, qword [rbx]
mov qword [rbp + 0x40], rax
lea r8, [rbp + 0x40]
lea rdx, [rbp - 0x40]
lea rcx, [0x180262c60]
call fcn.180177df0
mov r9, qword [rax]
mov eax, dword [0x18026c094]
mov dword [rbp - 0x30], eax
mov ecx, dword [0x180275954]
mov dword [rbp - 0x2c], ecx
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], 8
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x28], rsi
mov byte [rbp - 0x20], 0
mov dword [rbp - 8], r12d
mov rdx, qword [r9 + 0x28]
cmp rdx, qword [r9 + 0x30]
je 0x180175229
mov dword [rdx], eax
mov dword [rdx + 4], ecx
vmovups ymm0, ymmword [rbp - 0x28]
vmovups ymmword [rdx + 8], ymm0
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov dword [rdx + 0x28], r12d
add qword [r9 + 0x28], 0x30
jmp 0x180175237
lea r8, [rbp - 0x30]
lea rcx, [r9 + 0x20]
call fcn.180178ab0
nop
lea rcx, [rbp - 0x28]
vzeroupper
call fcn.1800a0370
add rbx, 8
cmp rbx, rdi
jne 0x1801751a0
mov rbx, qword [rsp + 0xc8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret