VrpUnlockJobContextExclusive

VOID __fastcall VrpUnlockJobContextExclusive(INT64 a1){
  void *v1; 
  char v2; 
  v1 = (void *)(a1 + 16);
  v2 = _InterlockedExchangeAdd64((volatile signed __int64 *)(a1 + 16), 0xFFFFFFFFFFFFFFFFui64);
  if( (v2 & 2) != 0 && (v2 & 4) == 0 )
    ExfTryToWakePushLock((volatile INT64 *)(a1 + 16));
  KeAbPostRelease(v1);
  KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
}

Referenced by:

VrpHandleIoctlCreateMultipleNamespaceNodes
VrpHandleIoctlCreateNamespaceNode
VrpHandleIoctlInitializeJobForVreg
VrpHandleIoctlLoadDifferencingHive
VrpHandleIoctlUnloadDynamicallyLoadedHives