Function at 0x1401938c0
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
mov r9, qword [rdx + 0x18]
add r8, r9
jae 0x1401938fa
mov cl, 1
call fcn.14017ae10
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rdx
mov qword [rsi], 1
jmp 0x140193a10
mov rdi, rdx
mov r15, qword [rdx]
lea rbx, [r15 + 1]
mov rax, rbx
shr rax, 3
lea r10, [rax*8]
sub r10, rax
cmp r15, 8
cmovb r10, r15
mov rax, r10
shr rax, 1
cmp r8, rax
jbe 0x14019397b
add r10, 1
cmp r8, r10
cmova r10, r8
mov qword [rsp + 0x20], r10
lea rcx, [rsp + 0x50]
mov r8d, 0x90
mov r9d, 0x10
mov rdx, rdi
call fcn.140072e30
cmp dword [rsp + 0x50], 1
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
jne 0x140193a27
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi], 1
jmp 0x140193a10
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov rdi, qword [rdi + 8]
xor ecx, ecx
movdqa xmm0, xmmword [0x1401af880]
xor eax, eax
test cl, 1
je 0x1401939a6
nop word [rax + rax]
add rax, 0xf
jb 0x1401939ca
cmp rax, rbx
jae 0x1401939ca
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rdi + rax]
por xmm1, xmm0
movdqa xmmword [rdi + rax], xmm1
add rax, 1
mov cl, 1
test cl, 1
jne 0x1401939a0
jmp 0x1401939a6
cmp rbx, 0x10
jae 0x140193bdb
lea rcx, [rdi + 0x10]
mov rdx, rdi
mov r8, rbx
mov rsi, r9
mov rbp, r10
call sub.VCRUNTIME140.dll_memmove
mov r10, rbp
mov r9, rsi
test rbx, rbx
jne 0x140193be4
sub r10, r9
mov rax, qword [rsp + 0x28]
mov qword [rax + 0x10], r10
mov rsi, qword [rsp + 0x30]
mov qword [rsi], 0
mov rax, rsi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rsi
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x28], rdi
mov rdi, qword [rdi + 8]
add rbx, rdi
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
not eax
lea rsi, [rdi + 0x10]
lea rcx, [r12 - 0x90]
mov qword [rsp + 0x48], rcx
movabs r14, 0x100000001b3
test ax, ax
je 0x140193aa0
nop word cs:[rax + rax]
nop dword [rax]
lea r15d, [rax - 1]
and r15d, eax
jmp 0x140193ad1
cmp rsi, rbx
jae 0x140193e62
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
add rdi, 0xfffffffffffff700
add rsi, 0x10
cmp ax, 0xffff
je 0x140193aa0
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov r15d, eax
and r15d, ecx
bsf ax, ax
movzx eax, ax
neg rax
lea r8, [rax + rax*8]
shl r8, 4
mov edx, dword [rdi + r8 - 0x90]
movzx eax, dh
mov r9, rax
mov rbp, rdx
movzx ecx, dl
shr edx, 0x10
movzx edx, dl
shr rbp, 0x18
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, r14
xor rcx, r9
imul rcx, r14
xor rcx, rdx
imul rcx, r14
xor rcx, rbp
imul rcx, r14
mov rdx, rcx
and rdx, r13
movdqu xmm0, xmmword [r12 + rdx]
pmovmskb ebp, xmm0
test bp, bp
jne 0x140193b69
mov eax, 0x10
nop word cs:[rax + rax]
nop dword [rax + rax]
add rdx, rax
and rdx, r13
movdqu xmm0, xmmword [r12 + rdx]
pmovmskb ebp, xmm0
add rax, 0x10
test bp, bp
je 0x140193b50
bsf ax, bp
movzx eax, ax
add rax, rdx
and rax, r13
cmp byte [r12 + rax], 0
jns 0x140193bc8
lea rdx, [rdi + r8]
add rdx, 0xffffffffffffff70
shr rcx, 0x39
lea rbp, [rax - 0x10]
and rbp, r13
mov byte [r12 + rax], cl
mov byte [rbp + r12 + 0x10], cl
neg rax
lea rcx, [rax + rax*8]
shl rcx, 4
add rcx, qword [rsp + 0x48]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov eax, r15d
test ax, ax
jne 0x140193a90
jmp 0x140193aa0
movdqa xmm0, xmmword [r12]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
jmp 0x140193b7d
movdqu xmm0, xmmword [rdi]
movdqu xmmword [rdi + rbx], xmm0
lea r12, [rdi - 0x90]
xor r13d, r13d
movabs r11, 0xcbf29ce484222325
movabs r14, 0x100000001b3
jmp 0x140193df3
mov ecx, eax
shr ecx, 0x10
mov ebp, eax
shr ebp, 0x18
movzx ebx, al
xor rbx, r11
imul rbx, r14
movzx eax, ah
xor rax, rbx
imul rax, r14
movzx ecx, cl
xor rcx, rax
imul rcx, r14
xor rcx, rbp
imul rcx, r14
mov rsi, rcx
and rsi, r15
movdqu xmm0, xmmword [rdi + rsi]
pmovmskb ebp, xmm0
mov rax, rsi
test bp, bp
jne 0x140193c78
mov ebx, 0x10
mov rax, rsi
nop
add rax, rbx
and rax, r15
movdqu xmm0, xmmword [rdi + rax]
pmovmskb ebp, xmm0
add rbx, 0x10
test bp, bp
je 0x140193c60
bsf bp, bp
movzx ebp, bp
add rbp, rax
and rbp, r15
cmp byte [rdi + rbp], 0
jns 0x140193db3
mov rax, r13
sub rax, rsi
mov rbx, rbp
sub rbx, rsi
xor rbx, rax
and rbx, r15
cmp rbx, 0xf
jbe 0x140193dd0
mov al, byte [rdi + rbp]
shr rcx, 0x39
lea rbx, [rbp - 0x10]
and rbx, r15
mov byte [rdi + rbp], cl
mov byte [rbx + rdi + 0x10], cl
cmp al, 0xff
je 0x140193e1d
neg rbp
lea rax, [rbp*8]
add rax, rbp
shl rax, 4
movdqu xmm0, xmmword [r12 + rax]
movups xmm1, xmmword [r12 + rax + 0x10]
movups xmm2, xmmword [rdx]
movups xmm3, xmmword [rdx + 0x10]
movups xmmword [r12 + rax + 0x10], xmm3
movups xmmword [r12 + rax], xmm2
movdqu xmmword [rdx], xmm0
movups xmmword [rdx + 0x10], xmm1
movups xmm1, xmmword [r12 + rax + 0x20]
movups xmm2, xmmword [r12 + rax + 0x30]
movups xmm3, xmmword [r8]
movups xmm4, xmmword [r8 + 0x10]
movups xmmword [r12 + rax + 0x30], xmm4
movups xmmword [r12 + rax + 0x20], xmm3
movups xmmword [r8], xmm1
movups xmmword [r8 + 0x10], xmm2
movups xmm1, xmmword [r12 + rax + 0x40]
movups xmm2, xmmword [r12 + rax + 0x50]
movups xmm3, xmmword [r8 + 0x20]
movups xmm4, xmmword [r8 + 0x30]
movups xmmword [r12 + rax + 0x50], xmm4
movups xmmword [r12 + rax + 0x40], xmm3
movups xmmword [r8 + 0x20], xmm1
movups xmmword [r8 + 0x30], xmm2
movups xmm1, xmmword [r12 + rax + 0x60]
movups xmm2, xmmword [r12 + rax + 0x70]
movups xmm3, xmmword [r8 + 0x40]
movups xmm4, xmmword [r8 + 0x50]
movups xmmword [r12 + rax + 0x70], xmm4
movups xmmword [r12 + rax + 0x60], xmm3
movups xmmword [r8 + 0x40], xmm1
movups xmmword [r8 + 0x50], xmm2
movups xmm1, xmmword [r12 + rax + 0x80]
movaps xmmword [rsp + 0x50], xmm1
movups xmm1, xmmword [r8 + 0x60]
movups xmmword [r12 + rax + 0x80], xmm1
movdqa xmm1, xmmword [rsp + 0x50]
movdqu xmmword [r8 + 0x60], xmm1
movd eax, xmm0
jmp 0x140193c10
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
bsf ax, ax
movzx ebp, ax
jmp 0x140193c8f
shr rcx, 0x39
lea rax, [r13 - 0x10]
and rax, r15
mov byte [rdi + r13], cl
mov byte [rax + rdi + 0x10], cl
lea rax, [r13 + 1]
cmp r13, r15
mov r13, rax
je 0x1401939f8
cmp byte [rdi + r13], 0x80
jne 0x140193de3
mov rax, r13
neg rax
lea rcx, [rax + rax*8]
shl rcx, 4
lea rdx, [r12 + rcx]
mov eax, dword [r12 + rcx]
lea r8, [r12 + rcx]
add r8, 0x20
jmp 0x140193c10
lea rax, [r13 - 0x10]
and rax, r15
mov byte [rdi + r13], 0xff
mov byte [rax + rdi + 0x10], 0xff
neg rbp
lea rcx, [rbp*8]
add rcx, rbp
shl rcx, 4
add rcx, r12
mov r8d, 0x90
mov rsi, r9
mov rbx, r10
mov rbp, r11
call sub.VCRUNTIME140.dll_memcpy
mov r11, rbp
mov r10, rbx
mov r9, rsi
jmp 0x140193de3
mov rax, qword [rsp + 0x28]
movdqu xmm0, xmmword [rax]
mov qword [rax], r13
mov qword [rax + 8], r12
movaps xmm1, xmmword [rsp + 0x90]
movups xmmword [rax + 0x10], xmm1
mov rsi, qword [rsp + 0x30]
mov qword [rsi], 0
movq rbx, xmm0
test rbx, rbx
mov r8, qword [rsp + 0x40]
je 0x140193a10
lea rcx, [rbx + 1]
mov rax, qword [rsp + 0x38]
mul rcx
lea rcx, [r8 + rax]
add rcx, 0xffffffffffffffff
mov rax, r8
neg rax
and rax, rcx
add rbx, rax
add rbx, 0x11
je 0x140193a10
pshufd xmm0, xmm0, 0xee
movq rcx, xmm0
sub rcx, rax
mov rdx, rbx
call fcn.1400012f0
jmp 0x140193a10