// Token: 0x0600010D RID: 269 RVA: 0x000088B0 File Offset: 0x00006AB0 private bool method_8(ulong ulong_1) { if (this.Byte_0[(int)((uint)ulong_1)] == 13) { int num = Convert.ToInt32(decimal.Subtract(new decimal(this.method_4(Convert.ToInt32(decimal.Add(new decimal(ulong_1), 3m)), 2)), 1m)); int num2 = 0; if (this.GStruct1_0 != null) { num2 = this.GStruct1_0.Length; this.GStruct1_0 = (GStruct1[])Utils.CopyArray(this.GStruct1_0, new GStruct1[this.GStruct1_0.Length + num + 1]); } else { this.GStruct1_0 = new GStruct1[num + 1]; } int num3 = num; for (int i = 0; i <= num3; i++) { GStruct2[] array = null; ulong num4 = this.method_4(Convert.ToInt32(decimal.Add(decimal.Add(new decimal(ulong_1), 8m), new decimal(i * 2))), 2); if (decimal.Compare(new decimal(ulong_1), 100m) != 0) { num4 += ulong_1; } int num5 = this.method_6((int)num4); this.method_5((int)num4, num5); int num6 = this.method_6(Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), decimal.Subtract(new decimal(num5), new decimal(num4))), 1m))); this.GStruct1_0[num2 + i].Int64_0 = this.method_5(Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), decimal.Subtract(new decimal(num5), new decimal(num4))), 1m)), num6); num4 = Convert.ToUInt64(decimal.Add(decimal.Add(new decimal(num4), decimal.Subtract(new decimal(num6), new decimal(num4))), 1m)); num5 = this.method_6((int)num4); num6 = num5; long num7 = this.method_5((int)num4, num5); long num8 = Convert.ToInt64(decimal.Add(decimal.Subtract(new decimal(num4), new decimal(num5)), 1m)); int num9 = 0; while (num8 < num7) { array = (GStruct2[])Utils.CopyArray(array, new GStruct2[num9 + 1]); num5 = num6 + 1; num6 = this.method_6(num5); array[num9].Int64_1 = this.method_5(num5, num6); if (array[num9].Int64_1 > 9L) { if (GClass8.smethod_0(array[num9].Int64_1)) { array[num9].Int64_0 = (long)Math.Round((double)(array[num9].Int64_1 - 13L) / 2.0); } else { array[num9].Int64_0 = (long)Math.Round((double)(array[num9].Int64_1 - 12L) / 2.0); } } else { array[num9].Int64_0 = (long)((ulong)this.Byte_1[(int)array[num9].Int64_1]); } num8 = num8 + (long)(num6 - num5) + 1L; num9++; } this.GStruct1_0[num2 + i].String_0 = new string[array.Length - 1 + 1]; int num10 = 0; int num11 = array.Length - 1; for (int j = 0; j <= num11; j++) { if (array[j].Int64_1 > 9L) { if (!GClass8.smethod_0(array[j].Int64_1)) { if (decimal.Compare(new decimal(this.UInt64_0), 1m) == 0) { this.GStruct1_0[num2 + i].String_0[j] = Encoding.Default.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), new decimal(num7)), new decimal(num10))), (int)array[j].Int64_0); } else if (decimal.Compare(new decimal(this.UInt64_0), 2m) == 0) { this.GStruct1_0[num2 + i].String_0[j] = Encoding.Unicode.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), new decimal(num7)), new decimal(num10))), (int)array[j].Int64_0); } else if (decimal.Compare(new decimal(this.UInt64_0), 3m) == 0) { this.GStruct1_0[num2 + i].String_0[j] = Encoding.BigEndianUnicode.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), new decimal(num7)), new decimal(num10))), (int)array[j].Int64_0); } } else { this.GStruct1_0[num2 + i].String_0[j] = Encoding.Default.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), new decimal(num7)), new decimal(num10))), (int)array[j].Int64_0); } } else { this.GStruct1_0[num2 + i].String_0[j] = Convert.ToString(this.method_4(Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), new decimal(num7)), new decimal(num10))), (int)array[j].Int64_0)); } num10 += (int)array[j].Int64_0; } } } else if (this.Byte_0[(int)((uint)ulong_1)] == 5) { int num12 = (int)Convert.ToUInt16(decimal.Subtract(new decimal(this.method_4(Convert.ToInt32(decimal.Add(new decimal(ulong_1), 3m)), 2)), 1m)); for (int k = 0; k <= num12; k++) { ushort num13 = (ushort)this.method_4(Convert.ToInt32(decimal.Add(decimal.Add(new decimal(ulong_1), 12m), new decimal(k * 2))), 2); this.method_8(Convert.ToUInt64(decimal.Multiply(decimal.Subtract(new decimal(this.method_4((int)(ulong_1 + (ulong)num13), 4)), 1m), new decimal((int)this.UInt16_0)))); } this.method_8(Convert.ToUInt64(decimal.Multiply(decimal.Subtract(new decimal(this.method_4(Convert.ToInt32(decimal.Add(new decimal(ulong_1), 8m)), 4)), 1m), new decimal((int)this.UInt16_0)))); } return(true); }
// Token: 0x0600010C RID: 268 RVA: 0x0000827C File Offset: 0x0000647C private void method_7(ulong ulong_1) { if (this.Byte_0[(int)((uint)ulong_1)] == 13) { ushort num = (this.method_4((ulong_1.smethod_0 <decimal>() + 3m).smethod_0 <int>(), 2).smethod_0 <decimal>() - 1m).smethod_0 <ushort>(); int num2 = 0; if (this.GStruct0_0 != null) { num2 = this.GStruct0_0.Length; this.GStruct0_0 = (GStruct0[])Utils.CopyArray(this.GStruct0_0, new GStruct0[this.GStruct0_0.Length + (int)num + 1]); } else { this.GStruct0_0 = new GStruct0[(int)(num + 1)]; } int num3 = (int)num; for (int i = 0; i <= num3; i++) { ulong num4 = this.method_4((ulong_1.smethod_0 <decimal>() + 8m + (i * 2).smethod_0 <decimal>()).smethod_0 <int>(), 2); if (decimal.Compare(ulong_1.smethod_0 <decimal>(), 100m) != 0) { num4 += ulong_1; } int num5 = this.method_6(num4.smethod_0 <int>()); this.method_5(num4.smethod_0 <int>(), num5); int num6 = this.method_6((num4.smethod_0 <decimal>() + num5.smethod_0 <decimal>() - num4.smethod_0 <decimal>() + 1m).smethod_0 <int>()); this.GStruct0_0[num2 + i].Int64_0 = this.method_5((num4.smethod_0 <decimal>() + num5.smethod_0 <decimal>() - num4.smethod_0 <decimal>() + 1m).smethod_0 <int>(), num6); num4 = (num4.smethod_0 <decimal>() + num6.smethod_0 <decimal>() - num4.smethod_0 <decimal>() + 1m).smethod_0 <ulong>(); num5 = this.method_6(num4.smethod_0 <int>()); num6 = num5; long value = this.method_5(num4.smethod_0 <int>(), num5); long[] array = new long[5]; int num7 = 0; do { num5 = num6 + 1; num6 = this.method_6(num5); array[num7] = this.method_5(num5, num6); if (array[num7] > 9L) { if (GClass8.smethod_0(array[num7])) { array[num7] = (long)Math.Round((double)(array[num7] - 13L) / 2.0); } else { array[num7] = (long)Math.Round((double)(array[num7] - 12L) / 2.0); } } else { array[num7] = (long)((ulong)this.Byte_1[(int)array[num7]]); } num7++; }while (num7 <= 4); Encoding encoding = Encoding.Default; decimal value2 = this.UInt64_0.smethod_0 <decimal>(); if (!1m.Equals(value2)) { if (!2m.Equals(value2)) { if (3m.Equals(value2)) { encoding = Encoding.BigEndianUnicode; } } else { encoding = Encoding.Unicode; } } else { encoding = Encoding.Default; } this.GStruct0_0[num2 + i].String_0 = encoding.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(new decimal(num4), new decimal(value))), (int)array[0]); this.GStruct0_0[num2 + i].String_1 = encoding.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(decimal.Add(new decimal(num4), new decimal(value)), new decimal(array[0]))), (int)array[1]); this.GStruct0_0[num2 + i].Int64_1 = (long)this.method_4(Convert.ToInt32(decimal.Add(decimal.Add(decimal.Add(decimal.Add(new decimal(num4), new decimal(value)), new decimal(array[0])), new decimal(array[1])), new decimal(array[2]))), (int)array[3]); this.GStruct0_0[num2 + i].String_3 = encoding.GetString(this.Byte_0, Convert.ToInt32(decimal.Add(decimal.Add(decimal.Add(decimal.Add(decimal.Add(new decimal(num4), new decimal(value)), new decimal(array[0])), new decimal(array[1])), new decimal(array[2])), new decimal(array[3]))), (int)array[4]); } return; } if (this.Byte_0[(int)((uint)ulong_1)] != 5) { return; } int num8 = (int)Convert.ToUInt16(decimal.Subtract(new decimal(this.method_4(Convert.ToInt32(decimal.Add(new decimal(ulong_1), 3m)), 2)), 1m)); for (int j = 0; j <= num8; j++) { ushort num9 = (ushort)this.method_4(Convert.ToInt32(decimal.Add(decimal.Add(new decimal(ulong_1), 12m), new decimal(j * 2))), 2); if (decimal.Compare(new decimal(ulong_1), 100m) == 0) { this.method_7(Convert.ToUInt64(decimal.Multiply(decimal.Subtract(new decimal(this.method_4((int)num9, 4)), 1m), new decimal((int)this.UInt16_0)))); } else { this.method_7(Convert.ToUInt64(decimal.Multiply(decimal.Subtract(new decimal(this.method_4((int)(ulong_1 + (ulong)num9), 4)), 1m), new decimal((int)this.UInt16_0)))); } } this.method_7(Convert.ToUInt64(decimal.Multiply(decimal.Subtract(new decimal(this.method_4(Convert.ToInt32(decimal.Add(new decimal(ulong_1), 8m)), 4)), 1m), new decimal((int)this.UInt16_0)))); }