Function at 0x10001570
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
sub esp, 0x1c
test ecx, ecx
jne 0x10001585
xor eax, eax
mov esp, ebp
pop ebp
ret 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
not esi
cmp edi, 0x17
jb 0x100017b0
test edi, edi
je 0x100015bd
lea ecx, [ecx]
test cl, 3
je 0x100015bd
movzx eax, byte [ecx]
xor eax, esi
and eax, 0xff
shr esi, 8
xor esi, dword [eax*4 + 0x1001ebc8]
inc ecx
dec edi
jne 0x100015a0
mov eax, 0xcccccccd
mul edi
mov eax, edx
shr eax, 4
mov edx, eax
imul edx, edx, 0xffffffec
add edi, edx
mov edx, esi
xor esi, esi
mov ebx, ecx
dec eax
mov dword [ebp + 0x10], edi
mov dword [ebp - 8], ebx
mov dword [ebp + 0xc], esi
mov dword [ebp + 8], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], eax
je 0x10001777
nop
mov eax, dword [ebx]
xor eax, edx
mov ecx, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
xor edi, dword [ebp + 8]
mov edx, eax
and edx, 0xff
mov edx, dword [edx*4 + 0x1001f3c8]
xor ecx, esi
mov esi, dword [ebx + 8]
xor esi, dword [ebp + 0xc]
mov ebx, dword [ebx + 0x10]
xor ebx, dword [ebp - 4]
mov dword [ebp - 0x14], edx
mov edx, ecx
and edx, 0xff
mov edx, dword [edx*4 + 0x1001f3c8]
mov dword [ebp - 0xc], edx
mov edx, esi
and edx, 0xff
mov edx, dword [edx*4 + 0x1001f3c8]
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x1c], ebx
and ebx, 0xff
mov edx, edi
and edx, 0xff
mov edx, dword [edx*4 + 0x1001f3c8]
mov dword [ebp + 8], edx
mov edx, dword [ebx*4 + 0x1001f3c8]
mov ebx, eax
mov dword [ebp - 4], edx
mov edx, eax
shr eax, 0x18
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x1001fbc8]
shr ebx, 8
and ebx, 0xff
xor edx, dword [ebx*4 + 0x1001f7c8]
mov ebx, ecx
xor edx, dword [eax*4 + 0x1001ffc8]
mov eax, ecx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x1001fbc8]
shr ecx, 0x18
shr ebx, 8
and ebx, 0xff
xor eax, dword [ebx*4 + 0x1001f7c8]
add dword [ebp - 8], 0x14
xor eax, dword [ecx*4 + 0x1001ffc8]
mov ecx, esi
xor dword [ebp - 0xc], eax
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x1001fbc8]
mov eax, esi
shr eax, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x1001f7c8]
shr esi, 0x18
xor ecx, dword [esi*4 + 0x1001ffc8]
mov eax, edi
xor dword [ebp + 0xc], ecx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x1001fbc8]
mov ecx, edi
shr ecx, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x1001f7c8]
shr edi, 0x18
xor eax, dword [edi*4 + 0x1001ffc8]
mov dword [ebp - 0x18], edx
xor dword [ebp + 8], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
xor edx, dword [ebp - 0x18]
mov ecx, eax
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x1001fbc8]
mov ebx, dword [ebp - 8]
mov esi, eax
shr esi, 8
and esi, 0xff
xor ecx, dword [esi*4 + 0x1001f7c8]
mov esi, dword [ebp - 0xc]
shr eax, 0x18
xor ecx, dword [eax*4 + 0x1001ffc8]
xor dword [ebp - 4], ecx
dec dword [ebp - 0x10]
jne 0x100015f0
mov edi, dword [ebp + 0x10]
mov eax, dword [ebx]
xor eax, edx
call fcn.10001520
xor eax, dword [ebx + 4]
xor eax, esi
call fcn.10001520
xor eax, dword [ebx + 8]
xor eax, dword [ebp + 0xc]
call fcn.10001520
xor eax, dword [ebx + 0xc]
xor eax, dword [ebp + 8]
call fcn.10001520
xor eax, dword [ebx + 0x10]
xor eax, dword [ebp - 4]
call fcn.10001520
mov esi, eax
lea ecx, [ebx + 0x14]
cmp edi, 8
jb 0x10001880
mov edx, edi
shr edx, 3
mov edi, edi
movzx ebx, byte [ecx]
xor ebx, esi
mov eax, esi
movzx esi, byte [ecx + 1]
shr eax, 8
and ebx, 0xff
xor eax, dword [ebx*4 + 0x1001ebc8]
sub edi, 8
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
movzx esi, byte [ecx + 2]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
movzx esi, byte [ecx + 3]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
movzx esi, byte [ecx + 4]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
movzx esi, byte [ecx + 5]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
movzx esi, byte [ecx + 6]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
movzx esi, byte [ecx + 7]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x1001ebc8]
add ecx, 8
dec edx
mov esi, eax
jne 0x100017c0
test edi, edi
je 0x1000189d
movzx edx, byte [ecx]
xor edx, esi
and edx, 0xff
shr esi, 8
xor esi, dword [edx*4 + 0x1001ebc8]
inc ecx
dec edi
jne 0x10001884
pop edi
mov eax, esi
pop esi
not eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc