MmInitSystem

UINT8 __stdcall MmInitSystem(UINT64 Phase, _LOADER_PARAMETER_BLOCK *LoaderBlock){
  _LOADER_PARAMETER_BLOCK *v2; 
  int NestedPageProtectionFlags; 
  char v5; 
  int v6; 
  UINT16 *NumaGraph; 
  unsigned int v8; 
  unsigned int i; 
  unsigned int v10; 
  __int64 v11; 

  v2 = LoaderBlock;
  if( (_DWORD)Phase == -1 )
  {
    BitMapHeader.SizeOfBitMap = 2048;
    BitMapHeader.Buffer = (unsigned int *)&unk_140C29EB0;
    word_140C2A012 |= 1u;
    NestedPageProtectionFlags = VslGetNestedPageProtectionFlags();
    v5 = NestedPageProtectionFlags;
    if( !NestedPageProtectionFlags )
    {
LABEL_12:
      MiInitializeSystemVa(v2);
      return 1;
    }
    v6 = MiFlags | 0x2000;
    MiFlags |= 0x2000u;
    if( (v5 & 4) != 0 )
    {
      v6 |= 0xC000u;
      MiFlags = v6;
    }
    if( (v5 & 1) != 0 )
    {
      v6 |= 0x50000u;
    }
    else
    {
      if( (v5 & 2) == 0 )
      {
LABEL_23:
        if( (v5 & 0x10) == 0 )
        {
          v6 |= 0x20000u;
          MiFlags = v6;
        }
        if( (v5 & 0x40) != 0 )
        {
          v6 |= 0x100000u;
          MiFlags = v6;
        }
        if( v5 < 0 )
          MiFlags = v6 | 0x80000;
        goto LABEL_12;
      }
      v6 |= 0x10000u;
    }
    MiFlags = v6;
    goto LABEL_23;
  }
  if( (_DWORD)Phase )
  {
    if( (_DWORD)Phase == 1 )
    {
      if( (unsigned __int16)KeNumberNodes > 1u )
      {
        NumaGraph = KeQueryNumaGraph();
        if( NumaGraph )
        {
          v8 = (unsigned __int16)KeNumberNodes;
          for( i = 0; i < v8; ++i )
          {
            v10 = 0;
            do
            {
              v11 = i * v8 + v10++;
              *(_DWORD *)(*(&stru_140C4DB30 + 21) + 4i64 * (unsigned int)v11) = NumaGraph[v11];
            }
            while( v10 < v8 );
          }
          ExFreePoolWithTag(NumaGraph, 0);
        }
      }
      MiFlags = MiFlags & 0xFFFFFFCF | 0x10;
      if( MiInitSystem(1ui64, v2) )
      {
        *(&stru_140C4DB30 + 4332) = 1;
        return 1;
      }
      return 0;
    }
    if( (_DWORD)Phase == 2 )
    {
      MiFlags = MiFlags & 0xFFFFFFCF | 0x20;
      return MiInitSystem(Phase, LoaderBlock);
    }
  }
  else if( (unsigned __int8)MiInitNucleus(LoaderBlock) )
  {
    LoaderBlock = v2;
    Phase = 0i64;
    return MiInitSystem(Phase, LoaderBlock);
  }
  return 0;
}

Referenced by:

InitBootProcessor
KiInitializeBootStructures
Phase1InitializationIoReady