MiInitializePageFaultResources

INT64 __stdcall MiInitializePageFaultResources(){
  unsigned int v0; 
  __int64 i; 
  __int64 v2; 
  unsigned int v3; 
  char *v4; 
  unsigned __int64 v5; 
  unsigned int *v6; 
  unsigned int v7; 
  INT64 v8; 
  v0 = 0;
  for( i = 0i64; ; ++i )
  {
    v2 = 16i64 * (int)v0;
    InitializeSListHead((_SLIST_HEADER *)&MiState[v2 + 9232]);
    InitializeSListHead((_SLIST_HEADER *)&MiState[v2 + 9264]);
    v3 = v0 != 0 ? 16 : 8;
    MiState[i + 9296] = v0 != 0 ? 16 : 8;
    v4 = (char *)MiAllocateInPageSupportBlock(v0, v3);
    if( !v4 )
      break;
    *(_QWORD *)&MiState[8 * i + 9304] = v4;
    v5 = (-(__int64)(v0 != 0) & 0xFFFFFFFFFFFFF880ui64) + 2368;
    *(_QWORD *)&MiState[8 * i + 9320] = &v4[v5 * v3];
    v6 = (unsigned int *)(v4 + 192);
    do
    {
      v7 = *v6 | 0x40;
      if( i )
        v7 = *v6 & 0xFFFFFFBF;
      *v6 = v7;
      MiInsertInPageBlock((PSLIST_ENTRY)v6 - 12);
      v6 = (unsigned int *)((char *)v6 + v5);
      --v3;
    }
    while( v3 );
    if( (int)++v0 >= 2 )
    {
      v8 = MiReservePtes((INT64)&qword_140C4EC80, 0x10ui64);
      if( v8 )
      {
        qword_140C4EA80 = 0i64;
        qword_140C4EA78 = v8;
        return 1i64;
      }
      return 0i64;
    }
  }
  return 0i64;
}

Referenced by:

MiInitNucleus