HalpIommuGetNextFlushDevice

CHAR __fastcall HalpIommuGetNextFlushDevice(_QWORD *a1, _QWORD **a2, _QWORD *a3, _DWORD *a4, _QWORD *a5, _QWORD *a6){
  _QWORD *v7; 
  _QWORD *v8; 
  __int64 v10; 
  v7 = *a2;
  if( !*a2 )
  {
    *a2 = a1;
    v7 = a1;
  }
  v8 = (_QWORD *)*v7;
  if( v8 == a1 )
  {
    *a3 = 0i64;
    *a4 = 0;
    *a5 = 0i64;
    *a6 = 0i64;
    return 0;
  }
  else
  {
    v10 = v8[5];
    *a2 = v8;
    *a3 = *(_QWORD *)(v10 + 40);
    *a4 = *(_DWORD *)(v10 + 56);
    *a5 = v10 + 48;
    *a6 = v8 + 4;
    return 1;
  }
}

Referenced by:

HsaFlushTbInternal
IvtFlushTbInternal