HalpInterruptSetDestination

__int64 __fastcall HalpInterruptSetDestination(int *a1, __int64 a2, unsigned int *a3){
  unsigned __int64 v5; 
  unsigned int v6; 
  __int64 v9; 
  int v10[2]; 
  __int64 v11; 
  int *v12; 
  int v13; 
  int v14; 
  v10[1] = 0;
  v9 = 0i64;
  if( qword_140C4A168 )
    return(unsigned int)HalpInterruptSetRemappedDestinationHv(a3, a1, a2);
  if( (*(_DWORD *)(HalpInterruptController + 220) & 0x100) != 0 )
    return(unsigned int)HalpInterruptSetRemappedDestination(
                           (UINT64)a3,
                           (_INTERRUPT_VECTOR_DATA *)a1,
                           (_GROUP_AFFINITY *)a2);
  if( !a3 )
    return(unsigned int)-1073741811;
  if( (int)HalpInterruptGsiToLine(*a3, &v9) < 0 )
  {
    HalpInterruptLastProblem = 18;
    return(unsigned int)-1073741811;
  }
  v13 = -1;
  v12 = a1 + 10;
  v10[0] = 1;
  v11 = a2;
  v14 = 1;
  v5 = (unsigned __int8)HalpAcquireHighLevelLock(&HalpInterruptLock);
  v6 = HalpInterruptSetDestinationInternal(&v9, (__int64)v10, (__int64)&v13);
  KxReleaseSpinLock(&HalpInterruptLock);
  __writecr8(v5);
  return v6;
}

Referenced by:

ExtEnvSetVpptTarget