HalpPutScatterGatherListThin

char __fastcall HalpPutScatterGatherListThin(__int64 a1, _DWORD *a2){
  char v2; 
  __int64 i; 
  void *v6; 

  v2 = 0;
  for( i = 0i64; (unsigned int)i < *a2; i = (unsigned int)(i + 1) )
  {
    v6 = (void *)(*(_QWORD *)&a2[6 * i + 4] & 0xFFFFFFFFFFFFF000ui64);
    if( !(_DWORD)i && v6 == *(void **)(a1 + 552) )
      v2 = 1;
    HalpIommuDomainUnmapLogicalRange(*(PVOID *)(*(_QWORD *)(a1 + 504) + 40i64), v6);
    if( !v2 )
      HalpDomainLaDelete(*(_QWORD *)(a1 + 504), (UINT64)v6);
  }
  return v2;
}

Referenced by:

HalPutScatterGatherListThin
HalpConstructScatterGatherListThin