PpmEventProcessorPerfStateChange

INT64 __fastcall PpmEventProcessorPerfStateChange(
        _HHIVE *Hive,
        _CM_KEY_NODE *Parent,
        _UNICODE_STRING *ValueName,
        UINT64 Index,
        HSTORAGE_TYPE StorageType){
  INT64 result; 
  EVENT_DESCRIPTOR *v7; 
  EVENT_DESCRIPTOR *v8; 
  UINT64 v9; 
  _CELL_DATA *(__fastcall *GetCellRoutine)(_HHIVE *, unsigned int, _HV_GET_CELL_CONTEXT *); 
  UINT64 UserDataCount; 
  int v12; 
  int v13; 
  int v14; 
  int v15; 
  EVENT_DATA_DESCRIPTOR UserData; 
  int *v17; 
  __int64 v18; 
  INT64 v19[2]; 
  __int64 v20; 
  __int64 v21; 
  __int64 v22; 
  __int64 v23; 
  __int64 v24; 
  __int64 v25; 
  __int64 v26; 
  __int64 v27; 
  __int64 v28; 
  __int64 v29; 
  __int64 v30; 
  __int64 v31; 
  int *v32; 
  __int64 v33; 
  int *v34; 
  __int64 v35; 
  int *v36; 
  __int64 v37; 
  int v38; 
  int v39; 
  v39 = (int)ValueName;
  v38 = (int)Parent;
  v12 = 0;
  result = PpmEventGetEventDescriptorAndProcessorId(
             (INT64)Hive,
             (INT64)&PPM_ETW_PROCESSOR_PERF_STATE_CHANGE,
             (INT64)&PPM_ETW_PROCESSOR_PERF_STATE_CHANGE_HV,
             (INT64)&v12,
             (INT64)v19);
  v8 = (EVENT_DESCRIPTOR *)result;
  if( PpmEtwRegistered )
  {
    v9 = PpmEtwHandle;
    LOBYTE(result) = EtwEventEnabled(PpmEtwHandle, (EVENT_DESCRIPTOR *)result, v7);
    if( (_BYTE)result )
    {
      GetCellRoutine = Hive->GetCellRoutine;
      v13 = *((_DWORD *)GetCellRoutine + 16);
      v14 = *((_DWORD *)GetCellRoutine + 19);
      UserData.Ptr = (unsigned __int64)&v13;
      v17 = &v14;
      v20 = (__int64)GetCellRoutine + 72;
      v22 = (__int64)GetCellRoutine + 88;
      v24 = (__int64)GetCellRoutine + 80;
      v26 = (__int64)GetCellRoutine + 84;
      v28 = (__int64)GetCellRoutine + 92;
      v30 = (__int64)GetCellRoutine + 96;
      *(_QWORD *)&UserData.Size = 4i64;
      v18 = 4i64;
      v21 = 4i64;
      v23 = 4i64;
      v25 = 4i64;
      v27 = 4i64;
      v29 = 4i64;
      v31 = 4i64;
      v15 = *((unsigned __int8 *)GetCellRoutine + 100);
      v32 = &v15;
      v34 = &v38;
      v36 = &v39;
      LODWORD(UserDataCount) = 12;
      v33 = 4i64;
      v35 = 4i64;
      v37 = 4i64;
      LODWORD(result) = EtwWriteEx(v9, v8, 0i64, 0i64, 0i64, 0i64, UserDataCount, &UserData);
    }
  }
  return result;
}

Referenced by:

PpmPerfApplyHiddenProcessorState
PpmPerfArbitratorApplyProcessorState