Function at 0x1400a3f80
Capabilities:
Hash data with crc32

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r15, r8
mov r14, rdx
mov ebx, ecx
test rdx, rdx
je 0x1400a3fd0
cmp r15, 0x40
jb 0x1400a3fe5
mov eax, dword [0x14017facc]
test eax, eax
je 0x1400a3fe5
mov rdi, r15
and rdi, 0xfffffffffffffff0
not ebx
mov rcx, r14
mov rdx, rdi
mov r8d, ebx
call fcn.14000e760
mov ebx, eax
sub r15, rdi
je 0x1400a423e
add r14, rdi
jmp 0x1400a3ff0
xor ebx, ebx
test r15, r15
jne 0x1400a4240
call fcn.1400a4610
jmp 0x1400a4240
not ebx
test r15, r15
je 0x1400a423e
lea r8, [r15 - 0x20]
xor edi, edi
lea rax, [0x140159f70]
lea rsi, [r14 + rdi]
test sil, 3
je 0x1400a4025
movzx ecx, byte [rsi]
movzx edx, bl
xor edx, ecx
shr ebx, 8
xor ebx, dword [rax + rdx*4]
inc rdi
dec r8
cmp r15, rdi
jne 0x1400a3ffd
jmp 0x1400a423e
mov r9, r15
sub r9, rdi
cmp r9, 0x20
jb 0x1400a41c2
xor ebx, dword [rsi]
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 [rsi + 4]
movzx edx, cl
movzx ebx, ch
mov ebx, dword [rax + rbx*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]
xor ebx, dword [rsi + 8]
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 [rsi + 0xc]
movzx edx, cl
movzx ebx, ch
mov ebx, dword [rax + rbx*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]
xor ebx, dword [rsi + 0x10]
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 [rsi + 0x14]
movzx edx, cl
movzx ebx, ch
mov ebx, dword [rax + rbx*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]
xor ebx, dword [rsi + 0x18]
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 [rsi + 0x1c]
movzx edx, cl
movzx ebx, ch
mov ebx, dword [rax + rbx*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 r9, 0xffffffffffffffe0
add rsi, 0x20
cmp r9, 0x1f
ja 0x1400a4035
and r8, 0xffffffffffffffe0
add r14, r8
lea rsi, [rdi + r14]
add rsi, 0x20
add r15, 0xffffffffffffffe0
sub r15, r8
sub r15, rdi
mov r9, r15
cmp r9, 4
jb 0x1400a4220
lea r10, [r9 - 4]
mov r8, r10
shr r8, 2
mov rcx, rsi
xor ebx, dword [rcx]
movzx edx, bl
movzx ebp, bh
mov edi, ebx
mov ebp, dword [rax + rbp*4 + 0x800]
xor ebp, dword [rax + rdx*4 + 0xc00]
add rcx, 4
shr ebx, 0x10
movzx edx, bl
xor ebp, dword [rax + rdx*4 + 0x400]
shr edi, 0x18
mov ebx, ebp
xor ebx, dword [rax + rdi*4]
add r9, 0xfffffffffffffffc
cmp r9, 3
ja 0x1400a41d6
lea rsi, [rsi + r8*4]
add rsi, 4
and r10d, 3
mov r9, r10
test r9, r9
je 0x1400a423e
xor ecx, ecx
movzx edx, byte [rsi + rcx]
movzx ebp, bl
xor ebp, edx
shr ebx, 8
xor ebx, dword [rax + rbp*4]
inc rcx
cmp r9, rcx
jne 0x1400a4227
not ebx
mov eax, ebx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret