MiYieldPageTableWalk
NTSTATUS __stdcall MiYieldPageTableWalk(INT64 a1, INT64 a2){
int v2;
__int64(*v3)(void);
char v4;
NTSTATUS v6;
NTSTATUS v7;
char v8;
v2 = a2;
v3 = *(__int64(**)(void))(a1 + 160);
v4 = *(_BYTE *)(a1 + 2) | 2;
*(_BYTE *)(a1 + 2) = v4;
if( v3 )
{
v6 = v3();
v4 = *(_BYTE *)(a1 + 2);
v7 = v6;
}
else
{
v7 = 0;
if( *(_BYTE *)(a1 + 6) == 17 )
{
*(_BYTE *)(a1 + 2) = v4 & 0xFD;
return 0;
}
}
v8 = v4 & 0xFD;
*(_BYTE *)(a1 + 2) = v8;
if( (v8 & 1) == 0 && v7 < 3 )
{
if( v2 )
MiReleaseWalkLocks(a1);
}
return v7;
}Referenced by:
MiWalkPageTablesRecursively