Function at 0x428a54
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x428ce8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call sub.rtl140.bpl__Sysutils_StrLen_qqrpxb
cmp eax, 0x24
je 0x428a7f
xor ebx, ebx
jmp 0x428cda
cmp word [ebx + 0x10], 0x2d
jne 0x428a9b
cmp word [ebx + 0x1a], 0x2d
jne 0x428a9b
cmp word [ebx + 0x24], 0x2d
jne 0x428a9b
cmp word [ebx + 0x2e], 0x2d
je 0x428aa2
xor ebx, ebx
jmp 0x428cda
xor esi, esi
mov eax, esi
not eax
sub eax, 8
je 0x428abc
sub eax, 5
je 0x428abc
sub eax, 5
je 0x428abc
sub eax, 5
jne 0x428ae0
cmp word [ebx + esi*2], 0x66
ja 0x428ad9
movzx eax, word [ebx + esi*2]
cmp word [eax*2 + 0x9d64a0], 0xffff
jne 0x428ae0
cmp word [ebx + esi*2], 0
je 0x428ae0
xor ebx, ebx
jmp 0x428cda
inc esi
cmp esi, 0x24
jne 0x428aa4
movzx eax, word [ebx]
movsx eax, word [eax*2 + 0x9d64a0]
shl eax, 0x1c
movzx edx, word [ebx + 2]
movsx edx, word [edx*2 + 0x9d64a0]
shl edx, 0x18
or eax, edx
movzx edx, word [ebx + 4]
movsx edx, word [edx*2 + 0x9d64a0]
shl edx, 0x14
or eax, edx
movzx edx, word [ebx + 6]
movsx edx, word [edx*2 + 0x9d64a0]
shl edx, 0x10
or eax, edx
movzx edx, word [ebx + 8]
movsx edx, word [edx*2 + 0x9d64a0]
shl edx, 0xc
or eax, edx
movzx edx, word [ebx + 0xa]
movsx edx, word [edx*2 + 0x9d64a0]
shl edx, 8
or eax, edx
movzx edx, word [ebx + 0xc]
movsx edx, word [edx*2 + 0x9d64a0]
shl edx, 4
or eax, edx
movzx edx, word [ebx + 0xe]
movsx edx, word [edx*2 + 0x9d64a0]
or eax, edx
mov dword [edi], eax
movzx eax, word [ebx + 0x12]
movzx eax, word [eax*2 + 0x9d64a0]
shl eax, 0xc
movzx edx, word [ebx + 0x14]
movzx edx, word [edx*2 + 0x9d64a0]
shl edx, 8
or ax, dx
movzx edx, word [ebx + 0x16]
movzx edx, word [edx*2 + 0x9d64a0]
shl edx, 4
or ax, dx
movzx edx, word [ebx + 0x18]
or ax, word [edx*2 + 0x9d64a0]
mov word [edi + 4], ax
movzx eax, word [ebx + 0x1c]
movzx eax, word [eax*2 + 0x9d64a0]
shl eax, 0xc
movzx edx, word [ebx + 0x1e]
movzx edx, word [edx*2 + 0x9d64a0]
shl edx, 8
or ax, dx
movzx edx, word [ebx + 0x20]
movzx edx, word [edx*2 + 0x9d64a0]
shl edx, 4
or ax, dx
movzx edx, word [ebx + 0x22]
or ax, word [edx*2 + 0x9d64a0]
mov word [edi + 6], ax
movzx eax, word [ebx + 0x26]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x28]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 8], al
movzx eax, word [ebx + 0x2a]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x2c]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 9], al
movzx eax, word [ebx + 0x30]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x32]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 0xa], al
movzx eax, word [ebx + 0x34]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x36]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 0xb], al
movzx eax, word [ebx + 0x38]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x3a]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 0xc], al
movzx eax, word [ebx + 0x3c]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x3e]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 0xd], al
movzx eax, word [ebx + 0x40]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x42]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 0xe], al
movzx eax, word [ebx + 0x44]
movzx eax, byte [eax*2 + 0x9d64a0]
shl eax, 4
movzx edx, word [ebx + 0x46]
or al, byte [edx*2 + 0x9d64a0]
mov byte [edi + 0xf], al
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx