PspSafeReferenceQuotaBlock

UINT64 __stdcall PspSafeReferenceQuotaBlock(_EPROCESS_QUOTA_BLOCK *QuotaBlock){
  signed __int32 ReferenceCount; 
  bool v2; 
  signed __int32 v3; 

  _m_prefetchw(&QuotaBlock->ReferenceCount);
  ReferenceCount = QuotaBlock->ReferenceCount;
  if( !ReferenceCount )
    return 0i64;
  while( 1 )
  {
    v3 = _InterlockedCompareExchange(
           (volatile signed __int32 *)&QuotaBlock->ReferenceCount,
           ReferenceCount + 1,
           ReferenceCount);
    v2 = ReferenceCount == v3;
    ReferenceCount = v3;
    if( v2 )
      break;
    if( !v3 )
      return 0i64;
  }
  return 1i64;
}

Referenced by:

PspAssignProcessQuotaBlock
PspLookupProcessQuotaBlock