// Token: 0x060006B7 RID: 1719 RVA: 0x0002B98C File Offset: 0x00029B8C private void pmethod_1219(object obje_0) { Class_185 class_ = (Class_185)obje_0; try { class_.prop_0.tmethod_1132(); lock (this.field_13) { if (class_.field_2 > this.field_5) { this.field_5 = class_.field_2; } } lock (this.field_10) { this.field_10.Enqueue(class_.field_0); } this.field_16.Set(); } catch (Exception ex) { lock (this.field_14) { if (this.field_7 != null) { this.field_7 = ex; } } } }
// Token: 0x060006B0 RID: 1712 RVA: 0x0002B408 File Offset: 0x00029608 private void tmethod_1212(bool bool_0) { if (this.field_9) { return; } if (this.field_6 >= 0) { Class_185 obje_ = this.field_12[this.field_6]; this.pmethod_1219(obje_); this.field_6 = -1; } if (bool_0) { this.lmethod_1218(true, false); this.vmethod_1215(); return; } this.lmethod_1218(false, false); }
// Token: 0x060006B6 RID: 1718 RVA: 0x0002B71C File Offset: 0x0002991C private void lmethod_1218(bool bool_0, bool bool_1) { if (this.field_9) { return; } this.field_9 = true; if (bool_0 || bool_1) { this.field_16.WaitOne(); } do { int num = -1; int num2 = bool_0 ? 200 : (bool_1 ? -1 : 0); int num3 = -1; do { if (Monitor.TryEnter(this.field_10, num2)) { num3 = -1; try { if (this.field_10.Count > 0) { num3 = this.field_10.Dequeue(); } } finally { Monitor.Exit(this.field_10); } if (num3 >= 0) { Class_185 class_ = this.field_12[num3]; if (class_.field_2 != this.field_4 + 1) { lock (this.field_10) { this.field_10.Enqueue(num3); } if (num == num3) { this.field_16.WaitOne(); num = -1; } else if (num == -1) { num = num3; } } else { num = -1; Class_180 class_2 = class_.field_3; class_2.smethod_1120(); MemoryStream memoryStream = class_.field_1; memoryStream.Seek(0L, SeekOrigin.Begin); long num4 = 0L; byte[] array = new byte[1024]; int num5; while ((num5 = memoryStream.Read(array, 0, array.Length)) > 0) { for (int i = 0; i < num5; i++) { this.field_22.lmethod_1118(array[i]); } num4 += (long)num5; } if (class_2.prop_1 > 0) { this.field_22.kmethod_1117(class_2.prop_1, (uint)class_2.prop_0); } this.field_20 = (this.field_20 << 1 | this.field_20 >> 31); this.field_20 ^= class_.prop_0.prop_1; this.field_18 += num4; class_2.dmethod_1116(); this.field_4 = class_.field_2; class_.field_2 = -1; this.field_11.Enqueue(class_.field_0); if (num2 == -1) { num2 = 0; } } } } else { num3 = -1; } }while (num3 >= 0); }while (bool_0 && this.field_4 != this.field_5); this.field_9 = false; }
// Token: 0x060006B5 RID: 1717 RVA: 0x0002B558 File Offset: 0x00029758 public virtual void kmethod_1217(byte[] byteDizi_0, int sayıInt_0, int sayıInt_1) { bool bool_ = false; if (this.field_21 == null) { throw new IOException("the stream is not open"); } if (this.field_7 != null) { this.field_8 = true; Exception ex = this.field_7; this.field_7 = null; throw ex; } if (sayıInt_0 < 0) { throw new IndexOutOfRangeException(string.Format("offset ({0}) must be > 0", sayıInt_0)); } if (sayıInt_1 < 0) { throw new IndexOutOfRangeException(string.Format("count ({0}) must be > 0", sayıInt_1)); } if (sayıInt_0 + sayıInt_1 > byteDizi_0.Length) { throw new IndexOutOfRangeException(string.Format("offset({0}) count({1}) bLength({2})", sayıInt_0, sayıInt_1, byteDizi_0.Length)); } if (sayıInt_1 == 0) { return; } if (!this.field_2) { this.lmethod_1208(); this.field_2 = true; } int num = 0; int num2 = sayıInt_1; for (;;) { this.lmethod_1218(false, bool_); bool_ = false; int index; if (this.field_6 >= 0) { index = this.field_6; goto IL_124; } if (this.field_11.Count != 0) { index = this.field_11.Dequeue(); this.field_3++; goto IL_124; } bool_ = true; IL_1A0: if (num2 <= 0) { goto Block_12; } continue; IL_124: Class_185 class_ = this.field_12[index]; class_.field_2 = this.field_3; int num3 = class_.prop_0.pmethod_1129(byteDizi_0, sayıInt_0, num2); if (num3 != num2) { if (!ThreadPool.QueueUserWorkItem(new WaitCallback(this.pmethod_1219), class_)) { break; } this.field_6 = -1; sayıInt_0 += num3; } else { this.field_6 = index; } num2 -= num3; num += num3; goto IL_1A0; } throw new Exception("Cannot enqueue workitem"); Block_12: this.field_17 += (long)num; }