PopCoolingTelemetryWorker

VOID __stdcall PopCoolingTelemetryWorker(){
  __int64 i; 
  INT64 v1; 
  __int64 j; 

  PopAcquireRwLockExclusive(&PopCoolingExtensionLock);
  for( i = PopCoolingExtensionList; (__int64 *)i != &PopCoolingExtensionList; i = *(_QWORD *)i )
  {
    if( *(_BYTE *)(i + 64) )
    {
      PopAcquireRwLockExclusive((_POP_RW_LOCK *)(i + 32));
      for( j = *(_QWORD *)(i + 16); j != i + 16; j = *(_QWORD *)j )
      {
        if( *(_BYTE *)(j + 18) )
        {
          if( *(_QWORD *)(i + 136) )
          {
            PopThermalUpdatePassiveTimeTracking();
            PopTraceThermalRequestPassiveHistogram(j);
          }
          if( *(_QWORD *)(i + 128) )
          {
            LOBYTE(v1) = *(_BYTE *)(j + 17) == 0;
            PopThermalUpdateActiveTimeTracking(j + 40, v1);
            PopTraceThermalRequestActiveActivity(j);
          }
        }
      }
      PopReleaseRwLock((_POP_RW_LOCK *)(i + 32));
    }
  }
  PopReleaseRwLock(&PopCoolingExtensionLock);
}

Referenced by:

PopThermalTelemetryWorker