Function at 0x407cca
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
and dword [ebp - 0x38], 0
and dword [ebp - 0x14], 0
and dword [ebp - 0x20], 0
and dword [ebp - 0x28], 0
and dword [ebp - 0x24], 0
cmp dword [ebp + 8], 0
je 0x407cf4
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
test eax, eax
jne 0x407d0b
push 0x5da
push 0x417dec
push 0x417df4
call fcn.0040a830
add esp, 0xc
push 0x22
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll__lopen]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xffffffff
je 0x408135
push 0
push 0x42bf90
call fcn.004099d0
pop ecx
pop ecx
test eax, eax
jne 0x408135
push 0x40
push 1
call fcn.00409930
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
push 0xf8
push 1
call fcn.00409930
pop ecx
pop ecx
mov dword [ebp - 0x28], eax
push 0x28
push 1
call fcn.00409930
pop ecx
pop ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x20], 0
je 0x407d78
cmp dword [ebp - 0x28], 0
je 0x407d78
cmp dword [ebp - 0x24], 0
jne 0x407d86
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
push 0
push 0
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0x40
push dword [ebp - 0x20]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0x40
je 0x407db4
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
movzx eax, word [eax]
cmp eax, 0x5a4d
je 0x407dc7
and dword [ebp - 0x1c], 0
jmp 0x407dd0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x1c], eax
push 0
push dword [ebp - 0x1c]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0xf8
push dword [ebp - 0x28]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xf8
je 0x407e04
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0x4550
je 0x407e1d
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 6]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jle 0x407e33
cmp dword [ebp - 4], 0x10
jle 0x407e4a
push 0x61d
push 0x417e10
push str.cSections_0__cSections_MAX_SECTIONS
call fcn.0040a830
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x18], eax
and dword [ebp - 0x10], 0
push 2
push 0
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xffffffff
jne 0x407e84
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x98], 0
je 0x407ead
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx + eax + 0x18]
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x28
add eax, ecx
mov dword [ebp - 0x2c], eax
push 0
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 0x14]
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx + eax + 0x18]
push eax
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
dec ecx
mov dword [ebp - 4], ecx
test eax, eax
je 0x407f59
push 0x28
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0x28
je 0x407f13
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
push 8
push 0x417e40
push dword [ebp - 0x24]
call fcn.00409f80
add esp, 0xc
test eax, eax
jne 0x407f37
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx + 8]
cmp dword [ebp - 0x10], eax
jae 0x407f57
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx + 8]
mov dword [ebp - 0x10], eax
jmp 0x407ee4
push 0
push dword [ebp - 0x1c]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0xf8
push dword [ebp - 0x28]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xf8
je 0x407f8d
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x28]
mov ax, word [eax + 6]
add ax, 1
mov ecx, dword [ebp - 0x28]
mov word [ecx + 6], ax
mov eax, dword [ebp - 0x28]
and dword [eax + 0x58], 0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + eax - 1]
xor edx, edx
div dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
imul ecx, eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 8]
lea eax, [edx + eax - 1]
xor edx, edx
div dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
imul edx, eax
add ecx, edx
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x50], ecx
push 0
push dword [ebp - 0x1c]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0xf8
push dword [ebp - 0x28]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lwrite]
cmp eax, 0xf8
je 0x40800c
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0x28
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0x28
je 0x40803b
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
test eax, eax
jne 0x40805b
push 0x27
mov eax, dword [ebp - 0x24]
inc eax
push eax
push dword [ebp - 0x24]
call fcn.00409f80
add esp, 0xc
test eax, eax
je 0x408069
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
push 8
push str._winzip_
push dword [ebp - 0x24]
call fcn.00409c40
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
lea eax, [ecx + eax - 1]
xor edx, edx
div dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
imul ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax - 1]
xor edx, edx
div dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
imul ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + eax - 1]
xor edx, edx
div dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
imul ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 8]
lea eax, [ecx + eax - 1]
xor edx, edx
div dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
imul ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x24], 0x42000040
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__llseek]
push 0x28
push dword [ebp - 0x24]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lwrite]
cmp eax, 0x28
je 0x408120
push 1
push 0x42bf90
call fcn.00409418
pop ecx
pop ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x10]
sub eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x20], 0
je 0x408144
push dword [ebp - 0x20]
call fcn.004098e0
pop ecx
cmp dword [ebp - 0x28], 0
je 0x408153
push dword [ebp - 0x28]
call fcn.004098e0
pop ecx
cmp dword [ebp - 0x24], 0
je 0x408162
push dword [ebp - 0x24]
call fcn.004098e0
pop ecx
cmp dword [ebp - 0x38], 0xffffffff
je 0x408177
cmp dword [ebp - 0x38], 0
je 0x408177
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, dword [ebp - 0x14]
leave
ret