HalpSetClockBeforeSleep

INT64 __fastcall HalpSetClockBeforeSleep(INT64 a1, INT64 a2, INT64 a3){
  unsigned __int8 v3; 
  unsigned __int8 v4; 
  INT64 result; 
  HalpAcquireCmosSpinLock(a1, a2, a3);
  __outbyte(0x70u, 0xAu);
  v3 = __inbyte(0x71u);
  HalpRtcRegA = v3;
  __outbyte(0x70u, 0xBu);
  v4 = __inbyte(0x71u);
  HalpRtcRegB = v4;
  __outbyte(0x70u, 0xBu);
  __outbyte(0x71u, v4 & 0xBD | 2);
  __outbyte(0x70u, 0xCu);
  __inbyte(0x71u);
  __outbyte(0x70u, 0xDu);
  __inbyte(0x71u);
  result = (unsigned int)_InterlockedExchange(&HalpSystemHardwareLock, -1);
  if( (_BYTE)HalpSystemHardwareLockInterruptsEnabled )
    _enable();
  return result;
}

Referenced by:

HalpAcpiPreSleep
HalpDpPreReplace