Function at 0x14006c0c0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov rdi, r9
mov r13, r8
mov ebx, edx
mov r15, rcx
call fcn.1400629f0
cmp ebx, 1
jne 0x14006c0ff
mov r14, qword [r13 + 0x50]
jmp 0x14006c115
mov rdx, qword [r13 + 0x58]
sub rdx, qword [r13 + 0x30]
mov r8, rdi
mov rcx, r15
call fcn.14006c010
mov r14, rax
xor r12d, r12d
movabs rbx, 0xaaaaaaaaaaaaaaab
cmp r14, qword [r15 + 0x50]
jbe 0x14006c2f7
mov qword [rsp + 0x20], r12
mov word [rsp + 0x28], r12w
xor eax, eax
mov dword [rsp + 0x2a], eax
mov word [rsp + 0x2e], ax
test r14, r14
jne 0x14006c14c
mov edx, r12d
jmp 0x14006c15d
lea rcx, [r14 - 1]
mov rax, rbx
mul rcx
shr rdx, 5
inc rdx
lea r8, [rsp + 0x20]
lea rcx, [r15 + 0x38]
call fcn.1400721b0
nop
mov r12, qword [rsp + 0x20]
test r12, r12
je 0x14006c1b5
movzx esi, word [rsp + 0x28]
shl rsi, 5
add rsi, r12
mov rbx, r12
cmp r12, rsi
je 0x14006c1a2
nop word [rax + rax]
lea rcx, [rbx + 8]
call fcn.14005db20
add rbx, 0x20
cmp rbx, rsi
jne 0x14006c190
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movabs rbx, 0xaaaaaaaaaaaaaaab
cmp r14, qword [r15 + 0x50]
jae 0x14006c266
mov rax, rbx
mul r14
shr rdx, 5
movzx eax, dx
add ax, ax
add dx, ax
shl dx, 4
movzx ecx, r14w
sub cx, dx
je 0x14006c236
mov rsi, qword [r15 + 0x40]
add rsi, 0xfffffffffffffff0
mov qword [rsp + 0x20], rsi
xor eax, eax
mov word [rsp + 0x28], ax
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x28], cx
movaps xmm1, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm1
mov r12, qword [rsp + 0x20]
movzx ebx, word [rsp + 0x28]
cmp r12, rsi
jne 0x14006c223
cmp cx, 0x30
je 0x14006c236
movzx edx, bx
mov rcx, rsi
call fcn.140063680
inc bx
movzx ecx, bx
jmp 0x14006c218
xor r12d, r12d
mov qword [r15 + 0x58], r12
mov rax, qword [r15 + 0x38]
mov r8, qword [r15 + 0x40]
cmp rax, r8
je 0x14006c269
mov edx, r12d
nop dword [rax]
movzx ecx, word [rax + 8]
add rdx, rcx
mov qword [r15 + 0x58], rdx
add rax, 0x10
cmp rax, r8
jne 0x14006c250
jmp 0x14006c269
xor r12d, r12d
mov qword [r15 + 0x50], r14
mov rcx, r14
xorps xmm0, xmm0
test rcx, rcx
js 0x14006c27f
cvtsi2ss xmm0, rcx
jmp 0x14006c294
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
movaps xmm1, xmm0
mulss xmm1, dword [r15 + 0x10]
xor ecx, ecx
movabs rdx, 0x8000000000000000
movss xmm2, dword [0x14012cc7c]
comiss xmm1, xmm2
jb 0x14006c2c2
subss xmm1, xmm2
comiss xmm1, xmm2
jae 0x14006c2c2
mov rcx, rdx
cvttss2si rax, xmm1
add rax, rcx
mov qword [r15], rax
mulss xmm0, dword [r15 + 0x14]
xor ecx, ecx
comiss xmm0, xmm2
jb 0x14006c2e6
subss xmm0, xmm2
comiss xmm0, xmm2
jae 0x14006c2e6
mov rcx, rdx
cvttss2si rax, xmm0
add rax, rcx
mov qword [r15 + 8], rax
mov byte [r15 + 0x18], 0
mov rdi, qword [r13 + 0x40]
mov rbx, qword [r13 + 0x38]
mov qword [rbp - 0x39], rbx
mov qword [rbp - 0x31], rdi
mov qword [rbp - 0x29], rdi
mov qword [rbp - 0x21], r12
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], r12
cmp rbx, rdi
je 0x14006c37c
mov rcx, qword [rbx]
mov qword [rsp + 0x38], rcx
movzx eax, word [rbx + 8]
shl rax, 5
add rax, rcx
cmp rcx, rax
jne 0x14006c37c
mov rcx, rbx
call fcn.140063fc0
xor eax, eax
mov dword [rbx + 0xa], eax
mov word [rbx + 0xe], ax
mov word [rbx + 8], r12w
add rbx, 0x10
cmp rbx, rdi
je 0x14006c377
mov rcx, qword [rbx]
mov qword [rsp + 0x38], rcx
movzx eax, word [rbx + 8]
shl rax, 5
add rax, rcx
cmp rcx, rax
je 0x14006c340
mov qword [rsp + 0x30], rbx
mov rcx, r13
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x48], xmm0
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rbp - 0x71], xmm1
movups xmm0, xmmword [rbp - 0x39]
movups xmmword [rbp - 0x61], xmm0
movups xmm1, xmmword [rbp - 0x29]
movups xmmword [rbp - 0x51], xmm1
nop word [rax + rax]
mov rsi, qword [rbp - 0x69]
mov rbx, qword [rbp - 0x71]
mov rdi, qword [rbp - 0x79]
mov r14, qword [rsp + 0x48]
cmp r14, qword [rbp - 0x61]
jne 0x14006c3de
cmp rdi, qword [rbp - 0x59]
jne 0x14006c3de
cmp rbx, qword [rbp - 0x51]
jne 0x14006c3de
cmp rbx, rdi
je 0x14006c410
cmp rsi, qword [rbp - 0x49]
je 0x14006c410
cmp byte [rcx + 0x1a], 0
je 0x14006c410
cmp qword [rcx + 0x30], 0
jbe 0x14006c410
mov rax, qword [rsi]
cmp qword [rcx + 0x28], rax
jne 0x14006c410
add rsi, 0x20
mov qword [rbp - 0x69], rsi
lea rcx, [rsp + 0x48]
call fcn.14005eac0
mov rcx, qword [rsp + 0x40]
jmp 0x14006c3b0
mov rcx, qword [r13 + 0x40]
mov rax, qword [r13 + 0x38]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], r12
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x31], rcx
mov qword [rbp - 0x29], rcx
mov qword [rbp - 0x21], r12
mov rdx, r13
mov qword [rbp - 0x19], rdx
movups xmm0, xmmword [rbp - 0x39]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [rbp - 0x29]
movups xmmword [rbp - 1], xmm1
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rbp + 0xf], xmm0
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rbp + 0x1f], xmm1
nop word [rax + rax]
mov rcx, qword [rbp + 7]
mov r9, qword [rbp - 1]
mov r8, qword [rbp - 9]
mov r10, qword [rbp - 0x11]
cmp r10, qword [rbp + 0xf]
jne 0x14006c49d
cmp r8, qword [rbp + 0x17]
jne 0x14006c49d
cmp r9, qword [rbp + 0x1f]
jne 0x14006c49d
cmp r9, r8
je 0x14006c4ca
cmp rcx, qword [rbp + 0x27]
je 0x14006c4ca
cmp byte [rdx + 0x1a], 0
je 0x14006c4ca
cmp qword [rdx + 0x30], 0
jbe 0x14006c4ca
mov rax, qword [rcx]
cmp qword [rdx + 0x28], rax
jne 0x14006c4ca
add rcx, 0x20
mov qword [rbp + 7], rcx
lea rcx, [rbp - 0x11]
call fcn.14005eac0
mov rdx, qword [rbp - 0x19]
jmp 0x14006c470
cmp r14, r10
jne 0x14006c4eb
cmp rdi, r8
jne 0x14006c4eb
cmp rbx, r9
jne 0x14006c4eb
cmp rbx, rdi
je 0x14006c6c0
cmp rsi, rcx
je 0x14006c6c0
mov r9, r12
movzx r8d, byte [rsi]
movabs r11, 0xcbf29ce484222325
xor r8, r11
movabs r11, 0x100000001b3
imul r8, r11
movzx eax, byte [rsi + 1]
xor r8, rax
imul r8, r11
movzx eax, byte [rsi + 2]
xor r8, rax
imul r8, r11
movzx eax, byte [rsi + 3]
xor r8, rax
imul r8, r11
movzx eax, byte [rsi + 4]
xor r8, rax
imul r8, r11
movzx eax, byte [rsi + 5]
xor r8, rax
imul r8, r11
movzx eax, byte [rsi + 6]
xor r8, rax
imul r8, r11
movzx eax, byte [rsi + 7]
xor r8, rax
imul r8, r11
mov r11, qword [r15 + 0x50]
dec r11
and r8, r11
movabs rbx, 0xaaaaaaaaaaaaaaab
mov rax, rbx
mul r8
shr rdx, 5
movzx eax, dx
add ax, ax
lea ecx, [rax + rdx]
shl cx, 4
movzx eax, r8w
sub ax, cx
movzx ecx, ax
mov r10, qword [r15 + 0x38]
mov eax, ecx
shr rax, 3
add rdx, rdx
add rax, r10
movzx edx, byte [rax + rdx*8 + 0xa]
and ecx, 7
mov eax, 1
shl ax, cl
test al, dl
je 0x14006c60a
nop dword [rax]
nop word [rax + rax]
inc r9
add r8, r9
and r8, r11
mov rax, rbx
mul r8
shr rdx, 5
movzx eax, dx
add ax, ax
lea ecx, [rax + rdx]
shl cx, 4
movzx eax, r8w
sub ax, cx
movzx ecx, ax
mov eax, ecx
shr rax, 3
add rdx, rdx
add rax, r10
movzx edx, byte [rax + rdx*8 + 0xa]
and ecx, 7
mov eax, 1
shl ax, cl
test al, dl
jne 0x14006c5c0
mov rax, rbx
mul r8
shr rdx, 5
mov rdi, rdx
add rdi, rdi
lea rcx, [r10 + rdi*8]
movzx ebx, word [rcx + 8]
movzx eax, dx
add dx, dx
add ax, dx
shl ax, 4
sub r8w, ax
movzx edx, r8w
mov r8, rsi
call fcn.140074360
mov rax, qword [r15 + 0x38]
movzx ecx, word [rax + rdi*8 + 8]
sub rcx, rbx
add qword [r15 + 0x58], rcx
add rsi, 0x20
mov qword [rbp - 0x69], rsi
lea rcx, [rsp + 0x48]
call fcn.14005eac0
mov rsi, qword [rbp - 0x69]
mov rbx, qword [rbp - 0x71]
mov rdi, qword [rbp - 0x79]
mov r14, qword [rsp + 0x48]
cmp r14, qword [rbp - 0x61]
jne 0x14006c697
cmp rdi, qword [rbp - 0x59]
jne 0x14006c697
cmp rbx, qword [rbp - 0x51]
jne 0x14006c697
cmp rbx, rdi
je 0x14006c410
cmp rsi, qword [rbp - 0x49]
je 0x14006c410
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0x1a], 0
je 0x14006c410
cmp qword [rcx + 0x30], 0
jbe 0x14006c410
mov rax, qword [rsi]
cmp qword [rcx + 0x28], rax
jne 0x14006c410
jmp 0x14006c64f
inc dword [r15 + 0x1c]
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret