KiIntSteerUpdateDeviceInterruptMask

INT64 __fastcall KiIntSteerUpdateDeviceInterruptMask(INT64 a1, INT64 a2, INT64 a3){
  int v3; 
  INT64 result; 
  __int64 v5; 
  unsigned __int16 *v7[2]; 
  __int16 v8; 
  int v9; 
  __int16 v10; 
  unsigned int ProcessorNumber; 
  int ProcessorNumber_4; 
  ProcessorNumber_4 = HIDWORD(a3);
  v3 = a2;
  v9 = 0;
  v10 = 0;
  ProcessorNumber = 0;
  v8 = *(_WORD *)(a1 + 8);
  v7[1] = *(unsigned __int16 **)a1;
  v7[0] = 0i64;
  while( 1 )
  {
    result = KeEnumerateNextProcessor(&ProcessorNumber, v7);
    if( (_DWORD)result )
      break;
    KeGetPrcb(ProcessorNumber);
    if( v3 )
    {
      if( v3 == 1 && (*(_DWORD *)(v5 + 11672))-- == 1 )
        _interlockedbittestandset64(
          (volatile signed __int32 *)(*(_QWORD *)(v5 + 192) + 96i64),
          *(unsigned __int8 *)(v5 + 209));
    }
    else if( ++*(_DWORD *)(v5 + 11672) == 1 )
    {
      _interlockedbittestandreset64(
        (volatile signed __int32 *)(*(_QWORD *)(v5 + 192) + 96i64),
        *(unsigned __int8 *)(v5 + 209));
    }
  }
  return result;
}

Referenced by:

KiIntSteerConnect
KiIntSteerDisable
KiIntSteerDistributeInterrupts