RtlGuardIsValidWow64StackPointer
BOOL __fastcall RtlGuardIsValidWow64StackPointer(UINT64 a1, INT64 Teb){
INT64 v2;
INT64 v3;
_ETHREAD *CurrentThread;
if( !Teb )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
if( (*((_DWORD *)CurrentThread + 29) & 0x400) != 0 || *((_BYTE *)CurrentThread + 586) == 1 )
Teb = 0i64;
else
Teb = *((_QWORD *)CurrentThread + 30);
}
v2 = Teb + 0x2000;
v3 = -Teb;
return(unsigned int)a1 >= *(_DWORD *)((v2 & -(__int64)(v3 != 0)) + 8)
&& (unsigned int)a1 <= *(_DWORD *)((v2 & -(__int64)(v3 != 0)) + 4);
}Referenced by:
KeVerifyContextRecord
KiContinuePreviousModeUser
PspWow64SetContextThread