KiGetSavedIptState

VOID __stdcall KiGetSavedIptState(PVOID Context){
  PVOID *v1; 
  _DWORD *v2; 
  _DWORD *v3; 
  PVOID *v4; 
  int v5; 
  struct _XSAVE_AREA_HEADER *a2; 
  a2 = 0i64;
  v3 = v2;
  v4 = v1;
  if( v1 && v2 && (int)KiGetSavedSupervisorState((UINT64)Context, &a2) >= 0 )
  {
    if( KiXSavesManagesIpt() )
    {
      *v4 = RtlLocateSupervisorFeature(a2, 8u);
    }
    else if( (_DWORD)KiIptMsrMask )
    {
      v5 = KiIptSaveAreaLength;
      *v4 = (char *)&a2[1] + KUSER_SHARED_DATA.XState.AllFeatureSize - (unsigned __int64)KUSER_SHARED_DATA.XState.Size;
      *v3 = v5;
    }
    else
    {
      *v4 = 0i64;
      *v3 = 0;
    }
  }
}

Referenced by:

No references.