Function at 0x42cb84
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
test edx, edx
je 0x42cbcd
mov ebx, dword [ebp + 8]
cmp edi, 0x40
jb 0x42cbe1
mov eax, dword [0x551384]
test eax, eax
je 0x42cbe1
mov esi, edi
not ebx
and esi, 0xfffffff0
push ebx
push esi
push edx
call fcn.00405048
add esp, 0xc
mov ebx, eax
sub edi, esi
je 0x42ce70
mov eax, dword [ebp + 0xc]
add eax, esi
mov edx, eax
jmp 0x42cbeb
xor ebx, ebx
test edi, edi
jne 0x42ce72
call fcn.004590bc
jmp 0x42ce72
not ebx
test edi, edi
je 0x42ce70
lea eax, [edi - 0x20]
xor esi, esi
mov dword [ebp - 0x10], eax
lea eax, [edx + esi]
test al, 3
je 0x42cc1a
movzx eax, byte [eax]
movzx ecx, bl
shr ebx, 8
inc esi
xor ecx, eax
mov eax, dword [ebp - 0x10]
xor ebx, dword [ecx*4 + 0x4ff600]
dec eax
cmp edi, esi
jne 0x42cbf0
jmp 0x42ce70
mov ecx, esi
mov esi, edi
sub esi, ecx
cmp esi, 0x20
jb 0x42cdea
mov dword [ebp - 0x14], ecx
mov ecx, edx
mov dword [ebp - 0x18], edi
xor ebx, dword [eax]
add esi, 0xffffffe0
movzx edx, bh
movzx edi, bl
mov edx, dword [edx*4 + 0x4ffe00]
xor edx, dword [edi*4 + 0x500200]
mov edi, ebx
shr ebx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor edx, dword [edi + 0x4ffa00]
xor edx, dword [ebx*4 + 0x4ff600]
xor edx, dword [eax + 4]
movzx ebx, dh
movzx edi, dl
mov ebx, dword [ebx*4 + 0x4ffe00]
xor ebx, dword [edi*4 + 0x500200]
mov edi, edx
shr edx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor ebx, dword [edi + 0x4ffa00]
xor ebx, dword [edx*4 + 0x4ff600]
xor ebx, dword [eax + 8]
movzx edx, bh
movzx edi, bl
mov edx, dword [edx*4 + 0x4ffe00]
xor edx, dword [edi*4 + 0x500200]
mov edi, ebx
shr ebx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor edx, dword [edi + 0x4ffa00]
xor edx, dword [ebx*4 + 0x4ff600]
xor edx, dword [eax + 0xc]
movzx ebx, dh
movzx edi, dl
mov ebx, dword [ebx*4 + 0x4ffe00]
xor ebx, dword [edi*4 + 0x500200]
mov edi, edx
shr edx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor ebx, dword [edi + 0x4ffa00]
xor ebx, dword [edx*4 + 0x4ff600]
xor ebx, dword [eax + 0x10]
movzx edx, bh
movzx edi, bl
mov edx, dword [edx*4 + 0x4ffe00]
xor edx, dword [edi*4 + 0x500200]
mov edi, ebx
shr ebx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor edx, dword [edi + 0x4ffa00]
xor edx, dword [ebx*4 + 0x4ff600]
xor edx, dword [eax + 0x14]
movzx ebx, dh
movzx edi, dl
mov ebx, dword [ebx*4 + 0x4ffe00]
xor ebx, dword [edi*4 + 0x500200]
mov edi, edx
shr edx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor ebx, dword [edi + 0x4ffa00]
xor ebx, dword [edx*4 + 0x4ff600]
xor ebx, dword [eax + 0x18]
movzx edx, bh
movzx edi, bl
mov edx, dword [edx*4 + 0x4ffe00]
xor edx, dword [edi*4 + 0x500200]
mov edi, ebx
shr ebx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor edx, dword [edi + 0x4ffa00]
xor edx, dword [ebx*4 + 0x4ff600]
xor edx, dword [eax + 0x1c]
add eax, 0x20
movzx ebx, dh
movzx edi, dl
mov ebx, dword [ebx*4 + 0x4ffe00]
xor ebx, dword [edi*4 + 0x500200]
mov edi, edx
shr edx, 0x18
shr edi, 0xe
and edi, 0x3fc
xor ebx, dword [edi + 0x4ffa00]
xor ebx, dword [edx*4 + 0x4ff600]
cmp esi, 0x1f
ja 0x42cc31
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
and esi, 0xffffffe0
add edi, 0xffffffe0
sub edi, esi
add ecx, esi
sub edi, edx
lea eax, [edx + ecx + 0x20]
mov esi, edi
cmp esi, 4
jb 0x42ce56
lea ecx, [esi - 4]
mov edi, eax
mov dword [ebp - 0x14], ecx
shr ecx, 2
mov dword [ebp - 0x1c], ecx
xor ebx, dword [edi]
mov dword [ebp - 0x18], esi
add edi, 4
movzx ecx, bl
movzx edx, bh
mov dword [ebp - 0x10], ecx
mov edx, dword [edx*4 + 0x4ffe00]
mov ecx, ebx
shr ebx, 0xe
mov esi, dword [ebp - 0x10]
and ebx, 0x3fc
shr ecx, 0x18
xor edx, dword [esi*4 + 0x500200]
mov esi, dword [ebp - 0x18]
xor edx, dword [ebx + 0x4ffa00]
add esi, 0xfffffffc
mov ebx, edx
xor ebx, dword [ecx*4 + 0x4ff600]
cmp esi, 3
ja 0x42cdfd
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
and edx, 3
lea eax, [eax + ecx*4 + 4]
mov esi, edx
test esi, esi
je 0x42ce70
movzx ecx, byte [eax]
movzx edx, bl
shr ebx, 8
inc eax
xor edx, ecx
xor ebx, dword [edx*4 + 0x4ff600]
dec esi
jne 0x42ce5a
not ebx
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret