Function at 0x14006bfe0
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x20
test rdx, rdx
je 0x14006c0c4
mov r15, rdx
mov r13d, ecx
mov r12d, r8d
cmp r8d, 0x40
jb 0x14006c014
cmp dword [0x140177e44], 0
jne 0x14006c219
not r13d
test r12, r12
je 0x14006c0f7
mov eax, r15d
and eax, 3
test rax, rax
je 0x14006c0f7
lea rsi, [r15 + 1]
movzx eax, byte [r15]
movzx edx, r13b
xor edx, eax
lea r8, [0x14014eb10]
shr r13d, 8
xor r13d, dword [r8 + rdx*4]
mov rdx, r12
dec rdx
je 0x14006c0ec
mov ecx, esi
and ecx, 3
test rcx, rcx
je 0x14006c0ec
lea rax, [r15 + 2]
movzx edx, byte [r15 + 1]
movzx esi, r13b
xor esi, edx
shr r13d, 8
xor r13d, dword [r8 + rsi*4]
mov rdx, r12
add rdx, 0xfffffffffffffffe
je 0x14006c0f1
mov ecx, eax
and ecx, 3
test rcx, rcx
je 0x14006c0f1
movzx eax, byte [r15 + 2]
add r15, 3
movzx ecx, r13b
xor ecx, eax
shr r13d, 8
xor r13d, dword [r8 + rcx*4]
mov rcx, r12
add rcx, 0xfffffffffffffffd
je 0x14006c0bf
mov eax, r15d
and eax, 3
test rax, rax
jne 0x14006c249
mov r12, rcx
jmp 0x14006c0f7
test r8d, r8d
jne 0x14006c441
lea rcx, [0x140177e48]
lea rdx, [0x140137ec0]
xor r13d, r13d
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
jmp 0x14006c10f
mov r15, rsi
jmp 0x14006c0f4
mov r15, rax
mov r12, rdx
cmp r12, 0x20
jae 0x14006c28e
cmp r12, 4
jae 0x14006c122
test r12, r12
jne 0x14006c176
not r13d
mov eax, r13d
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r13d, dword [r15]
add r15, 4
mov eax, 0xff
mov esi, r13d
and esi, eax
lea rcx, [0x14014eb10]
mov edx, r13d
shr edx, 8
and edx, eax
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rsi*4 + 0xc00]
mov edi, r13d
shr edi, 0x10
and edi, eax
xor ebx, dword [rcx + rdi*4 + 0x400]
shr r13d, 0x18
xor ebx, dword [rcx + r13*4]
add r12, 0xfffffffffffffffc
cmp r12, 4
jae 0x14006c1ce
mov r13d, ebx
jmp 0x14006c107
movzx eax, byte [r15]
movzx ecx, r13b
xor ecx, eax
lea rax, [0x14014eb10]
shr r13d, 8
xor r13d, dword [rax + rcx*4]
cmp r12, 1
je 0x14006c10c
movzx ecx, byte [r15 + 1]
movzx edx, r13b
xor edx, ecx
shr r13d, 8
xor r13d, dword [rax + rdx*4]
cmp r12, 2
je 0x14006c10c
movzx ecx, byte [r15 + 2]
movzx edx, r13b
xor edx, ecx
shr r13d, 8
xor r13d, dword [rax + rdx*4]
jmp 0x14006c10c
xor ebx, dword [r15]
add r15, 4
mov edi, ebx
and edi, eax
mov edx, ebx
shr edx, 8
and edx, eax
mov r13d, dword [rcx + rdx*4 + 0x800]
xor r13d, dword [rcx + rdi*4 + 0xc00]
mov edx, ebx
shr edx, 0x10
and edx, eax
xor r13d, dword [rcx + rdx*4 + 0x400]
shr ebx, 0x18
xor r13d, dword [rcx + rbx*4]
add r12, 0xfffffffffffffffc
mov ebx, r13d
cmp r12, 3
jbe 0x14006c107
jmp 0x14006c1ce
mov r14d, r12d
and r14d, 0xfffffff0
not r13d
mov rcx, r15
mov rdx, r14
mov r8d, r13d
call fcn.14006c450
mov r13d, eax
not r13d
and r12, 0xf
je 0x14006c10f
add r15, r14
jmp 0x14006c014
mov eax, 3
sub rax, r12
lea rcx, [r15 + 1]
mov r12, rax
mov rax, r12
movzx edx, byte [r15]
inc r15
movzx edi, r13b
xor edi, edx
shr r13d, 8
xor r13d, dword [r8 + rdi*4]
inc r12
cmp rax, 0xffffffffffffffff
je 0x14006c286
mov eax, ecx
and eax, 3
inc rcx
test rax, rax
jne 0x14006c258
neg r12
jmp 0x14006c0f7
mov eax, 0xff
lea rcx, [0x14014eb10]
xor r13d, dword [r15]
mov edi, r13d
and edi, eax
mov edx, r13d
shr edx, 8
and edx, eax
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rdi*4 + 0xc00]
mov ebx, r13d
shr ebx, 0x10
and ebx, eax
xor esi, dword [rcx + rbx*4 + 0x400]
shr r13d, 0x18
xor esi, dword [rcx + r13*4]
xor esi, dword [r15 + 4]
mov edi, esi
and edi, eax
mov edx, esi
shr edx, 8
and edx, eax
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rdi*4 + 0xc00]
mov edx, esi
shr edx, 0x10
and edx, eax
xor ebx, dword [rcx + rdx*4 + 0x400]
shr esi, 0x18
xor ebx, dword [rcx + rsi*4]
xor ebx, dword [r15 + 8]
mov edi, ebx
and edi, eax
mov edx, ebx
shr edx, 8
and edx, eax
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rdi*4 + 0xc00]
mov edi, ebx
shr edi, 0x10
and edi, eax
xor esi, dword [rcx + rdi*4 + 0x400]
shr ebx, 0x18
xor esi, dword [rcx + rbx*4]
xor esi, dword [r15 + 0xc]
mov edi, esi
and edi, eax
mov edx, esi
shr edx, 8
and edx, eax
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rdi*4 + 0xc00]
mov edx, esi
shr edx, 0x10
and edx, eax
xor ebx, dword [rcx + rdx*4 + 0x400]
shr esi, 0x18
xor ebx, dword [rcx + rsi*4]
xor ebx, dword [r15 + 0x10]
mov edi, ebx
and edi, eax
mov edx, ebx
shr edx, 8
and edx, eax
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rdi*4 + 0xc00]
mov edi, ebx
shr edi, 0x10
and edi, eax
xor esi, dword [rcx + rdi*4 + 0x400]
shr ebx, 0x18
xor esi, dword [rcx + rbx*4]
xor esi, dword [r15 + 0x14]
mov edi, esi
and edi, eax
mov edx, esi
shr edx, 8
and edx, eax
mov ebx, dword [rcx + rdx*4 + 0x800]
xor ebx, dword [rcx + rdi*4 + 0xc00]
mov edx, esi
shr edx, 0x10
and edx, eax
xor ebx, dword [rcx + rdx*4 + 0x400]
shr esi, 0x18
xor ebx, dword [rcx + rsi*4]
xor ebx, dword [r15 + 0x18]
mov edi, ebx
and edi, eax
mov edx, ebx
shr edx, 8
and edx, eax
mov esi, dword [rcx + rdx*4 + 0x800]
xor esi, dword [rcx + rdi*4 + 0xc00]
mov edi, ebx
shr edi, 0x10
and edi, eax
xor esi, dword [rcx + rdi*4 + 0x400]
shr ebx, 0x18
xor esi, dword [rcx + rbx*4]
xor esi, dword [r15 + 0x1c]
add r15, 0x20
mov ebx, esi
and ebx, eax
mov edx, esi
shr edx, 8
and edx, eax
mov r13d, dword [rcx + rdx*4 + 0x800]
xor r13d, dword [rcx + rbx*4 + 0xc00]
mov edx, esi
shr edx, 0x10
and edx, eax
xor r13d, dword [rcx + rdx*4 + 0x400]
shr esi, 0x18
xor r13d, dword [rcx + rsi*4]
add r12, 0xffffffffffffffe0
cmp r12, 0x1f
jbe 0x14006c101
jmp 0x14006c29a
xor r13d, r13d
jmp 0x14006c10f