コード例 #1
0
ファイル: Class138.cs プロジェクト: ExileLord/Open-GHTCP
 public virtual void vmethod_0(Class144 class144_0, int int_1, int int_2, Class140 class140_0, int[] int_3)
 {
     int num = 0;
     int num2 = 1 << int_2;
     int num3 = (int_2 > 0) ? (class140_0.int_0 >> int_2) : (class140_0.int_0 - int_1);
     this.class143_0.vmethod_0(Math.Max(6, int_2));
     this.class143_0.int_0 = new int[num2];
     for (int i = 0; i < num2; i++)
     {
         int num4 = class144_0.vmethod_10(4);
         this.class143_0.int_0[i] = num4;
         if (num4 < 15)
         {
             int num5 = (int_2 == 0 || i > 0) ? num3 : (num3 - int_1);
             class144_0.vmethod_17(int_3, num, num5, num4);
             num += num5;
         }
         else
         {
             num4 = class144_0.vmethod_10(5);
             this.class143_0.int_1[i] = num4;
             int j = (int_2 == 0 || i > 0) ? 0 : int_1;
             while (j < num3)
             {
                 int_3[num] = class144_0.vmethod_12(num4);
                 j++;
                 num++;
             }
         }
     }
 }
コード例 #2
0
ファイル: Class134.cs プロジェクト: ExileLord/Open-GHTCP
 public Class134(Class144 class144_0, Class140 class140_1, Class136 class136_0, int int_4, int int_5, int int_6)
     : base(class140_1, int_5)
 {
     this.int_3 = class136_0.vmethod_2();
     this.int_1 = int_6;
     for (int i = 0; i < int_6; i++)
     {
         this.int_2[i] = class144_0.vmethod_12(int_4);
     }
     int num = class144_0.vmethod_10(2);
     int num2 = num;
     if (num2 == 0)
     {
         int int_7 = class144_0.vmethod_10(4);
         Class138 @class = new Class138();
         this.class137_0 = @class;
         @class.int_0 = int_7;
         @class.class143_0 = class136_0.vmethod_1();
         @class.vmethod_0(class144_0, int_6, @class.int_0, class140_1, class136_0.vmethod_2());
         Buffer.BlockCopy(this.int_2, 0, class136_0.vmethod_0(), 0, int_6 << 2);
         BlackMagic.CopyArrayOffset(this.int_3, class140_1.int_0 - int_6, int_6, class136_0.vmethod_0(), int_6);
         return;
     }
     throw new IOException("STREAM_DECODER_UNPARSEABLE_STREAM");
 }
コード例 #3
0
ファイル: Class126.cs プロジェクト: no1mann/Open-GHTCP
 public Class126(Class144 class144_0, int int_0, bool bool_1) : base(bool_1)
 {
     if (int_0 > 0)
     {
         this.byte_0 = new byte[int_0];
         class144_0.vmethod_15(this.byte_0, int_0);
     }
 }
コード例 #4
0
 public Class132(Class144 class144_0, Class140 class140_1, Class136 class136_0, int int_2, int int_3) : base(class140_1, int_3)
 {
     this.int_1 = class144_0.vmethod_12(int_2);
     for (int i = 0; i < class140_1.int_0; i++)
     {
         class136_0.vmethod_0()[i] = this.int_1;
     }
 }
コード例 #5
0
ファイル: Class132.cs プロジェクト: ExileLord/Open-GHTCP
 public Class132(Class144 class144_0, Class140 class140_1, Class136 class136_0, int int_2, int int_3)
     : base(class140_1, int_3)
 {
     this.int_1 = class144_0.vmethod_12(int_2);
     for (int i = 0; i < class140_1.int_0; i++)
     {
         class136_0.vmethod_0()[i] = this.int_1;
     }
 }
コード例 #6
0
ファイル: Class133.cs プロジェクト: no1mann/Open-GHTCP
 public Class133(Class144 class144_0, Class140 class140_1, Class136 class136_0, int int_2, int int_3) : base(class140_1, int_3)
 {
     this.int_1 = class136_0.vmethod_2();
     for (int i = 0; i < class140_1.int_0; i++)
     {
         this.int_1[i] = class144_0.vmethod_12(int_2);
     }
     Buffer.BlockCopy(this.int_1, 0, class136_0.vmethod_0(), 0, class140_1.int_0 << 2);
 }
コード例 #7
0
ファイル: Class126.cs プロジェクト: ExileLord/Open-GHTCP
 public Class126(Class144 class144_0, int int_0, bool bool_1)
     : base(bool_1)
 {
     if (int_0 > 0)
     {
         this.byte_0 = new byte[int_0];
         class144_0.vmethod_15(this.byte_0, int_0);
     }
 }
コード例 #8
0
ファイル: Class146.cs プロジェクト: ExileLord/Open-GHTCP
 public Class146(Class144 class144_0)
 {
     int num = class144_0.vmethod_14();
     if (num == 0)
     {
         return;
     }
     this.byte_0 = new byte[num];
     class144_0.vmethod_15(this.byte_0, this.byte_0.Length);
 }
コード例 #9
0
ファイル: Class133.cs プロジェクト: ExileLord/Open-GHTCP
 public Class133(Class144 class144_0, Class140 class140_1, Class136 class136_0, int int_2, int int_3)
     : base(class140_1, int_3)
 {
     this.int_1 = class136_0.vmethod_2();
     for (int i = 0; i < class140_1.int_0; i++)
     {
         this.int_1[i] = class144_0.vmethod_12(int_2);
     }
     Buffer.BlockCopy(this.int_1, 0, class136_0.vmethod_0(), 0, class140_1.int_0 << 2);
 }
コード例 #10
0
ファイル: Class146.cs プロジェクト: no1mann/Open-GHTCP
        public Class146(Class144 class144_0)
        {
            int num = class144_0.vmethod_14();

            if (num == 0)
            {
                return;
            }
            this.byte_0 = new byte[num];
            class144_0.vmethod_15(this.byte_0, this.byte_0.Length);
        }
コード例 #11
0
ファイル: Class124.cs プロジェクト: ExileLord/Open-GHTCP
 public Class124(Class144 class144_0, int int_0, bool bool_1)
     : base(bool_1)
 {
     class144_0.vmethod_15(this.byte_0, 4);
     int_0 -= 4;
     if (int_0 > 0)
     {
         this.byte_1 = new byte[int_0];
         class144_0.vmethod_15(this.byte_1, int_0);
     }
 }
コード例 #12
0
ファイル: FLACStream.cs プロジェクト: ExileLord/Open-GHTCP
 public FLACStream(Stream stream_1)
 {
     this.class136_0 = new Class136[8];
     this.fileStream = stream_1;
     this.class144_0 = new Class144(stream_1);
     this.int_4 = 0;
     this.long_0 = 0L;
     this.method_1();
     this.waveFormat_0 = new WaveFormat(this.class122_0.vmethod_6(), this.class122_0.vmethod_7(), this.class122_0.vmethod_8());
     this.long_3 = this.fileStream.Position;
     this.long_4 = this.fileStream.Length;
     this.long_2 = this.class122_0.vmethod_3() * (long)this.waveFormat_0.short_1;
     this.method_5();
 }
コード例 #13
0
 public FLACStream(Stream stream_1)
 {
     this.class136_0 = new Class136[8];
     this.fileStream = stream_1;
     this.class144_0 = new Class144(stream_1);
     this.int_4      = 0;
     this.long_0     = 0L;
     this.method_1();
     this.waveFormat_0 = new WaveFormat(this.class122_0.vmethod_6(), this.class122_0.vmethod_7(), this.class122_0.vmethod_8());
     this.long_3       = this.fileStream.Position;
     this.long_4       = this.fileStream.Length;
     this.long_2       = this.class122_0.vmethod_3() * (long)this.waveFormat_0.short_1;
     this.method_5();
 }
コード例 #14
0
ファイル: Class122.cs プロジェクト: ExileLord/Open-GHTCP
 public Class122(Class144 class144_0, int int_7, bool bool_1)
     : base(bool_1)
 {
     this.int_0 = class144_0.vmethod_10(16);
     this.int_1 = class144_0.vmethod_10(16);
     this.int_2 = class144_0.vmethod_10(24);
     this.int_3 = class144_0.vmethod_10(24);
     this.int_4 = class144_0.vmethod_10(20);
     this.int_5 = class144_0.vmethod_10(3) + 1;
     this.int_6 = class144_0.vmethod_10(5) + 1;
     this.long_0 = class144_0.vmethod_13(36);
     class144_0.vmethod_15(this.byte_0, 16);
     int_7 -= 34;
     class144_0.vmethod_15(null, int_7);
 }
コード例 #15
0
ファイル: Class127.cs プロジェクト: ExileLord/Open-GHTCP
 public Class127(Class144 class144_0, int int_0, bool bool_1)
     : base(bool_1)
 {
     int num = int_0 / 18;
     this.class142_0 = new Class142[num];
     for (int i = 0; i < this.class142_0.Length; i++)
     {
         this.class142_0[i] = new Class142(class144_0);
     }
     int_0 -= int_0 * 18;
     if (int_0 > 0)
     {
         class144_0.vmethod_15(null, int_0);
     }
 }
コード例 #16
0
ファイル: Class127.cs プロジェクト: no1mann/Open-GHTCP
        public Class127(Class144 class144_0, int int_0, bool bool_1) : base(bool_1)
        {
            int num = int_0 / 18;

            this.class142_0 = new Class142[num];
            for (int i = 0; i < this.class142_0.Length; i++)
            {
                this.class142_0[i] = new Class142(class144_0);
            }
            int_0 -= int_0 * 18;
            if (int_0 > 0)
            {
                class144_0.vmethod_15(null, int_0);
            }
        }
コード例 #17
0
ファイル: Class129.cs プロジェクト: ExileLord/Open-GHTCP
 public Class129(Class144 class144_0, int int_1, bool bool_1)
     : base(bool_1)
 {
     int num = class144_0.vmethod_14();
     this.byte_0 = new byte[num];
     class144_0.vmethod_15(this.byte_0, this.byte_0.Length);
     this.int_0 = class144_0.vmethod_14();
     if (this.int_0 > 0)
     {
         this.class146_0 = new Class146[this.int_0];
     }
     for (int i = 0; i < this.int_0; i++)
     {
         this.class146_0[i] = new Class146(class144_0);
     }
 }
コード例 #18
0
ファイル: Class129.cs プロジェクト: no1mann/Open-GHTCP
        public Class129(Class144 class144_0, int int_1, bool bool_1) : base(bool_1)
        {
            int num = class144_0.vmethod_14();

            this.byte_0 = new byte[num];
            class144_0.vmethod_15(this.byte_0, this.byte_0.Length);
            this.int_0 = class144_0.vmethod_14();
            if (this.int_0 > 0)
            {
                this.class146_0 = new Class146[this.int_0];
            }
            for (int i = 0; i < this.int_0; i++)
            {
                this.class146_0[i] = new Class146(class144_0);
            }
        }
コード例 #19
0
ファイル: Class123.cs プロジェクト: ExileLord/Open-GHTCP
 public Class123(Class144 class144_0, int int_8, bool bool_1)
     : base(bool_1)
 {
     int num = 0;
     this.int_0 = class144_0.vmethod_10(32);
     num = 32;
     this.int_1 = class144_0.vmethod_10(32);
     num = 64;
     byte[] array = new byte[this.int_1];
     class144_0.vmethod_15(array, this.int_1);
     num = 64 + this.int_1 * 8;
     this.string_0 = Encoding.UTF8.GetString(array);
     this.int_2 = class144_0.vmethod_10(32);
     num += 32;
     if (this.int_2 != 0)
     {
         array = new byte[this.int_2];
         class144_0.vmethod_15(array, this.int_2);
         try
         {
             this.string_1 = Encoding.GetEncoding("UTF-8").GetString(array);
         }
         catch (IOException)
         {
         }
         num += 32;
     }
     else
     {
         this.string_1 = new StringBuilder("").ToString();
     }
     this.int_3 = class144_0.vmethod_10(32);
     num += 32;
     this.int_4 = class144_0.vmethod_10(32);
     num += 32;
     this.int_5 = class144_0.vmethod_10(32);
     num += 32;
     this.int_6 = class144_0.vmethod_10(32);
     num += 32;
     this.int_7 = class144_0.vmethod_10(32);
     num += 32;
     this.byte_0 = new byte[this.int_7];
     class144_0.vmethod_15(this.byte_0, this.int_7);
     num += this.int_7 * 8;
     int_8 -= num / 8;
     class144_0.vmethod_15(null, int_8);
 }
コード例 #20
0
ファイル: Class125.cs プロジェクト: ExileLord/Open-GHTCP
 public Class125(Class144 class144_0, int int_1, bool bool_2)
     : base(bool_2)
 {
     class144_0.vmethod_15(this.byte_0, 128);
     this.long_0 = class144_0.vmethod_13(64);
     this.bool_1 = (class144_0.vmethod_10(1) != 0);
     class144_0.vmethod_5(2071);
     this.int_0 = class144_0.vmethod_10(8);
     if (this.int_0 > 0)
     {
         this.class147_0 = new Class147[this.int_0];
         for (int i = 0; i < this.int_0; i++)
         {
             this.class147_0[i] = new Class147(class144_0);
         }
     }
 }
コード例 #21
0
ファイル: Class135.cs プロジェクト: ExileLord/Open-GHTCP
 public Class135(Class144 class144_0, Class140 class140_1, Class136 class136_0, int int_7, int int_8, int int_9)
     : base(class140_1, int_8)
 {
     this.int_6 = class136_0.vmethod_2();
     this.int_1 = int_9;
     for (int i = 0; i < int_9; i++)
     {
         this.int_5[i] = class144_0.vmethod_12(int_7);
     }
     int num = class144_0.vmethod_10(4);
     if (num == 15)
     {
         throw new IOException("STREAM_DECODER_ERROR_STATUS_LOST_SYNC");
     }
     this.int_2 = num + 1;
     this.int_3 = class144_0.vmethod_12(5);
     for (int j = 0; j < int_9; j++)
     {
         this.int_4[j] = class144_0.vmethod_12(this.int_2);
     }
     int num2 = class144_0.vmethod_10(2);
     int num3 = num2;
     if (num3 != 0)
     {
         throw new IOException("STREAM_DECODER_UNPARSEABLE_STREAM");
     }
     this.class137_0 = new Class138();
     ((Class138)this.class137_0).int_0 = class144_0.vmethod_10(4);
     ((Class138)this.class137_0).class143_0 = class136_0.vmethod_1();
     if (this.class137_0 is Class138)
     {
         ((Class138)this.class137_0).vmethod_0(class144_0, int_9, ((Class138)this.class137_0).int_0, class140_1, class136_0.vmethod_2());
     }
     Buffer.BlockCopy(this.int_5, 0, class136_0.vmethod_0(), 0, int_9 << 2);
     if (int_7 + this.int_2 + Class141.smethod_0(int_9) > 32)
     {
         Class130.smethod_1(class136_0.vmethod_2(), class140_1.int_0 - int_9, this.int_4, int_9, this.int_3, class136_0.vmethod_0(), int_9);
         return;
     }
     if (int_7 <= 16 && this.int_2 <= 16)
     {
         Class130.smethod_0(class136_0.vmethod_2(), class140_1.int_0 - int_9, this.int_4, int_9, this.int_3, class136_0.vmethod_0(), int_9);
         return;
     }
     Class130.smethod_0(class136_0.vmethod_2(), class140_1.int_0 - int_9, this.int_4, int_9, this.int_3, class136_0.vmethod_0(), int_9);
 }
コード例 #22
0
ファイル: Class147.cs プロジェクト: ExileLord/Open-GHTCP
 public Class147(Class144 class144_0)
 {
     this.long_0 = class144_0.vmethod_13(64);
     this.byte_0 = (byte)class144_0.vmethod_10(8);
     class144_0.vmethod_15(this.byte_1, 12);
     this.int_0 = class144_0.vmethod_10(1);
     this.int_1 = class144_0.vmethod_10(1);
     class144_0.vmethod_5(110);
     this.byte_2 = (byte)class144_0.vmethod_10(8);
     if (this.byte_2 > 0)
     {
         this.class148_0 = new Class148[(int)this.byte_2];
         for (int i = 0; i < (int)this.byte_2; i++)
         {
             this.class148_0[i] = new Class148(class144_0);
         }
     }
 }
コード例 #23
0
 public Class147(Class144 class144_0)
 {
     this.long_0 = class144_0.vmethod_13(64);
     this.byte_0 = (byte)class144_0.vmethod_10(8);
     class144_0.vmethod_15(this.byte_1, 12);
     this.int_0 = class144_0.vmethod_10(1);
     this.int_1 = class144_0.vmethod_10(1);
     class144_0.vmethod_5(110);
     this.byte_2 = (byte)class144_0.vmethod_10(8);
     if (this.byte_2 > 0)
     {
         this.class148_0 = new Class148[(int)this.byte_2];
         for (int i = 0; i < (int)this.byte_2; i++)
         {
             this.class148_0[i] = new Class148(class144_0);
         }
     }
 }
コード例 #24
0
ファイル: Class148.cs プロジェクト: ExileLord/Open-GHTCP
 public Class148(Class144 class144_0)
 {
     this.long_0 = class144_0.vmethod_13(64);
     this.byte_0 = (byte)class144_0.vmethod_10(8);
     class144_0.vmethod_5(24);
 }
コード例 #25
0
ファイル: Class128.cs プロジェクト: ExileLord/Open-GHTCP
 public Class128(Class144 class144_0, int int_1, bool bool_1)
     : base(bool_1)
 {
     this.int_0 = int_1;
     class144_0.vmethod_15(null, int_1);
 }
コード例 #26
0
ファイル: Class142.cs プロジェクト: ExileLord/Open-GHTCP
 public Class142(Class144 class144_0)
 {
     this.long_0 = class144_0.vmethod_13(64);
     this.long_1 = class144_0.vmethod_13(64);
     this.int_0 = class144_0.vmethod_10(16);
 }
コード例 #27
0
ファイル: Class128.cs プロジェクト: no1mann/Open-GHTCP
 public Class128(Class144 class144_0, int int_1, bool bool_1) : base(bool_1)
 {
     this.int_0 = int_1;
     class144_0.vmethod_15(null, int_1);
 }
コード例 #28
0
        public Class140(Class144 class144_0, byte[] byte_0, Class122 class122_0)
        {
            int      num    = 0;
            int      num2   = 0;
            Class152 @class = new Class152(16);
            bool     flag   = class122_0 != null && class122_0.vmethod_2() != class122_0.vmethod_1();
            bool     flag2  = class122_0 != null && class122_0.vmethod_2() == class122_0.vmethod_1();

            @class.vmethod_1(byte_0[0]);
            @class.vmethod_1(byte_0[1]);
            if ((@class.vmethod_3(1) & 3) != 0)
            {
                throw new BadHeaderException("Bad Magic Number: " + (int)(@class.vmethod_3(1) & 255));
            }
            for (int i = 0; i < 2; i++)
            {
                if (class144_0.vmethod_11(8) == 255)
                {
                    throw new BadHeaderException("Found sync byte");
                }
                @class.vmethod_1((byte)class144_0.vmethod_10(8));
            }
            int num3 = @class.vmethod_3(2) >> 4 & 15;

            switch (num3)
            {
            case 0:
                if (!flag2)
                {
                    throw new BadHeaderException("Unknown Block Size (0)");
                }
                this.int_0 = class122_0.vmethod_2();
                break;

            case 1:
                this.int_0 = 192;
                break;

            case 2:
            case 3:
            case 4:
            case 5:
                this.int_0 = 576 << num3 - 2;
                break;

            case 6:
            case 7:
                num = num3;
                break;

            case 8:
            case 9:
            case 10:
            case 11:
            case 12:
            case 13:
            case 14:
            case 15:
                this.int_0 = 256 << num3 - 8;
                break;
            }
            int num4 = (int)(@class.vmethod_3(2) & 15);

            switch (num4)
            {
            case 0:
                if (class122_0 == null)
                {
                    throw new BadHeaderException("Bad Sample Rate (0)");
                }
                this.int_1 = class122_0.vmethod_6();
                break;

            case 1:
            case 2:
            case 3:
                throw new BadHeaderException("Bad Sample Rate (" + num4 + ")");

            case 4:
                this.int_1 = 8000;
                break;

            case 5:
                this.int_1 = 16000;
                break;

            case 6:
                this.int_1 = 22050;
                break;

            case 7:
                this.int_1 = 24000;
                break;

            case 8:
                this.int_1 = 32000;
                break;

            case 9:
                this.int_1 = 44100;
                break;

            case 10:
                this.int_1 = 48000;
                break;

            case 11:
                this.int_1 = 96000;
                break;

            case 12:
            case 13:
            case 14:
                num2 = num4;
                break;

            case 15:
                throw new BadHeaderException("Bad Sample Rate (" + num4 + ")");
            }
            int num5 = @class.vmethod_3(3) >> 4 & 15;

            if ((num5 & 8) != 0)
            {
                this.int_2 = 2;
                switch (num5 & 7)
                {
                case 0:
                    this.int_3 = 1;
                    break;

                case 1:
                    this.int_3 = 2;
                    break;

                case 2:
                    this.int_3 = 3;
                    break;

                default:
                    throw new BadHeaderException("Bad Channel Assignment (" + num5 + ")");
                }
            }
            else
            {
                this.int_2 = num5 + 1;
                this.int_3 = 0;
            }
            int num6 = (@class.vmethod_3(3) & 14) >> 1;

            switch (num6)
            {
            case 0:
                if (class122_0 == null)
                {
                    throw new BadHeaderException("Bad BPS (" + num6 + ")");
                }
                this.int_4 = class122_0.vmethod_7();
                break;

            case 1:
                this.int_4 = 8;
                break;

            case 2:
                this.int_4 = 12;
                break;

            case 3:
            case 7:
                throw new BadHeaderException("Bad BPS (" + num6 + ")");

            case 4:
                this.int_4 = 16;
                break;

            case 5:
                this.int_4 = 20;
                break;

            case 6:
                this.int_4 = 24;
                break;
            }
            if ((@class.vmethod_3(3) & 1) != 0)
            {
                throw new BadHeaderException("this should be a zero padding bit");
            }
            if (num != 0 && flag)
            {
                this.long_0 = class144_0.vmethod_19(@class);
                if (this.long_0 == -1L)
                {
                    throw new BadHeaderException("Bad Sample Number");
                }
            }
            else
            {
                int num7 = class144_0.vmethod_18(@class);
                if ((long)num7 == 4294967295L)
                {
                    throw new BadHeaderException("Bad Last Frame");
                }
                this.long_0 = (long)class122_0.vmethod_2() * (long)num7;
            }
            if (num != 0)
            {
                int num8 = class144_0.vmethod_10(8);
                @class.vmethod_1((byte)num8);
                if (num == 7)
                {
                    int num9 = class144_0.vmethod_10(8);
                    @class.vmethod_1((byte)num9);
                    num8 = (num8 << 8 | num9);
                }
                this.int_0 = num8 + 1;
            }
            if (num2 != 0)
            {
                int num10 = class144_0.vmethod_10(8);
                @class.vmethod_1((byte)num10);
                if (num2 != 12)
                {
                    int num11 = class144_0.vmethod_10(8);
                    @class.vmethod_1((byte)num11);
                    num10 = (num10 << 8 | num11);
                }
                if (num2 == 12)
                {
                    this.int_1 = num10 * 1000;
                }
                else if (num2 == 13)
                {
                    this.int_1 = num10;
                }
                else
                {
                    this.int_1 = num10 * 10;
                }
            }
            byte b = (byte)class144_0.vmethod_10(8);

            if (Class149.smethod_0(@class.vmethod_2(), @class.vmethod_0()) != b)
            {
                throw new BadHeaderException("STREAM_DECODER_ERROR_STATUS_BAD_HEADER");
            }
        }
コード例 #29
0
ファイル: Class148.cs プロジェクト: no1mann/Open-GHTCP
 public Class148(Class144 class144_0)
 {
     this.long_0 = class144_0.vmethod_13(64);
     this.byte_0 = (byte)class144_0.vmethod_10(8);
     class144_0.vmethod_5(24);
 }
コード例 #30
0
ファイル: Class142.cs プロジェクト: no1mann/Open-GHTCP
 public Class142(Class144 class144_0)
 {
     this.long_0 = class144_0.vmethod_13(64);
     this.long_1 = class144_0.vmethod_13(64);
     this.int_0  = class144_0.vmethod_10(16);
 }
コード例 #31
0
ファイル: Class140.cs プロジェクト: ExileLord/Open-GHTCP
 public Class140(Class144 class144_0, byte[] byte_0, Class122 class122_0)
 {
     int num = 0;
     int num2 = 0;
     Class152 @class = new Class152(16);
     bool flag = class122_0 != null && class122_0.vmethod_2() != class122_0.vmethod_1();
     bool flag2 = class122_0 != null && class122_0.vmethod_2() == class122_0.vmethod_1();
     @class.vmethod_1(byte_0[0]);
     @class.vmethod_1(byte_0[1]);
     if ((@class.vmethod_3(1) & 3) != 0)
     {
         throw new BadHeaderException("Bad Magic Number: " + (int)(@class.vmethod_3(1) & 255));
     }
     for (int i = 0; i < 2; i++)
     {
         if (class144_0.vmethod_11(8) == 255)
         {
             throw new BadHeaderException("Found sync byte");
         }
         @class.vmethod_1((byte)class144_0.vmethod_10(8));
     }
     int num3 = @class.vmethod_3(2) >> 4 & 15;
     switch (num3)
     {
     case 0:
         if (!flag2)
         {
             throw new BadHeaderException("Unknown Block Size (0)");
         }
         this.int_0 = class122_0.vmethod_2();
         break;
     case 1:
         this.int_0 = 192;
         break;
     case 2:
     case 3:
     case 4:
     case 5:
         this.int_0 = 576 << num3 - 2;
         break;
     case 6:
     case 7:
         num = num3;
         break;
     case 8:
     case 9:
     case 10:
     case 11:
     case 12:
     case 13:
     case 14:
     case 15:
         this.int_0 = 256 << num3 - 8;
         break;
     }
     int num4 = (int)(@class.vmethod_3(2) & 15);
     switch (num4)
     {
     case 0:
         if (class122_0 == null)
         {
             throw new BadHeaderException("Bad Sample Rate (0)");
         }
         this.int_1 = class122_0.vmethod_6();
         break;
     case 1:
     case 2:
     case 3:
         throw new BadHeaderException("Bad Sample Rate (" + num4 + ")");
     case 4:
         this.int_1 = 8000;
         break;
     case 5:
         this.int_1 = 16000;
         break;
     case 6:
         this.int_1 = 22050;
         break;
     case 7:
         this.int_1 = 24000;
         break;
     case 8:
         this.int_1 = 32000;
         break;
     case 9:
         this.int_1 = 44100;
         break;
     case 10:
         this.int_1 = 48000;
         break;
     case 11:
         this.int_1 = 96000;
         break;
     case 12:
     case 13:
     case 14:
         num2 = num4;
         break;
     case 15:
         throw new BadHeaderException("Bad Sample Rate (" + num4 + ")");
     }
     int num5 = @class.vmethod_3(3) >> 4 & 15;
     if ((num5 & 8) != 0)
     {
         this.int_2 = 2;
         switch (num5 & 7)
         {
         case 0:
             this.int_3 = 1;
             break;
         case 1:
             this.int_3 = 2;
             break;
         case 2:
             this.int_3 = 3;
             break;
         default:
             throw new BadHeaderException("Bad Channel Assignment (" + num5 + ")");
         }
     }
     else
     {
         this.int_2 = num5 + 1;
         this.int_3 = 0;
     }
     int num6 = (@class.vmethod_3(3) & 14) >> 1;
     switch (num6)
     {
     case 0:
         if (class122_0 == null)
         {
             throw new BadHeaderException("Bad BPS (" + num6 + ")");
         }
         this.int_4 = class122_0.vmethod_7();
         break;
     case 1:
         this.int_4 = 8;
         break;
     case 2:
         this.int_4 = 12;
         break;
     case 3:
     case 7:
         throw new BadHeaderException("Bad BPS (" + num6 + ")");
     case 4:
         this.int_4 = 16;
         break;
     case 5:
         this.int_4 = 20;
         break;
     case 6:
         this.int_4 = 24;
         break;
     }
     if ((@class.vmethod_3(3) & 1) != 0)
     {
         throw new BadHeaderException("this should be a zero padding bit");
     }
     if (num != 0 && flag)
     {
         this.long_0 = class144_0.vmethod_19(@class);
         if (this.long_0 == -1L)
         {
             throw new BadHeaderException("Bad Sample Number");
         }
     }
     else
     {
         int num7 = class144_0.vmethod_18(@class);
         if ((long)num7 == 4294967295L)
         {
             throw new BadHeaderException("Bad Last Frame");
         }
         this.long_0 = (long)class122_0.vmethod_2() * (long)num7;
     }
     if (num != 0)
     {
         int num8 = class144_0.vmethod_10(8);
         @class.vmethod_1((byte)num8);
         if (num == 7)
         {
             int num9 = class144_0.vmethod_10(8);
             @class.vmethod_1((byte)num9);
             num8 = (num8 << 8 | num9);
         }
         this.int_0 = num8 + 1;
     }
     if (num2 != 0)
     {
         int num10 = class144_0.vmethod_10(8);
         @class.vmethod_1((byte)num10);
         if (num2 != 12)
         {
             int num11 = class144_0.vmethod_10(8);
             @class.vmethod_1((byte)num11);
             num10 = (num10 << 8 | num11);
         }
         if (num2 == 12)
         {
             this.int_1 = num10 * 1000;
         }
         else if (num2 == 13)
         {
             this.int_1 = num10;
         }
         else
         {
             this.int_1 = num10 * 10;
         }
     }
     byte b = (byte)class144_0.vmethod_10(8);
     if (Class149.smethod_0(@class.vmethod_2(), @class.vmethod_0()) != b)
     {
         throw new BadHeaderException("STREAM_DECODER_ERROR_STATUS_BAD_HEADER");
     }
 }