IvtUpdateExtendedDestination

INT64 __fastcall IvtUpdateExtendedDestination(UINT64 a1, CHAR a2, _DWORD *a3, INT64 a4, UINT64 a5){
  unsigned int v7; 
  int v8; 
  unsigned int v9; 
  int v10; 
  UINT64 v11; 
  if( a2 )
  {
    v7 = 0;
    v8 = (unsigned __int16)a1;
    v9 = a1 & 0xFFFF0000;
    v10 = 1;
    if( (_WORD)a1 )
    {
      do
      {
        if( (v10 & v8) != 0 )
        {
          LODWORD(v11) = a5;
          v9 = v10 | v9 & 0xFFFF0000;
          v8 &= ~v10;
          v7 |= IvtUpdateSingleTargetExtendedDestination(v9, a2, a3, a4, v11);
        }
        v10 *= 2;
      }
      while( v8 );
    }
    return v7;
  }
  else
  {
    LODWORD(v11) = a5;
    return IvtUpdateSingleTargetExtendedDestination(a1, 0, a3, a4, v11);
  }
}

Referenced by:

HsaUpdateRemappingDestination
IvtUpdateRemappingDestination