// Token: 0x060020A8 RID: 8360 RVA: 0x0006DF14 File Offset: 0x0006C114
        private void method_6(Stream file_stream, BinaryReader reader, bool loadIcon, bool populateData)
        {
            this.ID             = reader.smethod_29();
            this.DataHash       = reader.smethod_24();
            this.LoaderPack     = Struct43.smethod_5(this.DataHash, Struct43.struct43_0);
            this.UpdateUri      = reader.smethod_32();
            this.Name           = reader.ReadString();
            this.Author         = reader.ReadString();
            this.Description    = reader.ReadString();
            this.Version        = reader.smethod_27();
            this.MinimumVersion = reader.smethod_27();
            this.PasswordHash   = reader.smethod_24();
            int num = reader.ReadInt32();

            if (num > 0)
            {
                if (loadIcon)
                {
                    using (Stream3 stream = new Stream3(file_stream, file_stream.Position, (long)num + file_stream.Position))
                    {
                        this.memoryStream_0 = new MemoryStream();
                        stream.CopyTo(this.memoryStream_0);
                        this.Icon = (Bitmap)Image.FromStream(this.memoryStream_0);
                        goto IL_EE;
                    }
                }
                file_stream.Position += (long)num;
            }
IL_EE:
            if (this.LoaderPack)
            {
                if (populateData)
                {
                    this.Data = new Class136();
                    return;
                }
            }
            else
            {
                int num2 = reader.ReadInt32();
                for (int i = 0; i < num2; i++)
                {
                    this.ItemIndex.Add(reader.ReadString(), reader.smethod_24());
                }
                int num3 = reader.ReadInt32();
                if (populateData)
                {
                    using (Stream3 stream2 = new Stream3(file_stream, file_stream.Position, (long)num3 + file_stream.Position))
                    {
                        this.Data = new Class136(stream2);
                        this.Data.method_12();
                        return;
                    }
                }
                file_stream.Position += (long)num3;
            }
        }
        // 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;
            }
        }