000010-R3 будет меньше, если R3 больше восьми, т.е. для номеров функции 8 и меньше будет вызвана функция номер ноль (хотя в стеке будет передан первоначальный номер). Иначе вычитаем 8, кладём в стек байт из таблицы по адресу 004600, очищая при этом старший байт в стеке, чтобы не мешался (судя по тому, что полученное число добавляется потом к адресу возврата, это количество аргументов после команды TRAP). Далее сдвигаем номер функции влево, т.е. умножаем на 2, чтобы получить смещение в таблице адресов функций. После чего вызываем функцию по адресу из таблицы 004646. После вызова достаём из стека количество аргументов и добавляем к адресу возврата. Выкидываем из стека реальный номер функции и восстанавливаем регистры. Всё, возврат из прерывания.