MiAddExpansionNonPagedPool

VOID __stdcall MiAddExpansionNonPagedPool(UINT64 PageFrameIndex, UINT64 NumberOfPages){
  __int64 v2; 
  __int64 v3; 
  _MMPFN *v4; 
  __int64 v5; 
  _MMPFN *v6; 
  _MMPFN *v7; 
  int v8; 
  signed __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  UINT8 v12; 
  char v13; 
  unsigned __int64 v14; 
  char v15; 
  char v16; 
  char v17; 

  if( NumberOfPages )
  {
    v2 = MiSwizzleInvalidPte(128i64);
    v4 = &MmGetPfnDb()[v3];
    v6 = 0i64;
    v7 = &v4[v5];
    v8 = -1;
    do
    {
      v9 = (char *)v4 - (char *)MmGetPfnDb();
      LODWORD(v10) = MiSearchNumaNodeTable((PVOID)(v9 / 48));
      if( v8 != *(_DWORD *)(v10 + 8) )
      {
        if( v6 )
        {
          MiReturnPhysicalPoolPages(v6);
          v6 = 0i64;
        }
        LODWORD(v11) = MiSearchNumaNodeTable((PVOID)(v9 / 48));
        v8 = *(_DWORD *)(v11 + 8);
      }
      v12 = MiLockPageInline(v4);
      v13 = *(_BYTE *)(&v4->u3 + 1) & 0xC7;
      v14 = v12;
      v4->u4._bf_0 &= ~0x8000000000000000ui64;
      *((_BYTE *)&v4->u3 + 2) = v13;
      v15 = *((_BYTE *)&v4->u3 + 3) & 0xDF;
      *((_BYTE *)&v4->u3 + 3) = v15;
      *(unsigned __int16 *)((char *)&MmGetPfnDb()->u3.ReferenceCount + v9) = 0;
      v4->u2._bf_0 &= 0xC000000000000000ui64;
      *(unsigned __int64 *)((char *)&MmGetPfnDb()->OriginalPte.u.Long + v9) = v2;
      v4->u4._bf_0 &= 0x8FFFFFFFFFFFFFFFui64;
      v16 = v15;
      v17 = *((_BYTE *)&v4->u3 + 2);
      *((_BYTE *)&v4->u3 + 3) = v16 | 0x10;
      v4->u4._bf_0 &= 0xFFFFFFF000000000ui64;
      if( (v17 & 0xC0) != 64 )
      {
        MiChangePageAttribute(v4, MiCached, 3ui64);
        v17 = *((_BYTE *)&v4->u3 + 2);
      }
      v4->PteLong = -8i64;
      *((_BYTE *)&v4->u3 + 2) = v17 & 0xF8 | 5;
      _InterlockedAnd64(&v4->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v14);
      v4->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 = (__int64)v6;
      v6 = v4++;
    }
    while( v4 < v7 );
    MiReturnPhysicalPoolPages(v6);
  }
}

Referenced by:

MiFreeLargeInitializationCodePages
MiInitializeNonPagedPool