public BlockStatement Process(DecompilationContext context, BlockStatement body) { V_0 = context.get_MethodContext(); V_1 = V_0.get_Expressions().get_BlockExpressions().get_Keys().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = V_1.get_Current(); V_3 = V_0.get_Expressions().get_BlockExpressions().get_Item(V_2); V_6 = V_0.get_ControlFlowGraph().get_InstructionToBlockMapping().get_Item(V_2).get_Last().get_OpCode(); V_4 = V_6.get_Code(); if (V_4 == 57 || V_4 == 44 || V_4 == 56) { stackVariable27 = true; } else { stackVariable27 = V_4 == 43; } V_5 = stackVariable27; V_7 = 0; while (V_7 < V_3.get_Count()) { V_3.set_Item(V_7, (Expression)this.Visit(V_3.get_Item(V_7))); V_7 = V_7 + 1; } if (!V_5) { continue; } V_3.set_Item(V_3.get_Count() - 1, (Expression)this.FixBranchingExpression(V_3.get_Item(V_3.get_Count() - 1), V_0.get_ControlFlowGraph().get_InstructionToBlockMapping().get_Item(V_2).get_Last())); } } finally { ((IDisposable)V_1).Dispose(); } return body; }