Function at 0x49f8a0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
push ebx
push edi
push esi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test edi, edi
je 0x49fb3c
mov ebx, dword [esp + 0x14]
cmp esi, 0x40
jb 0x49f8e8
mov eax, dword [0x5318a0]
cmp dword [eax], 0
je 0x49f8e8
mov ebp, esi
not ebx
and ebp, 0xfffffff0
push ebx
push ebp
push edi
call fcn.004fb9b0
add esp, 0xc
mov ebx, eax
and esi, 0xf
not ebx
je 0x49fb47
add edi, ebp
not ebx
test esi, esi
je 0x49f912
nop
mov eax, edi
and eax, 3
je 0x49f912
movzx eax, byte [edi]
movzx ecx, bl
shr ebx, 8
inc edi
xor ecx, eax
xor ebx, dword [ecx*4 + 0x52f8a0]
cmp esi, 1
lea esi, [esi - 1]
jne 0x49f8f0
cmp esi, 0x20
jb 0x49fabe
nop dword [eax + eax]
xor ebx, dword [edi]
add esi, 0xffffffe0
movzx eax, bh
movzx ecx, bl
mov eax, dword [eax*4 + 0x5300a0]
xor eax, dword [ecx*4 + 0x5304a0]
mov ecx, ebx
shr ebx, 0x18
shr ecx, 0xe
and ecx, 0x3fc
xor eax, dword [ecx + 0x52fca0]
xor eax, dword [ebx*4 + 0x52f8a0]
xor eax, dword [edi + 4]
movzx ecx, ah
movzx edx, al
mov ecx, dword [ecx*4 + 0x5300a0]
xor ecx, dword [edx*4 + 0x5304a0]
mov edx, eax
shr eax, 0x18
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [edx + 0x52fca0]
xor ecx, dword [eax*4 + 0x52f8a0]
xor ecx, dword [edi + 8]
movzx eax, ch
movzx edx, cl
mov eax, dword [eax*4 + 0x5300a0]
xor eax, dword [edx*4 + 0x5304a0]
mov edx, ecx
shr ecx, 0x18
shr edx, 0xe
and edx, 0x3fc
xor eax, dword [edx + 0x52fca0]
xor eax, dword [ecx*4 + 0x52f8a0]
xor eax, dword [edi + 0xc]
movzx ecx, ah
movzx edx, al
mov ecx, dword [ecx*4 + 0x5300a0]
xor ecx, dword [edx*4 + 0x5304a0]
mov edx, eax
shr eax, 0x18
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [edx + 0x52fca0]
xor ecx, dword [eax*4 + 0x52f8a0]
xor ecx, dword [edi + 0x10]
movzx eax, ch
movzx edx, cl
mov eax, dword [eax*4 + 0x5300a0]
xor eax, dword [edx*4 + 0x5304a0]
mov edx, ecx
shr ecx, 0x18
shr edx, 0xe
and edx, 0x3fc
xor eax, dword [edx + 0x52fca0]
xor eax, dword [ecx*4 + 0x52f8a0]
xor eax, dword [edi + 0x14]
movzx ecx, ah
movzx edx, al
mov ecx, dword [ecx*4 + 0x5300a0]
xor ecx, dword [edx*4 + 0x5304a0]
mov edx, eax
shr eax, 0x18
shr edx, 0xe
and edx, 0x3fc
xor ecx, dword [edx + 0x52fca0]
xor ecx, dword [eax*4 + 0x52f8a0]
xor ecx, dword [edi + 0x18]
movzx eax, ch
movzx edx, cl
mov eax, dword [eax*4 + 0x5300a0]
xor eax, dword [edx*4 + 0x5304a0]
mov edx, ecx
shr ecx, 0x18
shr edx, 0xe
and edx, 0x3fc
xor eax, dword [edx + 0x52fca0]
xor eax, dword [ecx*4 + 0x52f8a0]
xor eax, dword [edi + 0x1c]
add edi, 0x20
movzx edx, ah
movzx ecx, al
mov ebx, dword [edx*4 + 0x5300a0]
xor ebx, dword [ecx*4 + 0x5304a0]
mov ecx, eax
shr eax, 0x18
shr ecx, 0xe
and ecx, 0x3fc
xor ebx, dword [ecx + 0x52fca0]
xor ebx, dword [eax*4 + 0x52f8a0]
cmp esi, 0x1f
ja 0x49f920
cmp esi, 4
jb 0x49fb4e
nop word [eax + eax]
xor ebx, dword [edi]
add esi, 0xfffffffc
add edi, 4
movzx eax, bh
movzx ecx, bl
mov eax, dword [eax*4 + 0x5300a0]
xor eax, dword [ecx*4 + 0x5304a0]
mov ecx, ebx
shr ebx, 0x18
shr ecx, 0xe
and ecx, 0x3fc
xor eax, dword [ecx + 0x52fca0]
xor eax, dword [ebx*4 + 0x52f8a0]
cmp esi, 3
mov ebx, eax
ja 0x49fad0
test esi, esi
je 0x49fb36
nop word cs:[eax + eax]
nop dword [eax]
movzx ecx, byte [edi]
movzx edx, al
shr eax, 8
inc edi
xor edx, ecx
xor eax, dword [edx*4 + 0x52f8a0]
dec esi
jne 0x49fb20
not eax
mov ebx, eax
jmp 0x49fb47
xor ebx, ebx
test esi, esi
jne 0x49fb47
call fcn.004fbb80
mov eax, ebx
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, ebx
test esi, esi
jne 0x49fb20
jmp 0x49fb36