MiCreateInitialLargeLeafPfns

CHAR __fastcall MiCreateInitialLargeLeafPfns(INT64 a1, INT64 a2, INT64 a3, CHAR a4, UINT16 a5, INT64 a6){
  __m128i v6; 
  INT64 v8; 
  __m128i v9; 
  unsigned __int64 v10; 
  __int64 v11; 
  __m128i *v12; 
  CHAR result; 
  __int64 v14; 
  __m128i v15; 
  INT64 v16; 
  __m128i *v17; 
  __int128 v18; 
  __m128i v19; 
  v6 = *(__m128i *)&xmmword_140C4E2C0;
  v8 = a1;
  v9 = (__m128i)xmmword_140C4E2D0;
  v19 = (__m128i)xmmword_140C4E2E0;
  v10 = _mm_srli_si128((__m128i)xmmword_140C4E2E0, 8).m128i_u64[0];
  v11 = MiLargePageSizes[(unsigned int)a3];
  v19.m128i_i64[1] = (v10 ^ ((unsigned __int64)a5 << 39)) & 0x1FF8000000000i64 ^ v10;
  v18 = xmmword_140C4E2D0;
  v12 = (__m128i *)((char *)MmGetPfnDb() + 48 * a1);
  if( (_DWORD)a6 )
  {
    *((_QWORD *)&v18 + 1) |= 0x8000000000000000ui64;
    v9 = _mm_loadu_si128((const __m128i *)&v18);
  }
  result = v19.m128i_i8[2] & 0x3F;
  v19.m128i_i8[2] = v19.m128i_i8[2] & 0x3F | (a4 << 6);
  v14 = v11 - 1;
  v15 = _mm_loadu_si128(&v19);
  do
  {
    if( (v14 & v8) == 0 )
    {
      if( !--a2 )
        return result;
      v12 += 3;
      ++v8;
    }
    if( ((v8 ^ (v8 + a2 - 1)) & ~(v11 - 1)) != 0 )
      v16 = v11 - (v8 & v14);
    else
      v16 = a2;
    result = 48 * v16;
    v17 = &v12[3 * v16];
    if( (unsigned __int64)(48 * v16) <= 0x1000 )
    {
      while( v12 != v17 )
      {
        *v12 = v6;
        v12[1] = v9;
        v12[2] = v15;
        v12 += 3;
      }
    }
    else
    {
      while( v12 != v17 )
      {
        _mm_stream_si128(v12, v6);
        _mm_stream_si128(v12 + 1, v9);
        _mm_stream_si128(v12 + 2, v15);
        v12 += 3;
      }
      _mm_sfence();
    }
    v8 += v16;
    v12 = v17;
    a2 -= v16;
  }
  while( a2 );
  return result;
}

Referenced by:

MiCoalesceFreePages
MiDeleteClusterSection
MiInitializeUnusablePfns
MxCreateFreePfns