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