HsaEnumerateIvmdDevices

NTSTATUS __stdcall HsaEnumerateIvmdDevices(INT64 a1, UINT64 *a2, INT64 a3){
  _DWORD *v3; 
  unsigned int v7; 
  _QWORD **v9; 
  __int64 v10; 
  _QWORD *v11; 
  INT64 *ReservedDevice; 

  v3 = *(_DWORD **)(a1 + 208);
  v7 = *v3;
  if( *(_DWORD *)a2 >= *v3 )
  {
    v9 = (_QWORD **)(v3 + 2);
    v10 = 0i64;
    v11 = *v9;
    if( *v9 != v9 )
    {
      while( 1 )
      {
        v7 = **(_DWORD **)(a1 + 208);
        if( (unsigned int)v10 >= v7 )
          break;
        ReservedDevice = HalpHsaCreateReservedDevice(*(unsigned __int16 *)(a1 + 160), (__int64)v11);
        *(_QWORD *)(a3 + 8 * v10) = ReservedDevice;
        if( !ReservedDevice )
          return -1073741670;
        v11 = (_QWORD *)*v11;
        v10 = (unsigned int)(v10 + 1);
        if( v11 == v9 )
        {
          v7 = **(_DWORD **)(a1 + 208);
          break;
        }
      }
    }
    *(_DWORD *)a2 = v7;
    return 0;
  }
  else
  {
    *(_DWORD *)a2 = v7;
    return -1073741789;
  }
}

Referenced by:

No references.