PopThermalTraceRundownEvents

NTSTATUS __stdcall PopThermalTraceRundownEvents(UINT64 CpuSetCount, UINT64 *CpuSetMasks){
  EVENT_DESCRIPTOR *v2; 
  PVOID *v3; 
  char v4; 
  DEVICE_OBJECT *v5; 
  unsigned __int8 v6; 
  char v7; 
  NTSTATUS result; 
  DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag; 
  DEVICE_OBJECT *v10; 
  __int64 v11; 
  int v12; 
  int v13; 
  UINT64 UserDataCount; 
  __int16 v15; 
  __int16 v16; 
  int v17; 
  __int16 v18; 
  int v19; 
  int v20; 
  int v21; 
  __int64 v22; 
  EVENT_DATA_DESCRIPTOR UserData; 
  __int64 v24; 
  int v25; 
  int v26; 
  __int16 *v27; 
  __int64 v28; 
  int *v29; 
  __int64 v30; 
  int *v31; 
  __int64 v32; 
  int *v33; 
  __int64 v34; 
  int *v35; 
  __int64 v36; 
  __int64 *v37; 
  __int64 v38; 
  __int16 *v39; 
  __int64 v40; 
  PVOID v41; 
  int v42; 
  int v43; 
  PopAcquireRwLockShared((UINT64)&PopPolicyDeviceLock);
  v3 = (PVOID *)PopThermal;
  if( PopThermal != &PopThermal )
  {
    do
    {
      v4 = *((_BYTE *)v3 + 65);
      if( (v4 & 2) != 0 )
      {
        v5 = (DEVICE_OBJECT *)v3[6];
        v6 = v4 & 1;
        LODWORD(v22) = *((unsigned __int8 *)v3 + 73);
        v7 = v4 & 4;
        v21 = *((unsigned __int8 *)v3 + 72);
        v20 = *((_DWORD *)v3 + 20);
        v19 = *((unsigned __int8 *)v3 + 69);
        v16 = 0;
        v18 = 0;
        v15 = 0;
        LOWORD(v17) = 0;
        if( PopDiagHandleRegistered )
        {
          if( EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_THERMAL_ZONE_RUNDOWN, v2) )
          {
            DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(v5, 0x67446F50ui64);
            v10 = DeviceAttachmentBaseRefWithTag;
            if( DeviceAttachmentBaseRefWithTag )
              v11 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
            else
              v11 = 0i64;
            if( v11 )
            {
              v12 = *(_WORD *)(v11 + 128) >> 1;
              UserData.Ptr = (unsigned __int64)&v15;
              v15 = v12;
              *(_QWORD *)&UserData.Size = 2i64;
              v24 = *(_QWORD *)(v11 + 136);
              v25 = 2 * v12;
              v13 = *((unsigned __int16 *)v3 + 520);
              v16 = v7 != 0;
              v42 = v13;
              v27 = &v16;
              v29 = &v19;
              LOWORD(v17) = v6;
              v31 = &v17;
              v33 = &v20;
              v35 = &v21;
              v37 = &v22;
              v18 = (unsigned __int16)v13 >> 1;
              v39 = &v18;
              v41 = v3[131];
              LODWORD(UserDataCount) = 10;
              v26 = 0;
              v28 = 2i64;
              v30 = 4i64;
              v32 = 2i64;
              v34 = 4i64;
              v36 = 4i64;
              v38 = 4i64;
              v40 = 2i64;
              v43 = 0;
              EtwWriteEx(
                PopDiagHandle,
                (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_THERMAL_ZONE_RUNDOWN,
                0i64,
                0i64,
                0i64,
                0i64,
                UserDataCount,
                &UserData);
            }
            if( v10 )
              ObfDereferenceObjectWithTag(v10, 0x67446F50ui64);
          }
        }
      }
      v3 = (PVOID *)*v3;
    }
    while( v3 != &PopThermal );
  }
  PopReleaseRwLock((UINT64)&PopPolicyDeviceLock);
  return result;
}

Referenced by:

PopDiagTraceControlCallback