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