Function at 0x18009f910
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 [0x1802ec4c0]
xor rax, rsp
mov qword [rsp + 0x78], rax
xor ebp, ebp
mov r8, rcx
cmp byte [0x18034e0d0], bpl
je 0x18009fbe6
mov r11, qword [rcx + 0x18]
mov r10, rcx
mov r9, qword [rcx + 0x10]
cmp r11, 0xf
jbe 0x18009f954
mov r10, qword [rcx]
movabs rdi, 0xcbf29ce484222325
mov rcx, rbp
mov rdx, rdi
movabs rbx, 0x100000001b3
test r9, r9
je 0x18009f994
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10 + rcx]
inc rcx
xor rdx, rax
imul rdx, rbx
cmp rcx, r9
jb 0x18009f980
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 [0x180337c48]
imul rcx, rbx
xor rcx, rax
imul rcx, rbx
and rcx, qword [0x180337c70]
shl rcx, 4
add rcx, qword [0x180337c58]
mov rax, qword [rcx + 8]
cmp rax, rdx
je 0x18009fa11
mov rcx, qword [rcx]
cmp r10d, dword [rax + 0x10]
je 0x18009fa14
nop
cmp rax, rcx
je 0x18009fa11
mov rax, qword [rax + 8]
cmp r10d, dword [rax + 0x10]
jne 0x18009fa00
jmp 0x18009fa14
mov rax, rbp
test rax, rax
mov rcx, rdx
cmovne rcx, rax
cmp rcx, rdx
je 0x18009fa2c
mov rax, qword [rcx + 0x18]
jmp 0x18009fbe8
movabs rax, 0x7fffffffffffffff
sub rax, r9
cmp rax, 8
jb 0x18009fc0a
cmp r11, 0xf
jbe 0x18009fa4c
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.1800591b0
cmp byte [0x18034e0d0], bpl
mov r13, qword [rsp + 0x70]
mov r15, qword [rsp + 0x58]
je 0x18009fb93
mov ecx, dword [0x180342d00]
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 [0x18034e0d8]
cmp qword [rdi + rax], rbp
je 0x18009fb61
mov esi, ecx
add rsi, qword [rdx]
mov eax, dword [rsi]
cmp dword [0x18034e0e4], eax
jg 0x18009fc10
mov rax, qword [0x18034e0d8]
mov r14, qword [rdi + rax]
movsxd rax, dword [0x18034e0e0]
mov rdi, qword [rax + r14]
test rdi, rdi
je 0x18009fb5c
mov eax, dword [rsi]
cmp dword [0x18034e0b4], eax
jg 0x18009fc4a
movsxd rcx, dword [0x18034e0b0]
add rcx, rdi
mov r8, qword [rcx + 0x10]
test r8, r8
je 0x18009fb5c
cmp r13, 0xf
lea rdx, [rsp + 0x58]
cmova rdx, r15
cmp qword [rcx + 0x18], 0xf
jbe 0x18009fb4e
mov rcx, qword [rcx]
cmp r8, r12
jne 0x18009fb5c
call fcn.180245950
test eax, eax
je 0x18009fb78
mov ecx, 8
inc bx
mov eax, 0x1c2
cmp bx, ax
jae 0x18009fb7b
mov rdx, qword [rsp + 0x48]
jmp 0x18009fad0
mov rbp, r14
mov rsi, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xc8]
mov r12, qword [rsp + 0xc0]
cmp r13, 0xf
jbe 0x18009fbc6
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x18009fbbe
mov r15, qword [r15 - 8]
add rdx, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009fc04
mov rcx, r15
call fcn.18020e750
test rbp, rbp
je 0x18009fbe6
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x48]
call fcn.1800a6970
mov rcx, qword [rax]
mov rax, rbp
mov qword [rcx + 0x18], rbp
jmp 0x18009fbe8
xor eax, eax
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.18020e120
add rsp, 0x80
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret
call fcn.1802214b8
int3
call fcn.180059500
int3
lea rcx, [0x18034e0e4]
call fcn.18020e800
cmp dword [0x18034e0e4], 0xffffffff
jne 0x18009fafb
mov edx, 0xb20f6c11
call fcn.1801839a0
lea rcx, [0x18034e0e4]
mov dword [0x18034e0e0], eax
call fcn.18020e794
jmp 0x18009fafb
lea rcx, [0x18034e0b4]
call fcn.18020e800
cmp dword [0x18034e0b4], 0xffffffff
jne 0x18009fb24
mov edx, 0x5570fcad
call fcn.1801839a0
lea rcx, [0x18034e0b4]
mov dword [0x18034e0b0], eax
call fcn.18020e794
jmp 0x18009fb24