Function at 0x14031d830
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rbx, r8
mov rdi, rcx
cmp rcx, rdx
je 0x14031df28
lea rbp, [rcx + 0x18]
mov qword [rsp + 0x20], rbp
cmp rbp, rdx
je 0x14031df28
mov rax, qword [rbp + 0x10]
mov r13, rbp
mov r12, qword [rbp]
xor esi, esi
mov qword [rbp + 0x10], 0
movabs r8, 0xcbf29ce484222325
mov qword [rbp], 0
movabs rdx, 0x100000001b3
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 8]
mov qword [rbp + 8], 0
mov rbp, rax
sub rbp, r12
mov qword [rsp + 0xa8], rax
sar rbp, 2
mov qword [rsp + 0x28], r12
test rbp, rbp
je 0x14031da8d
mov r14, qword [rdi + 8]
mov r15, r12
sub r14, qword [rdi]
mov r11, r12
sar r14, 2
neg r15
cmp rsi, r14
jae 0x14031da85
movzx eax, byte [r11 + 1]
movzx ecx, byte [r11]
mov r9, qword [rbx + 0x30]
xor rcx, r8
mov r10, qword [rbx + 0x18]
mov r8, qword [rbx + 8]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r11 + 2]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r11 + 3]
imul rcx, rdx
xor rcx, rax
mov rax, r9
imul rcx, rdx
and rax, rcx
add rax, rax
mov rdx, qword [r10 + rax*8 + 8]
cmp rdx, r8
je 0x14031d958
mov rcx, qword [r10 + rax*8]
mov eax, dword [r11]
cmp eax, dword [rdx + 0x10]
je 0x14031d95a
cmp rdx, rcx
je 0x14031d958
mov rdx, qword [rdx + 8]
cmp eax, dword [rdx + 0x10]
jne 0x14031d948
jmp 0x14031d95a
xor edx, edx
mov rdi, qword [rdi]
test rdx, rdx
movabs rax, 0xcbf29ce484222325
cmove rdx, r8
add rdi, r15
add rdi, r11
movzx ecx, byte [rdi]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx eax, byte [rdi + 1]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx eax, byte [rdi + 2]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx eax, byte [rdi + 3]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
and r9, rcx
mov rcx, r8
add r9, r9
mov rax, qword [r10 + r9*8 + 8]
cmp rax, r8
je 0x14031da06
mov r10, qword [r10 + r9*8]
mov r9d, dword [rdi]
cmp r9d, dword [rax + 0x10]
je 0x14031da08
cmp rax, r10
je 0x14031d9ff
mov rax, qword [rax + 8]
cmp r9d, dword [rax + 0x10]
jne 0x14031d9e7
mov rcx, qword [rbx + 8]
mov r8, rcx
jmp 0x14031da08
mov r8, qword [rbx + 8]
mov rcx, r8
xor eax, eax
test rax, rax
cmove r8, rcx
cmove rax, rcx
cmp rdx, r8
je 0x14031da33
mov rdi, qword [rsp + 0x90]
cmp rax, r8
je 0x14031dab0
mov ecx, dword [rdx + 0x14]
cmp ecx, dword [rax + 0x14]
jne 0x14031da80
jmp 0x14031da54
cmp rax, r8
jne 0x14031dbdb
mov rdi, qword [rsp + 0x90]
mov rdx, qword [rdi]
lea rax, [rdx + r15]
mov ecx, dword [rax + r11]
cmp dword [r11], ecx
jne 0x14031da79
inc rsi
add r11, 4
cmp rsi, rbp
jae 0x14031da85
movabs rdx, 0x100000001b3
movabs r8, 0xcbf29ce484222325
jmp 0x14031d8e5
mov eax, dword [rdx + rsi*4]
cmp dword [r12 + rsi*4], eax
setl al
jmp 0x14031daa8
mov rax, qword [rsp + 0xa8]
mov rcx, rax
mov rax, qword [rdi + 8]
sub rax, qword [rdi]
sub rcx, r12
sar rax, 2
sar rcx, 2
cmp rcx, rax
setb al
test al, al
je 0x14031dbdb
mov rbp, qword [rsp + 0x20]
cmp rdi, rbp
je 0x14031db6e
mov r15, qword [rsp + 0x90]
lea rdi, [rbp + 0x28]
nop word [rax + rax]
lea rdi, [rdi - 0x18]
lea rsi, [rdi - 0x10]
lea r14, [rdi - 0x28]
cmp rsi, r14
je 0x14031db59
mov rcx, qword [rsi]
test rcx, rcx
je 0x14031db2c
mov rdx, qword [rdi]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x14031db18
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14031df43
mov rcx, r8
call fcn.1403506b8
mov qword [rdi - 8], 0
mov qword [rdi], 0
mov rax, qword [r14]
mov qword [rsi], rax
mov rax, qword [rdi - 0x20]
mov qword [rdi - 8], rax
mov rax, qword [rdi - 0x18]
mov qword [rdi], rax
mov qword [rdi - 0x28], 0
mov qword [rdi - 0x20], 0
mov qword [rdi - 0x18], 0
lea rax, [rdi - 0x28]
cmp r15, rax
jne 0x14031dad0
mov rdi, qword [rsp + 0x90]
lea rax, [rsp + 0x38]
cmp rdi, rax
je 0x14031ded9
mov rcx, qword [rdi]
test rcx, rcx
je 0x14031dbb9
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x14031dbb4
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14031df43
mov rcx, r8
call fcn.1403506b8
mov rax, qword [rsp + 0x30]
mov qword [rdi], r12
mov r12, qword [rsp + 0xa8]
mov qword [rdi + 8], r12
xor r12d, r12d
xor ecx, ecx
mov qword [rdi + 0x10], rax
jmp 0x14031dede
mov r12, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x20]
sub r12, rax
sar r12, 2
nop dword [rax]
nop dword [rax + rax]
sub rsi, 0x18
xor edi, edi
test r12, r12
je 0x14031dd92
mov r14, qword [rsi]
mov r11, rax
mov r15, qword [rsi + 8]
sub r15, r14
sar r15, 2
lea rbp, [r14 + 2]
sub r14, rax
cmp rdi, r15
jae 0x14031dd92
movzx ecx, byte [r11]
movabs rdx, 0x100000001b3
mov r9, qword [rbx + 0x30]
movabs rax, 0xcbf29ce484222325
mov r10, qword [rbx + 0x18]
xor rcx, rax
movzx eax, byte [r11 + 1]
mov r8, qword [rbx + 8]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r11 + 2]
imul rcx, rdx
xor rcx, rax
movzx eax, byte [r11 + 3]
imul rcx, rdx
xor rcx, rax
imul rcx, rdx
and rcx, r9
add rcx, rcx
mov rdx, qword [r10 + rcx*8 + 8]
cmp rdx, r8
je 0x14031dcb0
mov eax, dword [r11]
mov rcx, qword [r10 + rcx*8]
cmp eax, dword [rdx + 0x10]
je 0x14031dcb2
nop dword [rax + rax]
cmp rdx, rcx
je 0x14031dcb0
mov rdx, qword [rdx + 8]
cmp eax, dword [rdx + 0x10]
jne 0x14031dca0
jmp 0x14031dcb2
xor edx, edx
movzx ecx, byte [r14 + r11]
test rdx, rdx
movabs rax, 0xcbf29ce484222325
cmove rdx, r8
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx eax, byte [rbp - 1]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx eax, byte [rbp]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
movzx eax, byte [rbp + 1]
xor rcx, rax
movabs rax, 0x100000001b3
imul rcx, rax
and rcx, r9
add rcx, rcx
mov rax, qword [r10 + rcx*8 + 8]
cmp rax, r8
je 0x14031dd4d
mov r9, qword [r10 + rcx*8]
mov ecx, dword [r14 + r11]
cmp ecx, dword [rax + 0x10]
je 0x14031dd4f
cmp rax, r9
je 0x14031dd49
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x14031dd35
mov r8, qword [rbx + 8]
jmp 0x14031dd4f
mov r8, qword [rbx + 8]
xor eax, eax
test rax, rax
cmove rax, r8
cmp rdx, r8
je 0x14031dd68
cmp rax, r8
je 0x14031ddab
mov ecx, dword [rdx + 0x14]
cmp ecx, dword [rax + 0x14]
jmp 0x14031dd78
cmp rax, r8
jne 0x14031de4d
mov eax, dword [r11]
cmp eax, dword [r14 + r11]
jne 0x14031de45
inc rdi
add r11, 4
add rbp, 4
cmp rdi, r12
jb 0x14031dc27
mov rax, qword [rsi + 8]
sub rax, qword [rsi]
sar rax, 2
cmp r12, rax
setb al
test al, al
je 0x14031de4d
cmp r13, rsi
je 0x14031de38
mov rcx, qword [r13]
test rcx, rcx
je 0x14031de0a
mov rdx, qword [r13 + 0x10]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x14031dded
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14031df43
mov rcx, r8
call fcn.1403506b8
mov qword [r13], 0
mov qword [r13 + 8], 0
mov qword [r13 + 0x10], 0
mov rax, qword [rsi]
mov qword [r13], rax
mov rax, qword [rsi + 8]
mov qword [r13 + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [r13 + 0x10], rax
mov qword [rsi], 0
mov qword [rsi + 8], 0
mov qword [rsi + 0x10], 0
mov rax, qword [rsp + 0x28]
mov r13, rsi
jmp 0x14031dc00
setl al
jmp 0x14031dda3
lea rax, [rsp + 0x38]
cmp r13, rax
je 0x14031dec7
mov rcx, qword [r13]
test rcx, rcx
je 0x14031de95
mov rdx, qword [r13 + 0x10]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x14031de90
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14031df43
mov rcx, r8
call fcn.1403506b8
mov rax, qword [rsp + 0x28]
xor r12d, r12d
mov rdi, qword [rsp + 0x90]
xor ecx, ecx
mov rbp, qword [rsp + 0x20]
mov qword [r13], rax
mov rax, qword [rsp + 0xa8]
mov qword [r13 + 8], rax
mov rax, qword [rsp + 0x30]
mov qword [r13 + 0x10], rax
jmp 0x14031dede
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x30]
test r12, r12
je 0x14031df17
sub rcx, r12
mov rax, r12
and rcx, 0xfffffffffffffffc
cmp rcx, 0x1000
jb 0x14031df0c
mov r12, qword [r12 - 8]
add rcx, 0x27
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14031df43
mov rdx, rcx
mov rcx, r12
call fcn.1403506b8
mov rdx, qword [rsp + 0x98]
add rbp, 0x18
jmp 0x14031d861
mov rbx, qword [rsp + 0xa0]
mov rax, rdx
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1403574bc
int3