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

Disassembly:
push rbx
push rbp
push rdi
push r13
push r15
sub rsp, 0x80
mov rax, qword [0x18021d4c0]
xor rax, rsp
mov qword [rsp + 0x78], rax
xor ebp, ebp
mov r8, rcx
cmp byte [0x180279e98], bpl
je 0x1800aab56
mov r11, qword [rcx + 0x18]
mov r10, rcx
mov r9, qword [rcx + 0x10]
cmp r11, 0xf
jbe 0x1800aa8c4
mov r10, qword [rcx]
movabs rdi, 0xcbf29ce484222325
mov rcx, rbp
mov rdx, rdi
movabs rbx, 0x100000001b3
test r9, r9
je 0x1800aa904
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10 + rcx]
inc rcx
xor rdx, rax
imul rdx, rbx
cmp rcx, r9
jb 0x1800aa8f0
mov r10d, edx
movzx edx, dl
mov eax, r10d
shr eax, 8
xor rdx, rdi
movzx ecx, al
mov eax, r10d
shr eax, 0x10
imul rdx, rbx
mov dword [rsp + 0x40], r10d
xor rdx, rcx
movzx ecx, al
imul rdx, rbx
mov eax, r10d
xor rcx, rdx
shr rax, 0x18
mov rdx, qword [0x180266d08]
imul rcx, rbx
xor rcx, rax
imul rcx, rbx
and rcx, qword [0x180266d30]
shl rcx, 4
add rcx, qword [0x180266d18]
mov rax, qword [rcx + 8]
cmp rax, rdx
je 0x1800aa981
mov rcx, qword [rcx]
cmp r10d, dword [rax + 0x10]
je 0x1800aa984
nop
cmp rax, rcx
je 0x1800aa981
mov rax, qword [rax + 8]
cmp r10d, dword [rax + 0x10]
jne 0x1800aa970
jmp 0x1800aa984
mov rax, rbp
test rax, rax
mov rcx, rdx
cmovne rcx, rax
cmp rcx, rdx
je 0x1800aa99c
mov rax, qword [rcx + 0x18]
jmp 0x1800aab58
movabs rax, 0x7fffffffffffffff
sub rax, r9
cmp rax, 8
jb 0x1800aab7a
cmp r11, 0xf
jbe 0x1800aa9bc
mov r8, qword [r8]
mov qword [rsp + 0x30], r9
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], r8
lea r9, str.options.
mov qword [rsp + 0x20], 8
call fcn.180056510
cmp byte [0x180279e98], bpl
mov r13, qword [rsp + 0x70]
mov r15, qword [rsp + 0x58]
je 0x1800aab03
mov ecx, dword [0x18026ec40]
mov ebx, 4
mov rax, qword gs:[0x58]
mov qword [rsp + 0xc0], r12
mov r12, qword [rsp + 0x68]
mov qword [rsp + 0xb8], rsi
lea rdx, [rax + rcx*8]
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0x48], rdx
mov ecx, 8
nop word [rax + rax]
movzx eax, bx
lea rdi, [rax*8]
mov rax, qword [0x180279ea0]
cmp qword [rdi + rax], rbp
je 0x1800aaad1
mov esi, ecx
add rsi, qword [rdx]
mov eax, dword [rsi]
cmp dword [0x180279e9c], eax
jg 0x1800aab80
mov rax, qword [0x180279ea0]
mov r14, qword [rdi + rax]
movsxd rax, dword [0x180279e88]
mov rdi, qword [rax + r14]
test rdi, rdi
je 0x1800aaacc
mov eax, dword [rsi]
cmp dword [0x180279e8c], eax
jg 0x1800aabba
movsxd rcx, dword [0x180279e78]
add rcx, rdi
mov r8, qword [rcx + 0x10]
test r8, r8
je 0x1800aaacc
cmp r13, 0xf
lea rdx, [rsp + 0x58]
cmova rdx, r15
cmp qword [rcx + 0x18], 0xf
jbe 0x1800aaabe
mov rcx, qword [rcx]
cmp r8, r12
jne 0x1800aaacc
call fcn.1801a47f0
test eax, eax
je 0x1800aaae8
mov ecx, 8
inc bx
mov eax, 0x1c2
cmp bx, ax
jae 0x1800aaaeb
mov rdx, qword [rsp + 0x48]
jmp 0x1800aaa40
mov rbp, r14
mov rsi, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xc8]
mov r12, qword [rsp + 0xc0]
cmp r13, 0xf
jbe 0x1800aab36
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x1800aab2e
mov r15, qword [r15 - 8]
add rdx, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800aab74
mov rcx, r15
call fcn.18016ee40
test rbp, rbp
je 0x1800aab56
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x48]
call fcn.1800ae080
mov rcx, qword [rax]
mov rax, rbp
mov qword [rcx + 0x18], rbp
jmp 0x1800aab58
xor eax, eax
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.18016e810
add rsp, 0x80
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret
call fcn.1801819e8
int3
call fcn.18005a660
int3
lea rcx, [0x180279e9c]
call fcn.18016eef0
cmp dword [0x180279e9c], 0xffffffff
jne 0x1800aaa6b
mov edx, 0xb20f6c11
call fcn.18015b1e0
lea rcx, [0x180279e9c]
mov dword [0x180279e88], eax
call fcn.18016ee84
jmp 0x1800aaa6b
lea rcx, [0x180279e8c]
call fcn.18016eef0
cmp dword [0x180279e8c], 0xffffffff
jne 0x1800aaa94
mov edx, 0x5570fcad
call fcn.18015b1e0
lea rcx, [0x180279e8c]
mov dword [0x180279e78], eax
call fcn.18016ee84
jmp 0x1800aaa94