public void CleanUpUnusedDeclarations()
 {
     V_1 = this.referenceToDeclarationStatementMap.GetEnumerator();
     try
     {
         while (V_1.MoveNext())
         {
             V_2 = V_1.get_Current();
             V_3 = V_2.get_Key();
             this.context.get_MethodContext().RemoveVariable(V_3);
             V_4 = V_2.get_Value();
             V_5 = V_4.get_Parent() as BlockStatement;
             if (!this.IsOptimisableAssignment(V_4))
             {
                 V_6 = (V_4.get_Expression() as BinaryExpression).get_Right();
                 if (!this.CanExistInStatement(V_6))
                 {
                     continue;
                 }
                 if (V_6.get_CodeNodeType() == 87)
                 {
                     V_6 = (V_6 as ParenthesesExpression).get_Expression();
                 }
                 V_7 = new ExpressionStatement(V_6);
                 V_8 = V_5.get_Statements().IndexOf(V_4);
                 V_5.AddStatementAt(V_8 + 1, V_7);
                 this.TransferLabel(V_4);
                 V_5.get_Statements().RemoveAt(V_8);
             }
             else
             {
                 this.TransferLabel(V_4);
                 dummyVar0 = V_5.get_Statements().Remove(V_4);
             }
         }
     }
     finally
     {
         ((IDisposable)V_1).Dispose();
     }
     V_0 = new HashSet <VariableDefinition>();
     V_9 = this.context.get_MethodContext().get_Variables().GetEnumerator();
     try
     {
         while (V_9.MoveNext())
         {
             V_10 = V_9.get_Current();
             if (this.bannedVariables.Contains(V_10))
             {
                 continue;
             }
             dummyVar1 = V_0.Add(V_10);
         }
     }
     finally
     {
         V_9.Dispose();
     }
     V_11 = V_0.GetEnumerator();
     try
     {
         while (V_11.MoveNext())
         {
             V_12 = V_11.get_Current();
             this.context.get_MethodContext().RemoveVariable(V_12);
         }
     }
     finally
     {
         ((IDisposable)V_11).Dispose();
     }
     return;
 }