Function at 0x18003e870
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rbp, r8
mov r15, rdx
mov rdx, rcx
cmp r15, r8
je 0x18003eabd
lea r14, [rcx + 8]
mov r13, qword [r14]
mov r8, qword [rcx + 0x18]
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x30], r14
mov rax, qword [r15 + 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rax
mov rsi, r15
mov qword [rsp + 0x40], r15
mov rax, qword [r15 + 8]
mov qword [rsp + 0xb8], rax
movzx ecx, byte [r15 + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs r9, 0x100000001b3
imul rcx, r9
movzx eax, byte [r15 + 0x11]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r15 + 0x12]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r15 + 0x13]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r15 + 0x14]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r15 + 0x15]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r15 + 0x16]
xor rcx, rax
imul rcx, r9
movzx eax, byte [r15 + 0x17]
xor rcx, rax
imul rcx, r9
mov rax, qword [rdx + 0x30]
and rax, rcx
shl rax, 4
add rax, r8
mov qword [rsp + 0xa8], rax
mov rcx, qword [rax]
mov qword [rsp + 0xb0], rcx
mov r12, qword [rax + 8]
nop word [rax + rax]
cmp rsi, r12
sete bl
mov rcx, rsi
mov rdi, qword [rsi]
mov rsi, rdi
mov qword [rsp + 0x40], rdi
mov edx, 0x20
call fcn.18026a1a0
dec qword [r14 + 8]
test bl, bl
jne 0x18003e9b9
cmp rdi, rbp
jne 0x18003e970
cmp qword [rsp + 0xb0], r15
jne 0x18003eab1
mov rax, qword [rsp + 0xa8]
mov qword [rax], rdi
jmp 0x18003eab1
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0xb0], r15
jne 0x18003e9d3
mov qword [rax], r13
mov rcx, r13
jmp 0x18003e9db
mov rcx, qword [rsp + 0xb8]
mov qword [rax + 8], rcx
cmp rdi, rbp
je 0x18003eab1
movzx ecx, byte [rsi + 0x10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rsi + 0x11]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsi + 0x12]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsi + 0x13]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsi + 0x14]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsi + 0x15]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsi + 0x16]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rsi + 0x17]
xor rcx, rax
imul rcx, rdx
mov rax, qword [rsp + 0xa0]
mov r12, qword [rax + 0x30]
and r12, rcx
shl r12, 4
add r12, qword [rsp + 0x20]
mov r15, qword [r12 + 8]
nop dword [rax]
nop word [rax + rax]
cmp rsi, r15
sete dil
mov rcx, rsi
mov rbx, qword [rsi]
mov rsi, rbx
mov qword [rsp + 0x40], rbx
mov edx, 0x20
call fcn.18026a1a0
dec qword [r14 + 8]
test dil, dil
jne 0x18003ead1
cmp rbx, rbp
jne 0x18003ea80
mov qword [r12], rbx
mov rax, qword [rsp + 0x28]
mov qword [rax], rsi
mov qword [rsi + 8], rax
mov rax, rbp
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [r12], r13
mov qword [r12 + 8], r13
cmp rbx, rbp
jmp 0x18003e9e2
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x180069f38
mov rax, qword [rdi + 0x38]
shr rax, 3
cmp rax, rcx
jbe 0x180069ed3
mov rdx, qword [rdi + 8]
mov r8, rdx
mov rdx, qword [rdx]
mov rcx, rdi
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp 0x18003e870
mov rcx, qword [rdi + 8]
mov rax, qword [rcx + 8]
mov qword [rax], 0
mov rcx, qword [rcx]
test rcx, rcx
je 0x180069f05
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.18026a1a0
mov rcx, rbx
test rbx, rbx
jne 0x180069ef0
mov rax, qword [rdi + 8]
mov qword [rax], rax
mov rax, qword [rdi + 8]
mov qword [rax + 8], rax
mov qword [rdi + 0x10], 0
mov rax, qword [rdi + 8]
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x30]
mov rdx, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x18]
call fcn.180019ab0
nop
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret