PopPepComponentSetWakeHint

INT64 __fastcall PopPepComponentSetWakeHint(UINT64 *a1, INT64 a2, CHAR a3){
  UINT64 *v4; 
  int v6; 
  CHAR v7; 
  CHAR v8; 
  unsigned int ready; 
  unsigned int v10; 
  UINT8 v12; 
  v12 = 0;
  v4 = &a1[25 * (unsigned int)a2 + 23];
  if( a3 )
    v6 = *((_DWORD *)v4 + 37);
  else
    v6 = *((_DWORD *)v4 + 47) - 1;
  v7 = PopPepLockActivityLink((INT64)a1, (volatile INT64 *)v4, 6ui64, 1ui64, &v12);
  *((_BYTE *)v4 + 144) = a3;
  v8 = v7;
  if( *((_DWORD *)v4 + 41) != v6 )
  {
    *((_DWORD *)v4 + 41) = v6;
    ready = PopPepCountReadyActivities(a1, (INT64)v4, 2i64);
    PopPepUpdateIdleState((INT64)a1, v4, 1);
    PopPepPromoteActivities((INT64)a1, (INT64)v4, 2i64);
    v10 = PopPepCountReadyActivities(a1, (INT64)v4, 2i64);
    PopPepRequestWork(ready, v10);
  }
  return PopPepReleaseActivityLink((INT64)a1, (volatile INT64 *)v4, v8, v12);
}

Referenced by:

PoFxSetComponentWake