MiNoFaultFound
VOID __fastcall MiNoFaultFound(){
volatile signed __int64 *v0;
__int64 v1;
UINT64 v2;
__int64 v3;
_KTBFLUSH_TYPE v4;
UINT64 v5;
int v6;
int v7;
__int64 v8;
_MMSUPPORT_INSTANCE *v9;
unsigned int v10;
signed __int64 v11;
v4 = FlushKernel;
v5 = v2;
v6 = 0;
v7 = 0;
v8 = v11;
if( (v11 & 0x20) != 0 )
{
if( ((v3 & 1) == 0 || *(_BYTE *)(v3 & 0xFFFFFFFFFFFFFFFEui64) != 5)
&& (MiFlags & 0x100) == 0
&& (MiFlags & 0x200) == 0 )
{
v6 = 1;
}
}
else
{
v8 = v11 | 0x20;
v7 = 1;
}
if( (*(_QWORD *)(v1 + 8) & 2) != 0 && (v8 & 2) == 0 )
{
v7 = 1;
if( (v8 & 0x42) == 64 )
v6 = 1;
v8 |= 0x62ui64;
}
if( (!v7 || v11 == _InterlockedCompareExchange64(v0, v8, v11))
&& v6
&& (MiFlags & 0x100) == 0
&& (MiFlags & 0x200) == 0 )
{
v9 = *(_MMSUPPORT_INSTANCE **)(v1 + 56);
if( v9 )
v4 = MiTbFlushType(v9);
KeFlushSingleTb(v5, v4, v10);
}
}Referenced by:
MiLargePageFault
MiRaisedIrqlFault
MiSystemFault