/// <summary>
 /// Creates simple conditions containing only one CFG construct (may be partial).
 /// </summary>
 private void CreateSimpleConditions()
 {
     //Since we've split the CFG constructs in the CFGBlockSplitter, we now know that if an instruction block is a condition block,
     //the last of the (partial) CFG constructs holds the condition expression.
     //The only thing left to check is if the block is not a switch block, since switch blocks are a special case and are not proccessed as
     //normal conditions.
     foreach (CFGBlockLogicalConstruct[] cfgConstructsArray in logicalBuilderContext.CFGBlockToLogicalConstructMap.Values)
     {
         CFGBlockLogicalConstruct cfgConstruct        = cfgConstructsArray[cfgConstructsArray.Length - 1];
         InstructionBlock         theInstructionBlock = cfgConstruct.TheBlock;
         if (theInstructionBlock.Successors.Length == 2 && theInstructionBlock.Successors[0] != theInstructionBlock.Successors[1] &&
             theInstructionBlock.Last.OpCode.Code != Code.Switch)
         {
             ConditionLogicalConstruct.GroupInSimpleConditionConstruct(cfgConstruct);
         }
     }
 }
 private void CreateSimpleConditions()
 {
     V_0 = this.logicalBuilderContext.get_CFGBlockToLogicalConstructMap().get_Values().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             stackVariable8 = V_0.get_Current();
             V_1            = stackVariable8[(int)stackVariable8.Length - 1];
             V_2            = V_1.get_TheBlock();
             if ((int)V_2.get_Successors().Length != 2 || !InstructionBlock.op_Inequality(V_2.get_Successors()[0], V_2.get_Successors()[1]) || V_2.get_Last().get_OpCode().get_Code() == 68)
             {
                 continue;
             }
             dummyVar0 = ConditionLogicalConstruct.GroupInSimpleConditionConstruct(V_1);
         }
     }
     finally
     {
         ((IDisposable)V_0).Dispose();
     }
     return;
 }