public FArchive Serialize(FArchive archive) { archive.Read(ref _summary); if (!IsValid) { return(archive); } archive.Seek(_summary.NameOffset); _nameMap = new NameTable(_summary.NameCount); _nameMap.Serialize(archive); archive.Seek(_summary.ImportOffset); _imports = new ImportTable(_summary.ImportCount); _imports.Serialize(archive); archive.Seek(_summary.ExportOffset); _exports = new ExportTable(_summary.ExportCount); _exports.Serialize(archive); archive.Seek(_summary.SoftPackageReferencesOffset); archive.Read(ref _stringAssetReferences, _summary.SoftPackageReferencesCount); archive.Seek(_summary.GatherableTextDataOffset); archive.Read(ref _gatherableTextDataMap, _summary.GatherableTextDataCount); foreach (var imp in _imports.Items) { imp.Fix(archive); } foreach (var exp in _exports.Items) { exp.Fix(archive); } return(archive); }