private void RemoveBlockingEdges(List <IntervalConstruct> intervals) { V_0 = new IntervalConstruct(intervals.get_Item(0)); V_5 = 1; while (V_5 < intervals.get_Count()) { dummyVar0 = V_0.get_Children().Add(intervals.get_Item(V_5)); V_5 = V_5 + 1; } V_1 = DFSTBuilder.BuildTree(V_0); V_2 = V_1.get_BackEdges().FirstOrDefault <DFSTEdge>(); if (V_2 == null) { V_2 = V_1.get_CrossEdges().FirstOrDefault <DFSTEdge>(); } V_3 = V_2.get_Start().get_Construct() as IntervalConstruct; V_4 = V_2.get_End().get_Construct() as IntervalConstruct; V_6 = V_4.get_Entry().get_SameParentPredecessors().GetEnumerator(); try { while (V_6.MoveNext()) { V_7 = (ILogicalConstruct)V_6.get_Current(); if (!V_3.get_Children().Contains(V_7)) { continue; } V_8 = V_7; V_9 = V_4.get_Entry() as ILogicalConstruct; if (this.removedEdges.TryGetValue(V_8, out V_10) && V_10.Contains(V_9)) { continue; } this.MarkAsGotoEdge(V_8, V_9); goto Label0; } } finally { ((IDisposable)V_6).Dispose(); } Label0: return; }