EtwpUpdatePmcEvents

NTSTATUS __stdcall EtwpUpdatePmcEvents(_WMI_LOGGER_CONTEXT *LoggerContext, UINT64 *EventList, UINT64 a3){
  unsigned int v3; 
  NTSTATUS PmcData; 
  __int64 i; 
  signed __int32 v9[14]; 
  v3 = a3;
  PmcData = 0;
  if( !(_DWORD)a3 || (unsigned int)a3 > 4 )
    return -1073741811;
  if( *((_QWORD *)LoggerContext + 125) || (PmcData = EtwpAllocatePmcData(LoggerContext)) == 0 )
  {
    if( *(_DWORD *)(*((_QWORD *)LoggerContext + 125) + 8i64) )
      PmcData = -1073741053;
    for( i = 0i64; ; i = (unsigned int)(i + 1) )
    {
      v9[8] = i;
      if( (unsigned int)i >= v3 )
        break;
      *(_WORD *)(*((_QWORD *)LoggerContext + 125) + 2 * i + 12) = *((_WORD *)EventList + 2 * i);
    }
    _InterlockedOr(v9, 0);
    *(_DWORD *)(*((_QWORD *)LoggerContext + 125) + 8i64) = v3;
  }
  return PmcData;
}

Referenced by:

EtwSetPerformanceTraceInformation