HalpDisableSecondaryInterrupt

__int64 __fastcall HalpDisableSecondaryInterrupt(_DWORD *a1){
  int v2; 
  unsigned int v3; 
  LIST_ENTRY *SecondaryIcEntry; 
  LIST_ENTRY *v5; 
  unsigned int v6; 
  __int64 v7; 
  int Blink; 
  if( SecondaryIcServicesEnabled )
  {
    if( HalpCheckInterruptType(a1) )
    {
      v3 = a1[16];
      SecondaryIcEntry = HalpFindSecondaryIcEntry(v3);
      v5 = SecondaryIcEntry;
      if( SecondaryIcEntry )
      {
        v2 = ((__int64(__fastcall *)(_LIST_ENTRY *, _QWORD))SecondaryIcEntry[4].Flink)(SecondaryIcEntry[2].Flink, v3);
        if( v2 >= 0 )
        {
          v6 = v3 - LODWORD(v5[1].Flink);
          v7 = v6;
          Blink = (int)v5[v6 + 10].Blink;
          BYTE4(v5[v7 + 10].Blink) = 0;
          LODWORD(v5[v7 + 10].Blink) = Blink | 0x80000000;
        }
        HalpReleaseSecondaryIcEntryShared((volatile INT32 *)v5, 1);
      }
      else
      {
        return(unsigned int)-1073700575;
      }
    }
    else
    {
      return(unsigned int)-1073741811;
    }
  }
  else
  {
    return(unsigned int)-1073741637;
  }
  return(unsigned int)v2;
}

Referenced by:

HalDisableInterrupt