PsAddProcessEnergyValues
NTSTATUS __stdcall PsAddProcessEnergyValues(INT64 a1, INT64 a2){
int v4;
unsigned int v5;
unsigned int v6;
unsigned int v7;
unsigned int v8;
unsigned int v9;
unsigned int v10;
unsigned int v11;
unsigned int v12;
int v13;
int v14;
unsigned int v15;
int v16;
int v17;
unsigned int v18;
int v19;
int v20;
unsigned int v21;
int v22;
int v23;
unsigned int v24;
int v25;
int v26;
unsigned int v27;
INT64 v28;
int *v29;
__int64 v30;
unsigned int v31;
unsigned int v32;
unsigned int v33;
unsigned int v34;
unsigned int v35;
unsigned int v36;
unsigned int v37;
unsigned int v38;
unsigned int v39;
unsigned int v40;
unsigned int v41;
unsigned int v42;
unsigned int v43;
unsigned int v44;
unsigned int v45;
unsigned int v46;
unsigned int v47;
unsigned int v48;
unsigned int v49;
unsigned int v50;
unsigned int v51;
_QWORD *v52;
__int64 v53;
__int64 v54;
int v55;
int v56;
int v57;
int v58;
int v59;
int v60;
int v61;
*(_QWORD *)(a1 + 64) += *(_QWORD *)(a2 + 64);
*(_QWORD *)(a1 + 72) += *(_QWORD *)(a2 + 72);
*(_QWORD *)(a1 + 80) += *(_QWORD *)(a2 + 80);
*(_QWORD *)(a1 + 88) += *(_QWORD *)(a2 + 88);
*(_QWORD *)(a1 + 96) += *(_QWORD *)(a2 + 96);
v4 = *(_DWORD *)(a1 + 108);
v5 = *(_DWORD *)(a1 + 104);
*(_DWORD *)(a1 + 108) = v4 ^ ((v4 + (*(_DWORD *)(a2 + 108) & 0x7FFFFFFF)) ^ v4) & 0x7FFFFFFF;
if( v5 <= *(_DWORD *)(a2 + 104) )
v5 = *(_DWORD *)(a2 + 104);
*(_DWORD *)(a1 + 104) = v5;
*(_DWORD *)(a1 + 116) ^= ((*(_DWORD *)(a1 + 116) + (*(_DWORD *)(a2 + 116) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 116)) & 0x7FFFFFFF;
v6 = *(_DWORD *)(a1 + 112);
if( v6 <= *(_DWORD *)(a2 + 112) )
v6 = *(_DWORD *)(a2 + 112);
*(_DWORD *)(a1 + 112) = v6;
*(_DWORD *)(a1 + 124) ^= ((*(_DWORD *)(a1 + 124) + (*(_DWORD *)(a2 + 124) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 124)) & 0x7FFFFFFF;
v7 = *(_DWORD *)(a1 + 120);
if( v7 <= *(_DWORD *)(a2 + 120) )
v7 = *(_DWORD *)(a2 + 120);
*(_DWORD *)(a1 + 120) = v7;
v8 = *(_DWORD *)(a1 + 384);
*(_DWORD *)(a1 + 388) ^= ((*(_DWORD *)(a1 + 388) + (*(_DWORD *)(a2 + 388) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 388)) & 0x7FFFFFFF;
if( v8 <= *(_DWORD *)(a2 + 384) )
v8 = *(_DWORD *)(a2 + 384);
*(_DWORD *)(a1 + 384) = v8;
*(_DWORD *)(a1 + 396) ^= ((*(_DWORD *)(a1 + 396) + (*(_DWORD *)(a2 + 396) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 396)) & 0x7FFFFFFF;
v9 = *(_DWORD *)(a1 + 392);
if( v9 <= *(_DWORD *)(a2 + 392) )
v9 = *(_DWORD *)(a2 + 392);
*(_DWORD *)(a1 + 392) = v9;
*(_DWORD *)(a1 + 404) ^= ((*(_DWORD *)(a1 + 404) + (*(_DWORD *)(a2 + 404) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 404)) & 0x7FFFFFFF;
v10 = *(_DWORD *)(a1 + 400);
if( v10 <= *(_DWORD *)(a2 + 400) )
v10 = *(_DWORD *)(a2 + 400);
*(_DWORD *)(a1 + 400) = v10;
*(_DWORD *)(a1 + 412) ^= ((*(_DWORD *)(a1 + 412) + (*(_DWORD *)(a2 + 412) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 412)) & 0x7FFFFFFF;
v11 = *(_DWORD *)(a1 + 408);
if( v11 <= *(_DWORD *)(a2 + 408) )
v11 = *(_DWORD *)(a2 + 408);
*(_DWORD *)(a1 + 408) = v11;
*(_DWORD *)(a1 + 420) ^= ((*(_DWORD *)(a1 + 420) + (*(_DWORD *)(a2 + 420) & 0x7FFFFFFF)) ^ *(_DWORD *)(a1 + 420)) & 0x7FFFFFFF;
v12 = *(_DWORD *)(a1 + 416);
if( v12 <= *(_DWORD *)(a2 + 416) )
v12 = *(_DWORD *)(a2 + 416);
*(_DWORD *)(a1 + 416) = v12;
v13 = -1;
v14 = *(_DWORD *)(a2 + 128);
if( v14 == -1 || (v15 = *(_DWORD *)(a1 + 128), ~v14 < v15) )
v16 = -1;
else
v16 = v15 + v14;
*(_DWORD *)(a1 + 128) = v16;
v17 = *(_DWORD *)(a2 + 132);
if( v17 == -1 || (v18 = *(_DWORD *)(a1 + 132), ~v17 < v18) )
v19 = -1;
else
v19 = v18 + v17;
*(_DWORD *)(a1 + 132) = v19;
v20 = *(_DWORD *)(a2 + 136);
if( v20 == -1 || (v21 = *(_DWORD *)(a1 + 136), ~v20 < v21) )
v22 = -1;
else
v22 = v21 + v20;
*(_DWORD *)(a1 + 136) = v22;
v23 = *(_DWORD *)(a2 + 424);
if( v23 == -1 || (v24 = *(_DWORD *)(a1 + 424), ~v23 < v24) )
v25 = -1;
else
v25 = v24 + v23;
*(_DWORD *)(a1 + 424) = v25;
v26 = *(_DWORD *)(a2 + 428);
if( v26 != -1 )
{
v27 = *(_DWORD *)(a1 + 428);
if( ~v26 >= v27 )
v13 = v27 + v26;
}
v28 = a2 - a1;
*(_DWORD *)(a1 + 428) = v13;
v29 = (int *)(a1 + 284);
v30 = 2i64;
do
{
v31 = *(int *)((char *)v29 + v28 - 12);
v32 = *(v29 - 3);
if( v31 > v32 )
{
*(v29 - 3) = v31;
if( v31 - v32 < 0x20 )
{
*(v29 - 2) <<= v31 - v32;
v55 = *(v29 - 2) | *(int *)((char *)v29 + v28 - 8);
}
else
{
*(v29 - 2) = 0;
v55 = *(int *)((char *)v29 + v28 - 8);
}
*(v29 - 2) = v55;
}
else
{
v33 = v32 - v31;
if( v33 < 0x20 )
*(v29 - 2) |= *(int *)((char *)v29 + v28 - 8) << v33;
}
v34 = *(int *)((char *)v29 + v28 - 4);
v35 = *(v29 - 1);
if( v34 > v35 )
{
*(v29 - 1) = v34;
if( v34 - v35 < 0x20 )
{
*v29 <<= v34 - v35;
v56 = *v29 | *(int *)((char *)v29 + v28);
}
else
{
*v29 = 0;
v56 = *(int *)((char *)v29 + v28);
}
*v29 = v56;
}
else
{
v36 = v35 - v34;
if( v36 < 0x20 )
*v29 |= *(int *)((char *)v29 + v28) << v36;
}
v37 = *(int *)((char *)v29 + v28 + 4);
v38 = v29[1];
if( v37 > v38 )
{
v29[1] = v37;
if( v37 - v38 < 0x20 )
{
v29[2] <<= v37 - v38;
v57 = v29[2] | *(int *)((char *)v29 + v28 + 8);
}
else
{
v29[2] = 0;
v57 = *(int *)((char *)v29 + v28 + 8);
}
v29[2] = v57;
}
else
{
v39 = v38 - v37;
if( v39 < 0x20 )
v29[2] |= *(int *)((char *)v29 + v28 + 8) << v39;
}
v40 = *(int *)((char *)v29 + v28 + 12);
v41 = v29[3];
if( v40 > v41 )
{
v29[3] = v40;
if( v40 - v41 < 0x20 )
{
v29[4] <<= v40 - v41;
v58 = v29[4] | *(int *)((char *)v29 + v28 + 16);
}
else
{
v29[4] = 0;
v58 = *(int *)((char *)v29 + v28 + 16);
}
v29[4] = v58;
}
else
{
v42 = v41 - v40;
if( v42 < 0x20 )
v29[4] |= *(int *)((char *)v29 + v28 + 16) << v42;
}
v43 = *(int *)((char *)v29 + v28 + 20);
v44 = v29[5];
if( v43 > v44 )
{
v29[5] = v43;
if( v43 - v44 < 0x20 )
{
v29[6] <<= v43 - v44;
v59 = v29[6] | *(int *)((char *)v29 + v28 + 24);
}
else
{
v29[6] = 0;
v59 = *(int *)((char *)v29 + v28 + 24);
}
v29[6] = v59;
}
else
{
v45 = v44 - v43;
if( v45 < 0x20 )
v29[6] |= *(int *)((char *)v29 + v28 + 24) << v45;
}
v46 = *(int *)((char *)v29 + v28 + 28);
v47 = v29[7];
if( v46 > v47 )
{
v29[7] = v46;
if( v46 - v47 < 0x20 )
{
v29[8] <<= v46 - v47;
v60 = v29[8] | *(int *)((char *)v29 + v28 + 32);
}
else
{
v29[8] = 0;
v60 = *(int *)((char *)v29 + v28 + 32);
}
v29[8] = v60;
}
else
{
v48 = v47 - v46;
if( v48 < 0x20 )
v29[8] |= *(int *)((char *)v29 + v28 + 32) << v48;
}
v49 = *(int *)((char *)v29 + v28 + 36);
v50 = v29[9];
if( v49 > v50 )
{
v29[9] = v49;
if( v49 - v50 < 0x20 )
{
v29[10] <<= v49 - v50;
v61 = v29[10] | *(int *)((char *)v29 + v28 + 40);
}
else
{
v29[10] = 0;
v61 = *(int *)((char *)v29 + v28 + 40);
}
v29[10] = v61;
}
else
{
v51 = v50 - v49;
if( v51 < 0x20 )
v29[10] |= *(int *)((char *)v29 + v28 + 40) << v51;
}
v29 += 14;
--v30;
}
while( v30 );
v52 = (_QWORD *)(a1 + 152);
v53 = 4i64;
do
{
*(v52 - 19) += *(_QWORD *)((char *)v52 + v28 - 152);
*(v52 - 1) += *(_QWORD *)((char *)v52 + v28 - 8);
v52[7] += *(_QWORD *)((char *)v52 + v28 + 56);
*(v52 - 18) += *(_QWORD *)((char *)v52 + v28 - 144);
*v52 += *(_QWORD *)((char *)v52 + v28);
v54 = *(_QWORD *)((char *)v52 + v28 + 64);
v52[8] += v54;
v52 += 2;
--v53;
}
while( v53 );
return v54;
}Referenced by:
PopEtEnergyTrackerUpdateAggregate
PspFoldProcessAccountingIntoJob
PspQueryJobHierarchyAccountingInformation
PspQueryProcessAccountingInformationCallback