private GameCardInfo GetCardInfoImpl() { var info = new GameCardInfo(); CardHeader.RootPartitionHeaderHash.AsSpan().CopyTo(info.RootPartitionHeaderHash); info.PackageId = CardHeader.PackageId; info.Size = GameCard.GetGameCardSizeBytes(CardHeader.GameCardSize); info.RootPartitionOffset = CardHeader.RootPartitionOffset; info.RootPartitionHeaderSize = CardHeader.RootPartitionHeaderSize; info.SecureAreaOffset = GameCard.CardPageToOffset(CardHeader.LimAreaPage); info.SecureAreaSize = info.Size - info.SecureAreaOffset; info.UpdateVersion = CardHeader.UppVersion; info.UpdateTitleId = CardHeader.UppId; info.Attribute = CardHeader.Flags; return(info); }