Function at 0x4aa4f0
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.00476b40
test al, al
je 0x4aa539
test edi, edi
je 0x4aa543
push 1
push ebp
mov ecx, edi
call fcn.0040e010
test eax, eax
jne 0x4aa543
pop edi
xor eax, eax
pop ebp
add esp, 0x40
ret 0xc
mov ecx, edi
call fcn.004b5360
mov ecx, dword [edi + 0xc74]
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 0x4aa572
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
push ebx
mov ecx, eax
push esi
and ecx, 0xfffffff8
call fcn.0043c840
mov dword [esp + 0x40], eax
cmp byte [ebp + 0x25], 7
jne 0x4aa62e
mov ebx, dword [esp + 0x54]
mov edx, ebx
and edx, 7
cmp dl, 7
mov eax, ebx
jne 0x4aa5a2
and eax, 0xfffffff8
mov eax, dword [eax + 0xc]
and eax, 0xfffffff8
mov eax, dword [eax + 8]
test eax, eax
je 0x4aa5b0
mov esi, dword [eax]
jmp 0x4aa5b4
mov esi, dword [esp + 0x54]
test eax, eax
je 0x4aa5c9
mov ecx, ebp
call fcn.004aa090
cmp eax, esi
jg 0x4aa62e
push 1
inc esi
push esi
jmp 0x4aa627
mov ecx, dword [esp + 0x1c]
mov edx, dword [edi + 0xd24]
push ecx
push edx
push ebx
call fcn.004266a0
add esp, 0xc
test al, al
je 0x4aa5f3
mov eax, dword [esp + 0x58]
push 0
push eax
mov ecx, edi
call fcn.00405d00
push eax
jmp 0x4aa627
cmp dword [esp + 0x28], 7
jge 0x4aa632
mov edx, dword [esp + 0x40]
push 0
push 0xa
lea ecx, [esp + 0x44]
push ecx
push edx
call fcn.004b2730
add esp, 0x10
test eax, eax
je 0x4aa62e
mov ecx, ebp
call fcn.004aa090
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jg 0x4aa62e
push 1
inc ecx
push ecx
mov ecx, ebp
call fcn.004aee40
mov ebx, dword [esp + 0x54]
mov al, byte [esp + 0x1c]
test al, al
mov ecx, ebp
je 0x4aa644
push ebx
call fcn.004a7f00
jmp 0x4aa64c
push 0
push ebx
call fcn.004a7ce0
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 0x4aa6a3
mov ecx, dword [edx + 8]
mov eax, ecx
and eax, 3
test cl, 4
jne 0x4aa673
mov ecx, eax
jmp 0x4aa680
mov ecx, dword [edx + 8]
and ecx, 0xfffffff8
mov cx, word [ecx + 6]
or cx, ax
shr cl, 2
test cl, 1
je 0x4aabcd
test byte [esp + 0x5c], 0x40
jne 0x4aabcd
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 0x4aa783
mov ecx, ebp
mov dword [esp + 0x30], ebx
call fcn.004a7fe0
mov esi, eax
cmp esi, ebx
je 0x4aa783
mov edi, edi
test byte [esi + 0x24], 1
je 0x4aa74f
mov al, byte [esp + 0x1c]
test al, al
mov ecx, esi
je 0x4aa6ec
mov edx, dword [esp + 0x54]
push edx
call fcn.004a7f00
jmp 0x4aa6f6
mov eax, dword [esp + 0x54]
push eax
call fcn.004a7e90
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, esi
mov edi, eax
call fcn.004a9f00
test edi, edi
mov ebx, eax
je 0x4aa72b
test ebx, ebx
je 0x4aa72b
or dword [esp + 0x24], 1
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], edx
call fcn.00452260
test al, al
jne 0x4aa72b
mov al, 1
jmp 0x4aa72d
xor al, al
test byte [esp + 0x24], 1
je 0x4aa739
and dword [esp + 0x24], 0xfffffffe
test al, al
je 0x4aa74f
mov ecx, edi
call fcn.004559a0
test al, al
je 0x4aa772
cmp dword [esp + 0x28], 8
jge 0x4aa772
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 0x100
mov dword [esp + 0x30], eax
jge 0x4aa7c0
mov ecx, esi
call fcn.004a7fe0
mov esi, eax
test esi, esi
jne 0x4aa6d0
jmp 0x4aa783
test edi, edi
mov dword [esp + 0x14], edi
mov byte [esp + 0x12], 1
jne 0x4aabcd
mov edx, dword [ebp + 0x20]
cmp dword [ebp + 0x1c], edx
jb 0x4aa999
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 0x4aa809
mov ecx, dword [ebp + 0x18]
mov esi, edx
add ecx, 8
mov dword [esp + 0x14], esi
mov eax, dword [ecx]
test al, 4
jne 0x4aa7f1
test eax, 0xfffffff8
jmp 0x4aa7f7
mov esi, dword [esp + 0x18]
push 0
push 0
push 3
lea ecx, [esi + 0x24]
call fcn.004580f0
mov eax, dword [esi]
push 0x9d
push 3
push esi
call dword [eax + 0xe0]
add esp, 0xc
mov dword [esi + 0x718], 1
jmp 0x4aa783
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4aa7ff
inc edi
add ecx, 0xc
dec esi
jne 0x4aa7b3
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 0x4aa838
mov ecx, dword [esp + 0x34]
push 3
push 3
add edx, edx
push 0xc
push edx
mov dword [esp + 0x48], edx
call fcn.005db990
mov ebx, eax
jmp 0x4aa83c
mov dword [esp + 0x38], edx
mov esi, dword [ebp + 0x18]
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x24], eax
je 0x4aa871
cmp edi, dword [ebp + 0x20]
jne 0x4aa871
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 0x4aa90d
cmp dword [ebp + 0x20], eax
mov dword [esp + 0x44], 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jbe 0x4aa904
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 0x4aa8a4
test eax, 0xfffffff8
jmp 0x4aa8aa
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4aa8f1
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 0x4aa8f1
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 0x4aa890
lea ecx, [esp + 0x44]
call fcn.00476c80
mov eax, dword [ebp + 0x18]
cmp ebx, eax
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x1c], ecx
je 0x4aa925
mov ecx, dword [esp + 0x34]
push eax
call fcn.005dc420
cmp dword [ebp + 0x18], ebx
jne 0x4aa933
test ebx, ebx
jne 0x4aa933
mov dword [ebp + 0x18], ebx
jmp 0x4aa940
lea eax, [ebp + 0x18]
push ebx
push eax
call fcn.005dd250
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 0x4aa999
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x14]
je 0x4aa999
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 0x4aa999
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x18]
push edi
push esi
push ecx
mov ecx, dword [ebp + 0x14]
call fcn.004a64a0
mov eax, dword [ebp + 0x1c]
inc esi
cmp esi, eax
jb 0x4aa983
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.00476c80
mov eax, dword [esp + 0x54]
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x4aa9c2
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 0x4aaa09
test esi, esi
je 0x4aaa09
push ebx
call fcn.004521b0
add esp, 4
test eax, eax
je 0x4aaa09
push esi
mov ecx, edi
call fcn.005dbfd0
test eax, eax
je 0x4aaa09
push esi
push ebx
mov ecx, edi
call fcn.005dcae0
mov ebx, dword [esp + 0x14]
add ebx, 8
push ebp
push ebx
mov ecx, edi
mov dword [esp + 0x38], ebx
call fcn.005db400
mov esi, dword [esp + 0x5c]
xor edi, edi
cmp si, di
je 0x4aaa5e
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 0x4aaa5e
test cl, 4
jne 0x4aaa4d
mov ecx, dword [esp + 0x14]
call fcn.004a6660
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.004566c0
test eax, eax
je 0x4aaaaf
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.00458a80
test eax, eax
je 0x4aaab3
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 0x4aaab3
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 0x14]
test ecx, ecx
lea ebx, [edi + 0x14]
je 0x4aaad4
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + 0x1c]
push eax
mov eax, dword [edi + 0x18]
push edx
push eax
call fcn.004a64a0
jmp 0x4aab58
cmp dword [edi + 0x1c], 8
jb 0x4aab58
mov eax, dword [ebp + 0x1c]
push 0
push eax
push 0x14
call fcn.005ddc40
add esp, 0xc
test eax, eax
je 0x4aaafd
push 0x10
mov ecx, eax
call fcn.004a6420
jmp 0x4aaaff
xor eax, eax
cmp dword [ebx], eax
jne 0x4aab0b
test eax, eax
jne 0x4aab0b
mov dword [ebx], eax
jmp 0x4aab15
push eax
push ebx
call fcn.005dd250
add esp, 8
mov eax, dword [edi + 0x20]
xor esi, esi
test eax, eax
jbe 0x4aab58
xor ebp, ebp
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx + ebp + 8]
test al, 4
jne 0x4aab32
test eax, 0xfffffff8
jmp 0x4aab38
and eax, 0xfffffff8
cmp dword [eax], 0
setne al
test al, al
je 0x4aab4d
mov edx, dword [esp + 0x1c]
push edx
push esi
push ecx
mov ecx, dword [ebx]
call fcn.004a64a0
mov eax, dword [edi + 0x20]
inc esi
add ebp, 0xc
cmp esi, eax
jb 0x4aab20
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 0x4aab72
xor ebx, ebx
jmp 0x4aabcd
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x128]
mov ecx, dword [eax + 0xc74]
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.004a5960
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*8]
cmp dword [eax], 0
je 0x4aaba9
mov edi, dword [eax + 4]
test edi, edi
mov ebx, edi
je 0x4aabcd
mov esi, dword [esp + 0x30]
test byte [esi], 4
jne 0x4aabc1
mov ecx, dword [esp + 0x14]
call fcn.004a6660
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 0x4aabe4
mov eax, edi
jmp 0x4aabf0
mov eax, esi
and eax, 0xfffffff8
movzx eax, word [eax + 6]
or ax, di
shr eax, 0xb
test al, 1
je 0x4aae22
test ebx, ebx
jne 0x4aac0f
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004a9f00
mov ebx, eax
test ebp, ebp
jne 0x4aac17
mov esi, edi
jmp 0x4aac21
and esi, 0xfffffff8
movzx esi, word [esi + 6]
or si, di
mov edx, esi
shr edx, 0xc
test dl, 1
je 0x4aac80
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x560]
test eax, eax
je 0x4aac80
cmp byte [eax + 0x39], 8
jae 0x4aac80
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.004252d0
lea edx, [esp + 0x34]
push edx
lea ecx, [ebx + 0xc]
call fcn.004252d0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4aac7b
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 0x4aac9a
mov ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004a9f00
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 0x4aacbf
mov eax, dword [eax + 0x20]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
cmp edx, ecx
mov byte [esp + 0x13], 1
jb 0x4aacc4
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 0x4aace9
mov ecx, edi
call fcn.004a8900
mov ebp, eax
test esi, esi
je 0x4aad19
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.004aa350
test ebp, ebp
je 0x4aad19
push 0
mov ecx, ebp
call fcn.004a12b0
test eax, eax
je 0x4aa697
mov al, byte [ebx + 0x11]
test al, al
jne 0x4aadd6
cmp byte [ebx + 0x10], 0x40
ja 0x4aadd6
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004c0960
mov esi, eax
test esi, esi
je 0x4aadd6
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004150f0
cmp dword [esp + 0x28], 7
jl 0x4aad5f
inc byte [ebx + 0x10]
jmp 0x4aad63
mov byte [ebx + 0x11], 1
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x128]
mov ecx, dword [eax + 0xcc0]
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.004b8830
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x6e0]
test eax, eax
jbe 0x4aadb1
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 0x4aadbd
dec byte [ebx + 0x10]
jmp 0x4aadc1
mov byte [ebx + 0x11], 0
test ebp, ebp
je 0x4aadd6
push 0
mov ecx, ebp
call fcn.004a12b0
test eax, eax
je 0x4aa697
mov al, byte [esp + 0x13]
test al, al
je 0x4aae22
mov edx, dword [esp + 0x30]
cmp edx, dword [edi + 0x18]
jne 0x4aadf4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmp dword [ecx + 8], eax
je 0x4aae22
mov al, byte [esp + 0x1c]
test al, al
mov ecx, edi
je 0x4aae0a
mov edx, dword [esp + 0x54]
push edx
call fcn.004a7f00
jmp 0x4aae16
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.004a7ce0
test eax, eax
mov dword [esp + 0x14], eax
je 0x4aa697
mov edx, dword [esp + 0x28]
cmp edx, 6
mov ecx, dword [esp + 0x5c]
jge 0x4aae61
test cl, cl
js 0x4aae47
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4aae47
and eax, 0xfffffff8
add eax, 6
and byte [eax], 0x7f
test ch, 4
jne 0x4aae61
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
test al, 4
je 0x4aae61
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfb
cmp edx, 8
jge 0x4aae80
test ch, 0x10
jne 0x4aae80
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
test al, 4
je 0x4aae80
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 0x4aaeae
mov edx, dword [esp + 0x58]
push edx
push ebp
mov ecx, ebx
call fcn.004a60b0
mov eax, dword [ebp + 8]
test al, 4
je 0x4aaeae
and eax, 0xfffffff8
add eax, 6
and byte [eax + 1], 0xfe
mov ecx, dword [esp + 0x40]
mov ax, word [ecx]
cmp ax, 0x6f
jne 0x4aaef5
cmp word [ecx + 2], 0x6e
jne 0x4aaef5
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
push esi
push eax
call fcn.00402060
add esp, 8
cmp eax, 0xffffffff
je 0x4ab01a
mov ecx, eax
mov edx, 1
shl edx, cl
mov byte [esi + 0xc55], 1
or dword [ebx + 0x28], edx
jmp 0x4ab01a
cmp ax, 0x5f
jne 0x4ab01a
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xd10]
push eax
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.004266a0
add esp, 0xc
test al, al
je 0x4aafce
mov edx, dword [ebp]
mov ecx, edx
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x4aaf3e
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4aaf48
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x4aafae
mov eax, edx
mov ecx, eax
and ecx, 7
cmp cl, 7
jne 0x4aaf5f
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.00425220
push eax
mov ecx, edi
call fcn.005dd180
mov eax, dword [esp + 0x18]
mov cl, byte [eax + 0xc55]
test cl, cl
jne 0x4aafce
mov esi, dword [esi]
test esi, esi
je 0x4aafce
mov ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x4aafa5
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x4aaf95
jmp 0x4aafce
mov byte [eax + 0xc55], 1
jmp 0x4aafce
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.00425220
push eax
mov ecx, esi
call fcn.005dd180
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xd20]
push edx
mov edx, dword [esp + 0x58]
push ecx
push edx
call fcn.004266a0
add esp, 0xc
test al, al
je 0x4ab01a
mov ecx, dword [ebp]
mov eax, ecx
and eax, 7
cmp eax, 7
jne 0x4ab007
and ecx, 0xfffffff8
mov ecx, dword [ecx + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4ab011
and ecx, 0x1f
mov eax, ecx
cmp eax, 6
jne 0x4ab01a
or byte [ebx + 0x24], 4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x7f8]
test ecx, ecx
jne 0x4ab0b8
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x4ab04c
test byte [ebp + 8], 4
jne 0x4ab040
mov ecx, ebp
call fcn.004a6660
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 0x4ab085
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x4ab085
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x4ab085
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.00459ce0
mov eax, dword [ebp + 8]
mov ecx, eax
and ecx, 3
test al, 4
jne 0x4ab095
mov eax, ecx
jmp 0x4ab09f
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.0045a060
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov esi, eax
test esi, esi
je 0x4ab1e8
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x5a0]
test eax, eax
je 0x4ab1e8
lea edx, [esp + 0x5c]
push edx
mov ecx, ebp
call fcn.00476ab0
mov edx, dword [esp + 0x5c]
mov eax, edx
and eax, 7
cmp eax, 7
mov ecx, edx
jne 0x4ab104
mov eax, edx
and eax, 0xfffffff8
mov ecx, dword [eax + 0xc]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x4ab10e
and ecx, 0x1f
mov eax, ecx
cmp eax, 5
je 0x4ab1cc
mov ecx, dword [ebx + 0x18]
cmp ebp, ecx
mov dword [esp + 0x30], ecx
jb 0x4ab133
mov eax, dword [ebx + 0x20]
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
cmp ebp, eax
jae 0x4ab133
mov bl, 1
jmp 0x4ab135
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.004c3420
mov esi, eax
push esi
lea eax, [esp + 0x40]
push eax
mov ecx, ebp
call fcn.004bfd80
test bl, bl
mov ecx, dword [eax]
mov dword [esp + 0x5c], ecx
je 0x4ab1ae
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
cmp edx, dword [ecx + 0x18]
jne 0x4ab180
mov eax, dword [esp + 0x40]
cmp dword [edi + 8], eax
je 0x4ab1ae
mov al, byte [esp + 0x1c]
test al, al
je 0x4ab194
mov edx, dword [esp + 0x54]
push edx
call fcn.004a7f00
jmp 0x4ab1a0
mov eax, dword [esp + 0x54]
push 0
push eax
call fcn.004a7ce0
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x4aa697
mov ecx, dword [esp + 0x5c]
push ecx
push ebp
mov ecx, edi
call fcn.00477170
push esi
call fcn.005ddc00
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.004a75f0
pop esi
pop ebx
pop edi
mov eax, ebp
pop ebp
add esp, 0x40
ret 0xc