PopThermalUpdateActiveTimeTracking

NTSTATUS __stdcall PopThermalUpdateActiveTimeTracking(INT64 a1, INT64 a2){
  __int64 v2; 
  __int64 v3; 
  NTSTATUS result; 

  if( !*(_BYTE *)a1 )
  {
    a2 = (unsigned __int8)a2;
    v2 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
    v3 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - *(_QWORD *)(a1 + 16);
    while( 1 )
    {
      result = *(unsigned __int8 *)(a1 + 1);
      if( (unsigned int)a2 >= result )
        break;
      *(_QWORD *)(a1 + 8 * a2 + 360) += v3;
      a2 = (unsigned int)(a2 + 1);
    }
    *(_QWORD *)(a1 + 520) += v3;
    *(_QWORD *)(a1 + 16) = v2;
  }
  return result;
}

Referenced by:

PoSetThermalActiveCooling
PopCoolingSxTransition
PopCoolingTelemetryWorker
PopDeactiveThermalRequest
PopOrphanCoolingExtension
PopThermalSxEntry
PopThermalTelemetryWorker
PopThermalWorker
PopThermalZoneRemove