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