#Common Lisp, <s>90</s> <s>86</s> <s>85</s> 81 bytes

    (format t"~5@{~@?~&~}~4@{~2:*~@?~&~}"#1="~9@{-~}""|~8t|"#1#"|   |   |""~9@{x~}"1)

<s>First we print out all arguments, and then we print them in reversed order (without `xxxxxxxxx`).</s>

Similiar solution, but instead of providing every variable directly I give (where it's efficient) control string which will output needed text.