// Token: 0x060020A6 RID: 8358 RVA: 0x0006DCD8 File Offset: 0x0006BED8
 public static void smethod_2(Class321 pd, BinaryWriter write_stream, uint offset_orig, uint offset_new, Stream stream_orig, Stream stream_new)
 {
     using (Stream3 stream = new Stream3(stream_orig))
     {
         using (Stream3 stream2 = new Stream3(stream_new))
         {
             uint num;
             uint num2;
             Class132.smethod_3(stream, out num, out num2);
             uint num3;
             uint num4;
             Class132.smethod_3(stream2, out num3, out num4);
             using (Stream3 stream3 = new Stream3(stream, 0L, (long)((ulong)num)))
             {
                 using (Stream3 stream4 = new Stream3(stream2, 0L, (long)((ulong)num3)))
                 {
                     Class292.smethod_12(pd, Enum81.const_0, write_stream, offset_orig, offset_new, stream3, stream4);
                 }
             }
             using (Stream3 stream5 = new Stream3(stream, (long)((ulong)num), (long)((ulong)(num + num2))))
             {
                 using (Stream3 stream6 = new Stream3(stream2, (long)((ulong)num3), (long)((ulong)(num3 + num4))))
                 {
                     Class136.smethod_0(pd, write_stream, offset_orig + num, offset_new + num3, stream5, stream6);
                 }
             }
         }
     }
 }
        // Token: 0x060020A5 RID: 8357 RVA: 0x0006DCA4 File Offset: 0x0006BEA4
        public static bool smethod_1(Stream file_stream1, Stream file_stream2)
        {
            byte[] enumeration;
            int    num;

            byte[] enumeration2;
            int    num2;

            return(Class132.smethod_0(file_stream1, out enumeration, out num) && Class132.smethod_0(file_stream2, out enumeration2, out num2) && enumeration.smethod_9(enumeration2) && num == num2);
        }
        // Token: 0x060020A9 RID: 8361 RVA: 0x0006E0CC File Offset: 0x0006C2CC
        private void method_7(Stream file_stream, BinaryReader reader, bool loadIcon, bool populateData)
        {
            Encoding encoding = Encoding.GetEncoding(1252);
            int      num      = reader.ReadInt32();

            if (num != 1)
            {
                throw new InvalidFileVersion <int>(1, 1, num);
            }
            decimal num2 = reader.ReadDecimal();
            decimal d    = reader.ReadDecimal();
            int     num3 = (int)Math.Floor(num2);

            this.MinimumVersion = new Version(num3, (int)((num2 - num3) * 100m), (int)(d * 100m), 0);
            this.Name           = Class132.smethod_4(reader, encoding);
            this.Description    = Class132.smethod_4(reader, encoding);
            this.Author         = Class132.smethod_4(reader, encoding);
            this.PasswordHash   = new Struct43(Class132.smethod_4(reader, encoding));
            if (Struct43.smethod_5(this.PasswordHash, Class132.struct43_0))
            {
                this.PasswordHash = Struct43.struct43_0;
            }
            Class132.smethod_4(reader, encoding);
            string text = Class132.smethod_4(reader, encoding);

            if (!string.IsNullOrEmpty(text))
            {
                this.ObsoleteDownloadURL = new Uri(text);
            }
            string text2 = Class132.smethod_4(reader, encoding);

            if (!string.IsNullOrEmpty(text2))
            {
                this.UpdateUri = new Uri(text2);
            }
            this.ID       = new Guid(Class132.smethod_4(reader, encoding));
            this.DataHash = new Struct43(Class132.smethod_4(reader, encoding));
            int num4 = reader.ReadInt32();

            if (num4 > 0)
            {
                if (loadIcon)
                {
                    using (Stream3 stream = new Stream3(file_stream, file_stream.Position, file_stream.Position + (long)num4))
                    {
                        this.memoryStream_0 = new MemoryStream();
                        stream.CopyTo(this.memoryStream_0);
                        this.Icon = (Bitmap)Image.FromStream(this.memoryStream_0);
                        goto IL_1AC;
                    }
                }
                file_stream.Position += (long)num4;
            }
IL_1AC:
            this.LoaderPack = reader.ReadBoolean();
            if (this.LoaderPack)
            {
                this.DataHash = Struct43.struct43_0;
            }
            if (this.LoaderPack)
            {
                if (populateData)
                {
                    this.Data = new Class136();
                    return;
                }
            }
            else
            {
                int num5 = reader.ReadInt32();
                for (int i = 0; i < num5; i++)
                {
                    this.ItemIndex.Add(Class132.smethod_4(reader, encoding), new Struct43(Class132.smethod_4(reader, encoding)));
                }
                int num6 = reader.ReadInt32();
                if (populateData)
                {
                    using (Stream3 stream2 = new Stream3(file_stream, file_stream.Position, file_stream.Position + (long)num6))
                    {
                        this.Data = new Class136(stream2);
                        this.Data.method_12();
                        return;
                    }
                }
                file_stream.Position += (long)num6;
            }
        }