MiMarkFileOnlyPfnBad

NTSTATUS __stdcall MiMarkFileOnlyPfnBad(ULONG_PTR Pfn1, UINT64 Flags){
  unsigned int v2; 
  INT64 v3; 
  UINT8 v4; 
  int v5; 
  _UNICODE_STRING *v6; 
  UINT8 v7; 
  wchar_t *v8; 
  int v9; 
  _MMPFN *v10; 
  char v11; 
  char v13; 
  UINT8 v14; 

  v2 = Flags;
  v3 = *(_QWORD *)&Pfn1;
  v4 = MiLockPageInline(*(_MMPFN **)&Pfn1);
  if( (*(_QWORD *)(v3 + 40) & 0x2000000000000i64) != 0
    && (LOBYTE(v5) = MiIsPfnFileOnly(v3), v5)
    && (LOBYTE(v9) = MI_PFN_IS_PROTO((_UNICODE_STRING *)v3, v6, v7, v8), v9)
    && (*(_DWORD *)(v3 + 16) & 0x400i64) != 0 )
  {
    if( (v2 & 0x10000000) != 0 )
    {
      v11 = *(_BYTE *)(v3 + 35);
      if( v11 >= 0 )
        *(_BYTE *)(v3 + 35) = v11 | 0x80;
    }
    if( (*(_BYTE *)(v3 + 35) & 0x40) == 0 )
    {
      if( *(_WORD *)(v3 + 32) || (*(_BYTE *)(v3 + 34) & 7u) - 2 > 1 )
      {
        MiSetPfnRemovalRequested((INT64)v10, 1i64);
        if( (*(_BYTE *)(v3 + 34) & 7) == 6 )
          MiTrimSharedPage((_MMPFN *)v3, v4, v2);
      }
      else
      {
        MiUnlinkPageFromList(v10, 0i64);
        v13 = *(_BYTE *)(v3 + 34);
        if( (v13 & 0x10) != 0 )
        {
          if( *(char *)(v3 + 35) >= 0 )
          {
            MiPersistPage((v3 - (__int64)MmGetPfnDb()) / 48);
            v13 = *(_BYTE *)(v3 + 34);
          }
          *(_BYTE *)(v3 + 34) = v13 & 0xEF;
        }
        MiSetPfnRemovalRequested(v3, 1i64);
        MiInsertPageInList((_MMPFN *)v3, 4ui64, v14);
      }
      v10 = (_MMPFN *)v3;
    }
    MiUnlockPage(v10, v4);
    return 259;
  }
  else
  {
    MiUnlockPage((_MMPFN *)v3, v4);
    return -1073740748;
  }
}

Referenced by:

MmMarkPhysicalMemoryAsBad