KiKernelIstExit

VOID __fastcall KiKernelIstExit(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5, INT64 a6, INT64 a7, INT64 a8){
  unsigned __int64 v8; 
  unsigned __int64 v9; 
  unsigned __int64 v12; 
  void *v13; 
  __int16 v14; 
  int v15; 
  void *v16; 
  __int16 v17; 
  unsigned __int64 v18; 
  unsigned __int64 v19; 
  v8 = v19;
  if( (v19 & 1) != 0 )
  {
    if( !_interlockedbittestandreset(MK_FP(__GS__, 36888i64), 0) )
    {
      v12 = __readcr3();
      if( v12 == v19 )
        goto LABEL_8;
      v8 = v19 | 0x8000000000000000ui64;
    }
  }
  else
  {
    v9 = __readcr3();
    if( v9 == v19 )
      goto LABEL_8;
  }
  __writecr3(v8);
LABEL_8:
  __writemsr(0xC0000101, v18);
  __asm { verw    [rsp+arg_18] }
  __iretq(v13, v14, v15, v16, v17);
}

Referenced by:

KiDebugTrapOrFault
KiNmiInterruptStart