HalpHvRetargetIoApicDeviceInterrupt

__int64 __fastcall HalpHvRetargetIoApicDeviceInterrupt(char a1, __int64 a2, __int64 a3, __int64 a4, _BYTE *a5){
  __int128 *v5; 
  int v7; 
  __int64 result; 
  int v9; 
  int v10; 
  unsigned __int64 v11; 
  __int64 v12[2]; 
  __int128 v13; 
  __int128 v14; 
  v5 = &v13;
  v12[0] = 2i64;
  v11 = 0x8000000000000000ui64;
  v12[1] = *(_QWORD *)(a3 + 40);
  v7 = *(_DWORD *)(a3 + 48);
  *a5 = 0;
  LOBYTE(v11) = a1;
  if( *(_DWORD *)(a3 + 8) )
    v5 = 0i64;
  v14 = 0i64;
  LODWORD(v14) = v7;
  v13 = 0i64;
  result = ((__int64(__fastcall *)(unsigned __int64, __int64 *, __int128 *, __int64, __int128 *))qword_140C4A178)(
             v11,
             v12,
             &v14,
             a4,
             v5);
  if( (int)result >= 0 && v5 )
  {
    v9 = DWORD2(v13);
    v10 = HIDWORD(v13);
    if( *((_QWORD *)&v13 + 1) != *(_QWORD *)(a3 + 32) )
    {
      *a5 = 1;
      *(_DWORD *)(a3 + 32) = v9;
      *(_DWORD *)(a3 + 36) = v10;
    }
  }
  return result;
}

Referenced by:

HalpInterruptSetRemappedDestinationHv