private static bool TryMatchVariableDeclaration(BlockStatement filter, out VariableDeclarationExpression variableDeclaration) { variableDeclaration = null; V_0 = filter.get_Statements().get_Item(0) as ExpressionStatement; if (V_0 == null) { return(false); } V_1 = V_0.get_Expression() as BinaryExpression; if (V_1 == null || !V_1.get_IsAssignmentExpression()) { return(false); } V_2 = V_1.get_Left() as VariableReferenceExpression; if (V_2 == null) { return(false); } if (V_1.get_Right() as SafeCastExpression == null) { return(false); } V_3 = filter.get_Statements().get_Item(1) as IfStatement; if (V_3 == null) { return(false); } V_4 = V_3.get_Condition() as BinaryExpression; if (V_4 == null) { return(false); } V_5 = V_4.get_Left() as VariableReferenceExpression; if (V_5 == null) { return(false); } V_6 = V_4.get_Right() as LiteralExpression; if (V_6 == null) { return(false); } if (!V_5.Equals(V_2) || V_6.get_Value() != null || V_4.get_Operator() != 9 && V_4.get_Operator() != 10) { return(false); } V_7 = V_2.get_Variable().Resolve(); V_8 = V_2.get_MappedInstructions(); if (V_4.get_Operator() != 10) { V_9 = V_3.get_Else(); } else { V_9 = V_3.get_Then(); } if (!CatchClausesFilterPattern.TryGetVariableDeclaration(V_9.get_Statements().get_Item(0) as ExpressionStatement, V_2, ref V_7, ref V_8) && V_9.get_Statements().get_Count() >= 2) { dummyVar0 = CatchClausesFilterPattern.TryGetVariableDeclaration(V_9.get_Statements().get_Item(1) as ExpressionStatement, V_2, ref V_7, ref V_8); } variableDeclaration = new VariableDeclarationExpression(V_7, V_8); return(true); }