PopPepTryPowerDownDevice

CHAR __fastcall PopPepTryPowerDownDevice(INT64 a1, INT64 a2){
  CHAR started; 
  KIRQL v5; 
  bool v6; 
  UINT8 v7; 
  unsigned int v8; 
  started = 0;
  v5 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(a1 + 64));
  v6 = (*(_BYTE *)(a1 + 24) & 1) == 0;
  v7 = v5;
  *(_BYTE *)(a1 + 125) = 1;
  if( v6 && !*(_DWORD *)(a1 + 140) && *(_BYTE *)(a1 + 136) && !**(_DWORD **)(a1 + 104) && !**(_DWORD **)(a1 + 112) )
  {
    v8 = *(_DWORD *)(a1 + 120);
    PopPepTriggerActivity(a1, 0i64, 4i64, 0i64);
    PopPepPromoteActivities(a1, 0i64, 1i64);
    if( a2 && **(_DWORD **)(a1 + 104) == 2 )
      started = PopPepStartActivity(a1, 0i64, a1 + 72, 4i64, (volatile INT32 *)(a1 + 120), a2);
    else
      PopPepRequestWork(v8, *(unsigned int *)(a1 + 120));
  }
  PopPepReleaseActivityLink(a1, 0i64, 1, v7);
  return started;
}

Referenced by:

PopPepProcessEvent