private void EliminateViaDoWhile(IfStatement gotoStatement, Statement labeledStatement) { V_0 = new List <BreakStatement>(); V_1 = new List <ContinueStatement>(); V_2 = this.GetOuterBlock(labeledStatement); V_3 = V_2.get_Statements().IndexOf(labeledStatement); V_4 = V_2.get_Statements().IndexOf(gotoStatement); V_5 = this.CollectStatements(V_3, V_4, V_2); if (this.ShouldCheck(gotoStatement)) { stackVariable127 = new ContinueAndBreakFinder(); stackVariable127.Visit(V_5); V_0 = stackVariable127.get_Breaks(); V_1 = stackVariable127.get_Continues(); } V_7 = V_0.GetEnumerator(); try { while (V_7.MoveNext()) { V_8 = V_7.get_Current(); stackVariable29 = this.GetOuterBlock(V_8); V_9 = stackVariable29.get_Statements().IndexOf(V_8); this.usedBreakVariable = true; V_10 = new ExpressionStatement(new BinaryExpression(26, new VariableReferenceExpression(this.breakVariable, null), this.GetLiteralExpression(true), this.typeSystem, null, false)); stackVariable29.AddStatementAt(V_9, V_10); } } finally { if (V_7 != null) { V_7.Dispose(); } } V_11 = V_1.GetEnumerator(); try { while (V_11.MoveNext()) { V_12 = V_11.get_Current(); stackVariable60 = this.GetOuterBlock(V_12); V_13 = stackVariable60.get_Statements().IndexOf(V_12); this.usedContinueVariable = true; V_14 = new ExpressionStatement(new BinaryExpression(26, new VariableReferenceExpression(this.continueVariable, null), this.GetLiteralExpression(true), this.typeSystem, null, false)); stackVariable60.get_Statements().RemoveAt(V_13); stackVariable60.AddStatementAt(V_13, new BreakStatement(null)); stackVariable60.AddStatementAt(V_13, V_14); } } finally { if (V_11 != null) { V_11.Dispose(); } } V_6 = new DoWhileStatement(gotoStatement.get_Condition(), V_5); V_4 = V_2.get_Statements().IndexOf(gotoStatement); V_2.AddStatementAt(V_4, V_6); dummyVar0 = V_2.get_Statements().Remove(gotoStatement); if (V_0.get_Count() > 0) { this.AddBreakContinueConditional(V_4 + 1, V_2, new BreakStatement(null), this.breakVariable); } if (V_1.get_Count() > 0) { this.AddBreakContinueConditional(V_4 + 1, V_2, new ContinueStatement(null), this.continueVariable); } return; }