KiInsertInterruptObjectOrdered

VOID __stdcall KiInsertInterruptObjectOrdered(PROCESSOR_NUMBER *InterruptHead, INT64 Interrupt){
  PROCESSOR_NUMBER *v2; 
  PROCESSOR_NUMBER **v3; 
  PROCESSOR_NUMBER **v4; 
  PROCESSOR_NUMBER *v5; 
  PROCESSOR_NUMBER *v6; 
  PROCESSOR_NUMBER **v7; 
  PROCESSOR_NUMBER **v8; 

  if( *(_BYTE *)(Interrupt + 93) && HIBYTE(InterruptHead[23].Group) )
  {
    v2 = InterruptHead + 2;
    if( *(_BYTE *)(*(_QWORD *)&InterruptHead[4].Group + 85i64) )
    {
      v3 = *(PROCESSOR_NUMBER ***)&InterruptHead[4].Group;
      v4 = (PROCESSOR_NUMBER **)(Interrupt + 8);
      if( *v3 == v2 )
      {
        *v4 = v2;
        *(_QWORD *)(Interrupt + 16) = v3;
        *v3 = (PROCESSOR_NUMBER *)v4;
        *(_QWORD *)&v2[2].Group = v4;
        return;
      }
LABEL_12:
      __fastfail(3u);
    }
    v5 = InterruptHead + 2;
    do
    {
      v6 = v5;
      if( !HIBYTE(v5[21].Group) )
        break;
      v5 = *(PROCESSOR_NUMBER **)&v5->Group;
    }
    while( v5 != v2 );
  }
  else
  {
    v6 = InterruptHead + 2;
  }
  v7 = (PROCESSOR_NUMBER **)(Interrupt + 8);
  v8 = *(PROCESSOR_NUMBER ***)&v6[2].Group;
  if( *v8 != v6 )
    goto LABEL_12;
  *v7 = v6;
  v7[1] = (PROCESSOR_NUMBER *)v8;
  *v8 = (PROCESSOR_NUMBER *)v7;
  *(_QWORD *)&v6[2].Group = v7;
}

Referenced by:

KiConnectInterrupt
KiConnectSecondaryInterrupt