KiProcessSecondarySignalList

VOID __stdcall KiProcessSecondarySignalList(_KDPC *Dpc, VOID *DpcContext, VOID *SystemArgument1, VOID *SystemArgument2){
  _LIST_ENTRY *Blink; 
  __int64 v5; 
  char OldIrql[8]; 
  _LIST_ENTRY DisconnectedList; 

  OldIrql[0] = 0;
  DisconnectedList.Blink = &DisconnectedList;
  DisconnectedList.Flink = &DisconnectedList;
  KiAcquireSecondarySignalListLock((UINT8 *)OldIrql);
  if( (__int64 *)KiSecondarySignalList != &KiSecondarySignalList )
  {
    Blink = DisconnectedList.Blink;
    if( DisconnectedList.Flink->Blink != &DisconnectedList
      || DisconnectedList.Blink->Flink != &DisconnectedList
      || *(__int64 **)(KiSecondarySignalList + 8) != &KiSecondarySignalList
      || *(__int64 **)qword_140C2B268 != &KiSecondarySignalList
      || (DisconnectedList.Blink->Flink = (_LIST_ENTRY *)&KiSecondarySignalList,
          DisconnectedList.Blink = (_LIST_ENTRY *)qword_140C2B268,
          *(_QWORD *)qword_140C2B268 = &DisconnectedList,
          v5 = KiSecondarySignalList,
          qword_140C2B268 = (__int64)Blink,
          *(__int64 **)(KiSecondarySignalList + 8) != &KiSecondarySignalList)
      || (__int64 *)Blink->Flink != &KiSecondarySignalList )
    {
      __fastfail(3u);
    }
    Blink->Flink = (_LIST_ENTRY *)KiSecondarySignalList;
    *(_QWORD *)(v5 + 8) = Blink;
    qword_140C2B268 = (__int64)&KiSecondarySignalList;
    KiSecondarySignalList = (__int64)&KiSecondarySignalList;
  }
  KiSecondarySignalDpcRunning = 0;
  KxReleaseSpinLock(&KiSecondarySignalListLock);
  __writecr8((unsigned __int8)OldIrql[0]);
  KiProcessDisconnectList(&DisconnectedList);
}

Referenced by:

No references.