Function at 0x4ca970
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], edi
mov eax, dword [esi + 0x54]
mov edx, dword [eax + 0x10]
sub edx, 8
mov dword [esp + 0x10], edx
cmp dword [ebp + 0x10], edi
jle 0x4caa51
mov ecx, dword [ebp + 0xc]
lea edx, [ecx*4]
lea eax, [ecx*8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
nop dword [eax + eax]
mov eax, dword [esi + 0x64]
cmp dword [edx + eax], 0
jne 0x4caa33
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0x14]
mov edi, dword [eax + 4]
cmp edi, 0xfffffff2
jae 0x4ca9e2
mov edi, 0xe
jmp 0x4ca9e4
not edi
mov eax, edi
or eax, 0x4780
mov word [esi + 0x7c], ax
mov ax, word [esi + 0x70]
add ax, cx
mov ecx, esi
add ax, word [esp + 0x18]
mov word [esi + 0x78], ax
mov eax, 4
mov word [esi + 0x7a], ax
call fcn.004e0060
mov ecx, eax
cmp edi, 2
ja 0x4caa22
imul ecx, edi, 0xffffff
add ecx, 0x7fff
mov eax, dword [esi + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [edx + eax], ecx
mov ecx, dword [ebp + 0xc]
add dword [esp + 0x14], 8
inc edi
add edx, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
cmp edi, dword [ebp + 0x10]
jl 0x4ca9c0
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, ecx
mov edi, dword [ebp + 0xc]
and eax, 6
cmp al, 6
jne 0x4caab6
dec dword [esi + 0xb8]
sar ecx, 3
cmp dword [esi + 0xb8], 0
jle 0x4cb059
sub dword [esi + 0x70], ecx
mov eax, ecx
add dword [esp + 0xc], ecx
neg eax
inc dword [ebp + 0x10]
dec ecx
shl eax, 2
add edi, ecx
add dword [esi + 0x64], eax
mov eax, dword [esi + 0x64]
mov dword [ebp + 0xc], edi
mov dword [eax + edi*4], 0x2007ffd
mov eax, dword [edx + 4]
and eax, 0xfffffff8
mov byte [esi + 0x75], 1
sub edx, eax
mov dword [esp + 0x10], edx
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 6
cmp al, 6
je 0x4caa60
cmp dword [esi + 0xb8], 0
jne 0x4cabda
cmp dword [esi + 0x60], 0
je 0x4cabda
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 0x49
je 0x4caaef
cmp eax, 0x4a
je 0x4caaef
cmp eax, 0x4b
je 0x4caaef
cmp eax, 0x4c
jne 0x4cabda
test byte [edx + 4], 3
jne 0x4cab3b
cmp dword [esi + 0x924], 0
jne 0x4cabda
cmp dword [esi + 0x928], 0
jne 0x4cabda
mov eax, dword [esi + 0x2c]
and eax, 0xff
cmp eax, 0x49
je 0x4cabda
cmp eax, 0x4a
je 0x4cabda
cmp eax, 0x4b
je 0x4cabda
cmp eax, 0x4c
je 0x4cabda
xor ecx, ecx
test edi, edi
jle 0x4cabbf
cmp edi, 4
jb 0x4cabb0
mov edx, dword [esi + 0x64]
lea eax, [esi + 0x64]
mov dword [esp + 0x20], edx
lea esi, [edx - 4]
lea esi, [esi + edi*4]
mov dword [esp + 0x24], esi
mov esi, dword [ebp + 8]
cmp edx, eax
ja 0x4cab67
cmp dword [esp + 0x24], eax
jae 0x4cabb0
mov eax, edi
and eax, 0x80000003
jns 0x4cab75
dec eax
or eax, 0xfffffffc
inc eax
sub edi, eax
add ecx, 4
cmp ecx, edi
jl 0x4cab77
lea eax, [edi + 3]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x20]
cdq
and edx, 3
lea ecx, [edx + eax]
xor eax, eax
sar ecx, 2
shl ecx, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
cmp ecx, edi
jge 0x4cabbf
nop dword [eax + eax]
mov eax, dword [esi + 0x64]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, edi
jl 0x4cabb0
mov eax, dword [ebp + 0x10]
push 0
add eax, edi
push 7
push esi
mov dword [esi + 0x6c], eax
call fcn.004cb460
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 7
cmp al, 3
jne 0x4cac16
sar ecx, 3
add dword [esi + 0xb8], 0xffffffff
js 0x4cb059
sub dword [esi + 0x70], ecx
add edi, ecx
add dword [esp + 0xc], ecx
neg ecx
shl ecx, 2
add dword [esi + 0x64], ecx
mov eax, dword [edx + 4]
and eax, 0xfffffff8
mov dword [ebp + 0xc], edi
sub edx, eax
mov dword [esp + 0x10], edx
mov ecx, dword [edx + 4]
test cl, 3
jne 0x4caea9
mov ecx, dword [ecx - 4]
mov eax, ecx
shr eax, 0x18
test eax, eax
lea edi, [eax - 1]
mov eax, edi
mov dword [esp + 0xc], edi
cmove eax, dword [ebp + 0x10]
shr ecx, 8
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
movzx eax, cl
mov ecx, edx
mov dword [esp + 0x24], eax
lea eax, [eax*8 + 8]
sub ecx, eax
mov eax, dword [ecx]
mov ecx, dword [eax + 0x10]
sub ecx, 0x40
mov dword [esp + 0x14], ecx
test byte [ecx + 0x25], 8
jne 0x4cb061
cmp dword [esi + 0xb8], 0
jne 0x4cad47
cmp dword [esi + 0x60], 0
je 0x4cad47
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 0x10]
sub eax, 8
cmp edx, eax
jne 0x4cad47
cmp word [esi + 0x44], 0
jne 0x4cad3e
movzx eax, word [esi + 0x176]
mov dword [esp + 0x20], eax
test eax, eax
je 0x4cad3e
mov edx, dword [esi + 0x10]
mov dword [esp + 0x28], edx
nop dword [eax + eax]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
cmp dword [eax], ecx
jne 0x4cad32
movzx eax, word [esi + 0x15c]
xor ecx, ecx
test eax, eax
je 0x4cad2a
mov edi, dword [esp + 0x28]
mov esi, ecx
nop
lea edx, [edi + eax*8]
movzx eax, word [edx]
lea ecx, [esi + 1]
cmp eax, dword [esp + 0x20]
movzx eax, word [edx + 6]
cmovne ecx, esi
mov esi, ecx
test eax, eax
jne 0x4cace0
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], esi
mov esi, dword [ebp + 8]
test ecx, ecx
je 0x4cad27
mov eax, dword [esi + 0x58]
cmp eax, dword [esi + 0x920]
jne 0x4cb069
mov eax, dword [esi + 0xb4]
add eax, ecx
cmp eax, dword [esi + 0x63c]
jg 0x4cad5f
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 6]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cacc0
push esi
call fcn.004c6220
add esp, 4
xor eax, eax
cmp dword [esp + 0xc], eax
jle 0x4cad96
shl edi, 2
mov edx, dword [esi + 0x64]
cmp eax, dword [ebp + 0x10]
jge 0x4cad83
mov ecx, dword [edi + edx]
jmp 0x4cad88
mov eax, dword [ebp + 0x10]
add eax, edi
push esi
mov dword [esi + 0x6c], eax
call fcn.004c6390
movzx eax, word [esi + 0x40]
push eax
push 5
push esi
call fcn.004cb460
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x7fff
mov dword [edx + eax*4 - 4], ecx
add edi, 4
inc eax
cmp eax, dword [esp + 0xc]
jl 0x4cad52
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
add eax, ecx
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0xb8]
test eax, eax
jle 0x4cadd3
dec eax
mov dword [esi + 0xb8], eax
or eax, 0xffffffff
sub eax, ecx
add dword [esi + 0x70], eax
lea eax, [ecx*4]
mov ecx, 0xfffffffc
sub ecx, eax
add dword [esi + 0x64], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x924], 0
jne 0x4cae05
cmp dword [esi + 0x928], 0
jne 0x4cae05
mov eax, dword [esi + 0x2c]
and eax, 0xff
cmp eax, 0x49
je 0x4cae05
cmp eax, 0x4a
je 0x4cae05
cmp eax, 0x4b
je 0x4cae05
cmp eax, 0x4c
jne 0x4cb071
cmp byte [esi + 0x75], 0
jne 0x4cb059
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 7]
inc eax
cmp eax, 0xfa
jae 0x4cb079
push 7
push ecx
push esi
call fcn.004e0580
mov edi, eax
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
push 0x19
push esi
call fcn.004e0790
mov ecx, 0xb85
mov word [esi + 0x78], di
add esp, 0x18
mov word [esi + 0x7c], cx
mov ecx, esi
mov word [esi + 0x7a], ax
call fcn.004e3930
mov ecx, dword [esi + 0x64]
mov eax, 0x7fff
mov edi, dword [esp + 0x24]
inc dword [esi + 0xbc]
mov word [esi + 0x914], ax
mov eax, dword [esp + 0xc]
shl eax, 2
push eax
lea eax, [ecx - 4]
mov byte [esi + 0x75], 1
push eax
lea eax, [ecx + edi*4]
push eax
call fcn.0050d110
lea eax, [edi*4 + 4]
push eax
mov eax, dword [esi + 0x64]
sub eax, 4
push 0
push eax
call fcn.0050cdd0
add esp, 0x18
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, ecx
and al, 7
cmp al, 2
jne 0x4cb059
mov eax, dword [edx - 8]
sar ecx, 3
add dword [esi + 0xb8], 0xfffffffe
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
js 0x4cb059
mov edx, dword [esi + 0x64]
lea eax, [ecx*4]
sub dword [esi + 0x70], ecx
sub edx, eax
mov eax, edx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x64], eax
lea eax, [ecx - 2]
mov dword [esi + 0x6c], eax
mov eax, dword [esp + 0x28]
cmp eax, 0x402cbb
jne 0x4caf2b
cmp dword [ebp + 0x10], 0
mov eax, dword [edx - 4]
movzx edx, byte [eax - 3]
je 0x4caf1d
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x14]
jmp 0x4cb041
mov eax, dword [esp + 0x14]
mov ecx, 0x7fff
jmp 0x4cb041
cmp eax, 0x402d97
je 0x4cabd4
cmp eax, 0x402c1f
jne 0x4cabd4
cmp dword [ebp + 0x10], 0
mov eax, dword [edx - 4]
movzx eax, byte [eax - 1]
mov dword [esp + 0x24], eax
je 0x4caf65
mov esi, dword [esp + 0x14]
lea eax, [ecx + edi]
mov eax, dword [esi + eax*4]
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], eax
jmp 0x4caf6d
mov dword [esp + 0x18], 0x7fff
lea eax, [ecx - 2]
cmp dword [esp + 0x24], eax
je 0x4cb02b
mov eax, dword [esp + 0xc]
shl eax, 3
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x54]
mov edx, dword [eax + 0x10]
sub edx, dword [esp + 0x1c]
cmp dword [esi + 0x130], 0
jne 0x4cb059
cmp dword [ebp + 0x10], 0
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 - 8], esi
mov eax, dword [edx - 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [edx - 0xc]
mov dword [esp + 0x14], eax
je 0x4cafcf
mov ecx, dword [edx + edi*8 + 4]
mov eax, dword [edx + edi*8]
mov dword [edx - 0xc], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx - 0x10], eax
jmp 0x4cafd6
mov dword [edx - 0xc], 0xffffffff
mov esi, dword [ebp + 8]
lea eax, [ecx*8]
sub edx, eax
mov eax, dword [esi + 0x54]
mov dword [eax + 0x10], edx
lea eax, [ecx - 2]
push eax
push dword [esp + 0x28]
push esi
call fcn.004cb890
mov edx, dword [esi + 0x54]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov edi, dword [edx + 0x10]
lea ecx, [eax*8]
mov eax, dword [esp + 0x28]
add edi, ecx
mov ecx, dword [esp + 0x1c]
add ecx, edi
mov dword [edx + 0x10], ecx
mov edx, dword [esp + 0x10]
mov dword [edi - 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [edi - 0xc], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4cabd4
mov eax, dword [edx - 4]
movzx edx, byte [eax - 3]
mov eax, dword [esi + 0x64]
mov dword [eax + edx*4], ecx
cmp edx, dword [esi + 0x6c]
jb 0x4cabd4
lea eax, [edx + 1]
pop edi
mov dword [esi + 0x6c], eax
pop esi
mov esp, ebp
pop ebp
ret
push 0x10
push esi
call fcn.004a52b0
push 0xc
push esi
call fcn.004a52b0
push 0xe
push esi
call fcn.004a52b0
push 8
push esi
call fcn.004a52b0
push 3
push esi
call fcn.004a52b0
int3