Print a Singing Angel
JS (ES6), 328 330 bytes

a=(b,c)=>b.repeat(c);f=prompt().split(" ");if(f[1].length&lt;5)f[1]+=" ";console.log(a(" ",18)+a("_",12)+`
(\\   ___   /)    /`+a(" ",12)+`\\
( \\ (‘o‘) / )   /    `+f[0]+`    \\
(`+a(" ",11)+`)  &lt;     `+f[1]+a(" ",21)+`
 (  ‘> &lt;’  )    \\`+a(" ",14)+`/
    /    \\       \\`+a("_",12)+`/
   /      \\  
  ‘ – “ - ‘`)


1 helper function (a gets charcode (one char shorter) and repeats c times)
1 variable for getting input via prompt() and doing a split to array
arguably abuses the special cases there but still does the job
I assumed the extra 21 spaces in the middle column were needed




a=(b,c)=&gt;b.repeat(c);f=prompt().split(" ");if(f[1].length&lt;5)f[1]+=" ";console.log(a(" ",18)+a("_",12)+`
(\\   ___   /)    /`+a(" ",12)+`\\
( \\ (‘o‘) / )   /    `+f[0]+`    \\
(`+a(" ",11)+`)  &lt;     `+f[1]+a(" ",21)+`
 (  ‘&gt; &lt;’  )    \\`+a(" ",14)+`/
    /    \\       \\`+a("_",12)+`/
   /      \\  
  ‘ – “ - ‘`)