PiDqQueryEnumObject

__int64 __fastcall PiDqQueryEnumObject(struct _SECURITY_SUBJECT_CONTEXT *a1, __int64 a2){
  int AddObjectToResultSet; 
  bool v4; 
  _DWORD *ProcessAuditId; 
  int v7; 
  bool v8; 
  BOOL v10; 
  __int64 v11; 
  AddObjectToResultSet = 0;
  v11 = 0i64;
  v4 = 1;
  LOBYTE(v10) = 1;
  ProcessAuditId = a1->ProcessAuditId;
  if( ProcessAuditId[5] )
    goto LABEL_12;
  if( (unsigned int)(ProcessAuditId[4] - 1) <= 2 )
  {
    PiPnpRtlApplyMandatoryFilters();
    v4 = v10;
    AddObjectToResultSet = v7;
  }
  if( AddObjectToResultSet == -1073741772 || AddObjectToResultSet == -1073741275 )
  {
    v4 = 0;
    LOBYTE(v10) = 0;
    AddObjectToResultSet = 0;
  }
  if( AddObjectToResultSet >= 0 && v4 )
  {
LABEL_12:
    if( !*((_QWORD *)a1->ProcessAuditId + 11)
      || ((AddObjectToResultSet = PiDqQueryEvaluateFilter((INT64)a1, *(_QWORD *)(a2 + 16), &v10),
           AddObjectToResultSet == -1073741772) ? (v8 = 0, AddObjectToResultSet = 0) : (v8 = v10),
          AddObjectToResultSet >= 0 && v8) )
    {
      if( (*((_DWORD *)a1->ProcessAuditId + 10) & 1) == 0
        || (AddObjectToResultSet = PiDqQueryAddObjectToResultSet((INT64)a1, a2), AddObjectToResultSet >= 0) )
      {
        AddObjectToResultSet = PiDqQueryActionQueueEntryCreate(1, a2, 0i64, &v11);
        if( AddObjectToResultSet >= 0 )
          PiDqQueryAppendActionEntry(a1, v11);
      }
    }
  }
  return(unsigned int)AddObjectToResultSet;
}

Referenced by:

PiDqEnumQueryObjectsCallback