HalpSetWakeAlarm
INT64 __fastcall HalpSetWakeAlarm(INT64 a1, UINT8 *a2, INT64 a3){
unsigned int v4;
unsigned int v5;
unsigned int v6;
unsigned int v7;
unsigned int v8;
unsigned __int8 v9;
HalpAcquireCmosSpinLockAndWait(a1, (INT64)a2, a3);
v4 = a2[10];
__outbyte(0x70u, 1u);
__outbyte(0x71u, v4 % 0xA + 16 * (v4 / 0xA));
v5 = a2[8];
__outbyte(0x70u, 3u);
__outbyte(0x71u, v5 % 0xA + 16 * (v5 / 0xA));
v6 = a2[6];
__outbyte(0x70u, 5u);
__outbyte(0x71u, v6 % 0xA + 16 * (v6 / 0xA));
if( (unsigned __int8)byte_140C49DEA > 9u )
{
v7 = a2[4];
__outbyte(0x70u, byte_140C49DEA);
__outbyte(0x71u, v7 % 0xA + 16 * (v7 / 0xA));
if( (unsigned __int8)byte_140C49DEB > 9u )
{
v8 = a2[2];
__outbyte(0x70u, byte_140C49DEB);
__outbyte(0x71u, v8 % 0xA + 16 * (v8 / 0xA));
}
}
__outbyte(0x70u, 0xBu);
v9 = __inbyte(0x71u);
__outbyte(0x70u, 0xBu);
__outbyte(0x71u, v9 & 0x41 | 0x22);
__outbyte(0x70u, 0xCu);
__inbyte(0x71u);
__outbyte(0x70u, 0xDu);
__inbyte(0x71u);
_InterlockedExchange(&HalpSystemHardwareLock, -1);
if( (_BYTE)HalpSystemHardwareLockInterruptsEnabled )
_enable();
return 0i64;
}Referenced by:
HaliSetWakeAlarm
HalpCheckWakeupTimeAndAdjust