protected static void DeserializeObject(UObject obj, FAssetArchive Ar, long serialSize)
        {
            var serialOffset = Ar.Position;
            var validPos     = serialOffset + serialSize;

            try
            {
                obj.Deserialize(Ar, validPos);
#if DEBUG
                if (validPos != Ar.Position)
                {
                    Log.Warning("Did not read {0} correctly, {1} bytes remaining", obj.ExportType, validPos - Ar.Position);
                }
                else
                {
                    Log.Debug("Successfully read {0} at {1} with size {2}", obj.ExportType, serialOffset, serialSize);
                }
#endif
            }
            catch (Exception e)
            {
                if (Globals.FatalObjectSerializationErrors)
                {
                    throw new ParserException($"Could not read {obj.ExportType} correctly", e);
                }

                Log.Error(e, "Could not read {0} correctly", obj.ExportType);
            }
        }