Function at 0x4a9f80
Capabilities:
Hash data with crc32

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [edx + 4]
test eax, eax
je 0x4a9fa7
mov dword [ecx], 2
mov dword [ecx + 8], 0x73f094
mov dword [ecx + 4], 2
jmp 0x4aa2f1
mov ebx, dword [edx + 8]
mov edi, dword [edx]
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, 0xffffffff
mov dword [esp + 0xc], edx
mov ecx, dword [ebx + 4]
mov esi, edi
add esi, 4
cmovae eax, esi
cmp eax, ecx
jbe 0x4a9fde
mov edx, dword [ebx + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa1b0
mov eax, dword [ebx + 8]
bswap ebp
cmp eax, edi
jae 0x4a9ffc
mov ecx, edi
sub ecx, eax
add eax, dword [ebx]
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebx + 8], edi
mov eax, dword [ebx]
mov dword [eax + edi], ebp
cmp esi, dword [ebx + 8]
jbe 0x4aa009
mov dword [ebx + 8], esi
mov edx, dword [esp]
mov esi, edi
mov ebp, 0x3ffffffe
add esi, 4
mov eax, edx
mov ecx, edx
adc eax, 0
shld ecx, edi, 0x1e
shr edx, 2
xor ebx, ebx
cmp ebp, ecx
mov ebp, dword [esp + 0xc]
sbb ebx, edx
mov dword [ebp + 4], eax
mov dword [ebp], esi
jb 0x4aa0cf
mov ebx, dword [ebp + 8]
mov ecx, esi
mov eax, 0xffffffff
add ecx, 4
mov dword [esp + 8], ecx
cmovae eax, ecx
mov ecx, dword [ebx + 4]
cmp eax, ecx
jbe 0x4aa064
mov edx, dword [ebx + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa1dd
mov eax, dword [ebx + 8]
cmp eax, esi
jae 0x4aa080
mov ecx, esi
sub ecx, eax
add eax, dword [ebx]
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebx + 8], esi
mov eax, dword [ebx]
mov ecx, dword [esp + 0x24]
mov dword [eax + esi], ecx
mov eax, dword [esp + 8]
cmp eax, dword [ebx + 8]
jbe 0x4aa095
mov dword [ebx + 8], eax
mov edx, dword [esp]
mov ebx, edi
mov esi, dword [esp + 0x28]
add ebx, 8
mov dword [ebp], ebx
mov eax, edx
adc eax, 0
cmp dword [esp + 0x2c], 0
mov dword [ebp + 4], eax
je 0x4aa164
shrd edi, edx, 3
mov ecx, 0x1ffffffe
mov dword [esp + 8], eax
shr edx, 3
xor eax, eax
cmp ecx, edi
sbb eax, edx
jae 0x4aa0ec
mov eax, dword [esp + 4]
mov dword [eax], 2
mov dword [eax + 8], 0x73f094
mov dword [eax + 4], 2
jmp 0x4aa2f1
mov ebp, dword [ebp + 8]
mov edi, esi
mov esi, ebx
mov eax, 0xffffffff
add esi, dword [esp + 0x2c]
mov ecx, dword [ebp + 4]
cmovae eax, esi
cmp eax, ecx
jbe 0x4aa115
mov edx, dword [ebp + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa2f9
mov eax, dword [ebp + 8]
cmp eax, ebx
jae 0x4aa132
mov ecx, ebx
sub ecx, eax
add eax, dword [ebp]
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp + 8], ebx
mov eax, dword [ebp]
add eax, ebx
push dword [esp + 0x2c]
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp esi, dword [ebp + 8]
jbe 0x4aa14d
mov dword [ebp + 8], esi
add ebx, dword [esp + 0x2c]
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov esi, edi
adc eax, 0
mov dword [ebp], ebx
mov dword [ebp + 4], eax
mov eax, dword [0x919880]
test eax, eax
je 0x4aa1cd
and eax, 2
xor ecx, ecx
or eax, ecx
je 0x4aa208
mov eax, dword [0x919880]
test eax, eax
je 0x4aa1f8
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x4aa208
lea edx, [esp + 0x24]
xor ecx, ecx
push 4
call fcn.00434740
add esp, 4
mov ecx, eax
mov edx, esi
push dword [esp + 0x2c]
call fcn.00434740
jmp 0x4aa267
mov ecx, ebx
push eax
call fcn.00720870
add esp, 4
mov eax, dword [ebx + 8]
bswap ebp
cmp eax, edi
jb 0x4a9fe7
jmp 0x4a9ffc
call fcn.007223e0
and eax, 2
xor ecx, ecx
or eax, ecx
jne 0x4aa17a
jmp 0x4aa208
mov ecx, ebx
push eax
call fcn.00720870
add esp, 4
mov eax, dword [ebx + 8]
cmp eax, esi
jb 0x4aa06b
jmp 0x4aa080
call fcn.007223e0
and eax, 0x400
xor ecx, ecx
or eax, ecx
jne 0x4aa18e
movzx eax, byte [esp + 0x24]
mov ecx, 0xffffff
mov edx, esi
xor eax, 0xff
xor ecx, dword [eax*4 + 0x732db4]
movzx eax, byte [esp + 0x25]
xor al, cl
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x732db4]
movzx eax, byte [esp + 0x26]
xor al, cl
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x732db4]
movzx eax, byte [esp + 0x27]
xor al, cl
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x732db4]
not ecx
push dword [esp + 0x2c]
call fcn.004343b0
add esp, 4
mov esi, dword [ebp + 4]
mov ecx, dword [esp + 4]
test esi, esi
jne 0x4a9f8e
mov edi, dword [ebp]
mov ebp, dword [ebp + 8]
mov dword [esp], eax
mov eax, 0xffffffff
mov ecx, dword [ebp + 4]
mov ebx, edi
add ebx, 4
cmovae eax, ebx
cmp eax, ecx
jbe 0x4aa2a1
mov edx, dword [ebp + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa314
mov ecx, dword [esp]
mov eax, dword [ebp + 8]
bswap ecx
cmp eax, edi
jae 0x4aa2ca
mov edx, edi
mov dword [esp], ecx
sub edx, eax
add eax, dword [ebp]
push edx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov dword [ebp + 8], edi
mov eax, dword [ebp]
mov dword [eax + edi], ecx
cmp ebx, dword [ebp + 8]
jbe 0x4aa2d8
mov dword [ebp + 8], ebx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
add edi, 4
adc esi, 0
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [ecx], 6
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, ebp
push eax
call fcn.00720870
add esp, 4
mov eax, dword [ebp + 8]
cmp eax, ebx
jb 0x4aa11c
jmp 0x4aa132
mov ecx, ebp
push eax
call fcn.00720870
add esp, 4
jmp 0x4aa2a1