MiAssembleLargePagePfnList

UINT64 __fastcall MiAssembleLargePagePfnList(INT64 a1, CHAR *a2){
  unsigned int PfnPageSizeIndex; 
  __int64 v5; 
  UINT64 v6; 
  signed __int64 v7; 
  UINT64 result; 
  UINT64 v9; 
  PfnPageSizeIndex = MiGetPfnPageSizeIndex((INT64)a2);
  v5 = PfnPageSizeIndex;
  v6 = MiLargePageSizes[PfnPageSizeIndex];
  if( v6 >= 0x200 && PfnPageSizeIndex > 1 )
  {
    LODWORD(v9) = 0;
    v7 = (a2 - (CHAR *)MmGetPfnDb()) / 48;
    MiUpdateLargePageBitMap(
      *(_QWORD *)(qword_140C4E388 + 8 * ((*((_QWORD *)a2 + 5) >> 39) & 0x3FFi64)),
      v7 & 0xFFFFFFFFFFFFFE00ui64,
      ((v7 + v6 + 511) & 0xFFFFFFFFFFFFFE00ui64) - (v7 & 0xFFFFFFFFFFFFFE00ui64),
      0i64,
      v9);
  }
  result = v6;
  *(_QWORD *)a2 = *(_QWORD *)(a1 + 8 * v5);
  *(_QWORD *)(a1 + 8 * v5) = a2;
  return result;
}

Referenced by:

MiAllocateLargeZeroPages