public override void Eval(ref char[] Stack, ref char EDX, ref char EAX, ref Stack <ASMLine> CallStack)
            {
                Action = SolveAction.Eval;

                if (To.Contains("die")) //oshit
                {
                    CallStack.Pop();    //this

                    JUMP PrevJump = null;

                    while ((PrevJump = CallStack.Peek() as JUMP) == null)
                    {
                        CallStack.Pop().Action = SolveAction.Eval;
                        if (CallStack.Count < 1)
                        {
                            Action = SolveAction.JumpStart;
                            CallStack.Push(this);
                            return;
                        }
                    }

                    PrevJump.TrySolve(ref Stack, ref CallStack);
                }
                else
                {
                    var _cmp = (Previous as CMP); //hope this never turns out bad thonkers

                    if (Type == JumpType.jmp || (!_cmp.CF) == (Type == JumpType.jnb))
                    {
                        CallStack.Push(ASM_Map[To]);
                    }
                    else
                    {
                        CallStack.Push(Next);
                    }
                }
            }