Function at 0x14004f6e0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x50
mov rax, qword [rdx + 8]
mov r14, rcx
lea rcx, [rdx + 8]
movzx ebp, r9b
mov ebx, r8d
mov rdi, rdx
movsxd r10, dword [rax + 4]
add rcx, r10
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rsi, rax
test rax, rax
je 0x14004f9e7
mov rdx, qword [rax + 8]
movsxd rcx, dword [rdx + 4]
add rcx, 8
add rcx, rax
mov rdx, qword [rcx]
call qword [rdx + 0x30]
xor r15d, r15d
mov r8, rax
test rax, rax
je 0x14004f838
mov rcx, rax
movabs r9, 0x100000001b3
shr rcx, 8
movabs rax, 0xcbf29ce484222325
movzx edx, cl
movzx ecx, r8b
xor rcx, rax
mov rax, r8
shr rax, 0x10
imul rcx, r9
xor rdx, rcx
movzx ecx, al
imul rdx, r9
mov rax, r8
xor rdx, rcx
shr rax, 0x18
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x20
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x28
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x30
imul rdx, r9
movzx ecx, al
mov rax, r8
xor rdx, rcx
shr rax, 0x38
mov rcx, qword [r14 + 0x40]
imul rdx, r9
xor rdx, rax
imul rdx, r9
and rcx, rdx
mov rdx, qword [r14 + 0x18]
shl rcx, 4
add rcx, qword [r14 + 0x28]
mov rax, qword [rcx + 8]
cmp rax, rdx
je 0x14004f813
mov rcx, qword [rcx]
cmp r8, qword [rax + 0x10]
je 0x14004f816
cmp rax, rcx
je 0x14004f813
mov rax, qword [rax + 8]
cmp r8, qword [rax + 0x10]
jne 0x14004f802
jmp 0x14004f816
mov rax, r15
test rax, rax
cmove rax, rdx
cmp rax, rdx
je 0x14004f838
mov rcx, qword [rax + 0x18]
test rcx, rcx
lea rax, [rcx + 0x40]
cmove rax, r15
cmp rax, rsi
cmove rsi, r8
cmp ebx, 0xffffffff
jne 0x14004f841
movzx ebx, byte [rdi + 0x2c]
mov rax, qword [rsi]
mov r9d, 0x40
mov r8d, ebx
mov qword [rsp + 0x20], r15
mov rcx, rsi
mov r10, qword [rax + 0x10]
mov rax, qword [rdi + 8]
movsxd rdx, dword [rax + 4]
add rdx, 8
add rdx, rdi
call r10
test eax, eax
jne 0x14004f9ec
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0xa0]
test al, al
je 0x14004f9e7
test bpl, bpl
jne 0x14004f9e3
mov rax, qword [rsi]
mov rcx, rsi
mov r8, qword [rax + 0x58]
test rdi, rdi
jne 0x14004f8b2
xor edx, edx
call r8
mov ebp, eax
mov rdx, r15
mov rax, qword [rsi]
mov r9, qword [rax + 0x40]
jmp 0x14004f8dc
mov rax, qword [rdi + 8]
movsxd rdx, dword [rax + 4]
add rdx, 8
add rdx, rdi
call r8
mov ebp, eax
mov rax, qword [rsi]
mov r9, qword [rax + 0x40]
mov rax, qword [rdi + 8]
movsxd rdx, dword [rax + 4]
add rdx, 8
add rdx, rdi
mov r8d, ebx
mov rcx, rsi
call r9
mov rax, qword [rdi + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, rdi
mov rax, qword [rcx]
call qword [rax + 0x80]
test al, al
je 0x14004f9b2
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0xb0]
mov rcx, rdi
call fcn.140091170
test al, al
je 0x14004f9a7
lea rdx, [r14 + 0x3e8]
mov rcx, r15
mov r9, qword [rdx]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov rax, qword [r9]
cmp rax, r9
je 0x14004f98d
nop word [rax + rax]
mov r8, qword [rax]
cmp qword [rax + 0x10], rdi
jne 0x14004f980
dec qword [rdx + 8]
mov rdx, qword [rax]
mov qword [rax], r15
mov rcx, qword [rax + 8]
mov qword [rcx], rdx
mov qword [rdx + 8], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rcx], rax
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x40], rax
mov rax, r8
cmp r8, r9
jne 0x14004f950
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14004f9a7
mov rbx, qword [rcx]
mov edx, 0x18
call fcn.1401d177c
mov rcx, rbx
test rbx, rbx
jne 0x14004f992
mov rdx, rdi
mov rcx, r14
call fcn.14005f7e0
mov rax, qword [rsi]
mov r10, qword [rax + 0x50]
test rdi, rdi
jne 0x14004f9c3
mov rdx, r15
jmp 0x14004f9d2
mov rax, qword [rdi + 8]
movsxd rdx, dword [rax + 4]
add rdx, 8
add rdx, rdi
mov r9d, ebp
mov dword [rsp + 0x20], r15d
xor r8d, r8d
mov rcx, rsi
call r10
xor eax, eax
jmp 0x14004f9ec
mov eax, 1
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret