Duplicate Control Flow

This protection mangles code in the method so that it is harder for a reverse engineer to understand it.

Before Obfuscation
protected override void Dispose(bool disposing)
		{
			bool flag = disposing && this.components != null;
			if (flag)
			{
				this.components.Dispose();
			}
			base.Dispose(disposing);
		}
After Obfuscation
protected override void Dispose(bool disposing)
		{
			bool flag = disposing && this.components != null;
			for (;;)
			{
				IL_11:
				int linkHoverColor = -1235685033;
				for (;;)
				{
					switch (<Module>.set_LinkHoverColor(linkHoverColor))
					{
					case 0:
						this.components.Dispose();
						linkHoverColor = -1235685031;
						continue;
					case 1:
						linkHoverColor = -1235685034;
						continue;
					case 2:
						base.Dispose(disposing);
						linkHoverColor = -1235685029;
						continue;
					case 3:
						linkHoverColor = -1235685030;
						continue;
					case 4:
						goto IL_11;
					case 5:
						linkHoverColor = (flag ? -1235685028 : -1235685030);
						continue;
					}
					return;
				}
			}
		}

Last updated

Was this helpful?