MiReturnBadPagesToBadList

VOID __fastcall MiReturnBadPagesToBadList(INT64 a1, INT64 a2){
  INT64 v2; 
  char *v3; 
  unsigned __int64 v4; 
  if( a2 )
  {
    v2 = a2;
    v3 = (char *)MmGetPfnDb() + 48 * a1;
    do
    {
      v4 = (unsigned __int8)MiLockPageInline((INT64)v3);
      if( !*((_QWORD *)v3 + 1) )
        *((_QWORD *)v3 + 1) = -4i64;
      *((_WORD *)v3 + 16) = 0;
      *((_QWORD *)v3 + 5) &= 0xFFFFFFF000000000ui64;
      MiInsertPageInList((_MMPFN *)v3, 0x20ui64);
      _InterlockedAnd64((volatile signed __int64 *)v3 + 3, 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v4);
      v3 += 48;
      --v2;
    }
    while( v2 );
  }
}

Referenced by:

MiRemoveBadPages
MmRemovePhysicalMemory