code: func NewXMLFile(r io.ReaderAt) (*XMLFile, error) {
  	f := new(XMLFile)
  	sr := io.NewSectionReader(r, 0, 1<<63-1)
  
  	fmt.Fprintf(&f.xmlBuffer, xml.Header)
  
  	header := new(ResChunkHeader)
  	if err := binary.Read(sr, binary.LittleEndian, header); err != nil {
  		return nil, err
  	}
  	offset := int64(header.HeaderSize)
  	for offset < int64(header.Size) {
  		chunkHeader, err := f.readChunk(r, offset)
  		if err != nil {
  			return nil, err
  		}
  		offset += int64(chunkHeader.Size)
  	}
  	return f, nil
  }
docs: // NewXMLFile returns a new XMLFile.