ExAcquireAutoExpandPushLockExclusive

VOID __fastcall ExAcquireAutoExpandPushLockExclusive(UINT64 P2, UINT64 P1){
  _BYTE *v2; 
  _BYTE *v4; 
  int v5; 
  v2 = 0i64;
  if( (P1 & 0xFFFFFFFC) != 0 )
    KeBugCheckEx(0x152u, (unsigned int)P1, P2, 0i64, 0i64);
  if( (P1 & 2) == 0 )
  {
    LODWORD(v4) = KeAbPreAcquire((PVOID)P2, 0i64, 0i64);
    v2 = v4;
  }
  if( _interlockedbittestandset64((volatile signed __int32 *)P2, 0i64) )
    ExfAcquirePushLockExclusiveEx((UINT64 *)P2, v2, (VOID *)P2);
  v5 = *(_DWORD *)(P2 + 8);
  if( (v5 & 1) != 0 )
    ExpAcquireFannedOutPushLockExclusive((PVOID)(v5 & 0xFFFFFFF8), v2, (PVOID)P2);
  if( v2 )
    v2[26] |= 1u;
}

Referenced by:

MiDeletePagablePteRange
MiFreePhysicalPageChain
MiFreePhysicalPages
MiLockAwePagesExclusive
MiLockAweVadsExclusive
MiLockLoaderEntry