KiIntSteerSetDestination

INT64 __fastcall KiIntSteerSetDestination(INT64 a1, INT64 a2){
  int v2; 
  ULONG_PTR BugCheckParameter4; 
  ULONG_PTR v4; 
  ULONG_PTR v5; 
  int v6; 
  __int64 v7; 
  v2 = KiIntSteerVerifyDestination(a1, a2);
  v5 = 0i64;
  if( v2 < 0 )
    KeBugCheckEx(0xA0u, 0x4001ui64, 0x101ui64, v4, BugCheckParameter4);
  v6 = *(_DWORD *)(v4 + 128);
  if( ((v6 - 1) & 0xFFFFFFFD) != 0 )
  {
    if( v6 == 2 )
    {
      v7 = *(_QWORD *)(v4 + 200);
      *(_WORD *)(v7 + 8) = *(_WORD *)(BugCheckParameter4 + 8);
      *(_QWORD *)v7 = *(_QWORD *)BugCheckParameter4;
    }
    else
    {
      LODWORD(v5) = -1073741637;
    }
  }
  else
  {
    if( *(_DWORD *)(v4 + 32) != -1 )
      v5 = v4 + 32;
    LODWORD(v5) = ((__int64(__fastcall *)(ULONG_PTR, ULONG_PTR, ULONG_PTR))off_140C00868[0])(
                    v4 + 40,
                    BugCheckParameter4,
                    v5);
  }
  return(unsigned int)v5;
}

Referenced by:

KiIntSteerConnect
KiIntSteerDistributeInterrupts