MiInitializeLargePageNodeLists

VOID __stdcall MiInitializeLargePageNodeLists(_MI_PARTITION *Partition){
  _MI_FREE_LARGE_PAGE_LIST *LargePageListHeads; 
  unsigned int v2; 
  unsigned int v3; 
  _MI_PAGE_COLORS *p_PageColorTable; 
  unsigned int *v5; 
  __int64 v6; 
  _MI_PAGE_COLORS *v7; 
  __int64 v8; 
  _MI_FREE_LARGE_PAGE_LIST **v9; 
  __int64 v10; 
  __int64 v11; 
  __int64 v12; 
  __int64 v13; 

  LargePageListHeads = Partition->PageLists.LargePageListHeads;
  v2 = 0;
  v3 = 0;
  if( *(&stru_140C4DB30 + 508) )
  {
    do
    {
      LargePageListHeads->ListHead.Blink = &LargePageListHeads->ListHead;
      ++v3;
      LargePageListHeads->ListHead.Flink = &LargePageListHeads->ListHead;
      ++LargePageListHeads;
    }
    while( v3 < *(&stru_140C4DB30 + 508) );
    LargePageListHeads = Partition->PageLists.LargePageListHeads;
  }
  if( KeNumberNodes )
  {
    p_PageColorTable = &Partition->Core.NodeInformation->PageColorTable;
    do
    {
      v5 = (unsigned int *)((char *)&stru_140C4DB30 + 400);
      v6 = 3i64;
      v7 = p_PageColorTable - 236;
      do
      {
        v8 = 2i64;
        v9 = (_MI_FREE_LARGE_PAGE_LIST **)v7;
        v10 = 24i64 * *v5;
        do
        {
          v11 = 2i64;
          do
          {
            v12 = 4i64;
            do
            {
              v13 = 4i64;
              do
              {
                *v9 = LargePageListHeads;
                LargePageListHeads = (_MI_FREE_LARGE_PAGE_LIST *)((char *)LargePageListHeads + v10);
                ++v9;
                --v13;
              }
              while( v13 );
              --v12;
            }
            while( v12 );
            --v11;
          }
          while( v11 );
          --v8;
        }
        while( v8 );
        ++v5;
        v7 += 67;
        --v6;
      }
      while( v6 );
      MiInitializeColorTable(p_PageColorTable, v2);
      p_PageColorTable += 284;
      ++v2;
    }
    while( v2 < (unsigned __int16)KeNumberNodes );
  }
}

Referenced by:

MiInitializePartition