code: def parse(readDataInstance,  sectionHeadersInstance):
          
          sData = Sections()
          
          for sectionHdr in sectionHeadersInstance:
              
              if sectionHdr.sizeOfRawData.value > len(readDataInstance.data):
                  print "Warning: SizeOfRawData is larger than file."
              
              if sectionHdr.pointerToRawData.value > len(readDataInstance.data):
                  print "Warning: PointerToRawData points beyond the end of the file."
              
              if sectionHdr.misc.value > 0x10000000:
                  print "Warning: VirtualSize is extremely large > 256MiB."
              
              if sectionHdr.virtualAddress.value > 0x10000000:
                  print "Warning: VirtualAddress is beyond 0x10000000"
              
              # skip sections with pointerToRawData == 0. According to PECOFF, it contains uninitialized data
              if sectionHdr.pointerToRawData.value:
                  sData.append(readDataInstance.read(sectionHdr.sizeOfRawData.value))
          
          return sData
docs: Returns a new L{Sections} object.
          
          @type readDataInstance: L{ReadData}
          @param readDataInstance: A L{ReadData} object with data to be parsed as a L{Sections} object.
          
          @type sectionHeadersInstance: instance
          @param sectionHeadersInstance: The L{SectionHeaders} instance with the necessary to parse every section data.
          
          @rtype: L{Sections}
          @return: A new L{Sections} object.