Function at 0x1800039c0
Capabilities:
Hash data with crc32

Disassembly:
push rdi
lea rdi, [0x180027ca0]
mov r11, r8
mov r10, rdx
not ecx
test r8, r8
je 0x1800039f7
test r10b, 3
je 0x1800039f7
movzx edx, byte [r10]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
inc r10
xor ecx, dword [rdi + rax*4]
sub r11, 1
jne 0x1800039d6
cmp r11, 0x20
jb 0x180003c2d
mov qword [rsp + 0x10], rbx
mov rbx, r11
shr rbx, 5
imul rax, rbx, 0xffffffffffffffe0
add r11, rax
xor ecx, dword [r10]
mov r9d, ecx
mov eax, ecx
shr rax, 0x10
movzx edx, al
mov eax, ecx
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 4]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 8]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0xc]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x10]
mov r9d, r8d
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x14]
mov eax, r8d
shr rax, 0x10
movzx edx, al
mov eax, r8d
mov r9d, r8d
mov r8d, dword [rdi + rdx*4 + 0x400]
shr rax, 8
movzx ecx, al
mov eax, r9d
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x800]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x18]
mov r9d, r8d
mov eax, r8d
shr rax, 8
movzx edx, al
mov eax, r8d
shr rax, 0x10
movzx ecx, al
mov eax, r9d
mov r8d, dword [rdi + rdx*4 + 0x800]
shr rax, 0x18
xor r8d, dword [rdi + rcx*4 + 0x400]
xor r8d, dword [rdi + rax*4]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0xc00]
xor r8d, dword [r10 + 0x1c]
add r10, 0x20
mov eax, r8d
shr rax, 0x10
movzx ecx, al
mov eax, r8d
shr rax, 8
movzx edx, al
mov ecx, dword [rdi + rcx*4 + 0x400]
mov eax, r8d
shr rax, 0x18
xor ecx, dword [rdi + rdx*4 + 0x800]
xor ecx, dword [rdi + rax*4]
movzx eax, r8b
xor ecx, dword [rdi + rax*4 + 0xc00]
sub rbx, 1
jne 0x180003a14
mov rbx, qword [rsp + 0x10]
cmp r11, 4
jb 0x180003c87
mov r9, r11
shr r9, 2
imul rax, r9, 0xfffffffffffffffc
add r11, rax
xor ecx, dword [r10]
add r10, 4
mov r8d, ecx
mov eax, ecx
shr rax, 0x10
movzx ecx, al
mov eax, r8d
shr rax, 8
movzx edx, al
mov eax, r8d
shr rax, 0x18
mov ecx, dword [rdi + rcx*4 + 0x400]
xor ecx, dword [rdi + rdx*4 + 0x800]
xor ecx, dword [rdi + rax*4]
movzx eax, r8b
xor ecx, dword [rdi + rax*4 + 0xc00]
sub r9, 1
jne 0x180003c41
test r11, r11
je 0x180003cbc
nop dword [rax]
nop word [rax + rax]
nop dword [rax + rax]
movzx edx, byte [r10]
lea r10, [r10 + 1]
mov eax, ecx
shr ecx, 8
xor rdx, rax
movzx eax, dl
xor ecx, dword [rdi + rax*4]
sub r11, 1
jne 0x180003ca0
not ecx
mov eax, ecx
pop rdi
ret
mov eax, 0x28
call fcn.180025560
sub rsp, rax
test rdx, rdx
jne 0x180003ce9
xor eax, eax
add rsp, 0x28
ret
add rsp, 0x28
jmp 0x1800039c0