ExReleaseCacheAwarePushLockExclusiveEx

void __fastcall ExReleaseCacheAwarePushLockExclusiveEx(ULONG_PTR BugCheckParameter2, ULONG_PTR BugCheckParameter1){
  char v2; 
  ULONG_PTR v4; 
  volatile signed __int64 **v5; 
  volatile INT64 *v6; 
  v2 = BugCheckParameter1;
  if( (BugCheckParameter1 & 0xFFFFFFFC) != 0 )
    KeBugCheckEx(0x152u, (unsigned int)BugCheckParameter1, BugCheckParameter2, 0i64, 0i64);
  v4 = BugCheckParameter2 + 256;
  v5 = (volatile signed __int64 **)BugCheckParameter2;
  if( BugCheckParameter2 < BugCheckParameter2 + 256 )
  {
    do
    {
      v6 = *v5;
      if( (_InterlockedExchangeAdd64(*v5, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
        ExfTryToWakePushLock(v6);
      ++v5;
    }
    while( (unsigned __int64)v5 < v4 );
  }
  if( (v2 & 2) == 0 )
    KeAbPostRelease((PVOID)BugCheckParameter2);
}

Referenced by:

No references.