HalpInterruptSetLineStateInternal

__int64 __fastcall HalpInterruptSetLineStateInternal(__int64 a1, __int64 a2, __int64 a3){
  int v3; 
  unsigned int v4; 
  __int64 result; 
  __int16 v7; 
  v3 = *(_DWORD *)(a3 + 12);
  v4 = v3 | 1;
  if( (v3 & 0x30) != 16 )
    v4 = *(_DWORD *)(a3 + 12) & 0xFFFFFFFE;
  *(_DWORD *)(a3 + 12) = v4;
  if( (*(_DWORD *)(a1 + 220) & 0x200) != 0 )
  {
    _disable();
    result = (*(__int64(__fastcall **)(_QWORD, __int64))(a1 + 112))(*(_QWORD *)(a1 + 16), a2);
    if( (v7 & 0x200) != 0 )
      _enable();
  }
  else
  {
    result = (*(__int64(__fastcall **)(_QWORD, __int64))(a1 + 112))(*(_QWORD *)(a1 + 16), a2);
  }
  if( (int)result < 0 )
  {
    *(_DWORD *)(a1 + 296) = result;
    HalpInterruptLastProblem = 7;
    *(_DWORD *)(a1 + 292) = 7;
    *(_QWORD *)(a1 + 304) = "minkernel\\hals\\lib\\interrupts\\common\\intsup.c";
    *(_DWORD *)(a1 + 312) = 3150;
  }
  return result;
}

Referenced by:

HalDisableInterrupt
HalpConnectThermalInterrupt
HalpInitializeCmciVector
HalpInitializeDeferredErrorVector
HalpInterruptEnablePerformanceEvents
HalpInterruptMaskAcpi
HalpInterruptMaskLevelTriggeredLines
HalpInterruptRemapFixedLines
HalpInterruptRestoreClock
HalpInterruptRestoreController
HalpInterruptServiceActiveBoth
HalpInterruptSetDestinationInternal
HalpInterruptSetLineState
HalpInterruptSetRemappedDestinationHv
HalpMaskInterrupt
HalpUnmaskInterrupt