Understanding ConfuserEx2: .NET Obfuscation and Deobfuscation Techniques