Bem, então combina as duas decodificações: caractere codificado -> caracteres -> base64, assim:
form test. data: lv_xbase64 type xstring, lv_base64 type string, lv_decoded type string, lo_conv type ref to cl_abap_conv_in_ce. lv_xbase64 = '534756736247386756323979624751684953453D'. lo_conv = cl_abap_conv_in_ce=>create( ). lo_conv->convert( exporting input = lv_xbase64 importing data = lv_base64 ). lv_decoded = cl_http_utility=>decode_base64( lv_base64 ). write: / lv_decoded. " writes 'Hello World!!! endform.
A instância do conversor utiliza a codificação padrão do meu sistema SAP, que é ISO-8859-1. Também poderia ser UTF-8, já que o conjunto de caracteres base64 tem os mesmos valores de código nessas duas codificações. Se estiver em outra codificação, pode passar encoding = 'UTF-8' no método create do conversor.
Se tiver muitos xstrings para decodificar dessa maneira, pode reutilizar a instância do conversor.