HalpIommuUpdateRemappingDestination

VOID **__fastcall HalpIommuUpdateRemappingDestination(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
  VOID **result; 
  INT64 *v5; 
  int v6; 
  INT64 v8; 
  INT64 *v9; 
  void *retaddr; 
  result = &retaddr;
  v5 = (INT64 *)HalpIommuList;
  v6 = a4;
  v8 = a2;
  while( v5 != &HalpIommuList )
  {
    v9 = v5;
    v5 = (INT64 *)*v5;
    result = (VOID **)*((unsigned int *)v9 + 114);
    if( ((unsigned __int8)result & 0x40) != 0 )
    {
      LOBYTE(a2) = 1;
      result = (VOID **)((__int64(__fastcall *)(INT64, INT64, INT64, INT64, int))v9[23])(v9[2], a2, v8, a3, v6);
    }
  }
  return result;
}

Referenced by:

HalpUpdateIrtDestinationId