public override object vmethod_3(OGGClass6 class71_0, object object_1, object object_2) { Class37 @class = (Class37)object_1; Class36 class36_ = @class.class36_0; float[] array = null; if (object_2 is float[]) { array = (float[])object_2; } int num = class71_0.oggClass3.method_6(class36_.int_3); if (num > 0) { int num2 = (1 << class36_.int_3) - 1; float num3 = (float)num / (float)num2 * (float)class36_.int_4; int num4 = class71_0.oggClass3.method_6(Class30.smethod_1(class36_.int_5)); if (num4 != -1 && num4 < class36_.int_5) { OGGClass4 class2 = class71_0.oggClass1.oggClass4[class36_.int_6[num4]]; float num5 = 0f; if (array != null && array.Length >= @class.int_2 + 1) { for (int i = 0; i < array.Length; i++) { array[i] = 0f; } } else { array = new float[@class.int_2 + 1]; } for (int j = 0; j < @class.int_2; j += class2.int_0) { if (class2.method_2(array, j, class71_0.oggClass3, class2.int_0) == -1) { return null; } } int k = 0; while (k < @class.int_2) { int l = 0; while (l < class2.int_0) { array[k] += num5; l++; k++; } num5 = array[k - 1]; } array[@class.int_2] = num3; return array; } } return null; }
public override int vmethod_3(OGGClass6 class71_0, object object_0, float[][] float_0, int[] int_1, int int_2) { int num = 0; while (num < int_2 && int_1[num] == 0) { num++; } if (num == int_2) { return 0; } return Class24.smethod_1(class71_0, object_0, float_0, int_2); }
public override int vmethod_3(OGGClass6 class71_0, object object_0, float[][] float_0, int[] int_1, int int_2) { int num = 0; for (int i = 0; i < int_2; i++) { if (int_1[i] != 0) { float_0[num++] = float_0[i]; } } if (num != 0) { return Class24.smethod_0(class71_0, object_0, float_0, num, 1); } return 0; }
public abstract int vmethod_4(OGGClass6 class71_0, object object_0, object object_1, float[] float_0);
public abstract object vmethod_3(OGGClass6 class71_0, object object_0, object object_1);
public override int vmethod_3(OGGClass6 class71_0, object object_2) { int result; lock (this.object_0) { OGGClass1 class66_ = class71_0.oggClass1; OGGClass5 class49_ = class66_.oggClass5; Class55 @class = (Class55)object_2; Class54 class54_ = @class.class54_0; Class27 class27_ = @class.class27_0; int num = class71_0.int_3 = class49_.int_13[class71_0.int_1]; float[] array = class66_.float_2[class71_0.int_1][class71_0.int_0][class71_0.int_2][class27_.int_1]; if (this.float_0 == null || this.float_0.Length < class49_.int_8) { this.float_0 = new float[class49_.int_8][]; this.int_1 = new int[class49_.int_8]; this.int_0 = new int[class49_.int_8]; this.object_1 = new object[class49_.int_8]; } for (int i = 0; i < class49_.int_8; i++) { float[] array2 = class71_0.float_0[i]; int num2 = class54_.int_1[i]; this.object_1[i] = @class.class28_0[num2].vmethod_3(class71_0, @class.object_1[num2], this.object_1[i]); if (this.object_1[i] != null) { this.int_1[i] = 1; } else { this.int_1[i] = 0; } for (int j = 0; j < num / 2; j++) { array2[j] = 0f; } } for (int k = 0; k < class54_.int_6; k++) { if (this.int_1[class54_.int_7[k]] != 0 || this.int_1[class54_.int_8[k]] != 0) { this.int_1[class54_.int_7[k]] = 1; this.int_1[class54_.int_8[k]] = 1; } } for (int l = 0; l < class54_.int_0; l++) { int num3 = 0; for (int m = 0; m < class49_.int_8; m++) { if (class54_.int_1[m] == l) { if (this.int_1[m] != 0) { this.int_0[num3] = 1; } else { this.int_0[num3] = 0; } this.float_0[num3++] = class71_0.float_0[m]; } } @class.class23_0[l].vmethod_3(class71_0, @class.object_2[l], this.float_0, this.int_0, num3); } for (int n = class54_.int_6 - 1; n >= 0; n--) { float[] array3 = class71_0.float_0[class54_.int_7[n]]; float[] array4 = class71_0.float_0[class54_.int_8[n]]; for (int num4 = 0; num4 < num / 2; num4++) { float num5 = array3[num4]; float num6 = array4[num4]; if (num5 > 0f) { if (num6 > 0f) { array3[num4] = num5; array4[num4] = num5 - num6; } else { array4[num4] = num5; array3[num4] = num5 + num6; } } else if (num6 > 0f) { array3[num4] = num5; array4[num4] = num5 + num6; } else { array4[num4] = num5; array3[num4] = num5 - num6; } } } for (int num7 = 0; num7 < class49_.int_8; num7++) { float[] array5 = class71_0.float_0[num7]; int num8 = class54_.int_1[num7]; @class.class28_0[num8].vmethod_4(class71_0, @class.object_1[num8], this.object_1[num7], array5); } for (int num9 = 0; num9 < class49_.int_8; num9++) { float[] array6 = class71_0.float_0[num9]; ((Class68)class66_.object_0[class71_0.int_1][0]).method_1(array6, array6); } for (int num10 = 0; num10 < class49_.int_8; num10++) { float[] array7 = class71_0.float_0[num10]; if (this.int_1[num10] != 0) { for (int num11 = 0; num11 < num; num11++) { array7[num11] *= array[num11]; } } else { for (int num12 = 0; num12 < num; num12++) { array7[num12] = 0f; } } } result = 0; } return result; }
public override int vmethod_4(OGGClass6 class71_0, object object_0, object object_1, float[] float_1) { Class32 @class = (Class32)object_0; Class31 class31_ = @class.class31_0; int num = class71_0.oggClass1.oggClass5.int_13[class71_0.int_4] / 2; if (object_1 != null) { int[] array = (int[])object_1; int num2 = 0; int int_ = 0; int int_2 = array[0] * class31_.int_6; for (int i = 1; i < @class.int_6; i++) { int num3 = @class.int_2[i]; int num4 = array[num3] & 32767; if (num4 == array[num3]) { num4 *= class31_.int_6; num2 = class31_.int_7[num3]; Class29.smethod_1(int_, num2, int_2, num4, float_1); int_ = num2; int_2 = num4; } } for (int j = num2; j < num; j++) { float_1[j] *= float_1[j - 1]; } return 1; } for (int k = 0; k < num; k++) { float_1[k] = 0f; } return 0; }
public override object vmethod_3(OGGClass6 class71_0, object object_0, object object_1) { Class32 @class = (Class32)object_0; Class31 class31_ = @class.class31_0; OGGClass4[] class21_ = class71_0.oggClass1.oggClass4; if (class71_0.oggClass3.method_6(1) == 1) { int[] array = null; if (object_1 is int[]) { array = (int[])object_1; } if (array != null && array.Length >= @class.int_6) { for (int i = 0; i < array.Length; i++) { array[i] = 0; } } else { array = new int[@class.int_6]; } array[0] = class71_0.oggClass3.method_6(Class29.smethod_2(@class.int_8 - 1)); array[1] = class71_0.oggClass3.method_6(Class29.smethod_2(@class.int_8 - 1)); int j = 0; int num = 2; while (j < class31_.int_0) { int num2 = class31_.int_1[j]; int num3 = class31_.int_2[num2]; int num4 = class31_.int_3[num2]; int num5 = 1 << num4; int num6 = 0; if (num4 != 0) { num6 = class21_[class31_.int_4[num2]].method_4(class71_0.oggClass3); if (num6 == -1) { return null; } } for (int k = 0; k < num3; k++) { int num7 = class31_.int_5[num2][num6 & num5 - 1]; num6 = (int)((uint)num6 >> num4); if (num7 >= 0) { if ((array[num + k] = class21_[num7].method_4(class71_0.oggClass3)) == -1) { return null; } } else { array[num + k] = 0; } } num += num3; j++; } for (int l = 2; l < @class.int_6; l++) { int num8 = Class29.smethod_0(class31_.int_7[@class.int_5[l - 2]], class31_.int_7[@class.int_4[l - 2]], array[@class.int_5[l - 2]], array[@class.int_4[l - 2]], class31_.int_7[l]); int num9 = @class.int_8 - num8; int num10 = num8; int num11 = ((num9 < num10) ? num9 : num10) << 1; int num12 = array[l]; if (num12 != 0) { if (num12 >= num11) { if (num9 > num10) { num12 -= num10; } else { num12 = -1 - (num12 - num9); } } else if ((num12 & 1) != 0) { num12 = (int)(-(int)((ulong)((uint)(num12 + 1) >> 1))); } else { num12 >>= 1; } array[l] = num12 + num8; array[@class.int_5[l - 2]] &= 32767; array[@class.int_4[l - 2]] &= 32767; } else { array[l] = (num8 | 32768); } } return array; } return null; }
public static int smethod_0(OGGClass6 class71_0, object object_0, float[][] float_0, int int_1, int int_2) { Class39 @class = (Class39)object_0; Class40 class40_ = @class.class40_0; int int_3 = class40_.int_2; int num = @class.class21_1.int_0; int num2 = class40_.int_1 - class40_.int_0; int num3 = num2 / int_3; int num4 = (num3 + num - 1) / num; if (Class24.int_0.Length < int_1) { Class24.int_0 = new int[int_1][][]; for (int i = 0; i < int_1; i++) { Class24.int_0[i] = new int[num4][]; } } else { for (int i = 0; i < int_1; i++) { if (Class24.int_0[i] == null || Class24.int_0[i].Length < num4) { Class24.int_0[i] = new int[num4][]; } } } for (int j = 0; j < @class.int_2; j++) { int k = 0; int num5 = 0; while (k < num3) { if (j == 0) { for (int i = 0; i < int_1; i++) { int num6 = @class.class21_1.method_4(class71_0.oggClass3); if (num6 == -1) { return 0; } Class24.int_0[i][num5] = @class.int_5[num6]; if (Class24.int_0[i][num5] == null) { return 0; } } } int num7 = 0; while (num7 < num && k < num3) { for (int i = 0; i < int_1; i++) { int int_4 = class40_.int_0 + k * int_3; if ((class40_.int_5[Class24.int_0[i][num5][num7]] & 1 << j) != 0) { OGGClass4 class2 = @class.class21_0[@class.int_3[Class24.int_0[i][num5][num7]][j]]; if (class2 != null) { if (int_2 == 0) { if (class2.method_0(float_0[i], int_4, class71_0.oggClass3, int_3) == -1) { return 0; } } else if (int_2 == 1 && class2.method_1(float_0[i], int_4, class71_0.oggClass3, int_3) == -1) { return 0; } } } } num7++; k++; } num5++; } } return 0; }
public static int smethod_1(OGGClass6 class71_0, object object_0, float[][] float_0, int int_1) { Class39 @class = (Class39)object_0; Class40 class40_ = @class.class40_0; int int_2 = class40_.int_2; int num = @class.class21_1.int_0; int num2 = class40_.int_1 - class40_.int_0; int num3 = num2 / int_2; int num4 = (num3 + num - 1) / num; int[][] array = new int[num4][]; for (int i = 0; i < @class.int_2; i++) { int j = 0; int num5 = 0; while (j < num3) { if (i == 0) { int num6 = @class.class21_1.method_4(class71_0.oggClass3); if (num6 == -1) { return 0; } array[num5] = @class.int_5[num6]; if (array[num5] == null) { return 0; } } int num7 = 0; while (num7 < num && j < num3) { int int_3 = class40_.int_0 + j * int_2; if ((class40_.int_5[array[num5][num7]] & 1 << i) != 0) { OGGClass4 class2 = @class.class21_0[@class.int_3[array[num5][num7]][i]]; if (class2 != null && class2.method_3(float_0, int_3, int_1, class71_0.oggClass3, int_2) == -1) { return 0; } } num7++; j++; } num5++; } } return 0; }
public int method_2(OGGClass6 class71_0) { if (this.int_11 > this.oggClass5.int_13[1] >> 1 && this.int_6 > 8192) { int num = this.int_11 - (this.oggClass5.int_13[1] >> 1); num = ((this.int_6 < num) ? this.int_6 : num); this.int_5 -= num; this.int_11 -= num; this.int_6 -= num; if (num != 0) { for (int i = 0; i < this.oggClass5.int_8; i++) { Buffer.BlockCopy(this.float_1[i], num << 2, this.float_1[i], 0, this.int_5 << 2); } } } this.int_8 = this.int_9; this.int_9 = class71_0.int_1; this.int_10 = -1; this.long_2 += (long)class71_0.int_6; this.long_3 += (long)class71_0.int_7; this.long_4 += (long)class71_0.int_8; this.long_5 += (long)class71_0.int_9; if (this.long_1 + 1L != class71_0.long_1) { this.long_0 = -1L; } this.long_1 = class71_0.long_1; int num2 = this.oggClass5.int_13[this.int_9]; int num3 = this.int_11 + (this.oggClass5.int_13[this.int_8] >> 2) + (num2 >> 2); int num4 = num3 - (num2 >> 1); int num5 = num4 + num2; int num6 = 0; int num7 = 0; if (num5 > this.int_4) { this.int_4 = num5 + this.oggClass5.int_13[1]; for (int j = 0; j < this.oggClass5.int_8; j++) { float[] array = new float[this.int_4]; Buffer.BlockCopy(this.float_1[j], 0, array, 0, this.float_1[j].Length << 2); this.float_1[j] = array; } } switch (this.int_9) { case 0: num6 = 0; num7 = this.oggClass5.int_13[0] >> 1; break; case 1: num6 = (this.oggClass5.int_13[1] >> 2) - (this.oggClass5.int_13[this.int_8] >> 2); num7 = num6 + (this.oggClass5.int_13[this.int_8] >> 1); break; } for (int k = 0; k < this.oggClass5.int_8; k++) { int num8 = num4; int l; for (l = num6; l < num7; l++) { this.float_1[k][num8 + l] += class71_0.float_0[k][l]; } while (l < num2) { this.float_1[k][num8 + l] = class71_0.float_0[k][l]; l++; } } if (this.long_0 == -1L) { this.long_0 = class71_0.long_0; } else { this.long_0 += (long)(num3 - this.int_11); if (class71_0.long_0 != -1L && this.long_0 != class71_0.long_0) { if (this.long_0 > class71_0.long_0 && class71_0.int_5 != 0) { num3 -= (int)(this.long_0 - class71_0.long_0); } this.long_0 = class71_0.long_0; } } this.int_11 = num3; this.int_5 = num5; if (class71_0.int_5 != 0) { this.int_7 = 1; } return 0; }
public override int vmethod_4(OGGClass6 class71_0, object object_1, object object_2, float[] float_0) { Class37 @class = (Class37)object_1; Class36 class36_ = @class.class36_0; if (object_2 != null) { float[] array = (float[])object_2; float float_ = array[@class.int_2]; Class77.smethod_0(float_0, @class.int_3, @class.int_0, @class.int_1, array, @class.int_2, float_, (float)class36_.int_4); return 1; } for (int i = 0; i < @class.int_0; i++) { float_0[i] = 0f; } return 0; }
public abstract int vmethod_3(OGGClass6 class71_0, object object_0, float[][] float_0, int[] int_0, int int_1);
private OGGStream() { this.class56_0 = new Class56(); this.oggClass1 = new OGGClass1(); this.oggClass6 = new OGGClass6(this.oggClass1); }
public int method_2(OGGClass6 class71_0) { if (this.int_11 > this.oggClass5.int_13[1] >> 1 && this.int_6 > 8192) { int num = this.int_11 - (this.oggClass5.int_13[1] >> 1); num = ((this.int_6 < num) ? this.int_6 : num); this.int_5 -= num; this.int_11 -= num; this.int_6 -= num; if (num != 0) { for (int i = 0; i < this.oggClass5.int_8; i++) { Buffer.BlockCopy(this.float_1[i], num << 2, this.float_1[i], 0, this.int_5 << 2); } } } this.int_8 = this.int_9; this.int_9 = class71_0.int_1; this.int_10 = -1; this.long_2 += (long)class71_0.int_6; this.long_3 += (long)class71_0.int_7; this.long_4 += (long)class71_0.int_8; this.long_5 += (long)class71_0.int_9; if (this.long_1 + 1L != class71_0.long_1) { this.long_0 = -1L; } this.long_1 = class71_0.long_1; int num2 = this.oggClass5.int_13[this.int_9]; int num3 = this.int_11 + (this.oggClass5.int_13[this.int_8] >> 2) + (num2 >> 2); int num4 = num3 - (num2 >> 1); int num5 = num4 + num2; int num6 = 0; int num7 = 0; if (num5 > this.int_4) { this.int_4 = num5 + this.oggClass5.int_13[1]; for (int j = 0; j < this.oggClass5.int_8; j++) { float[] array = new float[this.int_4]; Buffer.BlockCopy(this.float_1[j], 0, array, 0, this.float_1[j].Length << 2); this.float_1[j] = array; } } switch (this.int_9) { case 0: num6 = 0; num7 = this.oggClass5.int_13[0] >> 1; break; case 1: num6 = (this.oggClass5.int_13[1] >> 2) - (this.oggClass5.int_13[this.int_8] >> 2); num7 = num6 + (this.oggClass5.int_13[this.int_8] >> 1); break; } for (int k = 0; k < this.oggClass5.int_8; k++) { int num8 = num4; int l; for (l = num6; l < num7; l++) { this.float_1[k][num8 + l] += class71_0.float_0[k][l]; } while (l < num2) { this.float_1[k][num8 + l] = class71_0.float_0[k][l]; l++; } } if (this.long_0 == -1L) { this.long_0 = class71_0.long_0; } else { this.long_0 += (long)(num3 - this.int_11); if (class71_0.long_0 != -1L && this.long_0 != class71_0.long_0) { if (this.long_0 > class71_0.long_0 && class71_0.int_5 != 0) { num3 -= (int)(this.long_0 - class71_0.long_0); } this.long_0 = class71_0.long_0; } } this.int_11 = num3; this.int_5 = num5; if (class71_0.int_5 != 0) { this.int_7 = 1; } return(0); }