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