Function at 0x1400ad3a0
Capabilities:
Hash data with crc32

Disassembly:
test rdx, rdx
je 0x1400ad1d0
mov r8d, r8d
jmp 0x1400ad3a0
xor eax, eax
ret
push rbx
mov eax, ecx
mov r9, rdx
not eax
test r8, r8
je 0x1400ad3df
lea rdx, [0x1401a13e0]
test r9b, 3
jne 0x1400ad3c6
jmp 0x1400ad3e8
test r9b, 3
je 0x1400ad3e8
movzx ecx, byte [r9]
add r9, 1
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
sub r8, 1
jne 0x1400ad3c0
not eax
pop rbx
ret
cmp r8, 0x1f
jbe 0x1400ad64d
lea rcx, [r8 - 0x20]
and rcx, 0xffffffffffffffe0
lea r10, [r9 + rcx + 0x20]
nop
xor eax, dword [r9]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 + 4]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
shr ebx, 0x18
mov ecx, ecx
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [r9 + 8]
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 + 0xc]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
shr ebx, 0x18
mov ecx, ecx
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [r9 + 0x10]
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 + 0x14]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
mov ecx, ecx
shr ebx, 0x18
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [r9 + 0x18]
add r9, 0x20
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
mov r11d, eax
movzx ecx, al
mov ebx, eax
movzx eax, ah
shr r11d, 0x10
shr ebx, 0x18
mov eax, eax
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r11d, r11b
xor ecx, dword [rdx + rbx*4]
xor ecx, dword [r9 - 4]
xor ecx, dword [rdx + rax*4 + 0x800]
xor ecx, dword [rdx + r11*4 + 0x400]
mov r11d, ecx
movzx eax, cl
mov ebx, ecx
movzx ecx, ch
shr r11d, 0x10
shr ebx, 0x18
mov ecx, ecx
mov eax, dword [rdx + rax*4 + 0xc00]
movzx r11d, r11b
xor eax, dword [rdx + rbx*4]
xor eax, dword [rdx + rcx*4 + 0x800]
xor eax, dword [rdx + r11*4 + 0x400]
cmp r9, r10
jne 0x1400ad400
mov rbx, r8
and ebx, 0x1f
and r8d, 0x1c
je 0x1400ad648
lea rcx, [rbx - 4]
shr rcx, 2
lea r9, [r10 + rcx*4 + 4]
nop dword [rax]
xor eax, dword [r10]
add r10, 4
mov r8d, eax
movzx ecx, al
mov r11d, eax
movzx eax, ah
shr r8d, 0x10
mov eax, eax
shr r11d, 0x18
mov ecx, dword [rdx + rcx*4 + 0xc00]
movzx r8d, r8b
xor ecx, dword [rdx + r11*4]
xor ecx, dword [rdx + rax*4 + 0x800]
mov eax, dword [rdx + r8*4 + 0x400]
xor eax, ecx
cmp r10, r9
jne 0x1400ad5d8
and ebx, 3
mov r8, rbx
test r8, r8
je 0x1400ad3df
add r8, r9
movzx ecx, byte [r9]
add r9, 1
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [rdx + rcx*4]
cmp r9, r8
jne 0x1400ad62c
not eax
pop rbx
ret
mov r8, rbx
jmp 0x1400ad620
mov r10, r9
mov rbx, r8
cmp r8, 3
ja 0x1400ad5c4
jmp 0x1400ad629