MiUpdateSlabPagePlaceholderState

VOID __fastcall MiUpdateSlabPagePlaceholderState(INT64 a1, INT64 a2, INT64 a3, INT64 a4){
  char *v7; 
  __int64 v8; 
  unsigned int v9; 
  unsigned int v10; 
  char *v11; 
  if( !*(_DWORD *)(a1 + 48) )
  {
    if( (_DWORD)a4 )
    {
      if( a3 == 1 )
      {
        v11 = (char *)MmGetPfnDb() + 48 * a2;
        *((_QWORD *)v11 + 5) = *((_QWORD *)v11 + 5) & 0x8FFFFFFFFFFFFFFFui64 | 0x3000000000000000i64;
        MiAbortCombineScan((INT64)v11);
      }
      v10 = 0;
      v9 = *((_DWORD *)MiSlabProtectionToPageProtection + *(int *)(a1 + 52));
    }
    else
    {
      if( a3 == 1 )
      {
        v7 = (char *)MmGetPfnDb() + 48 * a2;
        *((_QWORD *)v7 + 5) &= 0x8FFFFFFFFFFFFFFFui64;
      }
      v8 = *(int *)(a1 + 52);
      v9 = 0;
      v10 = *((_DWORD *)MiSlabProtectionToPageProtection + v8);
    }
    if( (MiFlags & 0x8000) != 0 && (int)VslSetPlaceholderPages(a2, a3, v10, v9) < 0 )
      KeBugCheckEx(0x1Au, 0x5150Fui64, a2, v10, v9);
  }
}

Referenced by:

MiAllocateSlabEntry
MiFreePageToSlabAllocator
MiFreeSlabEntry
MiGetPageFromSlabAllocator