var File=PE,X=PE
function Section(e,t,i,r,n,s,o){this.Number=e,this.Name=t,this.VirtualSize=i,this.VirtualAddress=r,this.FileSize=n,this.FileOffset=s,this.Characteristics=o}PE.getEntryPointSignature=function(e,t){return PE.getSignature(PE.nEP+e,t)},PE.getGeneralOptionsEx=function(){return sResult=PE.getGeneralOptions(),PE.isConsole()&&(sResult=sResult.append("console")),/requireAdministrator/.test(PE.getManifest())&&(sResult=sResult.append("admin")),sResult=PE.isSignedFile()?sResult.append("signed"):sResult},PE.isLibraryPresentExp=function(e){for(var t=null,i=0;i<PE.getNumberOfImports();i++)if(t=PE.getImportLibraryName(i).match(e)){t[-1]=i,t[0]=PE.getImportLibraryName(i).toLowerCase()
break}return t},PE.isExportFunctionPresentExp=function(e){for(var t=null,i=0;i<PE.getNumberOfExportFunctions();i++)if(t=PE.getExportFunctionName(i).match(e)){t[-1]=i,t[0]=PE.getExportFunctionName(i)
break}return t},PE.isSectionNamePresentExp=function(e){for(var t=null,i=0;i<PE.getNumberOfSections();i++)if(t=PE.getSectionName(i).match(e)){t[-1]=i,t[0]=PE.getSectionName(i)
break}return t},PE.isResourceNamePresentExp=function(e){for(var t=null,i=0;i<PE.getNumberOfResources();i++)if(t=PE.getResourceNameByNumber(i).match(e)){t[-1]=i,t[0]=PE.getResourceNameByNumber(i)
break}return t},PE.nLastSection=PE.getNumberOfSections()-1,PE.section=[]
for(var i=0;i<=PE.nLastSection;i++)PE.section[i]=new Section(i,PE.getSectionName(i),PE.getSectionVirtualSize(i),PE.getSectionVirtualAddress(i),PE.getSectionFileSize(i),PE.getSectionFileOffset(i),PE.getSectionCharacteristics(i)),PE.section[i].Name&&+(name=PE.section[i].Name).toString()!=name&&(PE.section[name]=PE.section[i])
function Resource(e,t,i,r,n,s){this.Number=e,this.Id=t,this.Name=i,this.Offset=r,this.Size=n,this.Type=s}PE.section[-1]=new Section(-1,"\0",0,0,0,PE.getSize(),0),-1==PE.nLastSection&&(PE.section[0]=PE.section[-1]),PE.resource=[]
for(var name,i=0;i<PE.getNumberOfResources();i++)PE.resource[i]=new Resource(i,PE.getResourceIdByNumber(i),PE.getResourceNameByNumber(i),PE.getResourceOffsetByNumber(i),PE.getResourceSizeByNumber(i),PE.getResourceTypeByNumber(i)),PE.resource[i].Name&&(+(name=PE.resource[i].Name)).toString()!=name&&(PE.resource[name]=PE.resource[i])