_guard_retpoline_exit
void _guard_retpoline_exit(){
unsigned __int8 v0;
char v1;
signed __int64 v2;
_disable();
v0 = *((_BYTE *)KeGetPcr() + 2129);
if( *((_BYTE *)KeGetPcr() + 634) != v0 )
{
__writegsbyte(0x27Au, v0);
__writemsr(0x48u, v0);
}
v1 = *((_BYTE *)KeGetPcr() + 2130);
if( (v1 & 0x10) != 0 )
{
__writemsr(0x49u, 1ui64);
v1 = *((_BYTE *)KeGetPcr() + 2130);
}
if( (v1 & 0x40) != 0 )
__flush_rsb();
_mm_lfence();
__writegsbyte(0x853u, *((_BYTE *)KeGetPcr() + 2131) | 2);
if( _bittest64(&v2, 9u) )
_enable();
}Referenced by:
KeExitRetpoline
_guard_retpoline_exit_indirect_rax
_guard_retpoline_import_r10