Function at 0x1400cf240
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r14, r9
mov r15, r8
mov rdi, rcx
movzx eax, byte [r8]
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs rbp, 0x100000001b3
imul rax, rbp
movzx ecx, byte [r8 + 1]
xor rcx, rax
imul rcx, rbp
movzx eax, byte [r8 + 2]
xor rax, rcx
imul rax, rbp
movzx ecx, byte [r8 + 3]
xor rcx, rax
imul rcx, rbp
movzx eax, byte [r8 + 4]
xor rax, rcx
imul rax, rbp
movzx ecx, byte [r8 + 5]
xor rcx, rax
imul rcx, rbp
movzx eax, byte [r8 + 6]
xor rax, rcx
imul rax, rbp
movzx r12d, byte [r8 + 7]
xor r12, rax
imul r12, rbp
mov rcx, qword [rdi + 0x30]
and rcx, r12
mov r8, qword [rdi + 0x18]
mov rax, rcx
shl rax, 4
mov rbx, qword [r8 + rax + 8]
cmp rbx, qword [rdi + 8]
je 0x1400cf319
mov rax, qword [r15]
cmp rax, qword [rbx + 0x10]
je 0x1400cf30f
add rcx, rcx
mov rcx, qword [r8 + rcx*8]
nop dword [rax]
cmp rbx, rcx
je 0x1400cf320
mov rbx, qword [rbx + 8]
cmp rax, qword [rbx + 0x10]
jne 0x1400cf300
xor eax, eax
mov rsi, rbx
jmp 0x1400cfa7e
mov qword [rsp + 0x20], rdx
jmp 0x1400cf328
mov qword [rsp + 0x20], rdx
mov rbx, rcx
mov ecx, 0x38
call fcn.14000abb0
mov rsi, rax
mov rax, qword [r15]
mov qword [rsi + 0x10], rax
mov r15, qword [r14]
mov r13, qword [r14 + 8]
mov r14, r13
sub r14, r15
mov qword [rsi + 0x18], r14
cmp r14, 0x10
ja 0x1400cf3ad
mov qword [rsi + 0x20], 0x10
cmp r13, r15
je 0x1400cf5d7
lea rax, [rsi + 0x28]
cmp r14, 0x10
jae 0x1400cf3e8
mov rdx, r15
not rdx
add rdx, r13
mov r8, r14
mov rcx, r15
and r8, 7
je 0x1400cf3a2
nop word cs:[rax + rax]
movzx r9d, byte [rcx]
mov byte [rax], r9b
inc rax
inc rcx
dec r8
jne 0x1400cf390
cmp rdx, 7
jae 0x1400cf412
jmp 0x1400cf5d7
mov qword [rsi + 0x20], r14
mov rcx, r14
call fcn.14000abb0
mov qword [rsi + 0x28], rax
mov rcx, rax
sub rcx, r15
cmp rcx, 0x80
jae 0x1400cf3d4
mov rcx, r15
jmp 0x1400cf539
cmp r14, 0x80
jae 0x1400cf48c
xor edx, edx
jmp 0x1400cf4ea
mov rcx, rsi
sub rcx, r15
add rcx, 0x28
cmp rcx, 0x7f
ja 0x1400cf522
mov rdx, r15
not rdx
add rdx, r13
mov rcx, r15
cmp rdx, 7
jb 0x1400cf5d7
add r15, r14
xor edx, edx
nop word [rax + rax]
movzx r8d, byte [rcx + rdx]
mov byte [rax + rdx], r8b
movzx r8d, byte [rcx + rdx + 1]
mov byte [rax + rdx + 1], r8b
movzx r8d, byte [rcx + rdx + 2]
mov byte [rax + rdx + 2], r8b
movzx r8d, byte [rcx + rdx + 3]
mov byte [rax + rdx + 3], r8b
movzx r8d, byte [rcx + rdx + 4]
mov byte [rax + rdx + 4], r8b
movzx r8d, byte [rcx + rdx + 5]
mov byte [rax + rdx + 5], r8b
movzx r8d, byte [rcx + rdx + 6]
mov byte [rax + rdx + 6], r8b
movzx r8d, byte [rcx + rdx + 7]
mov byte [rax + rdx + 7], r8b
lea r8, [rcx + rdx]
add r8, 8
add rdx, 8
cmp r8, r15
jne 0x1400cf420
jmp 0x1400cf5d7
mov rdx, r14
and rdx, 0xffffffffffffff80
xor ecx, ecx
nop word cs:[rax + rax]
vmovups ymm0, ymmword [r15 + rcx]
vmovups ymm1, ymmword [r15 + rcx + 0x20]
vmovups ymm2, ymmword [r15 + rcx + 0x40]
vmovups ymm3, ymmword [r15 + rcx + 0x60]
vmovups ymmword [rax + rcx], ymm0
vmovups ymmword [rax + rcx + 0x20], ymm1
vmovups ymmword [rax + rcx + 0x40], ymm2
vmovups ymmword [rax + rcx + 0x60], ymm3
sub rcx, 0xffffffffffffff80
cmp rdx, rcx
jne 0x1400cf4a0
cmp r14, rdx
je 0x1400cf5d7
test r14b, 0x70
je 0x1400cf530
mov r8, r14
and r8, 0xfffffffffffffff0
lea rcx, [r15 + r8]
nop word cs:[rax + rax]
vmovups xmm0, xmmword [r15 + rdx]
vmovups xmmword [rax + rdx], xmm0
add rdx, 0x10
cmp r8, rdx
jne 0x1400cf500
cmp r14, r8
je 0x1400cf5d7
add rax, r8
jmp 0x1400cf539
vmovups xmm0, xmmword [r15]
vmovups xmmword [rax], xmm0
jmp 0x1400cf5d7
add rax, rdx
add rdx, r15
mov rcx, rdx
mov r8d, r13d
sub r8d, ecx
mov rdx, rcx
not rdx
add rdx, r13
and r8d, 7
je 0x1400cf562
nop
movzx r9d, byte [rcx]
mov byte [rax], r9b
inc rax
inc rcx
dec r8
jne 0x1400cf550
cmp rdx, 7
jb 0x1400cf5d7
add r15, r14
xor edx, edx
nop dword [rax]
movzx r8d, byte [rcx + rdx]
mov byte [rax + rdx], r8b
movzx r8d, byte [rcx + rdx + 1]
mov byte [rax + rdx + 1], r8b
movzx r8d, byte [rcx + rdx + 2]
mov byte [rax + rdx + 2], r8b
movzx r8d, byte [rcx + rdx + 3]
mov byte [rax + rdx + 3], r8b
movzx r8d, byte [rcx + rdx + 4]
mov byte [rax + rdx + 4], r8b
movzx r8d, byte [rcx + rdx + 5]
mov byte [rax + rdx + 5], r8b
movzx r8d, byte [rcx + rdx + 6]
mov byte [rax + rdx + 6], r8b
movzx r8d, byte [rcx + rdx + 7]
mov byte [rax + rdx + 7], r8b
lea r8, [rcx + rdx]
add r8, 8
add rdx, 8
cmp r8, r15
jne 0x1400cf570
mov rax, qword [rdi + 0x10]
inc rax
js 0x1400cf5e7
vcvtsi2ss xmm0, xmm4, rax
jmp 0x1400cf5fc
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
vcvtsi2ss xmm0, xmm4, rax
vaddss xmm0, xmm0, xmm0
vmovss xmm1, dword [rdi]
mov rax, qword [rdi + 0x38]
test rax, rax
js 0x1400cf610
vcvtsi2ss xmm2, xmm4, rax
jmp 0x1400cf627
mov rcx, rax
shr rcx, 1
mov edx, eax
and edx, 1
or rdx, rcx
vcvtsi2ss xmm2, xmm4, rdx
vaddss xmm2, xmm2, xmm2
vdivss xmm2, xmm0, xmm2
vucomiss xmm2, xmm1
jbe 0x1400cfa22
vdivss xmm0, xmm0, xmm1
vroundss xmm0, xmm0, xmm0, 0xa
vcvttss2si rcx, xmm0
mov rdx, rcx
vsubss xmm0, xmm0, dword [0x1400ea7f8]
vcvttss2si r8, xmm0
sar rdx, 0x3f
and r8, rdx
or r8, rcx
cmp r8, 9
mov ecx, 8
cmovae rcx, r8
cmp rax, rcx
jae 0x1400cf68c
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 ebx, 1
shl rbx, cl
mov r13d, 2
shl r13, cl
mov r15, 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, r13
jae 0x1400cf703
mov eax, 0x10
shl rax, cl
cmp r13, 0x200
jb 0x1400cf791
add rax, 0x27
mov rcx, rax
vzeroupper
call fcn.14000abb0
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1400cf79f
cmp rax, rdx
movabs r13, 0xcbf29ce484222325
je 0x1400cf86c
add r8, 0xfffffffffffffff8
cmp r8, 0x78
jb 0x1400cf780
shr r8, 3
inc r8
mov r9, r8
and r9, 0xfffffffffffffff0
lea rcx, [r9*8]
vmovq xmm0, r15
vpbroadcastq ymm0, xmm0
xor r10d, r10d
nop word cs:[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 0x1400cf750
cmp r8, r9
je 0x1400cf86c
add rax, rcx
mov qword [rax], r15
add rax, 8
cmp rax, rdx
jne 0x1400cf780
jmp 0x1400cf86c
mov rcx, rax
vzeroupper
call fcn.14000abb0
mov r14, rax
mov rcx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x28]
sub rax, rcx
je 0x1400cf7c1
cmp rax, 0x1000
jb 0x1400cf7b8
mov rcx, qword [rcx - 8]
add rcx, 0xfffffffffffffff0
call fcn.140009440
mov qword [rdi + 0x18], r14
lea rax, [r14 + r13*8]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rax
dec r13
movabs rcx, 0x1fffffffffffffff
and rcx, r13
cmp rcx, 0xf
jae 0x1400cf7f3
movabs r13, 0xcbf29ce484222325
jmp 0x1400cf860
inc rcx
mov r8, rcx
and r8, 0xfffffffffffffff0
lea rdx, [r8*8]
vmovq xmm0, r15
vpbroadcastq ymm0, xmm0
xor r9d, r9d
nop word cs:[rax + 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 0x1400cf820
cmp rcx, r8
movabs r13, 0xcbf29ce484222325
je 0x1400cf86c
add r14, rdx
nop word cs:[rax + rax]
mov qword [r14], r15
add r14, 8
cmp r14, rax
jne 0x1400cf860
lea rcx, [rbx - 1]
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x38], rbx
mov rbx, qword [rdi + 8]
mov rax, qword [rbx]
cmp rax, r15
jne 0x1400cf8a1
jmp 0x1400cf9da
mov qword [rdx + r8*8], rcx
mov qword [rdx + r10*8], rcx
cmp rax, r15
je 0x1400cf9d2
mov rcx, rax
mov rax, qword [rax]
movzx edx, byte [rcx + 0x10]
xor rdx, r13
imul rdx, rbp
movzx r8d, byte [rcx + 0x11]
xor r8, rdx
imul r8, rbp
movzx edx, byte [rcx + 0x12]
xor rdx, r8
imul rdx, rbp
movzx r8d, byte [rcx + 0x13]
xor r8, rdx
imul r8, rbp
movzx edx, byte [rcx + 0x14]
xor rdx, r8
imul rdx, rbp
movzx r8d, byte [rcx + 0x15]
xor r8, rdx
imul r8, rbp
movzx edx, byte [rcx + 0x16]
xor rdx, r8
imul rdx, rbp
movzx r9d, byte [rcx + 0x17]
xor r9, rdx
imul r9, rbp
and r9, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x18]
lea r8, [r9 + r9]
lea r10, [r9*2 + 1]
add qword [r8], r8
add byte [rax], al
shl r9, 4
mov r9, qword [rdx + r9]
or al, 0xa
cmp r9, r15
je 0x1400cf890
invalid
invalid
invalid
invalid
mov r11, qword [rdx + r10*8]
mov rbx, qword [rcx + 0x10]
cmp rbx, qword [r11 + 0x10]
jne 0x1400cf970
mov r8, qword [r11]
cmp r8, rcx
je 0x1400cf894
mov r9, qword [rcx + 8]
mov qword [r9], rax
mov r11, qword [rax + 8]
mov qword [r11], r8
mov rbx, qword [r8 + 8]
pop rax
or byte [rax - 0x77], cl
or ecx, dword [rbp - 0x77]
pop rax
or byte [rcx + rcx*4 + 0x48], cl
or byte [rax - 0x77], cl
pop rcx
or cl, ch
sub al, 0xff
invalid
invalid
cmp r9, r11
je 0x1400cf9a8
mov r11, qword [r11 + 8]
cmp rbx, qword [r11 + 0x10]
jne 0x1400cf970
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 0x1400cf898
mov r10, qword [rcx + 8]
mov qword [r10], rax
mov r11, qword [rax + 8]
mov qword [r11], r9
mov rbx, qword [r9 + 8]
mov qword [rbx], rcx
mov qword [r9 + 8], r11
mov qword [rax + 8], r10
mov qword [rcx + 8], rbx
mov qword [rdx + r8*8], rcx
jmp 0x1400cf898
mov rbx, qword [rdi + 8]
mov rcx, qword [rdi + 0x30]
and rcx, r12
mov r8, qword [rdi + 0x18]
mov rax, rcx
shl rax, 4
mov rax, qword [r8 + rax + 8]
cmp rax, rbx
je 0x1400cfa22
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rax + 0x10]
je 0x1400cfa1f
add rcx, rcx
mov rbx, qword [r8 + rcx*8]
nop word cs:[rax + rax]
cmp rax, rbx
je 0x1400cfa22
mov rax, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
jne 0x1400cfa10
mov rbx, qword [rax]
mov rax, qword [rbx + 8]
inc qword [rdi + 0x10]
mov qword [rsi], rbx
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [rbx + 8], rsi
mov r8, qword [rdi + 0x18]
and r12, qword [rdi + 0x30]
shl r12, 4
lea rcx, [r8 + r12]
lea r9, [r8 + r12]
add r9, 8
mov r8, qword [r8 + r12]
cmp r8, qword [rdi + 8]
je 0x1400cfa6e
cmp r8, rbx
mov rdx, qword [rsp + 0x20]
je 0x1400cfa79
mov rcx, r9
cmp qword [r9], rax
jne 0x1400cfa7c
jmp 0x1400cfa79
mov qword [rcx], rsi
mov rcx, r9
mov rdx, qword [rsp + 0x20]
mov qword [rcx], rsi
mov al, 1
mov qword [rdx], rsi
mov byte [rdx + 8], al
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret