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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rsi, r8
mov r15, rcx
mov rax, qword [r8]
test rax, rax
je 0x1800f189a
mov r9d, dword [rax + 8]
or r13d, 0xffffffff
cmp r9d, r13d
je 0x1800f189a
lea rdi, [r8 + 8]
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov rax, qword [rax]
cmp dword [rax + r9*4], 0
je 0x1800f189a
mov qword [rbp - 0x28], rdx
and qword [rbp - 0x30], 0
and qword [rbp - 0x38], 0
and qword [rbp - 0x40], 0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
and qword [rbp - 0x10], 0
add rcx, 0x1c8
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x50]
call fcn.1800f40a0
nop
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x1800f1701
mov rax, qword [rbp - 0x10]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800f16fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800f18b5
call fcn.18010ca08
nop
mov rbx, qword [rbp - 0x50]
mov rax, qword [rsi]
test rax, rax
je 0x1800f1724
mov ecx, dword [rax + 8]
cmp ecx, r13d
je 0x1800f1724
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov rax, qword [rax]
mov edx, dword [rax + rcx*4]
jmp 0x1800f1726
xor edx, edx
mov rax, qword [rbx + 0x28]
sub rax, qword [rbx + 0x18]
sar rax, 3
cmp rdx, rax
jbe 0x1800f1740
lea rcx, [rbx + 0x18]
call fcn.1800b3d5c
xor r14d, r14d
movabs r11, 0xcbf29ce484222325
mov r8, qword [rsi]
lea rdx, [r8 + 8]
test r8, r8
je 0x1800f1770
cmp dword [rdx], r13d
je 0x1800f1770
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov ecx, dword [rdx]
mov rax, qword [rax]
mov r9d, dword [rax + rcx*4]
jmp 0x1800f1773
xor r9d, r9d
cmp r14d, r9d
jae 0x1800f1894
test r8, r8
je 0x1800f17bc
mov r8, qword [rdi]
mov edx, dword [rdx]
mov eax, r14d
add rdx, rax
mov rax, qword [r8 + 8]
mov rcx, qword [rax]
mov r9d, dword [rcx + rdx*4 + 4]
mov rcx, qword [r8 + 0x18]
cmp r9d, dword [rcx + 8]
jae 0x1800f17bc
mov eax, dword [rcx + 0xc]
cmp eax, 0x20
jb 0x1800f17bc
imul eax, r9d
add rax, qword [rcx]
je 0x1800f17bc
mov r9d, dword [rax + 8]
mov r10d, dword [rax]
jmp 0x1800f17c3
xor r9d, r9d
lea r10d, [r9 + 4]
mov dword [rbp + 0x40], r10d
mov dword [rbp + 0x44], r9d
mov r8, r11
xor ecx, ecx
movabs rdx, 0x100000001b3
movzx eax, byte [rbp + rcx + 0x40]
xor r8, rax
imul r8, rdx
inc rcx
cmp rcx, 4
jb 0x1800f17da
mov rdx, r11
xor ecx, ecx
movabs r13, 0x100000001b3
movzx eax, byte [rbp + rcx + 0x44]
xor rdx, rax
imul rdx, r13
inc rcx
cmp rcx, 4
jb 0x1800f17fe
imul rax, r8, 0x1000193
xor rax, rdx
and rax, qword [r15 + 0x1b8]
add rax, rax
mov rcx, qword [r15 + 0x1a0]
mov r8, qword [rcx + rax*8 + 8]
mov r11, qword [r15 + 0x190]
cmp r8, r11
je 0x1800f185a
mov rdx, qword [rcx + rax*8]
cmp dword [r8 + 0x10], r10d
jne 0x1800f184f
cmp dword [r8 + 0x14], r9d
je 0x1800f185d
cmp r8, rdx
je 0x1800f185a
mov r8, qword [r8 + 8]
jmp 0x1800f1843
xor r8d, r8d
test r8, r8
cmove r8, r11
add r8, 0x18
mov rdx, qword [rbx + 0x20]
cmp rdx, qword [rbx + 0x28]
je 0x1800f187f
mov rax, qword [r8]
mov qword [rdx], rax
add qword [rbx + 0x20], 8
jmp 0x1800f1888
lea rcx, [rbx + 0x18]
call fcn.1800f2944
inc r14d
or r13d, 0xffffffff
jmp 0x1800f1743
mov rax, qword [rbx + 0x18]
jmp 0x1800f189c
xor eax, eax
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
call fcn.1800fd71c
nop
int3