KiScanBugCheckCallbackList

VOID __stdcall KiScanBugCheckCallbackList(){
  INT64 v0; 
  char *v1; 
  INT64 v2; 
  unsigned int i; 
  void(*v4)(void); 

  v0 = *(&KiSwapEvent + 42);
  if( *(&KiSwapEvent + 42) && *(&KiSwapEvent + 43) )
  {
    v1 = (char *)&KiSwapEvent + 336;
    while( (_UNKNOWN *)v0 != (_UNKNOWN *)((char *)&KiSwapEvent + 336) && (v0 & 7) == 0 )
    {
      v2 = v0;
      for( i = 0; i < 0x40; ++i )
      {
        if( !MmIsAddressValidEx(v2) )
          return;
        ++v2;
      }
      if( *(char **)(v0 + 8) != v1 )
        break;
      v4 = *(void(**)(void))(v0 + 16);
      if( *(_BYTE *)(v0 + 56) == 1
        && *(void(**)(void))(v0 + 48) == (void(*)(void))((char *)v4
                                                         + *(unsigned int *)(v0 + 32)
                                                         + *(_QWORD *)(v0 + 40)
                                                         + *(_QWORD *)(v0 + 24)) )
      {
        *(_BYTE *)(v0 + 56) = 2;
        v4();
        *(_BYTE *)(v0 + 56) = 3;
      }
      v1 = (char *)v0;
      v0 = *(_QWORD *)v0;
    }
  }
}

Referenced by:

IopWriteTriageDumpToFirmware
KeBugCheck2