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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rbp, r8
mov r13, rdx
mov r14, rcx
cmp qword [rcx + 8], 0
jne 0x14001ec4c
mov edx, dword [rcx + 0x24]
call fcn.1400227b0
cmp qword [r14 + 8], 0
je 0x14001ef85
mov r8d, 0x811c9dc5
mov eax, dword [r13 + 8]
test eax, eax
je 0x14001ec77
mov rcx, qword [r13]
mov edx, eax
movzx eax, word [rcx]
xor rax, r8
imul r8, rax, 0x1000193
lea rcx, [rcx + 2]
sub rdx, 1
jne 0x14001ec60
imul rax, r8, 0x2001
mov rcx, rax
shr rcx, 7
xor rcx, rax
lea rcx, [rcx + rcx*8]
mov rax, rcx
shr rax, 0x11
xor rcx, rax
imul rsi, rcx, 0x21
mov qword [rsp + 0x60], rsi
mov r8d, dword [r14 + 0x20]
mov ecx, r8d
mov edx, 1
shl rdx, cl
lea r12, [rdx - 1]
and r12, rsi
mov rax, qword [r14 + 8]
mov r15, qword [rax + r12*8]
test r15, r15
je 0x14001eed8
mov rdi, r15
xor ebx, ebx
nop dword [rax + rax]
mov rdx, rdi
mov rcx, r13
call fcn.140027820
test al, al
je 0x14001ed38
mov rax, rdi
test rbx, rbx
cmovne rax, rbx
mov rbx, rax
mov rsi, qword [rbp]
mov rbp, qword [rdi + 0x10]
movzx eax, byte [rbp + 0x5e]
cmp byte [rsi + 0x5e], al
jne 0x14001ed33
lea rcx, [rsi + 0x10]
lea rdx, [rbp + 0x10]
call fcn.140027820
test al, al
je 0x14001ed33
lea rcx, [rsi + 0x40]
lea rdx, [rbp + 0x40]
call fcn.140027820
test al, al
je 0x14001ed33
mov eax, dword [rbp + 0x60]
cmp dword [rsi + 0x60], eax
jne 0x14001ed33
mov eax, dword [rbp + 0x64]
cmp dword [rsi + 0x64], eax
je 0x14001ef85
mov rbp, qword [rsp + 0x70]
mov eax, dword [rdi + 0x18]
shr eax, 0x1f
test al, al
jne 0x14001ed48
mov rdi, qword [rdi + 0x28]
jmp 0x14001ecd0
mov r8d, dword [r14 + 0x20]
mov rcx, qword [r14 + 0x28]
add rcx, 1
xorps xmm1, xmm1
js 0x14001ed60
cvtsi2ss xmm1, rcx
jmp 0x14001ed75
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
mov ecx, r8d
mov edx, 1
shl rdx, cl
xorps xmm0, xmm0
test rdx, rdx
js 0x14001ed8f
cvtsi2ss xmm0, rdx
jmp 0x14001eda4
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, dword [r14 + 0x30]
comiss xmm1, xmm0
jbe 0x14001ee20
lea edx, [r8 + 1]
mov rcx, r14
call fcn.1400227b0
mov ecx, dword [r14 + 0x20]
mov r12d, 1
shl r12, cl
dec r12
mov rsi, qword [rsp + 0x60]
and r12, rsi
mov rax, qword [r14 + 8]
mov r15, qword [rax + r12*8]
test r15, r15
je 0x14001ef4f
test rbx, rbx
je 0x14001ee25
mov rbx, r15
nop dword [rax]
test rbx, rbx
je 0x14001ee04
mov rdx, rbx
mov rcx, r13
call fcn.140027820
test al, al
jne 0x14001ee25
mov eax, dword [rbx + 0x18]
shr eax, 0x1f
xor ecx, ecx
test al, al
cmove rcx, rbx
mov rbx, rcx
test rcx, rcx
je 0x14001edf0
mov rbx, qword [rcx + 0x28]
jmp 0x14001edf0
mov rsi, qword [rsp + 0x60]
mov ecx, 0x30
call fcn.1400282f8
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14001ee54
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov rcx, rax
call fcn.140027560
jmp 0x14001ee56
xor edi, edi
test rdi, rdi
je 0x14001ef85
mov rdx, r13
mov rcx, rdi
call fcn.1400275b0
mov rax, qword [rbp]
mov qword [rdi + 0x10], rax
mov rax, qword [r15 + 0x20]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], r15
btr esi, 0x1f
mov dword [rdi + 0x18], esi
test rbx, rbx
je 0x14001eeac
cmp rbx, r15
je 0x14001eeac
mov rax, qword [rbx + 0x20]
mov qword [rax + 0x28], rdi
mov rax, qword [rbx + 0x20]
mov qword [rdi + 0x20], rax
mov qword [rbx + 0x20], rdi
mov qword [rdi + 0x28], rbx
jmp 0x14001efe5
mov rax, qword [r14 + 8]
mov qword [rax + r12*8], rdi
cmp r15, qword [r14 + 0x10]
jne 0x14001eec7
mov qword [r14 + 0x10], rdi
mov qword [r15 + 0x20], rdi
jmp 0x14001efe5
mov rax, qword [r15 + 0x20]
mov qword [rax + 0x28], rdi
mov qword [r15 + 0x20], rdi
jmp 0x14001efe5
mov rcx, qword [r14 + 0x28]
add rcx, 1
xorps xmm1, xmm1
js 0x14001eeec
cvtsi2ss xmm1, rcx
jmp 0x14001ef01
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
xorps xmm0, xmm0
test rdx, rdx
js 0x14001ef10
cvtsi2ss xmm0, rdx
jmp 0x14001ef25
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, dword [r14 + 0x30]
comiss xmm1, xmm0
jbe 0x14001ef4f
lea edx, [r8 + 1]
mov rcx, r14
call fcn.1400227b0
mov ecx, dword [r14 + 0x20]
mov r12d, 1
shl r12, cl
dec r12
and r12, rsi
mov ecx, 0x30
call fcn.1400282f8
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14001ef7e
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov rcx, rax
call fcn.140027560
jmp 0x14001ef80
xor ebx, ebx
test rbx, rbx
jne 0x14001ef89
xor al, al
jmp 0x14001efeb
mov rdx, r13
mov rcx, rbx
call fcn.1400275b0
mov rax, qword [rbp]
mov qword [rbx + 0x10], rax
lea rax, [r14 + 0x10]
or rax, 2
mov qword [rbx + 0x20], rax
or dword [rbx + 0x18], 0x80000000
mov rax, qword [r14 + 0x10]
mov qword [rbx + 0x28], rax
bts esi, 0x1f
mov dword [rbx + 0x18], esi
mov rax, qword [r14 + 8]
mov qword [rax + r12*8], rbx
mov r8, qword [r14 + 0x10]
lea rax, [r14 + 0x18]
or rax, 1
cmp r8, rax
jne 0x14001efdd
mov qword [r14 + 0x18], rbx
jmp 0x14001efe1
mov qword [r8 + 0x20], rbx
mov qword [r14 + 0x10], rbx
inc qword [r14 + 0x28]
mov al, 1
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret