HalpFindSecondaryIcEntry

LIST_ENTRY *__fastcall HalpFindSecondaryIcEntry(UINT64 InputGsiv){
  unsigned int v1; 
  unsigned __int8 v2; 
  __int64 v3; 
  unsigned __int64 v4; 
  LIST_ENTRY *v5; 
  unsigned int v6; 
  v1 = InputGsiv;
  v2 = HalpAcquireHighLevelLock(&SecondaryIcListSpinLock);
  v3 = SecondaryIcList;
  v4 = v2;
  v5 = 0i64;
  while( (__int64 *)v3 != &SecondaryIcList )
  {
    v6 = *(_DWORD *)(v3 + 16);
    if( v1 >= v6 && v1 < v6 + *(_DWORD *)(v3 + 20) )
    {
      v5 = (LIST_ENTRY *)v3;
      _InterlockedIncrement((volatile signed __int32 *)(v3 + 112));
      break;
    }
    v3 = *(_QWORD *)v3;
  }
  KxReleaseSpinLock(&SecondaryIcListSpinLock);
  __writecr8(v4);
  return v5;
}

Referenced by:

HalpDisableSecondaryInterrupt
HalpEnableSecondaryInterrupt
HalpHandleMaskUnmaskSecondaryInterrupt
HalpInterruptRequestSecondaryInterrupt
HalpQueryPrimaryInterruptInformation