Skip to content

Instantly share code, notes, and snippets.

@rpgmaker
Created November 4, 2012 01:34
Show Gist options
  • Save rpgmaker/4009729 to your computer and use it in GitHub Desktop.
Save rpgmaker/4009729 to your computer and use it in GitHub Desktop.
IL Sample
var kcc = Type.GetType(ParseString("x94-x--x") + ParseString("j8-1294x@"));
var kxc = Type.GetType(ParseString("x94-x--x") + ParseString("551xxcv"));
var kscs = kxc.GetMethod(ParseString("x121ds"),
new []{kcc, kcc});
var krcxr = kxc.GetMethod(ParseString("cxvxc4"),
new[] { kcc, kcc });
var xrvxc = typeof(Program).GetMethod(ParseString("Lj3465"));
var xccc = kxc.GetMethod(ParseString("7#$524"),
BindingFlags.Static | BindingFlags.Public,
null, new[] { kxc, kxc }, null);
var xdd = typeof(Program).GetMethod(ParseString("jknn8u"),
BindingFlags.Public | BindingFlags.Static, null,
new[] { kxc, kxc }, null);
var method = new DynamicMethod("xfsdf",
kxc, new[] { kxc, kxc }, true);
var il = method.GetILGenerator();
var ll = il.DeclareLocal(kcc);
var ff = il.DeclareLocal(kxc);
var ss = il.DeclareLocal(kxc);
var kk = il.DeclareLocal(kxc);
var pkkk = il.DeclareLocal(kxc);
var klcll = il.DeclareLocal(kxc);
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Callvirt, kxc.GetProperty(ParseString("71xxew")).GetGetMethod());
il.Emit(OpCodes.Stloc, ll.LocalIndex);
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Ldc_I4_2);
il.Emit(OpCodes.Ldc_I4_2);
il.Emit(OpCodes.Callvirt, kscs);
il.Emit(OpCodes.Stloc, ff.LocalIndex);
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Ldloc, ll.LocalIndex);
il.Emit(OpCodes.Ldc_I4_2);
il.Emit(OpCodes.Callvirt, kscs);
il.Emit(OpCodes.Stloc, ss.LocalIndex);
il.Emit(OpCodes.Ldloc, ff.LocalIndex);
il.Emit(OpCodes.Ldloc, ss.LocalIndex);
il.Emit(OpCodes.Call, xccc);
il.Emit(OpCodes.Call, xrvxc);
il.Emit(OpCodes.Stloc, kk.LocalIndex);
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Ldloc, ll.LocalIndex);
il.Emit(OpCodes.Ldc_I4_2);
il.Emit(OpCodes.Callvirt, krcxr);
il.Emit(OpCodes.Ldc_I4_2);
il.Emit(OpCodes.Ldc_I4_2);
il.Emit(OpCodes.Callvirt, krcxr);
il.Emit(OpCodes.Ldloc, kk.LocalIndex);
il.Emit(OpCodes.Ldstr, Extra);
il.Emit(OpCodes.Call, xccc);
il.Emit(OpCodes.Call, xdd);
il.Emit(OpCodes.Stloc, klcll.LocalIndex);
il.Emit(OpCodes.Ldloc, kk.LocalIndex);
il.Emit(OpCodes.Ldstr, "|");
il.Emit(OpCodes.Call, xccc);
il.Emit(OpCodes.Ldloc, klcll.LocalIndex);
il.Emit(OpCodes.Call, xccc);
il.Emit(OpCodes.Ret);
func = method.CreateDelegate(typeof(Func<string, string, string>))
as Func<string, string, string>;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment