Function at 0x140070c40
Capabilities:
Hash data with crc32

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, r8
test rdx, rdx
jne 0x140070c69
xor ebx, ebx
test rdi, rdi
jne 0x140070c5d
call fcn.1400bb2d0
mov eax, ebx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
mov r14, rdx
mov ebx, ecx
cmp rdi, 0x40
jb 0x140070c81
cmp dword [0x140216fdc], 0
jne 0x140070e42
not ebx
test rdi, rdi
je 0x140070cf6
mov eax, r14d
and eax, 3
test rax, rax
je 0x140070cf6
lea rsi, [r14 + 1]
movzx eax, byte [r14]
movzx edx, bl
xor edx, eax
lea rax, [0x1401c07d0]
shr ebx, 8
xor ebx, dword [rax + rdx*4]
mov rdx, rdi
dec rdx
je 0x140070cf0
mov ecx, esi
and ecx, 3
test rcx, rcx
je 0x140070cf0
movzx ecx, byte [r14 + 1]
add r14, 2
movzx edx, bl
xor edx, ecx
shr ebx, 8
xor ebx, dword [rax + rdx*4]
mov rcx, rdi
add rcx, 0xfffffffffffffffe
je 0x140070ceb
mov edx, r14d
and edx, 3
test rdx, rdx
jne 0x140070eb4
mov rdi, rcx
jmp 0x140070cf6
mov r14, rsi
mov rdi, rdx
cmp rdi, 0x20
jae 0x140070eee
cmp rdi, 4
jb 0x140070dd6
xor ebx, dword [r14]
movzx eax, bl
lea rcx, [0x1401c07d0]
movzx edx, bh
mov rsi, rbx
mov edx, dword [rcx + rdx*4 + 0x800]
xor edx, dword [rcx + rax*4 + 0xc00]
shr esi, 0x10
movzx eax, sil
xor edx, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
mov eax, edx
xor eax, dword [rcx + rbx*4]
mov rbx, rax
lea rax, [rdi - 4]
cmp rax, 4
jb 0x140070de5
xor ebx, dword [r14 + 4]
movzx eax, bl
movzx edx, bh
mov rsi, rbx
mov edx, dword [rcx + rdx*4 + 0x800]
xor edx, dword [rcx + rax*4 + 0xc00]
shr esi, 0x10
movzx eax, sil
xor edx, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
mov eax, edx
xor eax, dword [rcx + rbx*4]
mov rbx, rax
lea rax, [rdi - 8]
cmp rax, 4
jb 0x140070deb
xor ebx, dword [r14 + 8]
add r14, 0xc
movzx eax, bl
movzx edx, bh
mov edx, dword [rcx + rdx*4 + 0x800]
xor edx, dword [rcx + rax*4 + 0xc00]
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor edx, dword [rcx + rax*4 + 0x400]
shr ebx, 0x18
xor edx, dword [rcx + rbx*4]
add rdi, 0xfffffffffffffff4
mov rax, rdi
cmp rdi, 4
jae 0x140070e6f
mov ebx, edx
jmp 0x140070dd9
mov rax, rdi
test rax, rax
jne 0x140070df1
not ebx
jmp 0x140070c5d
add r14, 4
jmp 0x140070dd9
add r14, 8
jmp 0x140070dd9
movzx ecx, byte [r14]
movzx edx, bl
xor edx, ecx
lea rcx, [0x1401c07d0]
shr ebx, 8
xor ebx, dword [rcx + rdx*4]
cmp rax, 1
je 0x140070dde
movzx edx, byte [r14 + 1]
movzx edi, bl
xor edi, edx
shr ebx, 8
xor ebx, dword [rcx + rdi*4]
cmp rax, 2
je 0x140070dde
mov edx, 2
movzx esi, byte [r14 + rdx]
movzx edi, bl
xor edi, esi
shr ebx, 8
xor ebx, dword [rcx + rdi*4]
inc rdx
cmp rax, rdx
je 0x140070dde
jmp 0x140070e28
mov rsi, rdi
and rsi, 0xfffffffffffffff0
not ebx
mov rcx, r14
mov rdx, rsi
mov r8d, ebx
call fcn.14000f870
mov ebx, eax
not ebx
and rdi, 0xf
je 0x140070c5d
add r14, rsi
jmp 0x140070c81
xor edx, dword [r14]
add r14, 4
movzx ebx, dl
movzx esi, dh
mov edi, dword [rcx + rsi*4 + 0x800]
xor edi, dword [rcx + rbx*4 + 0xc00]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
xor edi, dword [rcx + rbx*4 + 0x400]
mov rbx, rdi
shr edx, 0x18
xor ebx, dword [rcx + rdx*4]
add rax, 0xfffffffffffffffc
mov edx, ebx
cmp rax, 3
jbe 0x140070dd9
jmp 0x140070e6f
mov ecx, 2
sub rcx, rdi
mov rdi, rcx
movzx ecx, byte [r14]
inc r14
movzx edx, bl
xor edx, ecx
shr ebx, 8
xor ebx, dword [rax + rdx*4]
cmp rdi, 0xffffffffffffffff
lea rdi, [rdi + 1]
je 0x140070ee6
mov ecx, r14d
and ecx, 3
test rcx, rcx
jne 0x140070ebf
neg rdi
jmp 0x140070cf6
lea rax, [0x1401c07d0]
xor ebx, dword [r14]
movzx edx, bl
movzx ecx, bh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rdx*4 + 0xc00]
mov edx, ebx
shr edx, 0x10
movzx edx, dl
xor ecx, dword [rax + rdx*4 + 0x400]
shr ebx, 0x18
xor ecx, dword [rax + rbx*4]
xor ecx, dword [r14 + 4]
movzx ebx, cl
movzx edx, ch
mov edx, dword [rax + rdx*4 + 0x800]
xor edx, dword [rax + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor edx, dword [rax + rbx*4 + 0x400]
shr ecx, 0x18
xor edx, dword [rax + rcx*4]
xor edx, dword [r14 + 8]
movzx ebx, dl
movzx ecx, dh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rbx*4 + 0xc00]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [rax + rbx*4 + 0x400]
shr edx, 0x18
xor ecx, dword [rax + rdx*4]
xor ecx, dword [r14 + 0xc]
movzx ebx, cl
movzx edx, ch
mov edx, dword [rax + rdx*4 + 0x800]
xor edx, dword [rax + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor edx, dword [rax + rbx*4 + 0x400]
shr ecx, 0x18
xor edx, dword [rax + rcx*4]
xor edx, dword [r14 + 0x10]
movzx ebx, dl
movzx ecx, dh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rbx*4 + 0xc00]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [rax + rbx*4 + 0x400]
shr edx, 0x18
xor ecx, dword [rax + rdx*4]
xor ecx, dword [r14 + 0x14]
movzx ebx, cl
movzx edx, ch
mov edx, dword [rax + rdx*4 + 0x800]
xor edx, dword [rax + rbx*4 + 0xc00]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
xor edx, dword [rax + rbx*4 + 0x400]
shr ecx, 0x18
xor edx, dword [rax + rcx*4]
xor edx, dword [r14 + 0x18]
movzx ebx, dl
movzx ecx, dh
mov ecx, dword [rax + rcx*4 + 0x800]
xor ecx, dword [rax + rbx*4 + 0xc00]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
xor ecx, dword [rax + rbx*4 + 0x400]
shr edx, 0x18
xor ecx, dword [rax + rdx*4]
xor ecx, dword [r14 + 0x1c]
add r14, 0x20
movzx edx, cl
movzx esi, ch
mov ebx, dword [rax + rsi*4 + 0x800]
xor ebx, dword [rax + rdx*4 + 0xc00]
mov edx, ecx
shr edx, 0x10
movzx edx, dl
xor ebx, dword [rax + rdx*4 + 0x400]
shr ecx, 0x18
xor ebx, dword [rax + rcx*4]
add rdi, 0xffffffffffffffe0
cmp rdi, 0x1f
jbe 0x140070d00
jmp 0x140070ef5