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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x78]
sub rsp, 0x178
mov r15, r9
mov rdi, r8
mov rsi, rdx
mov r14, qword [rbp + 0xe0]
xor r9d, r9d
test byte [0x180292ca4], 0x20
je 0x18016ee0d
mov rdx, r8
mov r12, qword [r8 + 0x18]
cmp r12, 0xf
jbe 0x18016ea6c
mov rdx, qword [r8]
mov ebx, 0x811c9dc5
mov rcx, 0xffffffffffffffff
nop dword [rax + rax]
inc rcx
cmp byte [rdx + rcx], 0
jne 0x18016ea80
test rcx, rcx
je 0x18016eaa5
nop
movsx eax, byte [rdx + r9]
xor eax, ebx
imul ebx, eax, 0x1000193
inc r9
cmp r9, rcx
jb 0x18016ea90
mov edx, 0xc40bf6cc
lea rcx, [0x180256dd9]
call fcn.1800fa000
lea rdx, [0x180256de0]
lea rcx, str.from
cmp ebx, eax
cmove rcx, rdx
lea rax, str._tag___
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0xf
mov rdx, rdi
cmp r12, 0xf
jbe 0x18016eaeb
mov rdx, qword [rdi]
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x80], xmm0
movabs rax, 0xc000000000000000
mov qword [rsp + 0x60], rax
mov rdx, r14
lea r12, [r14 + 0x18]
cmp qword [r12], 0xf
jbe 0x18016eb22
mov rdx, qword [r14]
lea r13, [r14 + 0x10]
mov rax, qword [r13]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x70], xmm0
movabs rax, 0xc000000000000010
mov qword [rsp + 0x68], rax
mov qword [rbp - 0x60], rcx
movabs rax, 0xb000000000000020
mov qword [rsp + 0x70], rax
mov rcx, rsi
mov qword [rbp + 0xc0], r12
cmp qword [rsi + 0x18], 0xf
jbe 0x18016eb7e
mov rcx, qword [rsi]
lea rax, [r14 + 0x18]
mov qword [rbp + 0xc0], rax
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x58], xmm0
movabs rax, 0xc000000000000028
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x30], 4
lea rax, [rsp + 0x60]
mov qword [rsp + 0x38], rax
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm1, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm1
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 8]
call fcn.1800bd840
nop
mov edx, 0xc40bf6cc
lea rcx, [0x180256dd9]
call fcn.1800fa000
cmp ebx, eax
lea r8, str.from
lea rax, [0x180256de0]
cmove r8, rax
lea rax, str._tag_
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x14
mov rcx, rdi
mov rdx, r13
cmp qword [rdi + 0x18], 0xf
jbe 0x18016ec36
mov rcx, qword [rdi]
mov r12, qword [rbp + 0xc0]
lea rdx, [r14 + 0x10]
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x70], xmm0
movabs rax, 0xc000000000000000
mov qword [rsp + 0x60], rax
mov rcx, r15
cmp qword [r15 + 0x18], 0xf
jbe 0x18016ec6c
mov rcx, qword [r15]
mov r13, rdx
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x60], xmm0
movabs rax, 0xc000000000000010
mov qword [rsp + 0x68], rax
mov rcx, r14
cmp qword [r12], 0xf
jbe 0x18016ec9f
mov rcx, qword [r14]
mov rax, qword [r13]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x50], xmm0
movabs rax, 0xc000000000000020
mov qword [rsp + 0x70], rax
mov qword [rbp - 0x40], r8
movabs rax, 0xb000000000000030
mov qword [rsp + 0x78], rax
lea rax, str._aC8A900
cmp qword [0x180284368], 0xf
jbe 0x18016ecf0
mov rax, qword [str._aC8A900]
mov qword [rsp + 0x40], rax
mov rax, qword [0x180284360]
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x38], xmm0
movabs rax, 0xc000000000000038
mov qword [rbp - 0x80], rax
mov rcx, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x18016ed25
mov rcx, qword [rsi]
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rbp - 0x28], xmm0
movabs rax, 0xc000000000000048
mov qword [rbp - 0x78], rax
mov qword [rsp + 0x40], 6
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
movaps xmm1, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm1
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x18]
call fcn.1800bd840
nop
lea rax, [rbp + 0x28]
mov qword [rbp + 0xc0], rax
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0x28]
call fcn.1800a32e0
mov rbx, rax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 8]
lea rcx, [rbp + 0x48]
call fcn.1800a32e0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 4
mov qword [rsp + 0x58], 0xf
mov dword [rsp + 0x40], 0x73676154
mov byte [rsp + 0x44], 0
mov qword [rsp + 0x20], rbx
mov r9, rax
lea r8, [rsp + 0x40]
mov edx, dword [0x180292ea4]
call fcn.18016c6d0
nop
lea rcx, [rbp - 0x18]
call fcn.1800a3670
nop
lea rcx, [rbp + 8]
call fcn.1800a3670
nop
mov rcx, rsi
call fcn.1800a3670
nop
mov rcx, rdi
call fcn.1800a3670
nop
mov rcx, r15
call fcn.1800a3670
nop
mov rcx, r14
call fcn.1800a3670
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret