KeSaveStateForHibernate

VOID __stdcall KeSaveStateForHibernate(_KPROCESSOR_STATE *ProcessorState){
  unsigned __int64 retaddr; 
  char v3; 
  RtlCaptureContext(&ProcessorState->ContextFrame);
  ProcessorState->ContextFrame.SegGs = 43;
  ProcessorState->ContextFrame.SegFs = 83;
  ProcessorState->SpecialRegisters.MsrFsBase = __readmsr(0xC0000100);
  ProcessorState->SpecialRegisters.MsrGsBase = __readmsr(0xC0000101);
  ProcessorState->SpecialRegisters.MsrGsSwap = __readmsr(0xC0000102);
  ProcessorState->SpecialRegisters.MsrStar = __readmsr(0xC0000081);
  ProcessorState->SpecialRegisters.MsrLStar = __readmsr(0xC0000082);
  ProcessorState->SpecialRegisters.MsrCStar = __readmsr(0xC0000083);
  ProcessorState->SpecialRegisters.MsrSyscallMask = __readmsr(0xC0000084);
  ProcessorState->ContextFrame.Rip = retaddr;
  ProcessorState->ContextFrame.Rsp = (unsigned __int64)&v3;
  KiSaveProcessorControlState(ProcessorState);
  ProcessorState->SpecialRegisters.Cr3 &= 0xFFFFFFFFFFFFFFFCui64;
  ProcessorState->SpecialRegisters.Cr4 &= ~0x800000ui64;
  _fxsave(&ProcessorState->ContextFrame.256);
}

Referenced by:

HalpDpOfflineProcessorForReplace
HalpSaveProcessorState
HalpSetupRealModeResume
PopSaveHiberContextWrapper