Esempio n. 1
0
		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;
		}