PopPublishAndPurgePowerRequestStats

INT64 __stdcall PopPublishAndPurgePowerRequestStats(PVOID Buffer){
  __int64 v1; 
  __int64 v3; 
  __int64 v4; 
  unsigned int v5; 
  _QWORD *StopWatchByRequestType; 
  INT64 v7; 
  INT64 v8; 
  EVENT_DESCRIPTOR *v9; 
  __int64 v10; 
  const WCHAR *v11; 
  INT64 result; 
  bool a3; 
  char v14; 
  __int64 v15; 
  int v16; 
  BOOL v17; 
  UINT64 Seed; 
  unsigned __int64 v19; 
  __int64 v20; 
  __int128 v21; 
  __int128 v22; 
  __int128 v23; 
  EVENT_DATA_DESCRIPTOR a2; 
  __int128 *v25; 
  __int64 v26; 
  int *v27; 
  __int64 v28; 
  __int64 v29; 
  int v30; 
  int v31; 
  __int128 *v32; 
  __int64 v33; 
  __int64 *v34; 
  __int64 v35; 
  __int64 *v36; 
  __int64 v37; 
  struct _EVENT_DATA_DESCRIPTOR v38; 
  const char *v39; 
  int v40; 
  int v41; 
  char v42[16]; 
  unsigned __int64 *v43; 
  __int64 v44; 
  BOOL *v45; 
  __int64 v46; 
  __int64 *v47; 
  __int64 v48; 
  __int64 v49; 
  v49 = v1;
  v15 = 0i64;
  v3 = *((_QWORD *)Buffer + 2);
  v4 = -1i64;
  v22 = 0i64;
  do
    ++v4;
  while( *(_WORD *)(v3 + 2 * v4) );
  v14 = v1;
  a2.Ptr = (unsigned __int64)&v14;
  v16 = v4;
  v29 = v3;
  v27 = &v16;
  *(_QWORD *)&a2.Size = 1i64;
  v28 = 4i64;
  v30 = 2 * v4;
  v31 = 0;
  v5 = 0;
  v21 = (unsigned int)RtlRandomEx(&Seed);
  v23 = v21;
  v32 = &v23;
  v33 = 16i64;
  do
  {
    StopWatchByRequestType = (_QWORD *)PopGetStopWatchByRequestType((INT64)Buffer, v5);
    v7 = (INT64)StopWatchByRequestType;
    if( StopWatchByRequestType )
    {
      a3 = 0;
      v15 = 0i64;
      PoQueryStopWatch(StopWatchByRequestType, &v15, &a3);
      PoResetStopWatch(v7);
      if( (unsigned int)dword_140C021E8 > 5 )
      {
        v10 = -1i64;
        do
          ++v10;
        while( aSleepstudyBloc[v10] );
        v11 = (const WCHAR *)*((_QWORD *)Buffer + 2);
        v39 = "SleepStudy Blocker Event";
        v40 = v10 + 1;
        v41 = 0;
        tlgCreate1Sz_wchar_t((__int64)v42, v11);
        v44 = 8i64;
        v46 = 4i64;
        v48 = 8i64;
        v43 = &v19;
        v17 = a3;
        v45 = &v17;
        v20 = v49;
        v47 = &v20;
        v19 = v15 / 0xAui64 / 0xF4240;
        tlgWriteTransfer_EtwWriteTransfer(
          (__int64)&dword_140C021E8,
          (unsigned __int8 *)&word_140028DB6,
          0i64,
          0i64,
          7u,
          &v38);
      }
      if( v15 )
      {
        v26 = 16i64;
        v25 = &v22;
        v35 = 8i64;
        v34 = &v15;
        v22 = 0i64;
        LODWORD(v22) = -1428313379;
        v36 = &v49;
        BYTE4(v22) = 6;
        v37 = 8i64;
        PopDiagTraceSleepStudyBlocker(v8, &a2, v9);
      }
    }
    ++v5;
  }
  while( v5 < 4 );
  result = (unsigned int)_InterlockedExchangeAdd((volatile signed __int32 *)Buffer, 0);
  if( (int)result <= 0 )
    LODWORD(result) = PopAvlDeleteStatsForPowerRequest(Buffer);
  return result;
}

Referenced by:

PopStatsNotifyPowerRequestCsState