ExpSystemErrorHandler

VOID __stdcall ExpSystemErrorHandler(
        INT64 ErrorStatus,
        UINT64 NumberOfParameters,
        UINT64 UnicodeStringParameterMask,
        UINT64 *Parameters,
        UINT8 CallShutdown,
        UINT64 Parametersa){
  __int64 v6; 
  __int64 CurrentIrql; 
  struct _KPRCB *CurrentPrcb; 
  _CONTEXT *Context; 
  __int64 v10[2]; 
  void *retaddr; 

  v10[0] = v6;
  CurrentIrql = KeGetCurrentIrql();
  __writecr8(2ui64);
  _InterlockedExchange64(v10, CurrentIrql);
  RtlCaptureContext(KeGetCurrentPrcb()->Context);
  KiSaveProcessorControlState(&KeGetCurrentPrcb()->ProcessorState);
  CurrentPrcb = KeGetCurrentPrcb();
  CurrentPrcb->ProcessorState.SpecialRegisters.Cr8 = v10[0];
  Context = CurrentPrcb->Context;
  Context->_Rcx = ErrorStatus;
  *(_QWORD *)&Context->EFlags = v10[1];
  Context->_Rsp = (unsigned __int64)&retaddr;
  Context->_Rip = (unsigned __int64)ExpSystemErrorHandler;
  __writecr8(v10[0]);
  ExpSystemErrorHandler2(ErrorStatus, NumberOfParameters, UnicodeStringParameterMask, Parameters, CallShutdown);
}

Referenced by:

ExpRaiseHardError