Function at 0x4aa230
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x40
push ebp
mov ebp, ecx
mov eax, ebp
and eax, 0xfffff000
mov dword [esp + 0x20], eax
mov eax, dword [eax]
push edi
mov edi, dword [eax + 0x128]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], edi
call fcn.00476960
test al, al
je 0x4aa279
test edi, edi
je 0x4aa283
push 1
push ebp
mov ecx, edi
call fcn.0040dfe0
test eax, eax
jne 0x4aa283
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov ecx, edi
call fcn.004b4e00
mov ecx, dword [edi + 0xc70]
mov dl, byte [ecx + 0x215]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
mov ecx, eax
and ecx, 7
cmp cl, 7
mov byte [esp + 0x14], dl
jne 0x4aa2b2
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
push ebx
mov ecx, eax
push esi
and ecx, 0xfffffff8
call fcn.0043c6d0
mov dword [esp + 0x40], eax
cmp byte [ebp + 0x25], 7
jne 0x4aa36e
mov ebx, dword [esp + 0x54]
mov edx, ebx
and edx, 7
cmp dl, 7
mov eax, ebx
jne 0x4aa2e2
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
and eax, 0xfffffff8
mov eax, dword [eax + 8]
test eax, eax
je 0x4aa2f0
mov esi, dword [eax]
jmp 0x4aa2f4
mov esi, dword [esp + 0x54]
test eax, eax
je 0x4aa309
mov ecx, ebp
call fcn.004a9dd0
cmp eax, esi
jg 0x4aa36e
push 1
inc esi
push esi
jmp 0x4aa367
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi + 0xd20]
push ecx
push edx
push ebx
call fcn.00426670
add esp, 0xc
test al, al
je 0x4aa333
mov eax, dword [esp + 0x58]
push 0
push eax
mov ecx, edi
call fcn.00405d20
push eax
jmp 0x4aa367
cmp dword [esp + 0x28], 7
jge 0x4aa372
mov edx, dword [esp + 0x40]
push 0
push 0xa
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.004b2370
add esp, 0x10
test eax, eax
je 0x4aa36e
mov ecx, ebp
call fcn.004a9dd0
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jg 0x4aa36e
push 1
inc ecx
push ecx
mov ecx, ebp
call fcn.004aeaf0
mov ebx, dword [esp + 0x54]
mov al, byte [esp + 0x1c]
test al, al
mov ecx, ebp
je 0x4aa384
push ebx
call fcn.004a7d40
jmp 0x4aa38c
push 0
push ebx
call fcn.004a7b20
mov edx, eax
xor ebx, ebx
cmp edx, ebx
mov dword [esp + 0x14], edx
mov byte [esp + 0x3c], 0
mov byte [esp + 0x12], 0
je 0x4aa3e3
mov ecx, dword [edx + 8]
mov eax, ecx
and eax, 3
test cl, 4
jne 0x4aa3b3
mov ecx, eax
jmp 0x4aa3c0
mov ecx, dword [edx + 8]
and ecx, 0xfffffff8
mov cx, word [ecx + 6]
or cx, ax
shr cl, 2
test cl, 1
je 0x4aa90d
test byte [esp + 0x5c], 0x40
jne 0x4aa90d
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov eax, dword [esp + 0x5c]
and eax, 0xffbf
test ah, 2
mov dword [esp + 0x5c], eax
jne 0x4aa4c3
mov ecx, ebp
mov dword [esp + 0x30], ebx
call fcn.004a7e20
mov esi, eax
cmp esi, ebx
je 0x4aa4c3
mov edi, edi
test byte [esi + 0x24], 1
je 0x4aa48f
mov al, byte [esp + 0x1c]
test al, al
mov ecx, esi
je 0x4aa42c
mov edx, dword [esp + 0x54]
push edx
call fcn.004a7d40
jmp 0x4aa436
mov eax, dword [esp + 0x54]
push eax
call fcn.004a7cd0
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, esi
mov edi, eax
call fcn.004a9c40
test edi, edi
mov ebx, eax
je 0x4aa46b
test ebx, ebx
je 0x4aa46b
or dword [esp + 0x24], 1
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
call fcn.00452170
test al, al
jne 0x4aa46b
mov al, 1
jmp 0x4aa46d
xor al, al
test byte [esp + 0x24], 1
je 0x4aa479
and dword [esp + 0x24], 0xfffffffe
test al, al
je 0x4aa48f
mov ecx, edi
call fcn.00455880
test al, al
je 0x4aa4b2
cmp dword [esp + 0x28], 8
jge 0x4aa4b2
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 0x100
mov dword [esp + 0x30], eax
jge 0x4aa500
mov ecx, esi
call fcn.004a7e20
mov esi, eax
test esi, esi
jne 0x4aa410
jmp 0x4aa4c3
test edi, edi
mov dword [esp + 0x14], edi
mov byte [esp + 0x12], 1
jne 0x4aa90d
mov edx, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], edx
jb 0x4aa6d9
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
xor edi, edi
test edx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edi
jbe 0x4aa549
mov ecx, dword [ebp + 0x18]
mov esi, edx
add ecx, 8
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
test al, 4
jne 0x4aa531
test eax, 0xfffffff8
jmp 0x4aa537
mov esi, dword [esp + 0x18]
push 0
push 0
push 3
lea ecx, [esi + 0x24]
call fcn.00457f20
mov eax, dword [esi]
push 0x9d
push 3
push esi
call dword [eax + 0xe0]
add esp, 0xc
mov dword [esi + 0x718], 1
jmp 0x4aa4c3
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4aa53f
inc edi
add ecx, 0xc
dec esi
jne 0x4aa4f3
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x30]
mov ebx, dword [ebp + 0x18]
lea ecx, [edx + edx*2]
lea eax, [edi*4]
cmp eax, ecx
jb 0x4aa578
mov ecx, dword [esp + 0x34]
push 3
push 3
add edx, edx
push 0xc
push edx
mov dword [esp + 0x48], edx
call fcn.005db0e0
mov ebx, eax
jmp 0x4aa57c
mov dword [esp + 0x38], edx
mov esi, dword [ebp + 0x18]
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x24], eax
je 0x4aa5b1
cmp edi, dword [ebp + 0x20]
jne 0x4aa5b1
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*2]
shl ecx, 2
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x24], eax
jmp 0x4aa64d
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x44], 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jbe 0x4aa644
xor edx, edx
mov esi, ebx
mov edi, edi
mov eax, dword [ebp + 0x18]
lea ecx, [edx + eax]
mov eax, dword [ecx + 8]
test al, 4
jne 0x4aa5e4
test eax, 0xfffffff8
jmp 0x4aa5ea
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4aa631
mov edi, dword [esp + 0x24]
mov eax, esi
inc edi
add esi, 0xc
cmp ecx, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], esi
je 0x4aa631
mov esi, ecx
mov edi, dword [esi]
mov dword [eax], edi
mov edi, dword [esi + 4]
mov dword [eax + 4], edi
mov esi, dword [esi + 8]
mov dword [eax + 8], esi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x20]
inc eax
add edx, 0xc
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x4aa5d0
lea ecx, [esp + 0x44]
call fcn.00476aa0
mov eax, dword [ebp + 0x18]
cmp ebx, eax
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x1c], ecx
je 0x4aa665
mov ecx, dword [esp + 0x34]
push eax
call fcn.005dbb70
cmp dword [ebp + 0x18], ebx
jne 0x4aa673
test ebx, ebx
jne 0x4aa673
mov dword [ebp + 0x18], ebx
jmp 0x4aa680
lea eax, [ebp + 0x18]
push ebx
push eax
call fcn.005dc9a0
add esp, 8
mov edx, dword [esp + 0x38]
mov dword [ebp + 0x20], edx
mov edx, dword [ebp + 0x14]
test edx, edx
mov dword [ebp + 0x10], ebx
je 0x4aa6d9
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
je 0x4aa6d9
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
shl ecx, 2
mov esi, ecx
shr ecx, 2
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
xor esi, esi
rep stosb byte es:[edi], al
mov dword [edx + 0xc], esi
cmp dword [ebp + 0x1c], esi
jbe 0x4aa6d9
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edi
push esi
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.004a62a0
mov eax, dword [ebp + 0x1c]
inc esi
cmp esi, eax
jb 0x4aa6c3
mov eax, dword [ebp + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x18]
lea ecx, [eax + edx*4]
mov dword [esp + 0x14], ecx
call fcn.00476aa0
mov eax, dword [esp + 0x54]
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x4aa702
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx]
mov edx, dword [esp + 0x20]
mov ebx, dword [edx + 0x18]
and eax, 0xfffffff8
mov ebp, eax
mov al, byte [edi + 0x109]
mov esi, ebp
and esi, 0xfffffff8
test al, al
je 0x4aa749
test esi, esi
je 0x4aa749
push ebx
call fcn.004520c0
add esp, 4
test eax, eax
je 0x4aa749
push esi
mov ecx, edi
call fcn.005db720
test eax, eax
je 0x4aa749
push esi
push ebx
mov ecx, edi
call fcn.005dc230
mov ebx, dword [esp + 0x14]
add ebx, 8
push ebp
push ebx
mov ecx, edi
mov dword [esp + 0x38], ebx
call fcn.005dab50
mov esi, dword [esp + 0x5c]
xor edi, edi
cmp si, di
je 0x4aa79e
mov ebp, dword [ebx]
movzx eax, si
mov edx, eax
and edx, 3
or ebp, edx
test eax, 0xfffffffc
mov dword [ebx], ebp
mov ecx, ebp
je 0x4aa79e
test cl, 4
jne 0x4aa78d
mov ecx, dword [esp + 0x14]
call fcn.004a6460
mov eax, dword [ebx]
and eax, 0xfffffff8
add eax, 6
and esi, 0xfffc
or word [eax], si
mov ebp, dword [esp + 0x18]
lea esi, [ebp + 0x24]
mov ecx, esi
call fcn.00456590
test eax, eax
je 0x4aa7ef
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x28]
push edx
push edi
mov ecx, esi
call fcn.004588b0
test eax, eax
je 0x4aa7f3
mov eax, dword [esp + 0x14]
mov cx, word [esp + 0x38]
mov dx, word [esp + 0x34]
mov word [eax + 4], cx
mov word [eax + 6], dx
jmp 0x4aa7f3
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 0x14]
test ecx, ecx
lea ebx, [edi + 0x14]
je 0x4aa814
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0x1c]
push eax
mov eax, dword [edi + 0x18]
push edx
push eax
call fcn.004a62a0
jmp 0x4aa898
cmp dword [edi + 0x1c], 8
jb 0x4aa898
mov eax, dword [ebp + 0x1c]
push 0
push eax
push 0x14
call fcn.005dd390
add esp, 0xc
test eax, eax
je 0x4aa83d
push 0x10
mov ecx, eax
call fcn.004a6220
jmp 0x4aa83f
xor eax, eax
cmp dword [ebx], eax
jne 0x4aa84b
test eax, eax
jne 0x4aa84b
mov dword [ebx], eax
jmp 0x4aa855
push eax
push ebx
call fcn.005dc9a0
add esp, 8
mov eax, dword [edi + 0x20]
xor esi, esi
test eax, eax
jbe 0x4aa898
xor ebp, ebp
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + ebp + 8]
test al, 4
jne 0x4aa872
test eax, 0xfffffff8
jmp 0x4aa878
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4aa88d
mov edx, dword [esp + 0x1c]
push edx
push esi
push ecx
mov ecx, dword [ebx]
call fcn.004a62a0
mov eax, dword [edi + 0x20]
inc esi
add ebp, 0xc
cmp esi, eax
jb 0x4aa860
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x4c]
inc ecx
mov dword [edi + 0x1c], ecx
mov esi, dword [eax + 8]
test esi, esi
mov byte [esp + 0x3c], 1
jne 0x4aa8b2
xor ebx, ebx
jmp 0x4aa90d
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x128]
mov ecx, dword [eax + 0xc70]
mov eax, dword [esp + 0x54]
xor edx, edx
mov dl, byte [ecx + 0x215]
mov ecx, esi
xor edi, edi
push edx
push eax
call fcn.004a5730
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*8]
cmp dword [eax], 0
je 0x4aa8e9
mov edi, dword [eax + 4]
test edi, edi
mov ebx, edi
je 0x4aa90d
mov esi, dword [esp + 0x30]
test byte [esi], 4
jne 0x4aa901
mov ecx, dword [esp + 0x14]
call fcn.004a6460
mov eax, dword [esi]
and eax, 0xfffffff8
add eax, 6
or byte [eax + 1], 8
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 8]
mov edi, esi
mov ebp, esi
and edi, 3
and ebp, 4
jne 0x4aa924
mov eax, edi
jmp 0x4aa930
mov eax, esi
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, di
shr eax, 0xb
test al, 1
je 0x4aab62
test ebx, ebx
jne 0x4aa94f
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004a9c40
mov ebx, eax
test ebp, ebp
jne 0x4aa957
mov esi, edi
jmp 0x4aa961
and esi, 0xfffffff8
movzx esi, word [esi + 6]
or si, di
mov edx, esi
shr edx, 0xc
test dl, 1
je 0x4aa9c0
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x560]
test eax, eax
je 0x4aa9c0
cmp byte [eax + 0x39], 8
jae 0x4aa9c0
lea ecx, [esp + 0x38]
mov eax, 2
push ecx
lea ecx, [ebx + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call fcn.00425280
lea edx, [esp + 0x34]
push edx
lea ecx, [ebx + 0xc]
call fcn.00425280
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4aa9bb
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xf7
mov byte [esp + 0x12], 0
mov al, byte [esp + 0x12]
test al, al
mov esi, ebx
je 0x4aa9da
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004a9c40
mov esi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x14]
cmp edx, ecx
mov dword [esp + 0x30], ecx
jb 0x4aa9ff
mov eax, dword [eax + 0x20]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
cmp edx, ecx
mov byte [esp + 0x13], 1
jb 0x4aaa04
mov byte [esp + 0x13], 0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov edi, dword [esp + 0x20]
mov edx, dword [edi]
mov ecx, edi
mov dword [esp + 0x38], eax
xor ebp, ebp
call dword [edx + 8]
test eax, eax
je 0x4aaa29
mov ecx, edi
call fcn.004a8740
mov ebp, eax
test esi, esi
je 0x4aaa59
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
push esi
mov ecx, edi
call fcn.004aa090
test ebp, ebp
je 0x4aaa59
push 0
mov ecx, ebp
call fcn.004a10b0
test eax, eax
je 0x4aa3d7
mov al, byte [ebx + 0x11]
test al, al
jne 0x4aab16
cmp byte [ebx + 0x10], 0x40
ja 0x4aab16
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004bffc0
mov esi, eax
test esi, esi
je 0x4aab16
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
call fcn.00415110
cmp dword [esp + 0x28], 7
jl 0x4aaa9f
inc byte [ebx + 0x10]
jmp 0x4aaaa3
mov byte [ebx + 0x11], 1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x128]
mov ecx, dword [eax + 0xcbc]
push 0
push 0
push 0
push esi
push 0
push 1
push ecx
mov ecx, dword [esp + 0x34]
push 0
push edi
call fcn.004b7f90
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x6e0]
test eax, eax
jbe 0x4aaaf1
dec eax
mov ecx, edx
mov dword [ecx + 0x6e0], eax
mov ecx, dword [ecx + 0x6e8]
mov dword [ecx + eax*4], 2
cmp dword [esp + 0x28], 7
jl 0x4aaafd
dec byte [ebx + 0x10]
jmp 0x4aab01
mov byte [ebx + 0x11], 0
test ebp, ebp
je 0x4aab16
push 0
mov ecx, ebp
call fcn.004a10b0
test eax, eax
je 0x4aa3d7
mov al, byte [esp + 0x13]
test al, al
je 0x4aab62
mov edx, dword [esp + 0x30]
cmp edx, dword [edi + 0x18]
jne 0x4aab34
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmp dword [ecx + 8], eax
je 0x4aab62
mov al, byte [esp + 0x1c]
test al, al
mov ecx, edi
je 0x4aab4a
mov edx, dword [esp + 0x54]
push edx
call fcn.004a7d40
jmp 0x4aab56
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.004a7b20
test eax, eax
mov dword [esp + 0x14], eax
je 0x4aa3d7
mov edx, dword [esp + 0x28]
cmp edx, 6
mov ecx, dword [esp + 0x5c]
jge 0x4aaba1
test cl, cl
js 0x4aab87
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4aab87
and eax, 0xfffffff8
add eax, 6
and byte [eax], 0x7f
test ch, 4
jne 0x4aaba1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4aaba1
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfb
cmp edx, 8
jge 0x4aabc0
test ch, 0x10
jne 0x4aabc0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
test al, 4
je 0x4aabc0
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xef
mov al, byte [esp + 0x12]
test al, al
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
jne 0x4aabee
mov edx, dword [esp + 0x58]
push edx
push ebp
mov ecx, ebx
call fcn.004a5eb0
mov eax, dword [ebp + 8]
test al, 4
je 0x4aabee
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfe
mov ecx, dword [esp + 0x40]
mov ax, word [ecx]
cmp ax, 0x6f
jne 0x4aac35
cmp word [ecx + 2], 0x6e
jne 0x4aac35
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
push esi
push eax
call fcn.004020d0
add esp, 8
cmp eax, 0xffffffff
je 0x4aad5a
mov ecx, eax
mov edx, 1
shl edx, cl
mov byte [esi + 0xc51], 1
or dword [ebx + 0x28], edx
jmp 0x4aad5a
cmp ax, 0x5f
jne 0x4aad5a
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xd0c]
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00426670
add esp, 0xc
test al, al
je 0x4aad0e
mov edx, dword [ebp]
mov ecx, edx
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x4aac7e
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4aac88
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x4aacee
mov eax, edx
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x4aac9f
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
lea esi, [ebx + 0xc]
and eax, 0xfffffff8
mov edx, esi
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push esi
push esi
mov ecx, edi
call fcn.004251d0
push eax
mov ecx, edi
call fcn.005dc8d0
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xc51]
test cl, cl
jne 0x4aad0e
mov esi, dword [esi]
test esi, esi
je 0x4aad0e
mov ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x4aace5
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4aacd5
jmp 0x4aad0e
mov byte [eax + 0xc51], 1
jmp 0x4aad0e
lea eax, [ebx + 0xc]
mov ecx, eax
and ecx, 0xfffff000
mov esi, dword [ecx]
push 0
push eax
push eax
mov ecx, esi
call fcn.004251d0
push eax
mov ecx, esi
call fcn.005dc8d0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xd1c]
push edx
mov edx, dword [esp + 0x58]
push ecx
push edx
call fcn.00426670
add esp, 0xc
test al, al
je 0x4aad5a
mov ecx, dword [ebp]
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x4aad47
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4aad51
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x4aad5a
or byte [ebx + 0x24], 4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x7f8]
test ecx, ecx
jne 0x4aadf8
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x4aad8c
test byte [ebp + 8], 4
jne 0x4aad80
mov ecx, ebp
call fcn.004a6460
mov eax, dword [ebp + 8]
and eax, 0xfffffff8
add eax, 6
or byte [eax], 0x20
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x60]
add esi, 0x24
test eax, eax
je 0x4aadc5
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x4aadc5
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x4aadc5
mov eax, 2
push eax
push ebp
push eax
push 0
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
mov dword [esp + 0x70], eax
call fcn.00459b10
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x4aadd5
mov eax, ecx
jmp 0x4aaddf
and eax, 0xfffffff8
mov ax, word [eax + 6]
or ax, cx
mov ecx, dword [esp + 0x54]
movzx edx, ax
push edx
mov edx, dword [ebx + 0x48]
lea eax, [esp + 0x5c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00459e90
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov esi, eax
test esi, esi
je 0x4aaf28
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x5a0]
test eax, eax
je 0x4aaf28
lea edx, [esp + 0x5c]
push edx
mov ecx, ebp
call fcn.004768d0
mov edx, dword [esp + 0x5c]
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x4aae44
mov eax, edx
and eax, 0xfffffff8
mov ecx, dword [eax + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4aae4e
and ecx, 0x1f
mov eax, ecx
cmp eax, 5
je 0x4aaf0c
mov ecx, dword [ebx + 0x18]
cmp ebp, ecx
mov dword [esp + 0x30], ecx
jb 0x4aae73
mov eax, dword [ebx + 0x20]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
cmp ebp, eax
jae 0x4aae73
mov bl, 1
jmp 0x4aae75
xor bl, bl
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x18]
push edx
mov dword [esp + 0x44], ecx
push esi
mov ecx, ebp
call fcn.004c2a90
mov esi, eax
push esi
lea eax, [esp + 0x40]
push eax
mov ecx, ebp
call fcn.004bf3e0
test bl, bl
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
je 0x4aaeee
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 0x18]
jne 0x4aaec0
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x4aaeee
mov al, byte [esp + 0x1c]
test al, al
je 0x4aaed4
mov edx, dword [esp + 0x54]
push edx
call fcn.004a7d40
jmp 0x4aaee0
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.004a7b20
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x4aa3d7
mov ecx, dword [esp + 0x5c]
push ecx
push ebp
mov ecx, edi
call fcn.00476f90
push esi
call fcn.005dd350
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp]
push eax
and ecx, 0xfffffff8
push ecx
push edx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x5b0]
call fcn.004a73f0
pop esi
pop ebx
pop edi
mov eax, ebp
pop ebp
add esp, 0x40
ret 0xc