MiNodeLargeFreeZeroPages

NTSTATUS __stdcall MiNodeLargeFreeZeroPages(_MI_NODE_INFORMATION *NodeInformation, UINT64 Channel, _MMLISTS PageList){
  NTSTATUS v3; 
  __int64 v4; 
  __int64 *v5; 
  __int64 v7; 
  _MI_NODE_INFORMATION *v8; 
  __int64 v9; 
  __int64 v10; 
  unsigned __int64 v11; 
  __int64 v12; 
  unsigned __int64 v13; 

  v3 = 0;
  v4 = PageList;
  v5 = MiLargePageSizes;
  v7 = 0i64;
  v8 = NodeInformation;
  v9 = PageList;
  v10 = 3i64;
  do
  {
    if( (_DWORD)Channel == 4 )
    {
      v9 = v4;
      if( (_DWORD)v4 == 2 )
        v11 = v8->FreeLargePages[0].LargePageFreeCount[0] + v8->FreeLargePages[0].LargePageFreeCount[1];
      else
        v11 = NodeInformation->FreeLargePages[v7].LargePageFreeCount[v4];
    }
    else
    {
      v12 = v7 * 134 + 4 * ((unsigned int)Channel + 4 * v9);
      v11 = NodeInformation->FreeLargePages[0].LargePagesCount[0][0][0][v12]
          + NodeInformation->FreeLargePages[0].LargePagesCount[0][0][0][v12 + 1]
          + NodeInformation->FreeLargePages[0].LargePagesCount[0][0][0][v12 + 3]
          + NodeInformation->FreeLargePages[0].LargePagesCount[1][0][0][v12]
          + NodeInformation->FreeLargePages[0].LargePagesCount[1][0][0][v12 + 1]
          + NodeInformation->FreeLargePages[0].LargePagesCount[1][0][0][v12 + 3]
          + NodeInformation->FreeLargePages[0].LargePagesCount[0][0][0][v12 + 2]
          + NodeInformation->FreeLargePages[0].LargePagesCount[1][0][0][v12 + 2];
    }
    v13 = v11 * *v5++;
    v8 = (_MI_NODE_INFORMATION *)((char *)v8 + 1072);
    v3 += v13;
    ++v7;
    --v10;
  }
  while( v10 );
  return v3;
}

Referenced by:

MiCheckZeroFreeRebalance
MiInsertPageInFreeOrZeroedList
MiNodeFreeZeroPages
MiRebuildLargePages
MiSignalLargePageRebuild
MiWakePageZeroing