MiInitializeAllResidentPageBasePfns

CHAR __stdcall MiInitializeAllResidentPageBasePfns(
        UINT16 *a1,
        INT64 a2,
        INT64 a3,
        INT64 a4,
        CHAR a5,
        INT64 a6,
        INT64 a7){
  __int64 v7; 
  unsigned __int64 v9; 
  __int64 v10; 
  _LIST_ENTRY v11; 
  _MMPFN *v12; 
  _MMPFN *i; 
  char v14; 
  char v15; 
  _MMPFN *v16; 
  __m128i v17; 
  __int64 v18; 
  _MMPFN *v19; 
  __m128i v20; 
  INT64 v22[2]; 
  __m128i v23; 

  v7 = *a1;
  v23 = *((__m128i *)&stru_140C4DB30 + 126);
  v9 = _mm_srli_si128(*(&stru_140C4DB30 + 126), 8).m128i_u64[0];
  v10 = MiLargePageSizes[(unsigned int)a4];
  v11 = (_LIST_ENTRY)*(&stru_140C4DB30 + 124);
  v23.m128i_i64[1] = (v9 ^ (v7 << 39)) & 0x1FF8000000000i64 ^ v9;
  v23.m128i_i8[7] = (*(&stru_140C4DB30 + 2023) ^ ~(_BYTE)a4) & 3 ^ *(&stru_140C4DB30 + 2023);
  *(_OWORD *)v22 = *(&stru_140C4DB30 + 125);
  v12 = &MmGetPfnDb()[a2];
  if( (_DWORD)a7 )
    v22[1] |= 0x8000000000000000ui64;
  LOBYTE(i) = a5 << 6;
  v14 = (a5 << 6) | v23.m128i_i8[2] & 0x3F;
  v15 = (a5 << 6) | v23.m128i_i8[2] & 0x38 | 5;
  if( !(_DWORD)a6 )
  {
    LODWORD(i) = MiUpdatePageFileHighInPte(v22[0], 4294967293i64);
    v22[0] = (INT64)i;
  }
  v16 = &v12[a3];
  v23.m128i_i8[2] = v15 ^ (v15 ^ v14) & 7;
  if( v12 < v16 )
  {
    v17 = _mm_loadu_si128(&v23);
    v18 = 48 * v10;
    v19 = v12 + 1;
    do
    {
      for( i = v12; i != v19; ++i )
      {
        v20 = _mm_loadu_si128((const __m128i *)v22);
        i->ListEntry = v11;
        *((__m128i *)&i->3 + 1) = v20;
        *(__m128i *)&i->u3.ReferenceCount = v17;
      }
      v12 = (_MMPFN *)((char *)v12 + v18);
      v19 = (_MMPFN *)((char *)v19 + v18);
    }
    while( v12 < v16 );
  }
  return(char)i;
}

Referenced by:

MiCoalesceFreePages
MiDeleteClusterSection
MiInitializeDynamicPfns
MxCreateFreePfns