RtlGuardIsValidStackPointer

UINT64 __stdcall RtlGuardIsValidStackPointer(PVOID StackPointer){
  __int64 v1; 
  _ETHREAD *CurrentThread; 
  if( !v1 )
  {
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    if( (*((_DWORD *)CurrentThread + 29) & 0x400) != 0 || *((_BYTE *)CurrentThread + 586) == 1 )
      v1 = 0i64;
    else
      v1 = *((_QWORD *)CurrentThread + 30);
  }
  return(unsigned __int64)StackPointer >= *(_QWORD *)(v1 + 16) && (unsigned __int64)StackPointer <= *(_QWORD *)(v1 + 8);
}

Referenced by:

KeVerifyContextRecord
KiContinuePreviousModeUser