# [R], 141 bytes <!-- language-all: lang-r --> function(x)intToUtf8(matrix(match(el(strsplit(gsub("D","",x),"B"))[-1],paste0(rep(c("",y<-c("I","A","O")),e=4),c(y,"U")))-1,,2,T)%*%16^(1:0)) [Try it online!][TIO-jlfcghh2] [R]: https://www.r-project.org/ [TIO-jlfcghh2]: https://tio.run/##TY1BC4JAEIXv/YoYEGZiBI2ICDsoXjx5cU9RUKIlmIquoL/exlLr8N7bmflmpx7StWMOaVvEOisL7CgrdFQqnR7wddN11o0RPzHJsdF1U@WZxkfT3hF8YADuiMEDorNpX7i6NTqxsE4qjFGGvWNKBgK6olAwTk474hh7BiUlmTbzliMyNoa9v6J9tIiGFMELfFcUiMLprTz1cekCrX6M@mNCL5x21FTN6S6U@PzPwoy90b@ab42sCzS8AQ "R – Try It Online" Using some modular magic is likely to be shorter, but I'm pretty happy with this as a naive first pass.