Function at 0x4ae350
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3c]
mov cx, word [edi + 6]
mov dx, word [edi + 0xa]
mov ebx, dword [edi]
mov word [esp + 0x18], cx
mov cl, byte [edi + 0xe]
mov word [esp + 0x30], dx
mov edx, dword [edi + 0x14]
mov byte [esp + 0x3c], cl
mov ax, word [edi + 4]
mov si, word [edi + 8]
mov ecx, dword [edx]
mov dx, 0x10
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx]
sub dx, word [edi + 0x10]
mov word [esp + 0x14], ax
movsx ebp, word [ecx + 0x8a]
mov dword [esp + 0x10], ebp
mov ebp, dword [ecx + 0x94]
mov ecx, dword [esp + 0x40]
mov ax, word [edi + 0xc]
dec ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4ae5b6
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x2c], ecx
jmp 0x4ae3d3
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
and esi, 0xffff
movzx cx, byte [ecx + esi*2 + 1]
add eax, ecx
mov dword [esp + 0x30], ecx
cmp ax, 0x10
mov dword [esp + 0x1c], eax
jl 0x4ae49a
mov cl, byte [esp + 0x3c]
sub eax, 0x10
test cl, cl
mov dword [esp + 0x1c], eax
je 0x4ae418
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x3c], 0
mov dword [esp + 0x14], ecx
jmp 0x4ae49a
mov ecx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0x10], ecx
jns 0x4ae446
mov edx, dword [ebx]
push ebx
mov dword [esp + 0x14], 0x1fff
mov ebp, dword [edx + 0x90]
inc ebp
call fcn.004a6520
movsx ecx, al
mov eax, dword [esp + 0x20]
add esp, 4
jmp 0x4ae44c
xor ecx, ecx
mov cl, byte [ebp]
inc ebp
and ecx, 0xff
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0x10], ecx
jns 0x4ae484
mov eax, dword [ebx]
push ebx
mov dword [esp + 0x14], 0x1fff
mov ebp, dword [eax + 0x90]
inc ebp
call fcn.004a6520
movsx ecx, al
mov eax, dword [esp + 0x20]
add esp, 4
jmp 0x4ae48a
xor ecx, ecx
mov cl, byte [ebp]
inc ebp
xor edx, edx
mov dl, cl
mov dh, byte [esp + 0x14]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x24]
cmp ax, dx
jg 0x4ae4c1
mov esi, dword [esp + 0x14]
movsx edx, dx
mov cx, dx
sub cx, ax
shr si, cl
lea ecx, [edx + edx]
mov edx, 0x4f5c24
sub edx, ecx
and si, word [edx]
jmp 0x4ae59c
movsx esi, ax
movsx ecx, dx
sub esi, ecx
movsx ecx, ax
mov dword [esp + 0x28], esi
add ecx, ecx
mov esi, 0x4f5c24
sub esi, ecx
mov ecx, dword [esp + 0x14]
mov si, word [esi]
and esi, ecx
mov ecx, dword [esp + 0x28]
shl esi, cl
mov cl, byte [esp + 0x3c]
test cl, cl
jne 0x4ae57b
mov ecx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0x10], ecx
jns 0x4ae522
mov edx, dword [ebx]
push ebx
mov dword [esp + 0x14], 0x1fff
mov ebp, dword [edx + 0x90]
inc ebp
call fcn.004a6520
movsx ecx, al
mov eax, dword [esp + 0x20]
add esp, 4
jmp 0x4ae528
xor ecx, ecx
mov cl, byte [ebp]
inc ebp
and ecx, 0xff
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
dec ecx
mov dword [esp + 0x10], ecx
jns 0x4ae560
mov eax, dword [ebx]
push ebx
mov dword [esp + 0x14], 0x1fff
mov ebp, dword [eax + 0x90]
inc ebp
call fcn.004a6520
movsx ecx, al
mov eax, dword [esp + 0x20]
add esp, 4
jmp 0x4ae566
xor ecx, ecx
mov cl, byte [ebp]
inc ebp
xor edx, edx
mov byte [esp + 0x3c], 1
mov dl, cl
mov dh, byte [esp + 0x18]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
movsx ecx, dx
movsx edx, ax
sub ecx, edx
mov edx, dword [esp + 0x18]
add cx, 0x10
shr dx, cl
mov ecx, dword [esp + 0x28]
and dx, word [ecx*2 + 0x4f5c04]
or esi, edx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
dec ecx
dec edx
test ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x20], edx
ja 0x4ae3cf
mov dx, word [esp + 0x14]
mov cx, word [esp + 0x18]
mov word [edi + 4], dx
mov dx, word [esp + 0x30]
mov word [edi + 0xc], ax
mov al, byte [esp + 0x3c]
mov word [edi + 6], cx
mov word [edi + 8], si
mov word [edi + 0xa], dx
mov dx, word [esp + 0x10]
mov byte [edi + 0xe], al
mov ecx, dword [ebx]
pop edi
pop esi
mov word [ecx + 0x8a], dx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x94], ebp
mov eax, dword [esp + 0x38]
pop ebp
sub eax, ecx
pop ebx
add esp, 0x28
ret