PpmIdleCsVetoAccountingUpdateBlock

VOID __stdcall PpmIdleCsVetoAccountingUpdateBlock(
        _PPM_VETO_ACCOUNTING *VetoAccounting,
        UINT8 BlockMask,
        UINT8 Unblocked){
  unsigned __int8 CsAccountingBlocks; 
  unsigned __int8 v5; 
  __int64 v6; 
  unsigned int j; 
  _PPM_VETO_ENTRY *v8; 
  unsigned __int64 CsActivationTime; 
  unsigned __int8 v10; 
  unsigned __int64 v11; 
  unsigned int i; 
  _PPM_VETO_ENTRY *v13; 
  INT64 CurrentQpc; 

  CsAccountingBlocks = VetoAccounting->CsAccountingBlocks;
  if( Unblocked )
  {
    v10 = CsAccountingBlocks & ~BlockMask;
    VetoAccounting->CsAccountingBlocks = v10;
    if( !v10 )
    {
      LODWORD(v11) = RtlGetInterruptTimePrecise(&CurrentQpc);
      for( i = 0; i < VetoAccounting->PreallocatedVetoCount; ++i )
      {
        v13 = &VetoAccounting->PreallocatedVetoList[(unsigned __int64)i];
        if( v13->LastActivationTime )
          v13->CsActivationTime = v11;
      }
    }
  }
  else
  {
    v5 = BlockMask | CsAccountingBlocks;
    VetoAccounting->CsAccountingBlocks = v5;
    if( v5 == BlockMask )
    {
      LODWORD(v6) = RtlGetInterruptTimePrecise(&CurrentQpc);
      for( j = 0; j < VetoAccounting->PreallocatedVetoCount; ++j )
      {
        v8 = &VetoAccounting->PreallocatedVetoList[(unsigned __int64)j];
        CsActivationTime = v8->CsActivationTime;
        if( CsActivationTime )
        {
          v8->CsActiveTime += v6 - CsActivationTime;
          v8->CsActivationTime = 0i64;
        }
      }
    }
  }
}

Referenced by:

PpmIdleCaptureCsVetoAccounting
PpmIdleCsVetoAccountingDeviceUpdate
PpmIdleCsVetoAccountingResiliencyUpdate
PpmIdleStartCsVetoAccounting