Function at 0x43dccc
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 0x43dfbf
mov ebx, dword [ebp + 8]
cmp edx, 0x40
jb 0x43dd1e
cmp dword [0x56aa28], 0
je 0x43dd1e
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.004043e8
mov edx, ebx
add esp, 0xc
mov ebx, eax
xor eax, eax
dec eax
xor ebx, eax
sub edx, edi
je 0x43dfca
add esi, edi
not ebx
test edx, edx
je 0x43dd46
mov eax, esi
and eax, 3
je 0x43dd46
movzx eax, byte [esi]
movzx ecx, bl
shr ebx, 8
inc esi
xor ecx, eax
xor ebx, dword [ecx*4 + 0x5186dc]
cmp edx, 1
lea edx, [edx - 1]
jne 0x43dd24
cmp edx, 0x20
jb 0x43df2d
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 + 0x518edc]
xor edi, dword [eax*4 + 0x5192dc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
mov ecx, 0x3fc
xor edi, dword [eax + 0x518adc]
xor edi, dword [ebx*4 + 0x5186dc]
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 + 0x518edc]
xor ebx, dword [eax*4 + 0x5192dc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x518adc]
xor ebx, dword [edi*4 + 0x5186dc]
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 + 0x518edc]
xor edi, dword [eax*4 + 0x5192dc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
xor edi, dword [eax + 0x518adc]
xor edi, dword [ebx*4 + 0x5186dc]
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 + 0x518edc]
xor ebx, dword [eax*4 + 0x5192dc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x518adc]
xor ebx, dword [edi*4 + 0x5186dc]
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 + 0x518edc]
xor edi, dword [eax*4 + 0x5192dc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
xor edi, dword [eax + 0x518adc]
xor edi, dword [ebx*4 + 0x5186dc]
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 + 0x518edc]
xor ebx, dword [eax*4 + 0x5192dc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x518adc]
xor ebx, dword [edi*4 + 0x5186dc]
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 + 0x518edc]
xor edi, dword [eax*4 + 0x5192dc]
mov eax, ebx
shr ebx, 0x18
shr eax, 0xe
and eax, ecx
xor edi, dword [eax + 0x518adc]
xor edi, dword [ebx*4 + 0x5186dc]
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 + 0x518edc]
xor ebx, dword [eax*4 + 0x5192dc]
mov eax, edi
shr edi, 0x18
shr eax, 0xe
and eax, ecx
xor ebx, dword [eax + 0x518adc]
mov eax, dword [ebp - 0x10]
xor ebx, dword [edi*4 + 0x5186dc]
add eax, 0xffffffe0
cmp eax, 0x1f
mov dword [ebp - 0x10], eax
ja 0x43dd6e
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x18]
cmp edx, 4
jb 0x43dfa1
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 + 0x518edc]
xor ecx, dword [eax*4 + 0x5192dc]
mov eax, ebx
shr eax, 0xe
and eax, 0x3fc
xor ecx, dword [eax + 0x518adc]
mov eax, ebx
shr eax, 0x18
mov ebx, ecx
xor ebx, dword [eax*4 + 0x5186dc]
cmp edx, 3
ja 0x43df43
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 0x43dfbb
movzx eax, byte [esi]
movzx ecx, bl
shr ebx, 8
inc esi
xor ecx, eax
xor ebx, dword [ecx*4 + 0x5186dc]
dec edx
jne 0x43dfa5
not ebx
jmp 0x43dfca
xor ebx, ebx
test edx, edx
jne 0x43dfca
call fcn.0045b568
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret