HalpIommuGetReservedRanges

INT64 __fastcall HalpIommuGetReservedRanges(INT64 a1, _DWORD *a2, _QWORD *a3){
  INT64 *i; 
  unsigned int *v7; 
  unsigned int v8; 
  __int64 v9; 
  __int64 v10; 
  *a2 = 0;
  *a3 = 0i64;
  for( i = (INT64 *)HalpIommuList; i != &HalpIommuList; i = (INT64 *)*i )
  {
    v7 = (unsigned int *)i[66];
    if( v7 )
    {
      v8 = *v7;
      v9 = 0i64;
      if( *v7 )
      {
        while( 1 )
        {
          v10 = *(_QWORD *)&v7[2 * v9 + 2];
          if( IidAreIdsStrictlyEqual(*(INT64 **)v10, a1) )
            break;
          v9 = (unsigned int)(v9 + 1);
          if( (unsigned int)v9 >= v8 )
            goto LABEL_8;
        }
        *a2 = *(_DWORD *)(v10 + 24);
        *a3 = v10 + 32;
      }
    }
LABEL_8:
    ;
  }
  return 0i64;
}

Referenced by:

HalpDmaAddReservedRangesToDomain