HalpIommuUpdateRemappingTableEntry

VOID __stdcall HalpIommuUpdateRemappingTableEntry(CHAR a1, INT64 a2, INT64 a3){
  INT64 *v3; 
  int v4; 
  char v6; 
  unsigned int v7; 
  INT64 *v9; 

  v3 = (INT64 *)qword_140C49B50;
  v4 = 0;
  v6 = 0;
  v7 = a2;
  while( v3 != &qword_140C49B50 )
  {
    v9 = v3;
    v3 = (INT64 *)*v3;
    if( (v9[57] & 0x40) != 0 )
    {
      if( !v4 || dword_140C49BE0 == 2 || *((_DWORD *)v9 + 115) == 6 )
      {
        LOBYTE(a2) = a1;
        v6 = ((__int64(__fastcall *)(INT64, INT64, _QWORD, INT64))v9[21])(v9[2], a2, v7, a3);
      }
      if( v6 )
        ((void(__fastcall *)(INT64, _QWORD))v9[22])(v9[2], v7);
      ++v4;
    }
  }
}

Referenced by:

HalpInterruptEnableNmi
HalpInterruptRemap
HalpInterruptRemapFixedLines
HalpInterruptSetRemappedDestination
HalpSetIrtEntry