PopTraceZoneCr3Tripped
VOID __fastcall PopTraceZoneCr3Tripped(UINT64 GenerationId, _POP_THERMAL_ZONE *ThermalZone){
int v3;
DEVICE_OBJECT *DeviceAttachmentBaseRefWithTag;
DEVICE_OBJECT *v5;
__int64 v6;
__int64 v7;
int v8;
unsigned __int8 Flags;
bool v10;
const WCHAR *v11;
const WCHAR *v12;
bool v13;
char v14;
bool v15;
int v16;
int v17;
unsigned int ThermalStandbyTripPoint;
struct _EVENT_DATA_DESCRIPTOR v19;
int *v20;
int v21;
int 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;
unsigned int *p_ThermalStandbyTripPoint;
int v36;
int v37;
char v38[16];
char v39[16];
v3 = GenerationId;
DeviceAttachmentBaseRefWithTag = IoGetDeviceAttachmentBaseRefWithTag(ThermalZone->PolicyDevice.Device, 0x67446F50ui64);
v5 = DeviceAttachmentBaseRefWithTag;
if( DeviceAttachmentBaseRefWithTag )
v6 = *(_QWORD *)(*((_QWORD *)DeviceAttachmentBaseRefWithTag + 39) + 40i64);
else
v6 = 0i64;
if( v6 && (unsigned int)dword_140C021E8 > 5 && tlgKeywordOn((__int64)&dword_140C021E8, 0x400000000000i64) )
{
Flags = ThermalZone->Flags;
v22 = 0;
v10 = ThermalZone->PolicyDriver == 0;
v20 = &v16;
v13 = !v10;
v23 = &v13;
v25 = 0;
v28 = 0;
v31 = 0;
v34 = 0;
v37 = 0;
v14 = Flags & 1;
v26 = &v14;
v29 = &v15;
v32 = &v17;
ThermalStandbyTripPoint = ThermalZone->Info.ThermalStandbyTripPoint;
v24 = 1;
v27 = 1;
v15 = (Flags & 4) != 0;
v30 = 1;
v11 = *(const WCHAR **)(v7 + 136);
p_ThermalStandbyTripPoint = &ThermalStandbyTripPoint;
v16 = v3;
v21 = 4;
v17 = v8;
v33 = 4;
v36 = 4;
tlgCreate1Sz_wchar_t((__int64)v38, v11);
tlgCreate1Sz_wchar_t((__int64)v39, v12);
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C021E8,
(unsigned __int8 *)&byte_1400272E7,
0i64,
0i64,
0xAu,
&v19);
}
if( v5 )
ObfDereferenceObjectWithTag(v5, 0x67446F50ui64);
}Referenced by:
PopCheckAndHandleThermalConditions