KiInvokeBugCheckEntryCallbacks

VOID __stdcall KiInvokeBugCheckEntryCallbacks(){
  __int64 v0; 
  KBUGCHECK_CALLBACK_REASON v1; 
  unsigned int v2; 
  unsigned int v3; 
  __int64 v4; 
  KBUGCHECK_CALLBACK_REASON v5; 
  PVOID *v6; 
  LIST_ENTRY *PreviousValidEntry; 
  v3 = v2;
  v4 = v0;
  v5 = v1;
  v6 = (PVOID *)KeBugCheckReasonCallbackListHead;
  if( KeBugCheckReasonCallbackListHead && qword_140C31EB8 )
  {
    PreviousValidEntry = (LIST_ENTRY *)&KeBugCheckReasonCallbackListHead;
    while( v6 != &KeBugCheckReasonCallbackListHead )
    {
      if( KeValidateBugCheckCallbackRecord((KBUGCHECK_REASON_CALLBACK_RECORD *)v6, v5, &PreviousValidEntry) )
      {
        ((void(__fastcall *)(_QWORD, PVOID *, __int64, _QWORD))v6[2])((unsigned int)v5, v6, v4, v3);
        *((_BYTE *)v6 + 44) = 3;
      }
      else if( !PreviousValidEntry )
      {
        return;
      }
      v6 = (PVOID *)*v6;
    }
  }
}

Referenced by:

KeBugCheck2
KiAttemptBugcheckRecovery