PopRecordPhysicalPowerButton

VOID __stdcall PopRecordPhysicalPowerButton(UINT64 State){
  char v1; 
  __int64 v2; 

  v1 = State;
  PopAcquireRwLockExclusive((_POP_RW_LOCK *)((char *)&stru_140C23628 + 6312));
  v2 = 1i64 << ((dword_140C206F8 + dword_140C206FC) & 0x3F);
  if( v1 )
  {
    *(_QWORD *)&xmmword_140C50298 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    ++DWORD2(xmmword_140C50298);
    qword_140C20700 |= v2;
    WORD6(xmmword_140C50298) = KUSER_SHARED_DATA.BootId;
    BYTE14(xmmword_140C50298) = *(&stru_140CF2E80 + 6548);
    qword_140C20708 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    ++dword_140C206F8;
    LOBYTE(xmmword_140C502B8) = *(&stru_140CF2E80 + 6552);
    DWORD1(xmmword_140C502B8) = *(&stru_140C23628 + 1557);
    DWORD2(xmmword_140C502B8) = *(&stru_140C23628 + 1556);
    HIDWORD(xmmword_140C502B8) = *(&stru_140C23628 + 1555);
    HIBYTE(xmmword_140C50298) = HIBYTE(xmmword_140C50298) & 0xFC | *(&stru_140CF2E80 + 6556) & 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((_POP_RW_LOCK *)((char *)&stru_140C23628 + 6312));
}

Referenced by:

PopPowerButtonWorkCallback