Function at 0x1400163b0
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 rbp, r8
mov r15, rdx
mov r14, rcx
mov r9, qword [rcx + 8]
test r9, r9
jne 0x1400163fc
mov edx, dword [rcx + 0x24]
call fcn.140019460
mov r9, qword [r14 + 8]
test r9, r9
jne 0x1400163fc
xor al, al
jmp 0x140016730
mov r8d, 0x811c9dc5
mov eax, dword [r15 + 8]
test eax, eax
je 0x140016426
mov rcx, qword [r15]
mov edx, eax
nop
movzx eax, word [rcx]
xor rax, r8
imul r8, rax, 0x1000193
lea rcx, [rcx + 2]
dec rdx
jne 0x140016410
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 + 0x70], rsi
mov ecx, dword [r14 + 0x20]
mov edx, 1
shl rdx, cl
lea r12, [rdx - 1]
and r12, rsi
mov r13, qword [r9 + r12*8]
test r13, r13
je 0x140016646
mov rdi, r13
xor ebx, ebx
mov rdx, rdi
mov rcx, r15
call fcn.14001e2f0
test al, al
je 0x1400164d8
test rbx, rbx
cmove rbx, rdi
mov rsi, qword [rdi + 0x10]
mov rbp, qword [rbp]
movzx eax, byte [rsi + 0x5e]
cmp byte [rbp + 0x5e], al
jne 0x1400164d0
lea rdx, [rsi + 0x10]
lea rcx, [rbp + 0x10]
call fcn.14001e2f0
test al, al
je 0x1400164d0
lea rdx, [rsi + 0x40]
lea rcx, [rbp + 0x40]
call fcn.14001e2f0
test al, al
je 0x1400164d0
mov eax, dword [rsi + 0x60]
cmp dword [rbp + 0x60], eax
jne 0x1400164d0
mov eax, dword [rsi + 0x64]
cmp dword [rbp + 0x64], eax
je 0x1400163f5
mov rbp, qword [rsp + 0x80]
mov eax, dword [rdi + 0x18]
shr eax, 0x1f
test al, 1
jne 0x1400164e8
mov rdi, qword [rdi + 0x28]
jmp 0x140016473
mov ecx, dword [r14 + 0x20]
mov rax, qword [r14 + 0x28]
inc rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss xmm2, dword [0x140050af4]
jns 0x140016509
addss xmm1, xmm2
mov eax, 1
shl rax, cl
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
test rax, rax
jns 0x140016522
addss xmm0, xmm2
mulss xmm0, dword [r14 + 0x30]
comiss xmm1, xmm0
jbe 0x1400165a3
lea edx, [rcx + 1]
mov rcx, r14
call fcn.140019460
mov ecx, dword [r14 + 0x20]
mov r12d, 1
shl r12, cl
dec r12
mov rsi, qword [rsp + 0x70]
and r12, rsi
mov rax, qword [r14 + 8]
mov r13, qword [rax + r12*8]
test r13, r13
je 0x14001669d
test rbx, rbx
je 0x1400165a8
mov rbx, r13
mov rdx, r13
mov rcx, r15
call fcn.14001e2f0
test al, al
jne 0x1400165a8
nop dword [rax + rax]
mov eax, dword [rbx + 0x18]
shr eax, 0x1f
test al, 1
je 0x14001658e
xor ebx, ebx
jmp 0x140016592
mov rbx, qword [rbx + 0x28]
mov rdx, rbx
mov rcx, r15
call fcn.14001e2f0
test al, al
je 0x140016580
jmp 0x1400165a8
mov rsi, qword [rsp + 0x70]
mov ecx, 0x30
call fcn.1400223e8
mov rdi, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400165c9
mov rcx, rax
call fcn.14001e040
jmp 0x1400165cb
xor edi, edi
test rdi, rdi
je 0x1400163f5
mov rdx, r15
mov rcx, rdi
call fcn.14001e090
mov rax, qword [rbp]
mov qword [rdi + 0x10], rax
mov rax, qword [r13 + 0x20]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], r13
btr esi, 0x1f
mov dword [rdi + 0x18], esi
test rbx, rbx
je 0x140016621
cmp rbx, r13
je 0x140016621
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 0x14001672a
mov rax, qword [r14 + 8]
mov qword [rax + r12*8], rdi
cmp r13, qword [r14 + 0x10]
jne 0x140016635
mov qword [r14 + 0x10], rdi
jmp 0x14001663d
mov rax, qword [r13 + 0x20]
mov qword [rax + 0x28], rdi
mov qword [r13 + 0x20], rdi
jmp 0x14001672a
mov rax, qword [r14 + 0x28]
inc rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss xmm2, dword [0x140050af4]
jns 0x140016663
addss xmm1, xmm2
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
test rdx, rdx
jns 0x140016674
addss xmm0, xmm2
mulss xmm0, dword [r14 + 0x30]
comiss xmm1, xmm0
jbe 0x14001669d
lea edx, [rcx + 1]
mov rcx, r14
call fcn.140019460
mov ecx, dword [r14 + 0x20]
mov r12d, 1
shl r12, cl
dec r12
and r12, rsi
mov ecx, 0x30
call fcn.1400223e8
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400166be
mov rcx, rax
call fcn.14001e040
jmp 0x1400166c0
xor ebx, ebx
test rbx, rbx
je 0x1400163f5
mov rdx, r15
mov rcx, rbx
call fcn.14001e090
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
mov eax, dword [rbx + 0x18]
xor eax, esi
btr eax, 0x1f
xor dword [rbx + 0x18], eax
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 0x140016722
mov qword [r14 + 0x18], rbx
jmp 0x140016726
mov qword [r8 + 0x20], rbx
mov qword [r14 + 0x10], rbx
inc qword [r14 + 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