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);
        }