PopSqmThermalCriticalEvent
VOID __fastcall PopSqmThermalCriticalEvent(_POP_THERMAL_ZONE *ThermalZone, UINT64 TripPoINT, UINT64 MitigationType){
unsigned int v3;
int v5;
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v7;
__int64 v8;
__int64 v9;
unsigned int v10;
unsigned __int8 Flags;
bool v12;
const WCHAR *v13;
const WCHAR *v14;
bool v15;
char v16;
bool v17;
bool v18;
int v19;
unsigned int v20;
unsigned int v21;
struct _EVENT_DATA_DESCRIPTOR v22;
bool *v23;
int v24;
int v25;
char *v26;
int v27;
int v28;
bool *v29;
int v30;
int v31;
int *v32;
int v33;
int v34;
int *v35;
int v36;
int v37;
int *v38;
int v39;
int v40;
bool *v41;
int v42;
int v43;
char v44[16];
char v45[16];
v3 = TripPoINT;
v5 = MitigationType;
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(ThermalZone->PolicyDevice.Device, 0x67446F50ui64);
v7 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v8 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v8 = 0i64;
if( v8 && (unsigned int)dword_140C021E8 > 5 && tlgKeywordOn((__int64)&dword_140C021E8, 0x800000000000i64) )
{
Flags = ThermalZone->Flags;
v12 = ThermalZone->PolicyDriver == 0;
v23 = &v15;
v15 = !v12;
v24 = 1;
v25 = 0;
v28 = 0;
v31 = 0;
v34 = 0;
v37 = 0;
v40 = 0;
v16 = Flags & 1;
v26 = &v16;
v29 = &v17;
v32 = &v19;
v35 = (int *)&v20;
v17 = (Flags & 4) != 0;
v38 = (int *)&v21;
v27 = 1;
v30 = 1;
v33 = 4;
v36 = 4;
v18 = v10 > v3;
v43 = 0;
v39 = 4;
v42 = 1;
v13 = *(const WCHAR **)(v9 + 136);
v41 = &v18;
v19 = v5;
v20 = v10;
v21 = v3;
tlgCreate1Sz_wchar_t((__int64)v44, v13);
tlgCreate1Sz_wchar_t((__int64)v45, v14);
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C021E8,
(unsigned __int8 *)byte_1400298FD,
0i64,
0i64,
0xBu,
&v22);
}
if( v7 )
ObfDereferenceObjectWithTag(v7, 0x67446F50ui64);
}Referenced by:
PopSqmThermalCriticalShutdown
PopSqmThermalHibernate