code: def dump(self, indentation=0):
          
  
          dump = []
  
          dump.append('[{0}]'.format(self.name))
  
          printable_bytes = [ord(i) for i in string.printable if i not in string.whitespace]
  
          # Refer to the __set_format__ method for an explanation
          # of the following construct.
          for keys in self.__keys__:
              for key in keys:
  
                  val = getattr(self, key)
                  if isinstance(val, (int, long)):
                      if key.startswith('Signature_'):
                          val_str = '%-8X' % (val)
                      else:
                          val_str = '0x%-8X' % (val)
                      if key == 'TimeDateStamp' or key == 'dwTimeStamp':
                          try:
                              val_str += ' [%s UTC]' % time.asctime(time.gmtime(val))
                          except ValueError as e:
                              val_str += ' [INVALID TIME]'
                  else:
                      val_str = bytearray(val)
                      if key.startswith('Signature'):
                          val_str = ''.join(
                              ['{:02X}'.format(i) for i in val_str.rstrip(b'\x00')])
                      else:
                          val_str = ''.join(
                              [chr(i) if (i in printable_bytes) else
                               '\\x{0:02x}'.format(i) for i in val_str.rstrip(b'\x00')])
  
                  dump.append('0x%-8X 0x%-3X %-30s %s' % (
                      self.__field_offsets__[key] + self.__file_offset__,
                      self.__field_offsets__[key], key+':', val_str))
  
          return dump
docs: Returns a string representation of the structure.