Function at 0x4aa330
Capabilities:
Hash data with crc32

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ebp, dword [edx]
mov eax, dword [ebp + 4]
test eax, eax
je 0x4aa359
mov dword [ecx], 2
mov dword [ecx + 8], 0x73f094
mov dword [ecx + 4], 2
jmp 0x4aa6a4
mov esi, dword [ebp]
mov ebx, dword [ebp + 8]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov eax, 0xffffffff
mov edi, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov ecx, esi
add ecx, 4
mov dword [esp + 0xc], ecx
cmovae eax, ecx
mov ecx, dword [ebx + 4]
cmp eax, ecx
jbe 0x4aa395
mov edx, dword [ebx + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa54a
mov eax, dword [ebx + 8]
bswap edi
cmp eax, esi
jae 0x4aa3b3
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 dword [eax + esi], edi
mov eax, dword [esp + 0xc]
cmp eax, dword [ebx + 8]
jbe 0x4aa3c4
mov dword [ebx + 8], eax
mov eax, dword [esp]
mov ecx, dword [esp + 4]
add esi, 4
mov dword [ebp], esi
adc eax, 0
mov dword [ebp + 4], eax
mov ebp, dword [ecx]
mov edi, dword [ebp + 4]
test edi, edi
jne 0x4aa469
mov esi, dword [ebp]
mov ebx, dword [ebp + 8]
mov eax, 0xffffffff
mov ecx, esi
add ecx, 4
mov dword [esp], ecx
cmovae eax, ecx
mov ecx, dword [ebx + 4]
cmp eax, ecx
jbe 0x4aa410
mov edx, dword [ebx + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa577
mov eax, dword [ebx + 8]
cmp eax, esi
jae 0x4aa42c
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]
cmp eax, dword [ebx + 8]
jbe 0x4aa440
mov dword [ebx + 8], eax
add esi, 4
mov ebx, dword [esp + 0x28]
adc edi, 0
mov dword [ebp], esi
mov dword [ebp + 4], edi
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x4aa501
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4aa486
mov eax, dword [esp + 8]
mov dword [eax], 2
mov dword [eax + 8], 0x73f094
mov dword [eax + 4], 2
jmp 0x4aa6a4
mov ebp, dword [eax + 8]
mov ebx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov eax, 0xffffffff
mov ecx, dword [ebp + 4]
mov esi, ebx
add esi, edi
cmovae eax, esi
cmp eax, ecx
jbe 0x4aa4b4
mov edx, dword [ebp + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa6ac
mov eax, dword [ebp + 8]
cmp eax, ebx
jae 0x4aa4d1
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 edi
push dword [esp + 0x2c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp esi, dword [ebp + 8]
jbe 0x4aa4ec
mov dword [ebp + 8], esi
mov eax, dword [esp]
add ebx, edi
mov ecx, dword [esp + 0xc]
mov dword [eax], ebx
mov ebx, dword [esp + 0x28]
adc ecx, 0
mov dword [eax + 4], ecx
mov eax, dword [0x919880]
test eax, eax
je 0x4aa567
and eax, 2
xor ecx, ecx
or eax, ecx
je 0x4aa5a2
mov eax, dword [0x919880]
test eax, eax
je 0x4aa592
and eax, 0x400
xor ecx, ecx
or eax, ecx
je 0x4aa5a2
lea edx, [esp + 0x24]
xor ecx, ecx
push 4
call fcn.00434740
add esp, 4
mov ecx, eax
mov edx, ebx
push edi
call fcn.00434740
jmp 0x4aa5fe
mov ecx, ebx
push eax
call fcn.00720870
add esp, 4
mov eax, dword [ebx + 8]
bswap edi
cmp eax, esi
jb 0x4aa39e
jmp 0x4aa3b3
call fcn.007223e0
and eax, 2
xor ecx, ecx
or eax, ecx
jne 0x4aa517
jmp 0x4aa5a2
mov ecx, ebx
push eax
call fcn.00720870
add esp, 4
mov eax, dword [ebx + 8]
cmp eax, esi
jb 0x4aa417
jmp 0x4aa42c
call fcn.007223e0
and eax, 0x400
xor ecx, ecx
or eax, ecx
jne 0x4aa52b
movzx eax, byte [esp + 0x24]
mov ecx, 0xffffff
mov edx, ebx
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 edi
call fcn.004343b0
add esp, 4
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov ebp, dword [ecx]
mov ebx, dword [ebp + 4]
test ebx, ebx
je 0x4aa628
mov dword [edx], 2
mov dword [edx + 8], 0x73f094
mov dword [edx + 4], 2
jmp 0x4aa6a4
mov esi, dword [ebp]
mov edi, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, 0xffffffff
mov ecx, esi
add ecx, 4
mov dword [esp], ecx
cmovae eax, ecx
mov ecx, dword [edi + 4]
cmp eax, ecx
jbe 0x4aa654
mov edx, dword [edi + 8]
sub eax, edx
sub ecx, edx
cmp ecx, eax
jb 0x4aa6c7
mov edx, dword [esp + 4]
mov eax, dword [edi + 8]
bswap edx
cmp eax, esi
jae 0x4aa67e
mov ecx, esi
sub ecx, eax
add eax, dword [edi]
push ecx
push 0
push eax
mov dword [esp + 0x10], edx
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x10]
add esp, 0xc
mov dword [edi + 8], esi
mov eax, dword [edi]
mov dword [eax + esi], edx
mov eax, dword [esp]
cmp eax, dword [edi + 8]
jbe 0x4aa68e
mov dword [edi + 8], eax
mov eax, dword [esp + 8]
add esi, 4
adc ebx, 0
mov dword [ebp], esi
mov dword [ebp + 4], ebx
mov dword [eax], 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 0x4aa4bb
jmp 0x4aa4d1
mov ecx, edi
push eax
call fcn.00720870
add esp, 4
jmp 0x4aa654