PopTraceThermalRequestPassiveHistogram

VOID __fastcall PopTraceThermalRequestPassiveHistogram(INT64 a1){
  UINT64 *v2; 
  DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag; 
  DEVICE_OBJECT *v4; 
  __int64 v5; 
  UINT64 *PoolWithTag; 
  const WCHAR *v7; 
  SIZE_T NumberOfBytes[2]; 
  struct _EVENT_DATA_DESCRIPTOR v9; 
  int *v10; 
  __int64 v11; 
  __int64 v12; 
  int v13[2]; 
  char v14[16]; 
  int *v15; 
  int v16; 
  int v17; 
  __int64 *v18; 
  int v19; 
  int v20; 
  int v21[24]; 
  NumberOfBytes[0] = 0i64;
  v2 = 0i64;
  DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(
                                     *(DEVICE_OBJECT **)(*(_QWORD *)(a1 + 32) + 48i64),
                                     0x67446F50ui64);
  v4 = DeviceAttachmentBaseRefWithTag;
  if( DeviceAttachmentBaseRefWithTag )
    v5 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
  else
    v5 = 0i64;
  if( v5 )
  {
    PoStoreDiagnosticContext(*(_QWORD *)(a1 + 24), 0i64, NumberOfBytes);
    PoolWithTag = (UINT64 *)ExAllocatePoolWithTag(PagedPool, NumberOfBytes[0], 0x50455654ui64);
    v2 = PoolWithTag;
    if( PoolWithTag )
    {
      if( (int)PoStoreDiagnosticContext(*(_QWORD *)(a1 + 24), PoolWithTag, NumberOfBytes) >= 0 )
      {
        v7 = (const WCHAR *)((char *)v2 + v2[2]);
        if( (PopDiagSnapPassiveHistogram(a1 + 40, v21) || PopThermalTelemetryVerbosity)
          && (unsigned int)dword_140C021E8 > 5
          && tlgKeywordOn((__int64)&dword_140C021E8, 0x400000000000i64) )
        {
          v13[1] = 0;
          v10 = v13;
          v12 = *(_QWORD *)(v5 + 136);
          v13[0] = *(unsigned __int16 *)(v5 + 128);
          v11 = 2i64;
          tlgCreate1Sz_wchar_t((__int64)v14, v7);
          v17 = 0;
          v20 = 0;
          v18 = PopThermalTrackingThresholds;
          v15 = v21;
          v16 = 84;
          v19 = 21;
          tlgWriteTransfer_EtwWriteTransfer(
            (__int64)&dword_140C021E8,
            (unsigned __int8 *)byte_140026FF8,
            0i64,
            0i64,
            7u,
            &v9);
        }
      }
    }
  }
  if( v4 )
    ObfDereferenceObjectWithTag(v4, 0x67446F50ui64);
  if( v2 )
    ExFreePoolWithTag(v2, 0x50455654u);
}

Referenced by:

PopCoolingSxTransition
PopCoolingTelemetryWorker
PopDeactiveThermalRequest
PopOrphanCoolingExtension