Try Eazfuscator.
Some obfuscators insert spaghetti code, others create proxies for some calls, others do all this. But this affects the performance. If someone creates commercial software: The whole protection and licensing system is the infrastructure and logic that developer designed, and that is breakable too, it's just the matter of time. Don't waste your time to invent an unbreakable licensing/protection method, work on your code behind and release something worth to buy, instead. Don't use opensource licensing systems, this only serves to create open source keygens
Some people say the best obfuscators are these (in order): Babel, CryptoObfuscator, SmartAssembly. And the best (pure .NET) licensing system is CryptoLicensing