HalpInterruptMaskLevelTriggeredLines

NTSTATUS __stdcall HalpInterruptMaskLevelTriggeredLines(){
  PVOID *v0; 
  _REGISTERED_INTERRUPT_CONTROLLER *v1; 
  _LIST_ENTRY *p_LinesHead; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v4; 
  int v5; 
  int v6; 
  __int64 v7; 
  _LIST_ENTRY *Blink; 
  int v9; 
  _INTERRUPT_LINE_STATE LineState; 
  _INTERRUPT_LINE Line; 
  _REGISTERED_INTERRUPT_CONTROLLER *v13; 

  Line = 0i64;
  v0 = (PVOID *)qword_140C4B850;
  memset(&LineState, 0, sizeof(LineState));
  while( v0 != &qword_140C4B850 )
  {
    v1 = (_REGISTERED_INTERRUPT_CONTROLLER *)v0;
    v13 = (_REGISTERED_INTERRUPT_CONTROLLER *)v0;
    v0 = (PVOID *)*v0;
    p_LinesHead = &v1->LinesHead;
    Flink = v1->LinesHead.Flink;
    if( Flink != &v1->LinesHead )
    {
      do
      {
        v4 = Flink;
        v5 = 0;
        v6 = LODWORD(Flink[1].Blink) - HIDWORD(Flink[1].Flink);
        Flink = Flink->Flink;
        if( v6 > 0 )
        {
          v7 = 0i64;
          do
          {
            Blink = v4[2].Blink;
            if( (*(_DWORD *)((_BYTE *)&Blink->Blink + v7 + 4) & 0x10) != 0 && !*(_DWORD *)((char *)&Blink->Blink + v7) )
            {
              LineState = *(_INTERRUPT_LINE_STATE *)((char *)&Blink->Flink + v7);
              LineState.Flags = HIDWORD(_mm_srli_si128(*(__m128i *)&LineState.Polarity, 8).m128i_u64[0]) & 0xFFFFFFEF;
              Line.UnitId = v1->UnitId;
              Line.Line = v5 + HIDWORD(v4[1].Flink);
              v9 = HalpInterruptSetLineStateInternal(v1, &Line, &LineState);
              if( v9 < 0 )
              {
                HalpInterruptRestoreAllControllerState();
                return v9;
              }
              v1 = v13;
            }
            ++v5;
            v7 += 56i64;
          }
          while( v5 < LODWORD(v4[1].Blink) - HIDWORD(v4[1].Flink) );
        }
      }
      while( Flink != p_LinesHead );
    }
  }
  return 0;
}

Referenced by:

No references.