PopHandleSystemRequiredPowerRequestsUpdate

VOID __stdcall PopHandleSystemRequiredPowerRequestsUpdate(INT64 a1){
  __int64 v1; 
  int v2; 
  int v3; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  v1 = (int)a1;
  memset(&LockHandle, 0, sizeof(LockHandle));
  if( (_DWORD)a1 == 1 )
  {
    v2 = 1;
  }
  else
  {
    if( (_DWORD)a1 != 3 )
      return;
    v2 = 2;
  }
  PopAcquirePolicyLock();
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C23628 + 751, &LockHandle);
  if( PopPowerRequestAttributes[4 * v1] <= 0 )
    v3 = ~v2 & dword_140C231C4;
  else
    v3 = v2 | dword_140C231C4;
  dword_140C231C4 = v3;
  if( !v3 )
    dword_140C231E0 = AccumulatedIdleTime;
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  PopCheckResiliencyScenarios();
  PopReleasePolicyLock();
}

Referenced by:

PopHandleConvergedPowerRequestUpdate