PpmEventTracePlatformIdleAccounting
VOID __stdcall PpmEventTracePlatformIdleAccounting(){
EVENT_DESCRIPTOR *v0;
_QWORD *v1;
__int64 v2;
int v3;
unsigned int v4;
_QWORD *PoolWithTag;
_QWORD *v6;
__int64 v7;
__int64 *v8;
__int64 v9;
_SID_AND_ATTRIBUTES *v10;
_SID_AND_ATTRIBUTES *v11;
UINT64 v12;
_SID_AND_ATTRIBUTES *v13;
UINT64 v14;
PEVENT_DATA_DESCRIPTOR UserData;
char v16;
__int16 v17;
unsigned int v18;
EVENT_DATA_DESCRIPTOR v19;
__int16 *v20;
__int64 v21;
char *v22;
__int64 v23;
int *v24;
__int64 v25;
_QWORD *v26;
int v27;
int v28;
v18 = 0;
v1 = 0i64;
v17 = 20;
v16 = 64;
if( PpmEtwRegistered
&& EtwEventEnabled(PpmEtwHandle, (EVENT_DESCRIPTOR *)&PPM_ETW_PLATFORM_IDLE_ACCOUNTING_RUNDOWN, v0)
&& PpmPlatformStates )
{
v2 = *(_QWORD *)(PpmPlatformStates + 48);
v3 = 0;
v4 = *(_DWORD *)(v2 + 4);
if( *(_DWORD *)(PpmPlatformStates + 4) == 1 )
{
v3 = 80 * v4;
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, 80 * v4, 0x654D5050ui64);
v1 = PoolWithTag;
if( !PoolWithTag )
return;
memset((INT64)PoolWithTag, 0i64);
if( v4 )
{
v6 = v1 + 2;
v7 = v4;
v8 = (__int64 *)(v2 + 112);
do
{
*(v6 - 1) = *(v8 - 1);
v9 = *v8;
v8 += 126;
*v6 = v9;
v6 += 10;
*(v6 - 9) = *(v8 - 124);
*(v6 - 8) = *(v8 - 125);
*(v6 - 5) = *(v8 - 129);
*(v6 - 4) = *(v8 - 130);
*(v6 - 3) = *(v8 - 131);
*(v6 - 12) = *(v8 - 121);
*(v6 - 7) = *(v8 - 119);
*(v6 - 6) = *(v8 - 120);
--v7;
}
while( v7 );
}
}
v10 = (_SID_AND_ATTRIBUTES *)ExAllocatePoolWithTag(NonPagedPoolNx, 664 * v4 + 32, 0x654D5050ui64);
v11 = v10;
if( v10 )
{
memset((INT64)v10, 0i64);
PpmTranslatePlatformIdleAccounting((_TOKEN *)v2, v11, v12, v13, (UINT64)UserData);
v19.Ptr = (unsigned __int64)v11;
v19.Size = 664 * v4 + 32;
v20 = &v17;
v19.Reserved = 0;
v21 = 2i64;
v22 = &v16;
v14 = 4i64;
v23 = 1i64;
if( v1 )
{
v14 = 5i64;
v26 = v1;
v27 = v3;
v28 = 0;
}
else
{
v4 = 0;
}
v24 = (int *)&v18;
v25 = 4i64;
v18 = v4;
EtwWrite(PpmEtwHandle, (EVENT_DESCRIPTOR *)&PPM_ETW_PLATFORM_IDLE_ACCOUNTING_RUNDOWN, 0i64, v14, &v19);
ExFreePoolWithTag(v11, 0x654D5050u);
}
if( v1 )
ExFreePoolWithTag(v1, 0x654D5050u);
}
}Referenced by:
PpmEventTraceControlCallback