Reminds me of my edk/project mu adventures.
DEBUG((DEBUG_INFO, "Hello %s\n", "UEFIWorld!"))
Result: Hello UFWrd8'7ibn84!8"48!e5¢€°...
stdio.h? stdlib.h? string.h? Nowhere to be found.
You want to use strncpy()? We don't have that. But how about StrnCpyS? Not widechar? AsciiStrnCpyS! Oh, not like strncpy_s, you want to truncate something? Too bad, there is no function for that!
Also, totally normal way to handle vaargs: https://github.com/Daniel-Abrecht/Mu-Silicium/blob/ULogDxe/Silicon/Qualcomm/QcomPkg/Drivers/ULogDxe/vaarg-altabi.h (I had an ABI mismatch)