HalpInterruptRequestSecondaryInterrupt

INT64 __fastcall HalpInterruptRequestSecondaryInterrupt(UINT64 Gsiv){
  unsigned int v1; 
  LIST_ENTRY *SecondaryIcEntry; 
  volatile INT32 *v3; 
  int v5; 
  int v6; 
  v1 = Gsiv;
  if( !SecondaryIcServicesEnabled
    || !((unsigned __int8(__fastcall *)(_QWORD, _QWORD))off_140C00780[0])(0i64, (unsigned int)Gsiv) )
  {
    return 3221225485i64;
  }
  SecondaryIcEntry = HalpFindSecondaryIcEntry(v1);
  v3 = (volatile INT32 *)SecondaryIcEntry;
  if( !SecondaryIcEntry )
    return 3221266721i64;
  v6 = -1;
  if( BYTE4(SecondaryIcEntry[v1 - LODWORD(SecondaryIcEntry[1].Flink) + 10].Blink) )
    v5 = ((__int64(__fastcall *)(_LIST_ENTRY *, _QWORD, int *))SecondaryIcEntry[6].Flink)(
           SecondaryIcEntry[2].Flink,
           v1,
           &v6);
  else
    v5 = -1073741823;
  HalpReleaseSecondaryIcEntryShared(v3, 1);
  if( v5 < 0 || v6 == -1 )
    return(unsigned int)v5;
  else
    return off_140C00810[0]();
}

Referenced by:

HalpInterruptRequestInterrupt