ExpReleaseFannedOutPushLockExclusive

VOID __stdcall ExpReleaseFannedOutPushLockExclusive(VOID *FannedOutPushLock){
  unsigned int v2; 
  __int64 v3; 
  unsigned int v4; 
  unsigned __int64 v5; 
  __int64 v6; 
  unsigned int v7; 
  _EX_PUSH_LOCK *v8; 

  KeQueryMaximumProcessorCountEx(0xFFFFu);
  if( v2 )
  {
    v3 = v2;
    v4 = ((unsigned int)FannedOutPushLock >> 13) & 0x3FFFF;
    v5 = ((unsigned __int64)FannedOutPushLock >> 4) & 0x1FF;
    v6 = 0i64;
    do
    {
      _BitScanReverse(&v7, v4);
      v8 = (_EX_PUSH_LOCK *)(*(_QWORD *)(*(_QWORD *)(*(_QWORD *)(v6 + *(&WheapDeferredInternalLogsEventLock + 52))
                                                   + 8i64 * (v7 - 2))
                                       + 8i64 * (v4 ^ (1 << v7))
                                       + 8)
                           + 8 * v5);
      if( (_InterlockedExchangeAdd64(&v8->_bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
        ExfTryToWakePushLock(v8);
      v6 += 8i64;
      --v3;
    }
    while( v3 );
  }
}

Referenced by:

ExReleaseAutoExpandPushLockExclusive