private void ProcessGotoFlowConstructs(BlockLogicalConstruct theConstruct) { V_0 = new ILogicalConstruct[theConstruct.get_Children().get_Count()]; V_1 = 0; V_3 = theConstruct.get_Children().GetEnumerator(); try { while (V_3.MoveNext()) { V_4 = (ILogicalConstruct)V_3.get_Current(); stackVariable14 = V_1; V_1 = stackVariable14 + 1; V_0[stackVariable14] = V_4; } } finally { ((IDisposable)V_3).Dispose(); } Array.Sort <ISingleEntrySubGraph>(V_0); V_2 = new HashSet <ILogicalConstruct>(); V_6 = V_0; V_7 = 0; while (V_7 < (int)V_6.Length) { V_8 = V_6[V_7]; if (this.visitedConstructs.Add(V_8)) { if (this.visitedConstructs.Contains(V_8.get_FollowNode()) || !V_2.Add(V_8.get_FollowNode())) { V_8.set_CFGFollowNode(null); } this.ProcessLogicalConstruct(V_8); } V_7 = V_7 + 1; } return; }