func (p *ProgramHeader) IsLE() bool {
	return p.Signature[0] == 'L' && p.Signature[1] == 'E'
}
IsLE returns true if the program header is for an LE executable.
package module
const (
	PageBits = 12
	PageSize = 1 << PageBits
)
func pagecount(size uint32) uint32 {
	npage := size >> PageBits
	if size&(PageSize-1) != 0 {
		npage++
	}
	return npage
}
type ObjFlag uint32
const (
	ObjR ObjFlag = 0x0001
	ObjW ObjFlag = 0x0002
	ObjX ObjFlag = 0x0004
	Obj32Bit ObjFlag = 0x2000
)
type SrcType uint32
const (
	SrcOffset32 SrcType = 0x07
	SrcRelative32 SrcType = 0x08
)
type Fixup struct {
	SrcType SrcType  
	Src     int32    
	Target  Ref      
	Add     int32    
}
type ObjectHeader struct {
	VirtualSize         uint32  
	BaseAddress         uint32  
	Flags               ObjFlag
	PageTableIndex      uint32  
	NumPageTableEntries uint32  
	Reserved            uint32
}
type ObjectPageHeader struct {
	Reserved1      uint8
	FixupPageIndex uint16
	Reserved2      uint8
}
type ObjectPage struct {
	ObjectPageHeader
	Fixups []Fixup
}
type Object struct {
	ObjectHeader
	Pages  []*ObjectPage
	Data   []byte   
	Fixups []Fixup  
}
type Ref struct {
	Obj int32  
	Off int32  
}
type ProgramHeader struct {
	Signature                 [2]byte  
	ByteOrder                 uint8
	WordOrder                 uint8
	FormatLevel               uint32
	CPUType                   uint16  
	OSType                    uint16  
	ModuleVersion             uint32  
	ModuleFlags               uint32
	ModuleNumPages            uint32
	EIP                       Ref     
	ESP                       Ref     
	PageSize                  uint32  
	LastPageSize              uint32  
	FixupSectionSize          uint32  
	FixupSectionChecksum      uint32  
	LoaderSectionSize         uint32  
	LoaderSectionChecksum     uint32  
	ObjectTableOffset         uint32  
	NumObjects                uint32  
	ObjectPageTableOffset     uint32  
	ObjectIterPageTableOffset uint32  
	ResourceTableOffset       uint32
	NumResourceTableEntries   uint32
	ResidentNameTableOffset   uint32
	EntryTableOffset          uint32
	ModuleDirectivesOffset    uint32
	NumModuleDirectives       uint32
	FixupPageTableOffset      uint32  
	FixupRecordOffset         uint32  
	ImportModuleTableOffset   uint32  
	ImportModuleEntryCount    uint32  
	ImportProcTableOffset     uint32
	PerPageChecksumOffset     uint32
	DataPagesOffset           uint32  
	NumPreloadPages           uint32
	NonResNameTableOffset     uint32
	NonResNameTableLength     uint32
	NonResNameTableChecksum   uint32
	AutoDSObject              uint32
	DebugInfoOffset           uint32
	DebugInfoLength           uint32
	NumInstancePreload        uint32
	NumInstanceDemand         uint32
	HeapSize                  uint32
}