-lrb- b -rrb- undertake , cause , permit or authorise the modification , creation of derivative works or improvements , translation , reverse engineering , decompiling , disassembling , decryption , emulation , hacking , discovery or attempted discovery of the source code or protocols of the software or any part or features thereof -lrb- except to the extent permitted by law -rrb- ;