- charCode = ((sm[0] << 0x2) | (sm[1] >> 0x4)) ^ val
- src += chr(charCode)
- if (sm[2] != 0x40):
- charCode = ((sm[1] & 0xf) << 0x4) | (sm[2] >> 0x2)
- src += chr(charCode)
- if (sm[3] != 0x40):
- charCode = ((sm[2] & 0x3) << 0x6) | sm[3]
- src += chr(charCode)
- return src
+ char_code = ((sm[0] << 0x2) | (sm[1] >> 0x4)) ^ val
+ decoded += compat_chr(char_code)
+ if sm[2] != 0x40:
+ char_code = ((sm[1] & 0xf) << 0x4) | (sm[2] >> 0x2)
+ decoded += compat_chr(char_code)
+ if sm[3] != 0x40:
+ char_code = ((sm[2] & 0x3) << 0x6) | sm[3]
+ decoded += compat_chr(char_code)
+ return decoded