MiFreeLargeZeroPages

VOID __stdcall MiFreeLargeZeroPages(UINT64 PageFrameIndex, _MMPFN **a2, UINT64 a3){
  unsigned int v3; 
  unsigned int v4; 
  signed __int64 v5; 
  _MMPFN **v6; 
  __int64 v8; 
  UINT8 v9; 
  _MMPFN *v10; 
  UINT64 BitsMustBeChanged; 
  __int128 v12; 
  __int64 v13; 

  v13 = 0i64;
  v3 = 0;
  v4 = a3;
  v12 = 0i64;
  v5 = (char *)MiLargePageSizes - (char *)a2;
  v6 = a2;
  do
  {
    while( 1 )
    {
      v10 = *v6;
      if( !*v6 )
        break;
      *v6 = (_MMPFN *)v10->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0;
      if( v3 == 3 )
      {
        MiReleaseFreshPage(v10);
      }
      else
      {
        LODWORD(BitsMustBeChanged) = 1;
        v8 = v10 - MmGetPfnDb();
        MiUpdateLargePageBitMap(PageFrameIndex, v8, *(UINT64 *)((char *)v6 + v5), 0i64, BitsMustBeChanged);
        v9 = MiLockPageInline(v10);
        *(_QWORD *)&v12 = v8;
        *((_QWORD *)&v12 + 1) = v4;
        v13 = v9;
        MiInsertLargePageInNodeList((__int64)&v12);
      }
    }
    ++v3;
    ++v6;
  }
  while( v3 < 4 );
}

Referenced by:

MiCleanupPageTablePages
MiCreateLargePfnList
MiCreatePagingFileMap
MiPfnRangeIsZero