MiPerformFinalZeroing

VOID __fastcall MiPerformFinalZeroing(UINT64 *a1, UINT64 a2, INT64 a3){
  INT64 v3; 
  __int64 v4; 
  _MMPFN *PfnDb; 
  _MI_PFN_CACHE_ATTRIBUTE v6; 
  UINT64 *v7; 
  UINT64 *v8; 
  __int64 v9; 
  char *v10; 
  __int64 v11; 
  UINT64 v12; 
  int v13[10]; 
  v3 = 0i64;
  v4 = (unsigned int)a2;
  PfnDb = MmGetPfnDb();
  v6 = (int)a3;
  v7 = a1;
  if( (_DWORD)a2 )
  {
    v8 = a1;
    v9 = (unsigned int)v4;
    do
    {
      v10 = (char *)PfnDb + 48 * *v8++;
      *((_QWORD *)v10 + 2) = v3;
      v3 = (INT64)v10;
      --v9;
    }
    while( v9 );
  }
  MiChangePageAttributeBatch(v3, (_BYTE *)(unsigned int)a3, ZeroPte);
  if( (_DWORD)v4 )
  {
    v11 = v4;
    do
    {
      v12 = *v7;
      MiZeroPhysicalPage(*v7, 1ui64, v6);
      _InterlockedOr(v13, 0);
      MiSetPfnTbFlushStamp((_MMPFN *)((char *)PfnDb + 48 * v12), (unsigned int)KiTbFlushTimeStamp, 0i64);
      ++v7;
      --v11;
    }
    while( v11 );
  }
}

Referenced by:

MiGetPageChain