HalpInterruptFindLines

ULONG_PTR *__fastcall HalpInterruptFindLines(int *a1){
  ULONG_PTR *v1; 
  __int64 v2; 
  _DWORD *v3; 
  ULONG_PTR *v4; 
  ULONG_PTR *v5; 
  int v6; 
  ULONG_PTR *v7; 
  int v8; 
  v1 = HalpInterruptLookupController(*a1);
  if( !v1 )
    return 0i64;
  v4 = v1 + 30;
  v5 = (ULONG_PTR *)v1[30];
  if( v5 == v1 + 30 )
    return 0i64;
  v6 = *(_DWORD *)(v2 + 4);
  while( 1 )
  {
    v7 = v5;
    v5 = (ULONG_PTR *)*v5;
    v8 = *((_DWORD *)v7 + 5);
    if( v8 <= v6 && *((_DWORD *)v7 + 6) > v6 )
      break;
    if( v5 == v4 )
      return 0i64;
  }
  if( v3 )
    *v3 = v6 - v8;
  return v7;
}

Referenced by:

HalFixInterruptLine
HalpConnectThermalInterrupt
HalpInitializeCmciVector
HalpInitializeDeferredErrorVector
HalpInterruptEnableNmi
HalpInterruptEnablePerformanceEvents
HalpInterruptFindControllerAndLineState
HalpInterruptGetHighestPriorityInterrupt
HalpInterruptIsCmciSupported
HalpInterruptIsDeferredErrorSupported
HalpInterruptLineToGsi
HalpInterruptMaskAcpi
HalpInterruptRestoreClock
HalpInterruptSetDestinationInternal
HalpInterruptSetLineState
HalpInterruptSetRemappedLineStateInternal
HalpInterruptUnmap