HalpInterruptFindLinesForGsiRange

_DWORD *__fastcall HalpInterruptFindLinesForGsiRange(unsigned int a1, unsigned int a2){
  ULONG_PTR *v2; 
  ULONG_PTR *v5; 
  _QWORD **v6; 
  _QWORD *v7; 
  _DWORD *v8; 
  unsigned int v9; 
  unsigned int v10; 
  v2 = (ULONG_PTR *)HalpRegisteredInterruptControllers;
  while( v2 != &HalpRegisteredInterruptControllers )
  {
    v5 = v2;
    v2 = (ULONG_PTR *)*v2;
    v6 = (_QWORD **)(v5 + 30);
    v7 = *v6;
    while( v7 != v6 )
    {
      v8 = v7;
      v7 = (_QWORD *)*v7;
      v9 = v8[7];
      if( v9 != -1 )
      {
        if( v9 >= a1 && v9 < a2 )
          return v8;
        v10 = v8[6] - v8[5] + v9 - 1;
        if( v10 < a2 && v10 >= a1 )
          return v8;
        if( v9 < a1 && v10 >= a2 )
          return v8;
      }
    }
  }
  return 0i64;
}

Referenced by:

HalDisableInterrupt
HalpInterruptApplyOverrides
HalpInterruptGetApicVersion
HalpInterruptGsiToLine
HalpInterruptPerformDirectedEndOfInterrupt
HalpInterruptRegisterLine
HalpInterruptRequestInterrupt
HalpInterruptServiceActiveBoth
HalpMaskInterrupt
HalpUnmaskInterrupt