HalpPciGetHpetInterruptSource

NTSTATUS __stdcall HalpPciGetHpetInterruptSource(CHAR a1, INT64 a2, INT64 *a3, INT64 *a4){
  int HpetInterruptSourceAmd; 
  _LARGE_INTEGER *AcpiTable; 
  int v10; 
  _LARGE_INTEGER *v11; 
  int v12; 

  HpetInterruptSourceAmd = -1073741275;
  AcpiTable = HalSocGetAcpiTable(0x52414D44ui64);
  v10 = 0;
  if( !AcpiTable
    || (HpetInterruptSourceAmd = HalpPciGetHpetInterruptSourceIntel((INT64)AcpiTable, a1, a2),
        HpetInterruptSourceAmd == -1073741275) )
  {
    v11 = HalSocGetAcpiTable(0x53525649ui64);
    if( v11 )
      HpetInterruptSourceAmd = HalpPciGetHpetInterruptSourceAmd((INT64)v11, a1, a2);
  }
  if( HpetInterruptSourceAmd < 0 )
  {
    *(_QWORD *)(a2 + 4) = 0i64;
    *(_DWORD *)a2 = 0;
    *(_DWORD *)a3 = 0;
  }
  else
  {
    *(_DWORD *)a3 = (*(_DWORD *)(a2 + 4) << 8) | *(unsigned __int8 *)(a2 + 8);
    *(_DWORD *)a4 = 0;
    v12 = *(_BYTE *)(a2 + 9) & 0x1F;
    *(_DWORD *)a4 = v12;
    v10 = v12 | (32 * (*(_BYTE *)(a2 + 10) & 7));
  }
  *(_DWORD *)a4 = v10;
  return HpetInterruptSourceAmd;
}

Referenced by:

HalpTimerRegister