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