HalpIommuInitializeDmar

INT64 __stdcall HalpIommuInitializeDmar(){
  INT64 result; 
  unsigned int v1; 
  INT64 i; 
  LARGE_INTEGER *v3; 
  v3 = 0i64;
  if( HalpHvIommu )
    return 0i64;
  result = HalpIommuAllocateDmaDomain(0i64, 1, &HalpIommuBypassDomain);
  v1 = result;
  if( (int)result >= 0 )
  {
    for( i = HalpIommuList; (INT64 *)i != &HalpIommuList; i = *(_QWORD *)i )
    {
      if( (*(_DWORD *)(i + 456) & 0x100) != 0 )
      {
        result = HalpIommuGetHardwareDomain(HalpIommuBypassDomain, i, 1, 0, &v3);
        v1 = result;
        if( (int)result < 0 )
          return result;
      }
    }
    return v1;
  }
  return result;
}

Referenced by:

HalpIommuInitSystem