Function at 0x1400dc700
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r14, r8
mov rbp, rdx
mov rdi, rcx
movzx eax, byte [r8]
movabs r12, 0xcbf29ce484222325
xor rax, r12
movabs r13, 0x100000001b3
imul rax, r13
movzx ecx, byte [r8 + 1]
xor rcx, rax
imul rcx, r13
movzx eax, byte [r8 + 2]
xor rax, rcx
imul rax, r13
movzx ecx, byte [r8 + 3]
xor rcx, rax
imul rcx, r13
movzx eax, byte [r8 + 4]
xor rax, rcx
imul rax, r13
movzx ecx, byte [r8 + 5]
xor rcx, rax
imul rcx, r13
movzx eax, byte [r8 + 6]
xor rax, rcx
imul rax, r13
movzx r15d, byte [r8 + 7]
xor r15, rax
imul r15, r13
mov rcx, qword [rdi + 0x30]
and rcx, r15
mov rdx, qword [rdi + 0x18]
mov rax, rcx
shl rax, 4
mov rbx, qword [rdx + rax + 8]
cmp rbx, qword [rdi + 8]
je 0x1400dc7d6
mov rax, qword [r14]
cmp rax, qword [rbx + 0x10]
je 0x1400dc7cf
add rcx, rcx
mov rsi, qword [rdx + rcx*8]
nop dword [rax]
cmp rbx, rsi
je 0x1400dc7d9
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x1400dc7c0
xor ecx, ecx
jmp 0x1400dcc66
mov rsi, rbx
mov ecx, 0x18
call fcn.14000abb0
mov rbx, rax
mov rax, qword [r14]
mov qword [rbx + 0x10], rax
mov rax, qword [rdi + 0x10]
inc rax
js 0x1400dc7fd
vcvtsi2ss xmm0, xmm0, rax
jmp 0x1400dc812
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
vcvtsi2ss xmm0, xmm0, rax
vaddss xmm0, xmm0, xmm0
vmovss xmm1, dword [rdi]
mov rax, qword [rdi + 0x38]
test rax, rax
js 0x1400dc826
vcvtsi2ss xmm2, xmm2, rax
jmp 0x1400dc83d
mov rcx, rax
shr rcx, 1
mov edx, eax
and edx, 1
or rdx, rcx
vcvtsi2ss xmm2, xmm2, rdx
vaddss xmm2, xmm2, xmm2
vdivss xmm2, xmm0, xmm2
vucomiss xmm2, xmm1
jbe 0x1400dcc12
vdivss xmm0, xmm0, xmm1
vroundss xmm0, xmm0, xmm0, 0xa
vcvttss2si rcx, xmm0
mov rdx, rcx
vsubss xmm0, xmm0, dword [0x1400fa078]
vcvttss2si r8, xmm0
sar rdx, 0x3f
and r8, rdx
or r8, rcx
cmp r8, 9
mov ecx, 8
cmovae rcx, r8
cmp rax, rcx
mov qword [rsp + 0x30], rbp
jae 0x1400dc8a7
lea rdx, [rax*8]
cmp rdx, rcx
cmovb rdx, rcx
cmp rax, 0x200
cmovae rdx, rcx
mov rax, rdx
dec rax
or rax, 1
bsr rcx, rax
xor rcx, 0xffffffffffffffc0
add rcx, 0x41
mov r11d, 1
shl r11, cl
mov esi, 2
shl rsi, cl
mov rbp, qword [rdi + 8]
mov rax, qword [rdi + 0x18]
mov rdx, qword [rdi + 0x20]
mov r8, rdx
sub r8, rax
mov r9, r8
sar r9, 3
cmp r9, rsi
jae 0x1400dc925
mov eax, 0x10
shl rax, cl
cmp rsi, 0x200
mov qword [rsp + 0x28], r11
jb 0x1400dc9a1
add rax, 0x27
mov rcx, rax
call fcn.14000abb0
mov r11, qword [rsp + 0x28]
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1400dc9b1
cmp rax, rdx
je 0x1400dca5c
add r8, 0xfffffffffffffff8
cmp r8, 0x78
jb 0x1400dc990
shr r8, 3
inc r8
mov r9, r8
and r9, 0xfffffffffffffff0
lea rcx, [r9*8]
vmovq xmm0, rbp
vpbroadcastq ymm0, xmm0
xor r10d, r10d
nop dword [rax + rax]
vmovdqu ymmword [rax + r10*8], ymm0
vmovdqu ymmword [rax + r10*8 + 0x20], ymm0
vmovdqu ymmword [rax + r10*8 + 0x40], ymm0
vmovdqu ymmword [rax + r10*8 + 0x60], ymm0
add r10, 0x10
cmp r9, r10
jne 0x1400dc960
cmp r8, r9
je 0x1400dca5c
add rax, rcx
mov qword [rax], rbp
add rax, 8
cmp rax, rdx
jne 0x1400dc990
jmp 0x1400dca5c
mov rcx, rax
call fcn.14000abb0
mov r11, qword [rsp + 0x28]
mov r14, rax
mov rcx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x28]
sub rax, rcx
je 0x1400dc9d8
cmp rax, 0x1000
jb 0x1400dc9ca
mov rcx, qword [rcx - 8]
add rcx, 0xfffffffffffffff0
call fcn.140009440
mov r11, qword [rsp + 0x28]
mov qword [rdi + 0x18], r14
lea rax, [r14 + rsi*8]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
dec rsi
movabs rcx, 0x1fffffffffffffff
and rcx, rsi
cmp rcx, 0xf
jb 0x1400dca50
inc rcx
mov r8, rcx
and r8, 0xfffffffffffffff0
lea rdx, [r8*8]
vmovq xmm0, rbp
vpbroadcastq ymm0, xmm0
xor r9d, r9d
nop dword [rax]
vmovdqu ymmword [r14 + r9*8], ymm0
vmovdqu ymmword [r14 + r9*8 + 0x20], ymm0
vmovdqu ymmword [r14 + r9*8 + 0x40], ymm0
vmovdqu ymmword [r14 + r9*8 + 0x60], ymm0
add r9, 0x10
cmp r8, r9
jne 0x1400dca20
cmp rcx, r8
je 0x1400dca5c
add r14, rdx
nop dword [rax]
mov qword [r14], rbp
add r14, 8
cmp r14, rax
jne 0x1400dca50
lea rcx, [r11 - 1]
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x38], r11
mov rsi, qword [rdi + 8]
mov rax, qword [rsi]
cmp rax, rbp
jne 0x1400dca91
jmp 0x1400dcbca
mov qword [rdx + r8*8], rcx
mov qword [rdx + r10*8], rcx
cmp rax, rbp
je 0x1400dcbc2
mov rcx, rax
mov rax, qword [rax]
movzx edx, byte [rcx + 0x10]
xor rdx, r12
imul rdx, r13
movzx r8d, byte [rcx + 0x11]
xor r8, rdx
imul r8, r13
movzx edx, byte [rcx + 0x12]
xor rdx, r8
imul rdx, r13
movzx r8d, byte [rcx + 0x13]
xor r8, rdx
imul r8, r13
movzx edx, byte [rcx + 0x14]
xor rdx, r8
imul rdx, r13
movzx r8d, byte [rcx + 0x15]
xor r8, rdx
imul r8, r13
movzx edx, byte [rcx + 0x16]
xor rdx, r8
imul rdx, r13
movzx r9d, byte [rcx + 0x17]
xor r9, rdx
imul r9, r13
and r9, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x18]
lea r8, [r9 + r9]
lea r10, [r9*2 + 1]
shl r9, 4
mov r9, qword [rdx + r9]
cmp r9, rbp
je 0x1400dca80
mov r11, qword [rdx + r10*8]
mov rsi, qword [rcx + 0x10]
cmp rsi, qword [r11 + 0x10]
jne 0x1400dcb60
mov r8, qword [r11]
cmp r8, rcx
je 0x1400dca84
mov r9, qword [rcx + 8]
mov qword [r9], rax
mov r11, qword [rax + 8]
mov qword [r11], r8
mov rsi, qword [r8 + 8]
mov qword [rsi], rcx
mov qword [r8 + 8], r11
mov qword [rax + 8], r9
mov qword [rcx + 8], rsi
jmp 0x1400dca84
cmp r9, r11
je 0x1400dcb98
mov r11, qword [r11 + 8]
cmp rsi, qword [r11 + 0x10]
jne 0x1400dcb60
mov rdx, qword [r11]
mov r8, qword [rcx + 8]
mov qword [r8], rax
mov r9, qword [rax + 8]
mov qword [r9], rdx
mov r10, qword [rdx + 8]
mov qword [r10], rcx
mov qword [rdx + 8], r9
mov qword [rax + 8], r8
mov qword [rcx + 8], r10
jmp 0x1400dca88
mov r10, qword [rcx + 8]
mov qword [r10], rax
mov r11, qword [rax + 8]
mov qword [r11], r9
mov rsi, qword [r9 + 8]
mov qword [rsi], rcx
mov qword [r9 + 8], r11
mov qword [rax + 8], r10
mov qword [rcx + 8], rsi
mov qword [rdx + r8*8], rcx
jmp 0x1400dca88
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi + 0x30]
and rcx, r15
mov r8, qword [rdi + 0x18]
mov rax, rcx
shl rax, 4
mov rax, qword [r8 + rax + 8]
cmp rax, rsi
mov rbp, qword [rsp + 0x30]
je 0x1400dcc12
mov rdx, qword [rbx + 0x10]
cmp rdx, qword [rax + 0x10]
je 0x1400dcc0f
add rcx, rcx
mov rsi, qword [r8 + rcx*8]
nop dword [rax + rax]
cmp rax, rsi
je 0x1400dcc12
mov rax, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
jne 0x1400dcc00
mov rsi, qword [rax]
mov rax, qword [rsi + 8]
inc qword [rdi + 0x10]
mov qword [rbx], rsi
mov qword [rbx + 8], rax
mov qword [rax], rbx
mov qword [rsi + 8], rbx
mov rcx, qword [rdi + 0x18]
and r15, qword [rdi + 0x30]
shl r15, 4
lea rdx, [rcx + r15]
lea r8, [rcx + r15]
add r8, 8
mov rcx, qword [rcx + r15]
cmp rcx, qword [rdi + 8]
je 0x1400dcc5b
cmp rcx, rsi
je 0x1400dcc61
mov cl, 1
mov rdx, r8
cmp qword [r8], rax
jne 0x1400dcc66
jmp 0x1400dcc61
mov qword [rdx], rbx
mov rdx, r8
mov qword [rdx], rbx
mov cl, 1
mov qword [rbp], rbx
mov byte [rbp + 8], cl
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret