PopUpdatePowerButtonHoldState

INT64 __fastcall PopUpdatePowerButtonHoldState(CHAR a1){
  UINT64 v1; 
  int v3; 
  unsigned __int8 v4; 
  unsigned __int64 v5; 
  __int64 v6; 
  INT64 result; 
  KeAcquireSpinLockRaiseToDpc(&PopPowerButtonHold, v1);
  v3 = 0;
  v5 = v4;
  v6 = 1i64 << ((dword_140C206E4 + dword_140C206E8) & 0x3F);
  if( a1 )
  {
    qword_140C206F0 |= v6;
    v3 = 1;
    ++dword_140C206E8;
  }
  else
  {
    qword_140C206F0 &= ~v6;
    ++dword_140C206E4;
  }
  if( v3 != (qword_140C20698 & 1) )
  {
    if( a1 )
    {
      ++HIDWORD(qword_140C20698);
      LODWORD(qword_140C20698) = qword_140C20698 | 1;
    }
    else
    {
      LODWORD(qword_140C20698) = 0;
    }
    PopQueueWorkItem((INT64)&qword_140C20670, CriticalWorkQueue);
  }
  KxReleaseSpinLock(&PopPowerButtonHold);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v5);
  return result;
}

Referenced by:

NtPowerInformation
PoSetPowerButtonHoldState