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

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x78], rbx
mov r12, r8
mov r14, rdx
mov rsi, rcx
mov r10, qword [rcx + 8]
test r10, r10
jne 0x14000ef0c
mov edx, dword [rcx + 0x24]
call fcn.14000dd00
mov r10, qword [rsi + 8]
test r10, r10
jne 0x14000ef0c
xor al, al
jmp 0x14000f244
mov ecx, 0x811c9dc5
xor r11d, r11d
mov r8d, r11d
mov r9d, dword [r14 + 8]
test r9d, r9d
je 0x14000ef49
mov rdx, qword [r14]
nop word [rax + rax]
movzx eax, word [rdx]
xor rcx, rax
imul rcx, rcx, 0x1000193
inc r8d
add rdx, 2
cmp r8d, r9d
jb 0x14000ef30
imul rcx, rcx, 0x2001
mov rax, rcx
shr rax, 7
xor rax, rcx
lea rbp, [rax + rax*8]
mov rax, rbp
shr rax, 0x11
xor rbp, rax
imul rbp, rbp, 0x21
mov qword [rsp + 0x70], rbp
mov ecx, dword [rsi + 0x20]
mov edx, 1
shl rdx, cl
lea r15, [rdx - 1]
and r15, rbp
mov r13, qword [r10 + r15*8]
test r13, r13
je 0x14000f155
mov rdi, r13
mov rbx, r11
nop word [rax + rax]
mov rdx, rdi
mov rcx, r14
call fcn.140012e90
test al, al
je 0x14000efee
test rbx, rbx
cmove rbx, rdi
mov rbp, qword [rdi + 0x10]
mov r12, qword [r12]
lea rdx, [rbp + 0x10]
lea rcx, [r12 + 0x10]
call fcn.140012e90
test al, al
je 0x14000efe6
lea rdx, [rbp + 0x40]
lea rcx, [r12 + 0x40]
call fcn.140012e90
test al, al
jne 0x14000ef05
mov r12, qword [rsp + 0x80]
mov eax, dword [rdi + 0x18]
shr eax, 0x1f
test al, 1
jne 0x14000effe
mov rdi, qword [rdi + 0x28]
jmp 0x14000efa0
mov ecx, dword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
inc rax
pxor xmm1, xmm1
cvtsi2ss xmm1, rax
movss xmm2, dword [0x14002ae8c]
jns 0x14000f01f
addss xmm1, xmm2
mov eax, 1
shl rax, cl
pxor xmm0, xmm0
cvtsi2ss xmm0, rax
test rax, rax
jns 0x14000f039
addss xmm0, xmm2
mulss xmm0, dword [rsi + 0x30]
comiss xmm1, xmm0
jbe 0x14000f0b1
lea edx, [rcx + 1]
mov rcx, rsi
call fcn.14000dd00
mov ecx, dword [rsi + 0x20]
mov r15d, 1
shl r15, cl
dec r15
mov rbp, qword [rsp + 0x70]
and r15, rbp
mov rax, qword [rsi + 8]
mov r13, qword [rax + r15*8]
test r13, r13
je 0x14000f1ac
test rbx, rbx
je 0x14000f0b6
mov rbx, r13
mov rdx, r13
mov rcx, r14
call fcn.140012e90
test al, al
jne 0x14000f0b6
xor edi, edi
nop
mov eax, dword [rbx + 0x18]
shr eax, 0x1f
test al, 1
cmovne rbx, rdi
mov rbx, qword [rbx + 0x28]
mov rdx, rbx
mov rcx, r14
call fcn.140012e90
test al, al
je 0x14000f090
jmp 0x14000f0b6
mov rbp, qword [rsp + 0x70]
mov ecx, 0x30
call fcn.140017018
mov rdi, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14000f0d7
mov rcx, rax
call fcn.140012dd0
jmp 0x14000f0da
mov rdi, rax
test rdi, rdi
je 0x14000ef05
mov rdx, r14
mov rcx, rdi
call fcn.140013030
mov r11, qword [r12]
mov qword [rdi + 0x10], r11
mov rax, qword [r13 + 0x20]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], r13
btr ebp, 0x1f
mov dword [rdi + 0x18], ebp
test rbx, rbx
je 0x14000f130
cmp rbx, r13
je 0x14000f130
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 0x14000f23e
mov rax, qword [rsi + 8]
mov qword [rax + r15*8], rdi
cmp r13, qword [rsi + 0x10]
jne 0x14000f144
mov qword [rsi + 0x10], rdi
jmp 0x14000f14c
mov rax, qword [r13 + 0x20]
mov qword [rax + 0x28], rdi
mov qword [r13 + 0x20], rdi
jmp 0x14000f23e
mov rax, qword [rsi + 0x28]
inc rax
pxor xmm1, xmm1
cvtsi2ss xmm1, rax
movss xmm2, dword [0x14002ae8c]
jns 0x14000f173
addss xmm1, xmm2
pxor xmm0, xmm0
cvtsi2ss xmm0, rdx
test rdx, rdx
jns 0x14000f185
addss xmm0, xmm2
mulss xmm0, dword [rsi + 0x30]
comiss xmm1, xmm0
jbe 0x14000f1ac
lea edx, [rcx + 1]
mov rcx, rsi
call fcn.14000dd00
mov ecx, dword [rsi + 0x20]
mov r15d, 1
shl r15, cl
dec r15
and r15, rbp
mov ecx, 0x30
call fcn.140017018
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14000f1cd
mov rcx, rax
call fcn.140012dd0
jmp 0x14000f1d0
mov rbx, rax
test rbx, rbx
je 0x14000ef05
mov rdx, r14
mov rcx, rbx
call fcn.140013030
mov r11, qword [r12]
mov qword [rbx + 0x10], r11
lea rax, [rsi + 0x10]
or rax, 2
mov qword [rbx + 0x20], rax
or dword [rbx + 0x18], 0x80000000
mov ecx, dword [rbx + 0x18]
mov rax, qword [rsi + 0x10]
mov qword [rbx + 0x28], rax
mov eax, ecx
xor eax, ebp
btr eax, 0x1f
xor eax, ecx
mov dword [rbx + 0x18], eax
mov rax, qword [rsi + 8]
mov qword [rax + r15*8], rbx
mov r8, qword [rsi + 0x10]
lea rax, [rsi + 0x18]
or rax, 1
cmp r8, rax
jne 0x14000f236
mov qword [rsi + 0x18], rbx
jmp 0x14000f23a
mov qword [r8 + 0x20], rbx
mov qword [rsi + 0x10], rbx
inc qword [rsi + 0x28]
mov al, 1
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret