IoWMIQueryAllData

INT64 __fastcall IoWMIQueryAllData(VOID *DataBlockObject, UINT64 *InOutBufferSize, VOID *OutBuffer){
  unsigned int v6; 
  int AllData; 
  int v8; 
  unsigned int v10; 
  UINT64 BufferLength; 
  INT64 a6[2]; 
  INT64 result[10]; 
  memset((INT64)result, 0i64);
  LODWORD(a6[0]) = 0;
  v6 = *(_DWORD *)InOutBufferSize;
  if( !OutBuffer || v6 < 0x48 )
  {
    OutBuffer = result;
    v6 = 72;
  }
  *((_QWORD *)OutBuffer + 2) = 0i64;
  *((_DWORD *)OutBuffer + 3) = 0;
  *((_DWORD *)OutBuffer + 11) = 1;
  *(_DWORD *)OutBuffer = 48;
  LODWORD(BufferLength) = v6;
  AllData = WmipQueryAllData(DataBlockObject, 0i64, 0, OutBuffer, BufferLength, (INT64)a6);
  if( AllData >= 0 )
  {
    v8 = *((_DWORD *)OutBuffer + 11);
    if( (v8 & 0x100) != 0 )
    {
      return(unsigned int)-1073741637;
    }
    else if( (v8 & 0x20) != 0 )
    {
      AllData = -1073741789;
      *(_DWORD *)InOutBufferSize = *((_DWORD *)OutBuffer + 12);
    }
    else
    {
      *(_DWORD *)InOutBufferSize = a6[0];
      v10 = AllData;
      if( OutBuffer == result )
        return(unsigned int)-1073741789;
      return v10;
    }
  }
  return(unsigned int)AllData;
}

Referenced by:

No references.