private void method_19() { WaitCallback waitCallback = null; bool flag = false; Monitor.Enter(this.object_0, ref flag); try { Class126.Class174 @class = new Class126.Class174(); try { while (this.stack_0.Count > 0) { try { Class492 class2 = this.stack_0.Pop(); if (flag) { Monitor.Exit(this.object_0); flag = false; } this.UpdateStep = class2.UpdateStep; if (this.process_0 == null && !this.method_9()) { throw new Exception(Class126.string_1); } if (!this.method_8(class2.method_0())) { throw new Exception(Class126.string_0); } if (class2.Action == Enum93.const_2) { if (waitCallback == null) { waitCallback = new WaitCallback(this.method_20); } ThreadPool.UnsafeQueueUserWorkItem(waitCallback, null); break; } } finally { Monitor.Enter(this.object_0, ref flag); } } } catch (Exception ex) { ex.smethod_0(); try { if (this.process_0 != null && !this.process_0.HasExited) { this.process_0.Kill(); } } catch { } this.process_0 = null; this.stack_0.Clear(); if (this.eventHandler_4 != null) { this.eventHandler_4(this, new EventArgs38(new Class492(Enum28.const_0, this.UpdateStep, this.UpdaterExitedPrematurely_Title, ex.Message))); } } @class.task_0 = Interlocked.Exchange <Task>(ref this.task_0, null); ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback(@class.method_0), null); } finally { if (flag) { Monitor.Exit(this.object_0); flag = false; } } }