Function at 0x180095670
Capabilities:
Hash data using fnv

Disassembly:
push rbx
push r12
sub rsp, 0x28
mov rdx, qword [rcx]
mov r8, rcx
mov r9, qword [rcx + 0x18]
mov rcx, rdx
lea rax, [rdx + 1]
add rax, r9
cmp rdx, rax
je 0x1800956d1
movdqa xmm3, xmmword [0x180143d80]
xorps xmm2, xmm2
movdqa xmm4, xmmword [0x180143d90]
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx]
movdqa xmm1, xmm2
pcmpgtb xmm1, xmm0
pandn xmm1, xmm3
por xmm1, xmm4
movdqu xmmword [rcx], xmm1
add rcx, 0x10
cmp rcx, rax
jne 0x1800956b0
movups xmm0, xmmword [rdx]
xor r12d, r12d
mov ebx, r12d
movups xmmword [rax], xmm0
mov byte [r9 + rdx], 0xff
mov r10, qword [r8 + 0x18]
test r10, r10
je 0x1800958f1
mov qword [rsp + 0x48], rbp
movabs r11, 0xcbf29ce484222325
mov qword [rsp + 0x50], rsi
mov ebp, r12d
mov qword [rsp + 0x58], rdi
lea rsi, [r12 - 0x10]
mov qword [rsp + 0x20], r13
movabs r9, 0xde5fb9d2630458e9
mov qword [rsp + 0x18], r14
movabs r13, 0x100000001b3
mov qword [rsp + 0x10], r15
mov rdi, qword [r8]
cmp byte [rdi + rbx], 0xfe
lea r14, [rdi + rbx]
jne 0x1800958bc
mov rcx, qword [r8 + 8]
movdqa xmm2, xmmword [0x180139870]
add rcx, rbp
movdqa xmm1, xmm2
movzx eax, byte [rcx + 1]
movzx edx, byte [rcx]
xor rdx, r11
imul rdx, r13
xor rdx, rax
movzx eax, byte [rcx + 2]
imul rdx, r13
xor rdx, rax
movzx eax, byte [rcx + 3]
imul rdx, r13
xor rdx, rax
mov rax, r9
imul rdx, r13
mul rdx
lea r11, [rax + rdx]
mov rdx, r12
mov r15, r11
shr r15, 7
and r15, r10
mov rcx, r15
movdqu xmm0, xmmword [r15 + rdi]
pcmpgtb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x1800957cf
nop
add rdx, 0x10
movdqa xmm1, xmm2
add rcx, rdx
and rcx, r10
movdqu xmm0, xmmword [rcx + rdi]
pcmpgtb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
je 0x1800957b0
bsf edx, eax
mov rax, rbx
and r11b, 0x7f
sub rax, r15
movsxd r9, edx
add r9, rcx
and r9, r10
mov rcx, r9
sub rcx, r15
xor rcx, rax
and rcx, r10
test rcx, 0xfffffffffffffff0
jne 0x18009581a
mov byte [r14], r11b
mov rcx, rsi
mov rax, qword [r8 + 0x18]
and rcx, rax
and eax, 0xf
add rcx, rax
mov rax, qword [r8]
mov byte [rcx + rax + 1], r11b
jmp 0x1800958a8
lea rax, [r9 + rdi]
lea rdx, [r9 - 0x10]
add r9, r9
cmp byte [rax], 0x80
mov byte [rax], r11b
mov rax, qword [r8 + 0x18]
mov rcx, rax
jne 0x180095873
and eax, 0xf
and rcx, rdx
add rcx, rax
mov rax, qword [r8]
mov byte [rcx + rax + 1], r11b
mov rcx, rsi
mov rax, qword [r8 + 8]
movups xmm0, xmmword [rax + rbp]
movups xmmword [rax + r9*8], xmm0
mov rax, qword [r8]
mov byte [rbx + rax], 0x80
mov rax, qword [r8 + 0x18]
and rcx, rax
and eax, 0xf
add rcx, rax
mov rax, qword [r8]
mov byte [rcx + rax + 1], 0x80
jmp 0x1800958a8
and eax, 0xf
and rcx, rdx
add rcx, rax
dec rbx
mov rax, qword [r8]
dec rsi
mov byte [rcx + rax + 1], r11b
mov rax, qword [r8 + 8]
movups xmm1, xmmword [rax + rbp]
movups xmm0, xmmword [rax + r9*8]
movups xmmword [rax + rbp], xmm0
mov rax, qword [r8 + 8]
sub rbp, 0x10
movups xmmword [rax + r9*8], xmm1
movabs r9, 0xde5fb9d2630458e9
movabs r11, 0xcbf29ce484222325
mov r10, qword [r8 + 0x18]
inc rbx
inc rsi
add rbp, 0x10
cmp rbx, r10
jne 0x180095733
mov r15, qword [rsp + 0x10]
mov r14, qword [rsp + 0x18]
mov r13, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov rax, r10
shr rax, 3
sub r10, rax
sub r10, qword [r8 + 0x10]
mov qword [r8 + 0x28], r10
add rsp, 0x28
pop r12
pop rbx
ret