ExfAcquireCacheAwarePushLockExclusiveEx

VOID __stdcall ExfAcquireCacheAwarePushLockExclusiveEx(
        _EX_PUSH_LOCK_CACHE_AWARE_LEGACY *PushLock,
        VOID *LockHandle,
        VOID *LockPointer){
  volatile signed __int32 **v3; 
  _EX_PUSH_LOCK **v5; 
  volatile signed __int32 *v7; 

  v3 = (volatile signed __int32 **)(PushLock + 2);
  v5 = (_EX_PUSH_LOCK **)(PushLock + 64);
  if( _interlockedbittestandset64(*(volatile signed __int32 **)PushLock, 0i64) )
    ExfAcquirePushLockExclusiveEx(*(_EX_PUSH_LOCK **)PushLock, LockHandle, LockPointer);
  while( v3 < (volatile signed __int32 **)v5 )
  {
    if( _interlockedbittestandset64(*v3, 0i64) )
    {
      v7 = (volatile signed __int32 *)*--v5;
      if( _interlockedbittestandset64(v7, 0i64) )
        ExfAcquirePushLockExclusiveEx(*v5, LockHandle, LockPointer);
    }
    else
    {
      ++v3;
    }
  }
}

Referenced by:

ExAcquireCacheAwarePushLockExclusive
ExAcquireCacheAwarePushLockExclusiveEx