PopPepPromoteActivities

char __fastcall PopPepPromoteActivities(__int64 a1, __int64 a2, int a3){
  int v3; 
  __int64 v4; 
  _DWORD *v6; 
  unsigned int v7; 
  unsigned int v8; 
  int v9; 
  __int64 v10; 
  _DWORD *v11; 
  int v12; 
  __int64 *v13; 
  int v14; 

  if( !a3 )
    return v14;
  v3 = a3;
  v4 = a2;
  if( !a2 && a3 == 2 )
    v3 = 1;
  v6 = *(_DWORD **)(a1 + 72);
  if( (*v6 & 1) != 0 )
    PopPepAttemptAcitivityPromotion(a1, a2, (__int64)v6, 0, (volatile signed __int32 *)(a1 + 120));
  if( v3 == 2 )
  {
    v7 = *(_DWORD *)(v4 + 8);
    v8 = v7;
    do
    {
LABEL_9:
      v9 = 1;
      v10 = 64i64;
      v4 = 200i64 * v8 + a1 + 184;
      do
      {
        v11 = *(_DWORD **)(v10 + v4);
        if( (*v11 & 1) != 0 )
          PopPepAttemptAcitivityPromotion(a1, v4, (__int64)v11, v9, (volatile signed __int32 *)(v4 + 104));
        ++v9;
        v10 += 8i64;
      }
      while( v9 <= 3 );
      ++v8;
    }
    while( v8 <= v7 );
    goto LABEL_14;
  }
  v8 = *(_DWORD *)(a1 + 180);
  if( v3 == 3 )
  {
    v7 = v8 - 1;
    v8 = 0;
    goto LABEL_9;
  }
  v7 = 0;
  if( !v8 )
    goto LABEL_9;
LABEL_14:
  v12 = 4;
  v13 = (__int64 *)(a1 + 104);
  do
  {
    v14 = *(_DWORD *)*v13;
    if( (v14 & 1) != 0 )
      LOBYTE(v14) = PopPepAttemptAcitivityPromotion(a1, v4, *v13, v12, (volatile signed __int32 *)(a1 + 120));
    ++v12;
    ++v13;
  }
  while( v12 <= 5 );
  return v14;
}

Referenced by:

PopPepComponentSetLatency
PopPepComponentSetResidency
PopPepComponentSetWakeHint
PopPepIdleTimeoutRoutine
PopPepProcessEvent
PopPepSurprisePowerOn
PopPepTryPowerDownDevice
PopPepUpdateConstraints