decodeMessage shouldn't destroy original array