private TypeReference GetUseInMethodInvocation(MethodInvocationExpression methodInvocationExpression, VariableReference variable)
 {
     V_0 = null;
     V_1 = methodInvocationExpression.get_Arguments().GetEnumerator();
     try
     {
         while (V_1.MoveNext())
         {
             V_2 = V_1.get_Current();
             if (V_2 as VariableReferenceExpression == null || (object)(V_2 as VariableReferenceExpression).get_Variable() != (object)variable)
             {
                 continue;
             }
             V_0 = V_2;
         }
     }
     finally
     {
         if (V_1 != null)
         {
             V_1.Dispose();
         }
     }
     if (V_0 == null)
     {
         if ((object)(methodInvocationExpression.get_MethodExpression().get_Target() as VariableReferenceExpression).get_Variable() != (object)variable)
         {
             return(null);
         }
         return(methodInvocationExpression.get_MethodExpression().get_Member().get_DeclaringType());
     }
     V_3 = methodInvocationExpression.get_Arguments().IndexOf(V_0);
     V_4 = methodInvocationExpression.get_MethodExpression().get_Method();
     return(V_4.get_Parameters().get_Item(V_3).ResolveParameterType(V_4));
 }
 private bool TryProcessSelectManyMethod(MethodInvocationExpression methodInvoke, bool queryable)
 {
     V_0 = methodInvoke.get_MethodExpression().get_MethodDefinition();
     if (V_0.get_Parameters().get_Count() != 3)
     {
         return(false);
     }
     V_1 = this.GetFuncGenericInstance(V_0.get_Parameters().get_Item(1).get_ParameterType() as GenericInstanceType, queryable);
     if (V_1 == null || V_1.get_GenericArguments().get_Count() != 2)
     {
         return(false);
     }
     V_2 = this.GetLambdaExpression(methodInvoke.get_Arguments().get_Item(1), queryable);
     if (V_2 == null || V_2.get_Arguments().get_Count() != 1)
     {
         return(false);
     }
     this.ProcessCurrentIdentifier(methodInvoke.get_Arguments().get_Item(0), V_2.get_Parameters()[0].Resolve());
     stackVariable48    = new VariableReference[1];
     stackVariable48[0] = this.currentIdentifier;
     V_3 = this.ProcessReturnExpression(V_2, stackVariable48);
     if (V_3 == null)
     {
         return(false);
     }
     V_4 = this.GetLambdaExpression(methodInvoke.get_Arguments().get_Item(2), queryable);
     if (V_4 == null || V_4.get_Arguments().get_Count() != 2)
     {
         return(false);
     }
     V_5                = this.CreateNewIdentifier(V_4.get_Parameters()[1].get_Name(), V_4.get_Parameters()[1].get_ParameterType());
     stackVariable82    = new VariableReference[2];
     stackVariable82[0] = this.currentIdentifier;
     stackVariable82[1] = V_5;
     V_6                = this.ProcessReturnExpression(V_4, stackVariable82);
     if (V_6 == null)
     {
         return(false);
     }
     V_7 = this.GetIdentifierReference(V_5, ref V_3);
     this.clauses.Add(new FromClause(V_7, V_3, null));
     this.clauses.Add(new SelectClause(V_6, methodInvoke.get_InvocationInstructions()));
     this.currentIdentifier = null;
     return(true);
 }