private bool IsThreadSafeAutoImplOperation(MethodDefinition methodDef, string operationName) { if (!this.CheckMethodAndDecompile(methodDef, out V_0) || V_0.get_Statements().get_Count() != 3) { return(false); } V_1 = null; V_2 = null; if (!V_0.get_Statements().get_Item(0).IsAssignmentStatement()) { return(false); } V_3 = (V_0.get_Statements().get_Item(0) as ExpressionStatement).get_Expression() as BinaryExpression; if (V_3.get_Left().get_CodeNodeType() != 26 || V_3.get_Right().get_CodeNodeType() != 30 || (object)(V_3.get_Right() as FieldReferenceExpression).get_Field().Resolve() != (object)this.eventField) { return(false); } V_1 = (V_3.get_Left() as VariableReferenceExpression).get_Variable(); if (V_0.get_Statements().get_Item(1).get_CodeNodeType() != 8 || V_0.get_Statements().get_Item(2).get_CodeNodeType() != 5 || (V_0.get_Statements().get_Item(2) as ExpressionStatement).get_Expression().get_CodeNodeType() != 57) { return(false); } V_4 = V_0.get_Statements().get_Item(1) as DoWhileStatement; V_5 = V_4.get_Condition(); if (V_5.get_CodeNodeType() == 23 && (V_5 as UnaryExpression).get_Operator() == 11) { V_5 = (V_5 as UnaryExpression).get_Operand(); } if (V_5.get_CodeNodeType() != 24) { return(false); } stackVariable78 = V_5 as BinaryExpression; V_6 = stackVariable78.get_Left() as ExplicitCastExpression; V_7 = stackVariable78.get_Right() as ExplicitCastExpression; if (stackVariable78.get_Operator() != 10 || V_6 == null || String.op_Inequality(V_6.get_TargetType().get_Name(), "Object") || V_6.get_Expression().get_CodeNodeType() != 26 || V_7 == null || V_7.get_Expression().get_CodeNodeType() != 26 || String.op_Inequality(V_7.get_TargetType().get_Name(), "Object")) { return(false); } if ((object)(V_6.get_Expression() as VariableReferenceExpression).get_Variable() != (object)V_1) { return(false); } V_2 = (V_7.get_Expression() as VariableReferenceExpression).get_Variable(); return(this.CheckLoopBody(V_4.get_Body(), V_1, V_2, operationName)); }