PopRecordPhysicalPowerButton

VOID __fastcall PopRecordPhysicalPowerButton(UINT64 State){
  char v1; 
  __int64 v2; 
  v1 = State;
  PopAcquireRwLockExclusive(&PopBsdUpdateLock);
  v2 = 1i64 << ((dword_140C206F8 + dword_140C206FC) & 0x3F);
  if( v1 )
  {
    PopBsdPhysicalPowerButtonInfo = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    ++*((_DWORD *)&PopBsdPhysicalPowerButtonInfo + 2);
    qword_140C20700 |= v2;
    *((_WORD *)&PopBsdPhysicalPowerButtonInfo + 6) = KUSER_SHARED_DATA.BootId;
    *((_BYTE *)&PopBsdPhysicalPowerButtonInfo + 14) = PopBsdLastPowerWatchdogStage;
    qword_140C20708 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    ++dword_140C206F8;
    LOBYTE(xmmword_140C502B8) = PopBsdCurrentCsPhase;
    DWORD1(xmmword_140C502B8) = PopBsdTransitionLatestCheckpointId;
    DWORD2(xmmword_140C502B8) = PopBsdTransitionLatestCheckpointType;
    HIDWORD(xmmword_140C502B8) = PopBsdTransitionLatestCheckpointSeqNumber;
    *((_BYTE *)&PopBsdPhysicalPowerButtonInfo + 15) = *((_BYTE *)&PopBsdPhysicalPowerButtonInfo + 15) & 0xFC | PopBsdPowerWatchdogArmed & 1 | (2 * (PopBsdShutdownInProgress & 1));
  }
  else
  {
    *(_QWORD *)&xmmword_140C502A8 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    ++DWORD2(xmmword_140C502A8);
    qword_140C20700 &= ~v2;
    ++dword_140C206FC;
    WORD6(xmmword_140C502A8) = KUSER_SHARED_DATA.BootId;
    qword_140C20710 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
  }
  if( dword_140C206F8 < (unsigned int)dword_140C206FC || (unsigned int)(dword_140C206F8 - dword_140C206FC) > 1 )
    byte_140C20728 = 1;
  PopBsdHandleRequest(4i64);
  PopReleaseRwLock((UINT64)&PopBsdUpdateLock);
}

Referenced by:

PopPowerButtonWorkCallback