ExfReleasePushLockShared

VOID __stdcall ExfReleasePushLockShared(_EX_PUSH_LOCK *PushLock){
  __int64 bf_0; 
  signed __int64 v3; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  __int64 v7; 
  signed __int64 v8; 
  __int64 v9; 
  unsigned __int64 i; 
  __int64 v11; 

  _m_prefetchw(PushLock);
  bf_0 = PushLock->_bf_0;
  while( (bf_0 & 2) == 0 )
  {
    v3 = 0i64;
    if( (bf_0 & 0xFFFFFFFFFFFFFFF0ui64) != 16 )
      v3 = bf_0 - 16;
    v4 = bf_0;
    bf_0 = _InterlockedCompareExchange64(&PushLock->_bf_0, v3, bf_0);
    if( v4 == bf_0 )
      return;
  }
  if( (bf_0 & 8) != 0 )
  {
    for( i = bf_0 & 0xFFFFFFFFFFFFFFF0ui64; ; i = *(_QWORD *)(i + 24) )
    {
      v11 = *(_QWORD *)(i + 32);
      if( v11 )
        break;
    }
    if( _InterlockedDecrement((volatile signed __int32 *)(v11 + 48)) > 0 )
      return;
    v5 = -9i64;
  }
  else
  {
    v5 = -1i64;
  }
  do
  {
    v6 = v5 + 4;
    v7 = bf_0 & 6;
    if( v7 != 2 )
      v6 = v5;
    v8 = bf_0 + v6;
    v9 = bf_0;
    bf_0 = _InterlockedCompareExchange64(&PushLock->_bf_0, v8, bf_0);
  }
  while( v9 != bf_0 );
  if( v7 == 2 )
    ExpWakePushLock(PushLock, (_EX_PUSH_LOCK)v8);
}

Referenced by:

AlpcReferenceBlobByHandle
AlpcpAcceptConnectPort
AlpcpCancelMessage
AlpcpCompleteDispatchMessage
AlpcpCreateClientPort
AlpcpCreateReserve
AlpcpCreateSection
AlpcpCreateSectionView
AlpcpCreateSecurityContext
AlpcpDisconnectPort
AlpcpDispatchCloseMessage
AlpcpDispatchConnectionRequest
AlpcpDispatchNewMessage
AlpcpDispatchReplyToPort
AlpcpDispatchReplyToWaitingThread
AlpcpEnumerateResourcesPort
AlpcpFlushMessagesPort
AlpcpInvokeLogCallbacks
AlpcpLocateSectionView
AlpcpMapLegacyPortRemoteView
AlpcpPortQueryConnectedSidInfo
AlpcpPortQueryServerSessionInfo
AlpcpProcessSynchronousRequest
AlpcpQueryRemoteView
AlpcpQueueIoCompletionPort
AlpcpReceiveDirectMessagePort
AlpcpReceiveLegacyMessage
AlpcpReceiveSynchronousReply
AlpcpReferenceAndLockTargetPortsAndCommunicationInfo
AlpcpReferenceConnectedPort
AlpcpReferenceMessageByWaitingThreadPort
AlpcpReplyLegacySynchronousRequest
AlpcpReturnMessageOnInsufficientBuffer
AlpcpSendLegacySynchronousRequest
AlpcpSendMessage
AlpcpSignalAndWait
AlpcpSignalPortAndUnlock
AlpcpUnlockAndDereferenceTargetPortsAndCommunicationInfo
AlpcpUnlockCommunicationInfoShared
AlpcpUnlockPortShared
CcSlowReferenceSharedCacheMapFileObject
CmFcManagerQueryFeatureConfigurationSectionInformation
CmFcpManagerPublishChangeNotifications
CmQueryMultipleValueKey
CmpCreateKeyControlBlock
CmpGetKeyNodeForKcb
CmpPromoteKey
CmpTrimHive
CmpUpdateHiveRootCellFlags
CmpVEExecuteOpenLogic
CmpVolumeContextMustHiveFilePagesBeKeptLocal
CmpVolumeContextUnlockShared
CmpVolumeManagerGetContextForFile
CmpWalkOneLevel
DbgkFlushErrorPort
DbgkpSendErrorMessage
EtwDeleteSiloState
EtwpAddRegEntryToGroup
EtwpCovSampContextGetModule
EtwpCovSampContextPruneModules
EtwpCoverageSamplerQuery
EtwpFindGuidEntryByGuid
EtwpGetCompressionSettings
EtwpGetDisallowList
EtwpGetNextGuidEntry
EtwpIsGuidAllowed
EtwpReferenceLoggerSecurityDescriptor
ExFetchLicenseData
ExGetLicenseTamperState
ExRegisterExtension
ExReleaseAutoExpandPushLockShared
ExReleaseCacheAwarePushLockSharedEx
ExReleasePushLockSharedEx
ExfReleasePushLock
ExpGetKernelDataProtection
ExpGetProcessInformation
ExpGetSystemPlatformBinary
ExpKdPullRemoteFileForUser
ExpLoadAndSortLicensingCacheDescriptors
ExpNtUpdateWnfStateData
ExpSaAllocatorAllocate
ExpSaAllocatorFree
ExpSnapShotHandleTables
ExpWnfAcquireSubscriptionByName
ExpWnfAcquireSubscriptionNameInstance
ExpWnfCompleteThreadSubscriptions
ExpWnfDeliverThreadNotifications
ExpWnfDispatchKernelSubscription
ExpWnfEnumerateScopeInstances
ExpWnfLookupNameInstance
ExpWnfNotifyNameSubscribers
ExpWnfNotifySubscription
ExpWnfReadStateData
ExpWnfResolveScopeInstance
ExpWnfSubscribeNameInstance
HvHiveConvertLockedPagesToCowByPolicy
HvUnlockHiveFlusherShared
InsertEventEntryInLookUpTable
IommuProcessPageRequestQueue
IopProcessIoTracking
MiFindHotPatchRecord
MiFindProcessImageHotPatchRecord
MiGetChannelInformation
MiIsExtentDangling
MiIsRangeFullyCommitted
MiLogHotPatchRundown
MiProcessTransitionHeatBatch
MiQueryLoadedPatches
MiQueryProcessActivePatches
MiReleasePushLockUnordered
MiRelocateImagePfn
MiRemoveBadPages
MiTrimSharedPageFromViews
MiUnlockAndDereferenceVadShared
MiUnlockControlAreaFileObjectShared
MiUnlockDynamicMemoryShared
MiUnlockLoaderEntry
MiUnlockVadShared
MiUpdateImagePfnImportRelocations
MiWalkEntireImage
MiZeroPage
MmAcquireSessionPoolRundown
MmCheckProcessShadow
MmManagePartitionNodeInformation
MmPostHotPatchDbgModuleMessages
MmSetPfnListInfo
NtAlpcDeleteSectionView
NtAlpcOpenSenderProcess
NtAlpcSetInformation
NtAreMappedFilesTheSame
NtDeleteKey
NtOpenProcessTokenEx
NtOpenThreadTokenEx
NtQueryObject
ObLogSecurityDescriptor
ObOpenObjectByNameEx
ObOpenObjectByPointer
ObQueryNameStringMode
ObpCreateHandle
ObpReferenceSecurityDescriptor
PfCheckDeprioritizeFile
PfCheckDeprioritizeImage
PfQuerySuperfetchInformation
PfSnGetPrefetchInstructions
PfSnIsHostingApplication
PfSnQueryPrefetcherInformation
PfpRpCHashDeleteEntries
PoFxPrepareDevice
PoFxStartDevicePowerManagement
PoFxSystemLatencyNotify
PopDiagTraceFxRundown
PopFxAcpiPrepareDevice
PopFxActivateDevicesForSx
PopFxFindAcpiDeviceByUniqueId
PopFxFindAndReferenceAcpiDevice
PopFxIdleDevicesFromSx
PopFxLowPowerEpochCallback
PopFxPauseDeviceAccounting
PopFxRegisterDeviceWithPep
PopFxResidentTimeoutRoutine
PopFxResumeDeviceAccounting
PopFxSetDeviceAccountingCsPlatformState
PopFxStartDeviceAccounting
PopFxStopDeviceAccounting
PopPepDeviceStarted
PopPepIdleTimeoutRoutine
PopPepIterateDeviceList
PopPepPlatformStateRegistered
PopPepRemoveDevice
PopPepResetDeviceAccountingLevel
PopPepWork
PopQueryPowerButtonBugcheckEnabled
PsCaptureExceptionPort
PsGetNextProcessThread
PsGetProcessDeepFreezeStats
PsImpersonateClient
PsQueryProcessEnergyValues
PsQueryRuntimeProcess
PsQueryStatisticsProcess
PsQueryTotalCycleTimeProcess
PsReferenceEffectiveToken
PsReferenceImpersonationTokenEx
PsReferencePartitionSystemProcess
PsReferencePrimaryToken
PsSwapProcessWorkingSet
PsTerminateVsmEnclave
PspChargeProcessWakeCounter
PspGetNextJob
PspGetPreviousProcessThread
PspMarkServerSiloAsTerminating
PspNotifyProcessBackgroundTransition
PspNotifyServerSiloCreation
PspNotifyServerSiloTermination
PspReferenceSystemDll
PspSelectVsmEnclaveByNumber
PspSetProcessAffinityUpdateMode
PspSetProcessTimerDelayForWin32
PspStorageGetObject
PspStorageInsertObject
PspUnlockJobListShared
PspUnlockJobMemoryLimitsShared
PspUnlockProcessListShared
PspUnlockProcessSecurityShared
PspUnlockProcessShared
PspUnlockProcessSharedUnsafe
PspUnlockQuotaListShared
PspUnlockThreadSecurityShared
PspUpdateSingleProcessAffinity
PspWow64ReadOrWriteThreadCpuArea
RtlFindDynamicEnforcedAddressInRanges
RtlpCSparseBitmapUnlock
RtlpFindDynamicEHContinuationTarget
RtlpHpLargeAllocSetExtraPresent
RtlpHpLargeAllocSize
RtlpHpLfhContextCompact
RtlpHpLfhOwnerCompact
RtlpHpLfhSlotAllocate
RtlpHpLfhSubsegmentCreate
RtlpHpLfhSubsegmentDecommitPages
RtlpLookupUserFunctionTable
SLGetSubscriptionPfn
SLQueryLicenseValueInternal
SLUpdateLicenseDataInternal
SMKM_STORE::SmStDirectReadIssue
SMKM_STORE::SmStInSwapStore
SMKM_STORE::SmStMapVirtualRegion
SMKM_STORE::SmStOutSwapStore
SMKM_STORE::SmStPrioritizeRegionsStore
SMKM_STORE::SmStTrimWsStore
SMKM_STORE::SmStTrimWsStoreBatch
SMKM_STORE::SmStUnmapVirtualRegion
SMKM_STORE_MGR::SmFeAddInitiate
SMKM_STORE_MGR::SmFeReadInitiate
ST_STORE::StDmHandleDecompressionFailure
ST_STORE::StDmSinglePageCopy
SeCaptureSubjectContext
SeCaptureSubjectContextEx
SeComputeAutoInheritByObjectTypeEx
SeCreateClientSecurity
SeCreateClientSecurityEx
SepDereferenceLowBoxNumberEntry
SepIsParentOfChildAppContainer
SepIsValidProcUniqueLuid
SepRmReferenceFindCap
SepSetTokenLowboxNumber
SmKmKeyGenGenerate
SmKmVirtualLockCtxLockMemory
SmcGetCacheStats
SmpKeyedStoreEntryGet
SmpKeyedStoreReference
UNLOCK_ADDRESS_SPACE_SHARED
UNLOCK_ADDRESS_SPACE_SHARED_UNORDERED
VrpPostEnumerateKey
VrpTranslatePath
WbAllocateSlots
WbAllocateUserMemory
WbGetHeapExecutedBlock
WbGetWarbirdEncryptionSegment
WbGetWarbirdProcess
WbGetWarbirdThread
WbRemoveWarbirdProcess
WheaConfigureErrorSource
WheaUnconfigureErrorSource
sub_1403B8E0C
sub_14065DA88
sub_14094D610
sub_14094DC8C