Function at 0x1402964a0
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 r15, qword [rcx + 0x18]
add rdx, r15
jae 0x1402964c5
mov cl, 1
call fcn.140279140
jmp 0x1402966db
mov rsi, qword [rcx + 8]
lea r14, [rsi + 1]
mov rax, r14
shr rax, 3
mov rdi, r14
and rdi, 0xfffffffffffffff8
sub rdi, rax
cmp rsi, 8
cmovb rdi, rsi
mov rax, rdi
shr rax, 1
cmp rdx, rax
jbe 0x14029658d
inc rdi
cmp rdx, rdi
cmova rdi, rdx
cmp rdi, 8
jae 0x1402965bc
xor eax, eax
cmp rdi, 4
setae al
lea r13, [rax*4 + 4]
lea rbp, [r13*4]
add rbp, 0xf
jb 0x1402964b9
and rbp, 0xfffffffffffffff0
lea rbx, [r13 + 0x10]
mov r14, rbp
add r14, rbx
jb 0x1402964b9
movabs rax, 0x7ffffffffffffff1
cmp r14, rax
jae 0x1402964b9
mov qword [rsp + 0x20], rcx
test r14, r14
je 0x1402968ad
movzx eax, byte [0x1405b1481]
mov edx, 0x10
mov rcx, r14
call fcn.1401159f0
mov rdi, rax
test rax, rax
jne 0x1402968b2
mov edx, 0x10
mov cl, 1
mov r8, r14
call fcn.140279190
jmp 0x1402966db
mov qword [rsp + 0x28], r15
mov rbx, qword [rcx]
mov rdx, r14
shr rdx, 4
xor eax, eax
test r14b, 0xf
setne al
add rax, rdx
je 0x1402966a3
cmp rax, 1
jne 0x140296632
xor r8d, r8d
jmp 0x140296687
mov rax, rdi
shr rax, 0x3d
jne 0x1402964b9
shl rdi, 3
movabs rdx, 0x2492492492492493
mov rax, rdi
mul rdx
sub rdi, rdx
shr rdi, 1
add rdi, rdx
shr rdi, 2
dec rdi
bsr rax, rdi
not eax
mov r13, 0xffffffffffffffff
mov rdx, rcx
mov ecx, eax
shr r13, cl
movabs rax, 0x3ffffffffffffffe
cmp r13, rax
ja 0x1402964b9
mov rcx, rdx
inc r13
lea rbp, [r13*4]
add rbp, 0xf
jb 0x1402964b9
jmp 0x140296528
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor r9d, r9d
movdqa xmm0, xmmword [0x140491540]
nop word [rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + r9]
por xmm1, xmm0
movdqa xmmword [rbx + r9], xmm1
lea r8, [r9 + 0x20]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + r9 + 0x10]
por xmm1, xmm0
movdqa xmmword [rbx + r9 + 0x10], xmm1
mov r9, r8
add rdx, 0xfffffffffffffffe
jne 0x140296650
test al, 1
je 0x1402966a3
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [rbx + r8]
por xmm0, xmmword [0x140491540]
movdqa xmmword [rbx + r8], xmm0
cmp r14, 0x10
jae 0x1402966ec
lea rax, [rbx + 0x10]
mov r15, rcx
mov rcx, rax
mov rdx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
mov rcx, r15
test r14, r14
jne 0x1402966f6
xor edi, edi
sub rdi, qword [rsp + 0x28]
mov qword [rcx + 0x10], rdi
movabs rax, 0x8000000000000001
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rbx + r14], xmm0
xor eax, eax
movabs r15, 0xcbf29ce484222325
movabs r8, 0x100000001b3
jmp 0x140296730
shr r11, 0x39
lea rdx, [rax - 0x10]
and rdx, rsi
mov byte [rbx + rax], r11b
mov byte [rbx + rdx + 0x10], r11b
lea rdx, [rax + 1]
cmp rax, rsi
mov rax, rdx
je 0x1402966c8
cmp byte [rbx + rax], 0x80
jne 0x140296724
mov r9, rax
not r9
shl r9, 2
mov r10, rax
neg r10
nop word cs:[rax + rax]
mov edx, dword [rbx + r10*4 - 4]
mov r14d, edx
movzx r11d, dl
movzx ebp, dh
shr edx, 0x10
shr r14d, 0x18
xor r11, r15
imul r11, r8
xor rbp, r11
imul rbp, r8
movzx r11d, dl
xor r11, rbp
imul r11, r8
xor r11, r14
imul r11, r8
mov r14, r11
and r14, rsi
movdqu xmm0, xmmword [rbx + r14]
pmovmskb ebp, xmm0
mov r13, r14
test ebp, ebp
jne 0x1402967c8
mov r12d, 0x10
mov r13, r14
nop word cs:[rax + rax]
add r13, r12
and r13, rsi
movdqu xmm0, xmmword [rbx + r13]
pmovmskb ebp, xmm0
add r12, 0x10
test ebp, ebp
je 0x1402967b0
tzcnt r12d, ebp
add r12, r13
and r12, rsi
cmp byte [rbx + r12], 0
js 0x1402967e7
movdqa xmm0, xmmword [rbx]
pmovmskb edx, xmm0
tzcnt r12d, edx
mov rdx, rax
sub rdx, r14
mov r13, r12
sub r13, r14
xor r13, rdx
and r13, rsi
cmp r13, 0x10
jb 0x140296710
mov r14, r12
not r14
shl r14, 2
movzx edx, byte [rbx + r12]
shr r11, 0x39
lea r13, [r12 - 0x10]
and r13, rsi
mov byte [rbx + r12], r11b
mov byte [rbx + r13 + 0x10], r11b
cmp dl, 0xff
je 0x140296890
movzx edx, byte [rbx + r9]
movzx r11d, byte [rbx + r14]
mov byte [rbx + r9], r11b
mov byte [rbx + r14], dl
movzx edx, byte [rbx + r9 + 1]
movzx r11d, byte [rbx + r14 + 1]
mov byte [rbx + r9 + 1], r11b
mov byte [rbx + r14 + 1], dl
movzx edx, byte [rbx + r9 + 2]
movzx r11d, byte [rbx + r14 + 2]
mov byte [rbx + r9 + 2], r11b
mov byte [rbx + r14 + 2], dl
movzx edx, byte [rbx + r9 + 3]
movzx r11d, byte [rbx + r14 + 3]
mov byte [rbx + r9 + 3], r11b
mov byte [rbx + r14 + 3], dl
jmp 0x140296750
lea rdx, [rax - 0x10]
and rdx, rsi
mov byte [rbx + rax], 0xff
mov byte [rbx + rdx + 0x10], 0xff
mov edx, dword [rbx + r9]
mov dword [rbx + r14], edx
jmp 0x140296724
mov edi, 0x10
lea r14, [r13 - 1]
mov rax, r13
shr rax, 3
mov rcx, r13
and rcx, 0xfffffffffffffff8
sub rcx, rax
cmp r13, 9
cmovb rcx, r14
mov qword [rsp + 0x30], rcx
add rdi, rbp
mov rcx, rdi
mov dl, 0xff
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
test r15, r15
je 0x140296a4e
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax]
movdqa xmm0, xmmword [rcx]
mov r10, r15
pmovmskb ebx, xmm0
not ebx
xor edx, edx
movabs r9, 0x100000001b3
mov qword [rsp + 0x28], r15
mov r11, rcx
jmp 0x14029695e
lea r8d, [rbx - 1]
and r8d, ebx
dec r10
shr rax, 0x39
lea rbx, [r12 - 0x10]
and rbx, r14
mov byte [rdi + r12], al
mov byte [rdi + rbx + 0x10], al
neg r13
shl r12, 2
neg r12
mov eax, dword [rcx + r13 - 4]
mov dword [rdi + r12 - 4], eax
mov ebx, r8d
test r10, r10
je 0x140296a42
test bx, bx
jne 0x14029698c
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r11 + 0x10]
add r11, 0x10
pmovmskb ebx, xmm0
add rdx, 0x10
cmp ebx, 0xffff
je 0x140296970
not ebx
tzcnt r13d, ebx
add r13, rdx
shl r13, 2
mov rax, rcx
sub rax, r13
mov eax, dword [rax - 4]
mov r8d, eax
movzx r15d, al
movzx ebp, ah
shr eax, 0x10
shr r8d, 0x18
movabs r12, 0xcbf29ce484222325
xor r15, r12
imul r15, r9
xor rbp, r15
imul rbp, r9
movzx eax, al
xor rax, rbp
imul rax, r9
xor rax, r8
imul rax, r9
mov rbp, rax
and rbp, r14
movdqu xmm0, xmmword [rdi + rbp]
pmovmskb r12d, xmm0
test r12d, r12d
jne 0x140296a19
mov r8d, 0x10
nop word cs:[rax + rax]
add rbp, r8
and rbp, r14
movdqu xmm0, xmmword [rdi + rbp]
pmovmskb r12d, xmm0
add r8, 0x10
test r12d, r12d
je 0x140296a00
tzcnt r12d, r12d
add r12, rbp
and r12, r14
cmp byte [rdi + r12], 0
js 0x140296920
movdqa xmm0, xmmword [rdi]
pmovmskb r8d, xmm0
tzcnt r12d, r8d
jmp 0x140296920
mov r15, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x20]
jmp 0x140296a56
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rdx]
mov rax, qword [rsp + 0x30]
sub rax, r15
mov qword [rdx], rdi
mov qword [rdx + 8], r14
mov qword [rdx + 0x10], rax
movabs rax, 0x8000000000000001
test rsi, rsi
je 0x1402966db
lea rdx, [rsi*4 + 0x13]
and rdx, 0xfffffffffffffff0
add rsi, rdx
add rsi, 0x11
je 0x1402966db
sub rcx, rdx
mov r8d, 0x10
mov rdx, rsi
mov rsi, rax
call fcn.140115a00
mov rax, rsi
jmp 0x1402966db