Function at 0x1401c3860
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x1404af540]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, dword [rcx + 0x1d8]
lea r15, [rcx + 0x400]
xor esi, esi
mov r14, rdx
mov rbx, rcx
cmp edi, 2
jne 0x1401c38be
lea r8, [rbp - 0x20]
mov dword [rbp - 0x20], edi
lea rdx, [rbp - 0x18]
mov rcx, r15
call fcn.1401c4f40
mov rax, qword [rax]
cmp qword [rax + 0x28], rsi
jne 0x1401c38be
mov edi, 1
jmp 0x1401c38c6
mov rcx, r15
cmp edi, 1
jne 0x1401c38ea
lea r8, [rbp - 0x20]
mov dword [rbp - 0x20], 1
lea rdx, [rbp - 0x18]
mov rcx, r15
call fcn.1401c4f40
mov rcx, qword [rax]
cmp qword [rcx + 0x28], rsi
jne 0x1401c3909
mov edi, esi
jmp 0x1401c3909
cmp edi, 3
jne 0x1401c3909
lea r8, [rbp - 0x20]
mov dword [rbp - 0x20], edi
lea rdx, [rbp - 0x18]
call fcn.1401c4f40
mov rcx, qword [rax]
cmp qword [rcx + 0x28], rsi
cmove edi, esi
movabs r8, 0x100000001b3
movzx edx, dil
movabs rax, 0xcbf29ce484222325
xor rdx, rax
mov eax, edi
imul rdx, r8
sar eax, 8
movzx ecx, al
mov eax, edi
xor rdx, rcx
sar eax, 0x10
imul rdx, r8
movzx ecx, al
mov eax, edi
xor rdx, rcx
sar eax, 0x18
imul rdx, r8
movzx ecx, al
xor rdx, rcx
mov rcx, qword [rbx + 0x430]
imul rdx, r8
and rcx, rdx
mov rdx, qword [rbx + 0x408]
shl rcx, 4
add rcx, qword [rbx + 0x418]
mov rax, qword [rcx + 8]
cmp rax, rdx
je 0x1401c3993
mov rcx, qword [rcx]
cmp edi, dword [rax + 0x10]
je 0x1401c3990
cmp rax, rcx
je 0x1401c3993
mov rax, qword [rax + 8]
cmp edi, dword [rax + 0x10]
jne 0x1401c3982
mov rsi, rax
test rsi, rsi
cmove rsi, rdx
cmp rsi, rdx
je 0x1401c3be4
cmp qword [rsi + 0x28], 0
je 0x1401c3be4
lea r8, [rsi + 0x18]
lea rdx, [rbp - 0x18]
call fcn.1401e70b0
mov rcx, qword [rax]
cmp dword [rcx + 0x30], 0
je 0x1401c39e1
lea r8, [rsi + 0x18]
lea rdx, [rbp - 0x18]
call fcn.1401e70b0
mov rcx, qword [rax]
mov edi, dword [rcx + 0x30]
test edi, edi
je 0x1401c3be4
jmp 0x1401c39e6
mov edi, 0xff000000
mov r8d, dword [rbx + 0x1c0]
test r8d, r8d
jg 0x1401c3ae4
cmp dword [rbx + 0x1c4], 0
jg 0x1401c3b19
cmp dword [rbx + 0x1c8], 0
jg 0x1401c3b19
cmp dword [rbx + 0x1cc], 0
jg 0x1401c3b19
mov r8d, dword [rbx + 0x178]
test r8d, r8d
jle 0x1401c3be4
movups xmm0, xmmword [rbx + 0x70]
lea eax, [r8 - 1]
cdq
sub eax, edx
movq rcx, xmm0
sar eax, 1
shr rcx, 0x20
mov edx, eax
add ecx, eax
movups xmmword [rbp - 0x18], xmm0
add dword [rbp - 0x18], eax
mov dword [rbp - 0x14], ecx
mov rcx, qword [rbp - 0x10]
shr rcx, 0x20
sub ecx, eax
mov eax, 0xffffffff
sub eax, edx
dec ecx
add dword [rbp - 0x10], eax
cmp dword [rbx + 0x198], 0
mov dword [rbp - 0xc], ecx
jg 0x1401c3a94
cmp dword [rbx + 0x19c], 0
jg 0x1401c3a94
mov rax, qword [r14]
lea rdx, [rbp - 0x18]
mov r9d, edi
mov rcx, r14
call qword [rax + 0xf8]
jmp 0x1401c3be4
movzx eax, byte [rbx + 0x175]
lea rdx, [rbp - 0x18]
mov r10, qword [r14]
mov r9d, r8d
mov byte [rsp + 0x40], al
lea r8, [rbx + 0x198]
movzx eax, byte [rbx + 0x174]
mov rcx, r14
mov byte [rsp + 0x38], al
movzx eax, byte [rbx + 0x173]
mov byte [rsp + 0x30], al
movzx eax, byte [rbx + 0x172]
mov byte [rsp + 0x28], al
mov dword [rsp + 0x20], edi
call qword [r10 + 0x100]
jmp 0x1401c3be4
movups xmm0, xmmword [rbx + 0x70]
lea eax, [r8 - 1]
mov dword [rsp + 0x20], 2
cdq
mov r9d, edi
sub eax, edx
mov rcx, r14
sar eax, 1
lea rdx, [rbp - 0x18]
add eax, dword [rbx + 0x70]
movups xmmword [rbp - 0x18], xmm0
mov dword [rbp - 0x18], eax
mov dword [rbp - 0x10], eax
mov rax, qword [r14]
call qword [rax + 0xe8]
mov r8d, dword [rbx + 0x1c4]
test r8d, r8d
jle 0x1401c3b5a
movups xmm0, xmmword [rbx + 0x70]
lea eax, [r8 - 1]
mov dword [rsp + 0x20], 2
cdq
mov r9d, edi
sub eax, edx
mov rcx, r14
sar eax, 1
lea rdx, [rbp - 0x18]
add eax, dword [rbx + 0x74]
movups xmmword [rbp - 0x18], xmm0
mov dword [rbp - 0x14], eax
mov dword [rbp - 0xc], eax
mov rax, qword [r14]
call qword [rax + 0xe8]
mov r8d, dword [rbx + 0x1c8]
test r8d, r8d
jle 0x1401c3b9f
mov ecx, dword [rbx + 0x78]
lea eax, [r8 - 1]
movups xmm0, xmmword [rbx + 0x70]
cdq
mov dword [rsp + 0x20], 1
sub eax, edx
mov r9d, edi
sar eax, 1
lea rdx, [rbp - 0x18]
sub ecx, eax
mov rax, qword [r14]
dec ecx
movups xmmword [rbp - 0x18], xmm0
mov dword [rbp - 0x10], ecx
mov dword [rbp - 0x18], ecx
mov rcx, r14
call qword [rax + 0xe8]
mov r8d, dword [rbx + 0x1cc]
test r8d, r8d
jle 0x1401c3be4
mov ecx, dword [rbx + 0x7c]
lea eax, [r8 - 1]
movups xmm0, xmmword [rbx + 0x70]
cdq
mov dword [rsp + 0x20], 1
sub eax, edx
mov r9d, edi
sar eax, 1
lea rdx, [rbp - 0x18]
sub ecx, eax
mov rax, qword [r14]
dec ecx
movups xmmword [rbp - 0x18], xmm0
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], ecx
mov rcx, r14
call qword [rax + 0xe8]
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1403ca460
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret