PpmEventLegacyProcessorPerfStateChange

INT64 __fastcall PpmEventLegacyProcessorPerfStateChange(INT64 a1){
  _DWORD *v1; 
  __int64 v2; 
  int v4; 
  int v5; 
  INT64 result; 
  unsigned int v7; 
  unsigned int v8; 
  bool v9; 
  int v10; 
  UINT64 Flag; 
  int DataPtr; 
  __int64 v13; 
  int v14; 
  int v15; 
  __int128 v16; 
  __int64 v17; 
  EVENT_DATA_DESCRIPTOR EventData; 
  v1 = *(_DWORD **)(a1 + 33136);
  v2 = *(_QWORD *)(a1 + 33128);
  v16 = 0i64;
  v17 = 0i64;
  v4 = v1[16];
  v5 = v1[19];
  if( (*(_WORD *)(&PerfGlobalGroupMask + 2) & 0x8000) != 0 )
  {
    HIDWORD(v16) = 0;
    v7 = *(_DWORD *)(v2 + 368);
    v8 = v1[18];
    EventData.Size = 24;
    if( v8 >= v7 )
      v8 = v7;
    LODWORD(Flag) = 4200450;
    v9 = v8 < *(_DWORD *)(v2 + 324);
    DWORD1(v16) = v5;
    EventData.Reserved = 0;
    LODWORD(v16) = v9 + 1;
    DWORD2(v16) = v1[27];
    v17 = *(_QWORD *)(a1 + 200);
    EventData.Ptr = (unsigned __int64)&v16;
    EtwTraceKernelEvent(&EventData, 1ui64, 0x80008000ui64, 0x1233u, Flag);
  }
  result = (unsigned int)WmiPerfStateEventEnabled;
  if( WmiPerfStateEventEnabled )
  {
    v10 = *(_DWORD *)(a1 + 36);
    v13 = 0i64;
    v15 = v10;
    DataPtr = v4;
    v14 = v5;
    return PpmFireWmiEvent((VOID *)(a1 + 32992), (GUID *)&PPM_PERFSTATE_CHANGE_GUID, 0x14ui64, &DataPtr);
  }
  return result;
}

Referenced by:

PpmPerfApplyProcessorState