MiInitializeNuma

VOID __stdcall MiInitializeNuma(_MI_PARTITION *Partition){
  _MI_NODE_INFORMATION *NodeInformation; 
  __int64 v3; 
  unsigned int i; 
  int v5; 
  int *v6; 
  _SLIST_HEADER *v7; 
  int v8; 
  unsigned int v9; 
  _RTL_BITMAP *FreePageListHeadsBitmap; 
  unsigned __int64 v11; 
  unsigned __int64 *p_Flink; 
  __int64 v13; 
  unsigned __int64 *v14; 
  __int64 v15; 

  NodeInformation = Partition->Core.NodeInformation;
  v3 = *(&stru_140C4DB30 + 22);
  for( i = 0; i < (unsigned __int16)KeNumberNodes; v3 += 176i64 )
  {
    NodeInformation->Color = i;
    NodeInformation->LargePageRebuildTimer.SecondsLeft = 8;
    NodeInformation->LargePageRebuildTimer.NextPassDelta = 8;
    NodeInformation->NodeLock._bf_0 = 0i64;
    NodeInformation->LargePageLock = 0i64;
    NodeInformation->MmShiftedColor = i << *(&stru_140C4DB30 + 156);
    if( Partition == &Irp )
    {
      v5 = 0;
      v6 = (int *)(v3 + 16);
      v7 = (_SLIST_HEADER *)v3;
      do
      {
        InitializeSListHead(v7);
        v8 = -(v5++ != 1);
        v7 += 2;
        *v6 = v8 & 5;
        v6 += 8;
      }
      while( v5 < 2 );
    }
    MiInitializeChannelOrdering((UINT64 *)&Partition->Core.PartitionId, i);
    v9 = 0;
    FreePageListHeadsBitmap = NodeInformation->FreePageListHeadsBitmap;
    do
    {
      FreePageListHeadsBitmap->SizeOfBitMap = *(&stru_140C4DB30 + 66) + 1;
      ++FreePageListHeadsBitmap;
      v11 = (unsigned __int64)(v9++ << 8) >> 5;
      FreePageListHeadsBitmap[-1].Buffer = &NodeInformation->FreePageListHeadsBitmapBuffer[v11];
    }
    while( v9 < 2 );
    p_Flink = &NodeInformation->StandbyPageList[0][0].Flink;
    v13 = 8i64;
    do
    {
      v14 = p_Flink;
      v15 = 4i64;
      do
      {
        *(v14 - 1) = 0i64;
        *v14 = 0xFFFFFFFFFi64;
        v14[1] = 0xFFFFFFFFFi64;
        v14 += 24;
        --v15;
      }
      while( v15 );
      p_Flink += 3;
      --v13;
    }
    while( v13 );
    ++i;
    ++NodeInformation;
  }
}

Referenced by:

MiInitializePartition