private void OptimizeStackTransfer()
{
for (int i = 0; i < code.Count; i++)
{
if (code[i].opcode == OpCodes.Ldloc
&& code[i + 1].opcode == OpCodes.Stloc
&& code[i + 2].pseudo == CodeType.BeginExceptionBlock
&& code[i + 3].opcode == OpCodes.Ldloc && code[i + 3].MatchLocal(code[i + 1])
&& code[i + 4].pseudo == CodeType.ReleaseTempLocal && code[i + 4].MatchLocal(code[i + 3]))
{
code[i + 1] = code[i];
code[i] = code[i + 2];
code.RemoveRange(i + 2, 3);
}
}
}