// Token: 0x0600076B RID: 1899 RVA: 0x00032DD4 File Offset: 0x00030FD4 private void xmethod_1301(object obje_0) { Class_198 class_ = (Class_198)obje_0; try { int num = class_.field_3; Class_215 class_2 = new Class_215(); class_2.pmethod_1369(class_.field_0, 0, class_.field_5); this.tmethod_1302(class_); class_.field_2 = class_2.prop_1; lock (this.field_18) { if (class_.field_4 > this.field_15) { this.field_15 = class_.field_4; } } lock (this.field_19) { this.field_19.Enqueue(class_.field_3); } this.field_8.Set(); } catch (Exception ex) { lock (this.field_25) { if (this.field_23 != null) { this.field_23 = ex; } } } }
// Token: 0x0600076C RID: 1900 RVA: 0x00032EFC File Offset: 0x000310FC private bool tmethod_1302(Class_198 arg_0) { Class_212 class_ = arg_0.field_7; class_.ResetDeflate(); class_.NextIn = 0; class_.AvailableBytesIn = arg_0.field_5; class_.NextOut = 0; class_.AvailableBytesOut = arg_0.field_1.Length; do { class_.Deflate(Class_201.None); }while (class_.AvailableBytesIn > 0 || class_.AvailableBytesOut == 0); class_.Deflate(Class_201.Sync); arg_0.field_6 = (int)class_.TotalBytesOut; return(true); }
// Token: 0x06000764 RID: 1892 RVA: 0x000329EC File Offset: 0x00030BEC private void cmethod_1294(bool bool_0) { if (this.field_10) { throw new InvalidOperationException(); } if (this.field_4) { return; } if (this.field_12 >= 0) { Class_198 obje_ = this.field_2[this.field_12]; this.xmethod_1301(obje_); this.field_12 = -1; } if (bool_0) { this.smethod_1300(true, false); this.gmethod_1293(); return; } this.smethod_1300(false, false); }
// Token: 0x0600076A RID: 1898 RVA: 0x00032C08 File Offset: 0x00030E08 private void smethod_1300(bool bool_0, bool bool_1) { if (this.field_4) { return; } this.field_4 = true; if (bool_0 || bool_1) { this.field_8.WaitOne(); } do { int num = -1; int num2 = bool_0 ? 200 : (bool_1 ? -1 : 0); int num3 = -1; do { if (Monitor.TryEnter(this.field_19, num2)) { num3 = -1; try { if (this.field_19.Count > 0) { num3 = this.field_19.Dequeue(); } } finally { Monitor.Exit(this.field_19); } if (num3 >= 0) { Class_198 class_ = this.field_2[num3]; if (class_.field_4 != this.field_14 + 1) { lock (this.field_19) { this.field_19.Enqueue(num3); } if (num == num3) { this.field_8.WaitOne(); num = -1; } else if (num == -1) { num = num3; } } else { num = -1; this.field_5.Write(class_.field_1, 0, class_.field_6); this.field_17.kmethod_1377(class_.field_2, class_.field_5); this.field_21 += (long)class_.field_5; class_.field_5 = 0; this.field_14 = class_.field_4; this.field_20.Enqueue(class_.field_3); if (num2 == -1) { num2 = 0; } } } } else { num3 = -1; } }while (num3 >= 0); }while (bool_0 && this.field_14 != this.field_15); this.field_4 = false; }
// Token: 0x06000762 RID: 1890 RVA: 0x000327A4 File Offset: 0x000309A4 public virtual void tmethod_1292(byte[] byteDizi_0, int sayıInt_0, int sayıInt_1) { bool bool_ = false; if (this.field_10) { throw new InvalidOperationException(); } if (this.field_23 != null) { this.field_24 = true; Exception ex = this.field_23; this.field_23 = null; throw ex; } if (sayıInt_1 == 0) { return; } if (!this.field_11) { this.xmethod_1291(); this.field_11 = true; } for (;;) { this.smethod_1300(false, bool_); bool_ = false; int index; if (this.field_12 >= 0) { index = this.field_12; goto IL_AF; } if (this.field_20.Count != 0) { index = this.field_20.Dequeue(); this.field_13++; goto IL_AF; } bool_ = true; IL_170: if (sayıInt_1 <= 0) { return; } continue; IL_AF: Class_198 class_ = this.field_2[index]; int num = (class_.field_0.Length - class_.field_5 > sayıInt_1) ? sayıInt_1 : (class_.field_0.Length - class_.field_5); class_.field_4 = this.field_13; Buffer.BlockCopy(byteDizi_0, sayıInt_0, class_.field_0, class_.field_5, num); sayıInt_1 -= num; sayıInt_0 += num; class_.field_5 += num; if (class_.field_5 == class_.field_0.Length) { if (!ThreadPool.QueueUserWorkItem(new WaitCallback(this.xmethod_1301), class_)) { break; } this.field_12 = -1; } else { this.field_12 = index; } goto IL_170; } throw new Exception("Cannot enqueue workitem"); }