There’s no bug in strcat; the line you don’t understand loads the first 4 bytes from PCC_VERSION (“2.08”) then stores them at the end of msgStr (r2 contains the length of msgStr, that is the number of bytes before the first zero-byte in msgStr).
Strcat is effectively a dangerous function for two reasons:
- You may overflow the destination buffer, as strcat can’t make any check
- If ever the destination string was not initialized, the initial strlen may yield a very big value and you will write somewhere where you don’t expect...
So I urge you to check your code, but I can ensure you the strcat code is correct...
Hope this helps,