Function at 0x40ff45
Capabilities:
Enumerate pe sections

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0x10]
lea eax, [esp + 7]
push ebp
push esi
push edi
mov edi, dword [esp + 0x20]
push 1
push eax
push edi
mov byte [esp + 0x1f], 0x50
call ebx
xor ebp, ebp
mov byte [esp + 0x1f], 0x4b
inc ebp
lea eax, [esp + 0x1f]
push ebp
push eax
push edi
call ebx
push ebp
lea eax, [esp + 0x38]
mov byte [esp + 0x38], 1
push eax
push edi
call ebx
push ebp
lea eax, [esp + 0x44]
mov byte [esp + 0x44], 2
push eax
push edi
call ebx
mov esi, dword [esp + 0x48]
push ebp
mov al, byte [esi]
mov byte [esp + 0x50], al
lea eax, [esp + 0x50]
push eax
push edi
call ebx
mov al, byte [esi + 1]
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 2]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 3]
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 4]
mov byte [esp + 0x34], al
lea eax, [esp + 0x34]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 5]
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 6]
mov byte [esp + 0x4c], al
lea eax, [esp + 0x4c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 7]
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 8]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 8]
shr eax, 8
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0xa]
mov byte [esp + 0x34], al
lea eax, [esp + 0x34]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0xb]
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0xc]
mov byte [esp + 0x4c], al
lea eax, [esp + 0x4c]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0xc]
shr eax, 8
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0xe]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0xf]
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x10]
mov byte [esp + 0x34], al
lea eax, [esp + 0x34]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0x10]
shr eax, 8
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x12]
mov byte [esp + 0x4c], al
lea eax, [esp + 0x4c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x13]
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x14]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0x14]
shr eax, 8
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x16]
mov byte [esp + 0x34], al
lea eax, [esp + 0x34]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x17]
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x18]
mov byte [esp + 0x4c], al
lea eax, [esp + 0x4c]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0x18]
shr eax, 8
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x20]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0x20]
shr eax, 8
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x24]
mov byte [esp + 0x34], al
push ebp
lea eax, [esp + 0x38]
push eax
push edi
call ebx
mov eax, dword [esi + 0x24]
shr eax, 8
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x28]
mov byte [esp + 0x4c], al
lea eax, [esp + 0x4c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x29]
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x2a]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x2b]
mov byte [esp + 0x28], al
lea eax, [esp + 0x28]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x30]
mov byte [esp + 0x34], al
lea eax, [esp + 0x34]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0x30]
shr eax, 8
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x32]
mov byte [esp + 0x4c], al
lea eax, [esp + 0x4c]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x33]
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x34]
add esp, 0x48
mov byte [esp + 0x1c], al
lea eax, [esp + 0x1c]
push ebp
push eax
push edi
call ebx
mov eax, dword [esi + 0x34]
shr eax, 8
mov byte [esp + 0x28], al
push ebp
lea eax, [esp + 0x2c]
push eax
push edi
call ebx
mov al, byte [esi + 0x36]
mov byte [esp + 0x34], al
lea eax, [esp + 0x34]
push ebp
push eax
push edi
call ebx
mov al, byte [esi + 0x37]
mov byte [esp + 0x40], al
lea eax, [esp + 0x40]
push ebp
push eax
push edi
call ebx
push dword [esi + 0x18]
lea eax, [esi + 0x148]
push eax
push edi
call ebx
add esp, 0x3c
cmp eax, dword [esi + 0x18]
jne 0x4102ae
cmp dword [esi + 0x20], 0
je 0x410290
push dword [esi + 0x20]
push dword [esi + 0x140]
push edi
call ebx
add esp, 0xc
cmp eax, dword [esi + 0x20]
jne 0x4102ae
cmp dword [esi + 0x24], 0
je 0x4102aa
push dword [esi + 0x24]
push dword [esi + 0x144]
push edi
call ebx
add esp, 0xc
cmp eax, dword [esi + 0x24]
jne 0x4102ae
xor eax, eax
jmp 0x4102b1
push 0xa
pop eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret