HalFixInterruptLine

NTSTATUS __stdcall HalFixInterruptLine(_INTERRUPT_LINE *a1, INT128 *a2){
  NTSTATUS v3; 
  _LIST_ENTRY *Lines; 
  _LIST_ENTRY *v5; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY v7; 
  _LIST_ENTRY v8; 
  _LIST_ENTRY *Blink; 
  _LIST_ENTRY v10; 

  v3 = 0;
  Lines = HalpInterruptFindLines((unsigned int *)a1);
  v5 = Lines;
  if( !Lines )
    return -1073741275;
  Flink = Lines[3].Flink;
  v7 = *(_LIST_ENTRY *)a2;
  v8 = (_LIST_ENTRY)*((_OWORD *)a2 + 1);
  ++*(&stru_140CF2E80 + 1860);
  LOBYTE(Flink->Flink) = 1;
  Blink = v5[2].Blink;
  *Blink = v7;
  v10 = (_LIST_ENTRY)*((_OWORD *)a2 + 2);
  Blink[1] = v8;
  v8.Flink = (_LIST_ENTRY *)*((_QWORD *)a2 + 6);
  Blink[2] = v10;
  Blink[3].Flink = v8.Flink;
  return v3;
}

Referenced by:

HalpApicInitializeIoUnit