HalpDisableSecondaryInterrupt

NTSTATUS __stdcall HalpDisableSecondaryInterrupt(_INTERRUPT_CONNECTION_DATA *ConnectionData){
  NTSTATUS v2; 
  unsigned int Gsiv; 
  _LIST_ENTRY *SecondaryIcEntry; 
  INT64 v5; 
  unsigned int v6; 
  __int64 v7; 
  int v8; 

  if( !byte_140C50754 )
    return -1073741637;
  if( !(unsigned __int8)HalpCheckInterruptType(ConnectionData) )
    return -1073741811;
  Gsiv = ConnectionData->Vectors[0].ControllerInput.Gsiv;
  SecondaryIcEntry = HalpFindSecondaryIcEntry(Gsiv);
  v5 = (INT64)SecondaryIcEntry;
  if( !SecondaryIcEntry )
    return -1073700575;
  v2 = ((__int64(__fastcall *)(_LIST_ENTRY *, _QWORD))SecondaryIcEntry[4].Flink)(SecondaryIcEntry[2].Flink, Gsiv);
  if( v2 >= 0 )
  {
    v6 = Gsiv - *(_DWORD *)(v5 + 16);
    v7 = 2i64 * v6;
    v8 = *(_DWORD *)(v5 + 16i64 * v6 + 168);
    *(_BYTE *)(v5 + 8 * v7 + 172) = 0;
    *(_DWORD *)(v5 + 8 * v7 + 168) = v8 | 0x80000000;
  }
  HalpReleaseSecondaryIcEntryShared(v5, 1);
  return v2;
}

Referenced by:

HalDisableInterrupt