private void PropagateExpressions() { V_0 = this.context.get_MethodContext().get_Expressions().get_BlockExpressions().get_Values().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current(); V_2 = this.GetAssignmentExpressions(V_1).GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = this.GetDominatedExpressions(V_3, V_1); V_5 = 0; while (V_5 < V_4.get_Count()) { this.TryPropagate(V_4.get_Item(V_5), V_3.get_Left(), V_3.get_Right()); V_5 = V_5 + 1; } } } finally { if (V_2 != null) { V_2.Dispose(); } } V_6 = 0; while (V_6 < V_1.get_Count()) { V_1.set_Item(V_6, this.TrySimplifyExpression(V_1.get_Item(V_6))); V_6 = V_6 + 1; } } } finally { ((IDisposable)V_0).Dispose(); } return; }