PopDiagTraceActiveCooling

void __fastcall PopDiagTraceActiveCooling(__int64 a1, __int64 a2, EVENT_DESCRIPTOR *a3, unsigned int a4){
  char v5; 
  bool v8; 
  DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag; 
  DEVICE_OBJECT *v10; 
  __int64 v11; 
  char *v12; 
  unsigned int v13; 
  __int64 v14; 
  __int64 v15; 
  unsigned int v16; 
  unsigned int *v17; 
  unsigned int v18; 
  EVENT_DESCRIPTOR *v19; 
  unsigned __int16 v20; 
  __int16 v21; 
  unsigned int v22; 
  union _LARGE_INTEGER LocalTime; 
  union _LARGE_INTEGER SystemTime; 
  EVENT_DATA_DESCRIPTOR UserData; 
  __int64 v26; 
  int v27; 
  int v28; 
  union _LARGE_INTEGER *p_LocalTime; 
  __int64 v30; 
  __int16 *v31; 
  __int64 v32; 
  char v33; 
  int *v34; 
  __int64 v35; 
  _DWORD v36[10]; 
  v5 = (char)a3;
  v21 = 0;
  v22 = 0;
  v20 = 0;
  LocalTime.QuadPart = 0i64;
  if( PopDiagHandleRegistered
    && (a4 || EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_ACTIVE_COOLING_DIAGNOSTIC, a3)) )
  {
    v8 = a4 <= 1;
    if( a4 == 1 )
    {
      if( !EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_ACTIVE_COOLING_OPERATIONAL, a3) )
        return;
      v8 = 1;
    }
    if( v8 )
    {
      DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag((DEVICE_OBJECT *)a2, 0x67446F50ui64);
      v10 = DeviceAttachmentBaseRefWithTag;
      if( DeviceAttachmentBaseRefWithTag )
        v11 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
      else
        v11 = 0i64;
      if( v11 )
      {
        v20 = *(_WORD *)(v11 + 128) >> 1;
        UserData.Ptr = (unsigned __int64)&v20;
        *(_QWORD *)&UserData.Size = 2i64;
        v26 = *(_QWORD *)(v11 + 136);
        v27 = 2 * v20;
        v28 = 0;
        SystemTime = *(union _LARGE_INTEGER *)&KUSER_SHARED_DATA.SystemTime.LowPart;
        ExSystemTimeToLocalTime(&SystemTime, &LocalTime);
        v30 = 8i64;
        p_LocalTime = &LocalTime;
        v12 = &v33;
        v32 = 2i64;
        v13 = 0;
        v14 = 10i64;
        v21 = v5 != 0;
        v31 = &v21;
        do
        {
          v15 = v13;
          *(_QWORD *)(v12 - 4) = 4i64;
          ++v13;
          v12 += 16;
          v16 = *(_DWORD *)(a1 + 4 * v15 + 36);
          v17 = &v36[v15];
          *(_QWORD *)(v12 - 28) = v17;
          *v17 = v16 / 0xA;
          --v14;
        }
        while( v14 );
        v35 = 4i64;
        v18 = *(_DWORD *)(a1 + 16) / 0xAu;
        v34 = (int *)&v22;
        v22 = v18;
        v19 = (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_ACTIVE_COOLING_DIAGNOSTIC;
        if( a4 )
          v19 = (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_ACTIVE_COOLING_OPERATIONAL;
        EtwWrite(PopDiagHandle, v19, 0i64, 0xFui64, &UserData);
      }
      if( v10 )
        ObfDereferenceObjectWithTag(v10, 0x67446F50ui64);
    }
  }
}

Referenced by:

PopThermalWorker