Function at 0x46f8d4
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
test esi, esi
je 0x46fbc8
mov ebx, dword [ebp + 8]
cmp edx, 0x40
jb 0x46f927
cmp dword [0x5a51e4], 0
je 0x46f927
mov edi, edx
and edi, 0xfffffff0
xor eax, eax
dec eax
xor ebx, eax
push ebx
push edi
push esi
mov ebx, edx
call fcn.0040b570
mov edx, ebx
add esp, 0xc
mov ebx, eax
xor eax, eax
dec eax
xor ebx, eax
and edx, 0xf
je 0x46fbd3
add esi, edi
not ebx
test edx, edx
je 0x46f94f
mov eax, esi
and eax, 3
je 0x46f94f
movzx eax, byte [esi]
movzx ecx, bl
shr ebx, 8
inc esi
xor ecx, eax
xor ebx, dword [ecx*4 + 0x5615fc]
cmp edx, 1
lea edx, [edx - 1]
jne 0x46f92d
cmp edx, 0x20
jb 0x46fb36
mov eax, 0xffffffe0
mov dword [ebp - 0x10], edx
lea ecx, [edx + eax]
mov edx, 0xff
and eax, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
lea eax, [eax + esi + 0x20]
mov dword [ebp - 0x1c], eax
xor ebx, dword [esi]
mov ecx, 0x3fc
mov edi, ebx
mov eax, ebx
shr edi, 8
and eax, edx
and edi, edx
mov edi, dword [edi*4 + 0x561dfc]
xor edi, dword [eax*4 + 0x5621fc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
mov ecx, 0x3fc
xor edi, dword [eax + 0x5619fc]
xor edi, dword [ebx*4 + 0x5615fc]
xor edi, dword [esi + 4]
mov ebx, edi
mov eax, edi
shr ebx, 8
and eax, edx
and ebx, edx
mov ebx, dword [ebx*4 + 0x561dfc]
xor ebx, dword [eax*4 + 0x5621fc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x5619fc]
xor ebx, dword [edi*4 + 0x5615fc]
xor ebx, dword [esi + 8]
mov edi, ebx
mov eax, ebx
shr edi, 8
and eax, edx
and edi, edx
mov edi, dword [edi*4 + 0x561dfc]
xor edi, dword [eax*4 + 0x5621fc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
xor edi, dword [eax + 0x5619fc]
xor edi, dword [ebx*4 + 0x5615fc]
xor edi, dword [esi + 0xc]
mov ebx, edi
mov eax, edi
shr ebx, 8
and eax, edx
and ebx, edx
mov ebx, dword [ebx*4 + 0x561dfc]
xor ebx, dword [eax*4 + 0x5621fc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x5619fc]
xor ebx, dword [edi*4 + 0x5615fc]
xor ebx, dword [esi + 0x10]
mov edi, ebx
mov eax, ebx
shr edi, 8
and eax, edx
and edi, edx
mov edi, dword [edi*4 + 0x561dfc]
xor edi, dword [eax*4 + 0x5621fc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
xor edi, dword [eax + 0x5619fc]
xor edi, dword [ebx*4 + 0x5615fc]
xor edi, dword [esi + 0x14]
mov ebx, edi
mov eax, edi
shr ebx, 8
and eax, edx
and ebx, edx
mov ebx, dword [ebx*4 + 0x561dfc]
xor ebx, dword [eax*4 + 0x5621fc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x5619fc]
xor ebx, dword [edi*4 + 0x5615fc]
xor ebx, dword [esi + 0x18]
mov edi, ebx
mov eax, ebx
shr edi, 8
and eax, edx
and edi, edx
mov edi, dword [edi*4 + 0x561dfc]
xor edi, dword [eax*4 + 0x5621fc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
xor edi, dword [eax + 0x5619fc]
xor edi, dword [ebx*4 + 0x5615fc]
xor edi, dword [esi + 0x1c]
add esi, 0x20
mov ebx, edi
mov eax, edi
shr ebx, 8
and eax, edx
and ebx, edx
mov ebx, dword [ebx*4 + 0x561dfc]
xor ebx, dword [eax*4 + 0x5621fc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x5619fc]
mov eax, dword [ebp - 0x10]
xor ebx, dword [edi*4 + 0x5615fc]
add eax, 0xffffffe0
cmp eax, 0x1f
mov dword [ebp - 0x10], eax
ja 0x46f977
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x18]
cmp edx, 4
jb 0x46fbaa
lea eax, [edx - 4]
mov edi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], eax
shr eax, 2
mov dword [ebp - 0x18], eax
xor ebx, dword [edi]
mov esi, 0xff
add edx, 0xfffffffc
add edi, 4
mov ecx, ebx
mov eax, ebx
and eax, esi
mov esi, 0xff
shr ecx, 8
and ecx, esi
mov ecx, dword [ecx*4 + 0x561dfc]
xor ecx, dword [eax*4 + 0x5621fc]
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
xor ecx, dword [eax + 0x5619fc]
mov eax, ebx
shr eax, 0x18
mov ebx, ecx
xor ebx, dword [eax*4 + 0x5615fc]
cmp edx, 3
ja 0x46fb4c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
lea esi, [esi + eax*4 + 4]
and edx, 3
test edx, edx
je 0x46fbc4
movzx eax, byte [esi]
movzx ecx, bl
shr ebx, 8
inc esi
xor ecx, eax
xor ebx, dword [ecx*4 + 0x5615fc]
dec edx
jne 0x46fbae
not ebx
jmp 0x46fbd3
xor ebx, ebx
test edx, edx
jne 0x46fbd3
call fcn.004b30c8
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret