// File: marxn[P]pupp/src/parser/operation.cpp
// Function: Operation::GTOperation(ConstValue*, ConstValue*)
ConstValue * Operation::GTOperation(ConstValue * left, ConstValue * right)
{
        ConstValue * result = NULL;

        if(left->GetType()==Integer && right->GetType()==Integer)
        {
                result = new BooleanValue(static_cast<IntegerValue*>(left)->GetValue() > static_cast<IntegerValue*>(right)->GetValue());
        }
        else if(left->GetType()==Integer && right->GetType()==Decimal)
        {
                DecimalValue leftvalue(static_cast<IntegerValue*>(left));
                result = new BooleanValue(leftvalue > *static_cast<DecimalValue*>(right));
        }
        else if(left->GetType()==Decimal && right->GetType()==Integer)
        {
                DecimalValue rightvalue(static_cast<IntegerValue*>(right));
                result = new BooleanValue(*static_cast<DecimalValue*>(left) > rightvalue);
        }
        else if(left->GetType()==Decimal && right->GetType()==Decimal)
        {
                DecimalValue * value1 = static_cast<DecimalValue*>(left);
                DecimalValue * value2 = static_cast<DecimalValue*>(right);

                result = new BooleanValue(*value1 > *value2);        
        }
        else if(left->GetType()==Integer && right->GetType()==String)
        {
                StringValue * rightvalue = static_cast<StringValue*>(right);

                if(rightvalue->LooksLikeInteger())
                {
                        IntegerValue * value1 = static_cast<IntegerValue*>(left);
                        IntegerValue value2(rightvalue->toString());
                        result = new BooleanValue(value1->GetValue() > value2.GetValue());
                }
                else if(rightvalue->LooksLikeDecimal())
                {
                        DecimalValue value1(static_cast<IntegerValue*>(left));
                        DecimalValue value2(rightvalue->toString());

                        result = new BooleanValue(value1 > value2);
                }
                else
                {
                        result = new NullValue;
                }
        }
        else if(left->GetType()==String && right->GetType()==Integer)
        {
                StringValue * leftvalue = static_cast<StringValue*>(left);
                if(leftvalue->LooksLikeInteger())
                {
                        IntegerValue value1(leftvalue->toString());
                        IntegerValue * value2 = static_cast<IntegerValue*>(right);
                        result = new BooleanValue(value1.GetValue() > value2->GetValue());
                }
                else if(leftvalue->LooksLikeDecimal())
                {
                        DecimalValue value1(leftvalue->toString());
                        DecimalValue value2(static_cast<IntegerValue*>(right));

                        result = new BooleanValue(value1 > value2);
                }
                else
                {
                        result = new NullValue;
                }
        }
        else if(left->GetType()==Decimal && right->GetType()==String)
        {
                StringValue * rightvalue = static_cast<StringValue*>(right);

                if(rightvalue->LooksLikeInteger())
                {
                        DecimalValue * value1 = static_cast<DecimalValue*>(left);
                        DecimalValue value2(right->toString());

                        result = new BooleanValue(*value1 > value2);
                }
                else if(rightvalue->LooksLikeDecimal())
                {
                        DecimalValue * value1 = static_cast<DecimalValue*>(left);
                        DecimalValue value2(right->toString());

                        result = new BooleanValue(*value1 > value2);
                }
                else
                {
                        result = new NullValue;
                }
        }
        else if(left->GetType()==String && right->GetType()==Decimal)
        {
                StringValue * leftvalue = static_cast<StringValue*>(left);

                if(leftvalue->LooksLikeInteger())
                {
                        DecimalValue value1(left->toString());

                        DecimalValue * value2 = static_cast<DecimalValue*>(right);
                        result = new BooleanValue(value1 > *value2);
                }
                else if(leftvalue->LooksLikeDecimal())
                {
                        DecimalValue value1(leftvalue->toString());
                        DecimalValue * value2 = static_cast<DecimalValue*>(right);

                        result = new BooleanValue(value1 > *value2);
                }
                else
                {
                        result = new NullValue;
                }
        }
        else if(left->GetType()==String && right->GetType()==String)
        {
                StringValue * leftvalue = static_cast<StringValue*>(left);
                StringValue * rightvalue = static_cast<StringValue*>(right);

                result = new BooleanValue(leftvalue->toString().compare(rightvalue->toString()) > 0);
        }
        else
        {
                result = new NullValue;
        }

        return result;
}

// Assembly:
subq $0x4e8, %rsp            # imm = 0x4E8
movq %rdi, 0x4e0(%rsp)
movq %rsi, 0x4d8(%rsp)
movq $0x0, 0x4d0(%rsp)
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x1, %eax
jne 0x1e057
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x1, %eax
jne 0x1e057
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x138(%rsp)
movq 0x4e0(%rsp), %rdi
callq 0x7fe0
movq %rax, 0x140(%rsp)
jmp 0x1dfd8
movq 0x4d8(%rsp), %rdi
callq 0x7fe0
movq %rax, 0x130(%rsp)
jmp 0x1dfef
movq 0x138(%rsp), %rdi
movq 0x130(%rsp), %rcx
movq 0x140(%rsp), %rax
subq %rcx, %rax
setg %al
movzbl %al, %esi
callq 0x8c00
jmp 0x1e017
movq 0x138(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1f233
movq 0x138(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x1, %eax
jne 0x1e156
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x2, %eax
jne 0x1e156
movq 0x4e0(%rsp), %rsi
leaq 0x498(%rsp), %rdi
callq 0x8390
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x128(%rsp)
jmp 0x1e0ac
movq 0x4d8(%rsp), %rsi
leaq 0x498(%rsp), %rdi
callq 0x88a0
movb %al, 0x127(%rsp)
jmp 0x1e0ca
movq 0x128(%rsp), %rdi
movb 0x127(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1e0e6
movq 0x128(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x498(%rsp), %rdi
callq 0x8540
jmp 0x1f231
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e144
movq 0x128(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x498(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x2, %eax
jne 0x1e255
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x1, %eax
jne 0x1e255
movq 0x4d8(%rsp), %rsi
leaq 0x470(%rsp), %rdi
callq 0x8390
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x118(%rsp)
jmp 0x1e1ab
movq 0x4e0(%rsp), %rdi
leaq 0x470(%rsp), %rsi
callq 0x88a0
movb %al, 0x117(%rsp)
jmp 0x1e1c9
movq 0x118(%rsp), %rdi
movb 0x117(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1e1e5
movq 0x118(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x470(%rsp), %rdi
callq 0x8540
jmp 0x1f22f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e243
movq 0x118(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x470(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x2, %eax
jne 0x1e32d
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x2, %eax
jne 0x1e32d
movq 0x4e0(%rsp), %rax
movq %rax, 0x468(%rsp)
movq 0x4d8(%rsp), %rax
movq %rax, 0x460(%rsp)
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x108(%rsp)
movq 0x468(%rsp), %rdi
movq 0x460(%rsp), %rsi
callq 0x88a0
movb %al, 0x116(%rsp)
jmp 0x1e2d1
movq 0x108(%rsp), %rdi
movb 0x116(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1e2ed
movq 0x108(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1f22d
movq 0x108(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x1, %eax
jne 0x1e6b2
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x4, %eax
jne 0x1e6b2
movq 0x4d8(%rsp), %rax
movq %rax, 0x458(%rsp)
movq 0x458(%rsp), %rdi
callq 0x7d40
testb $0x1, %al
jne 0x1e37f
jmp 0x1e4d4
movq 0x4e0(%rsp), %rax
movq %rax, 0x450(%rsp)
movq 0x458(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x418(%rsp), %rdi
movq %rdi, 0x100(%rsp)
callq *%rax
movq 0x100(%rsp), %rsi
leaq 0x438(%rsp), %rdi
callq 0x7f00
jmp 0x1e3c7
leaq 0x418(%rsp), %rdi
callq 0x61e0
movl $0x10, %edi
callq 0x62f0
movq %rax, 0xf8(%rsp)
jmp 0x1e3e8
movq 0x450(%rsp), %rdi
callq 0x7fe0
movq %rax, 0xf0(%rsp)
jmp 0x1e3ff
leaq 0x438(%rsp), %rdi
callq 0x7fe0
movq %rax, 0xe8(%rsp)
jmp 0x1e416
movq 0xf8(%rsp), %rdi
movq 0xe8(%rsp), %rcx
movq 0xf0(%rsp), %rax
subq %rcx, %rax
setg %al
movzbl %al, %esi
callq 0x8c00
jmp 0x1e43e
movq 0xf8(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x438(%rsp), %rdi
callq 0xb1a0
jmp 0x1e6ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x418(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e4c2
movq 0xf8(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x438(%rsp), %rdi
callq 0xb1a0
jmp 0x1f243
movq 0x458(%rsp), %rdi
callq 0x7e00
testb $0x1, %al
jne 0x1e4ea
jmp 0x1e64f
movq 0x4e0(%rsp), %rsi
leaq 0x3f0(%rsp), %rdi
callq 0x8390
movq 0x458(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x3a8(%rsp), %rdi
callq *%rax
jmp 0x1e51a
leaq 0x3c8(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
callq 0x8220
jmp 0x1e531
leaq 0x3a8(%rsp), %rdi
callq 0x61e0
movl $0x10, %edi
callq 0x62f0
movq %rax, 0xe0(%rsp)
jmp 0x1e552
leaq 0x3f0(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0x88a0
movb %al, 0xdf(%rsp)
jmp 0x1e570
movq 0xe0(%rsp), %rdi
movb 0xdf(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1e58c
movq 0xe0(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x3c8(%rsp), %rdi
callq 0x8540
leaq 0x3f0(%rsp), %rdi
callq 0x8540
jmp 0x1e6ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e63d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x3a8(%rsp), %rdi
callq 0x61e0
jmp 0x1e63d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e630
movq 0xe0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x3c8(%rsp), %rdi
callq 0x8540
leaq 0x3f0(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movl $0x10, %edi
callq 0x62f0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0xd0(%rsp)
callq 0x7aa0
jmp 0x1e66e
movq 0xd0(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1e6ab
movq 0xd0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
jmp 0x1e6ad
jmp 0x1f22b
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x4, %eax
jne 0x1ea42
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x1, %eax
jne 0x1ea42
movq 0x4e0(%rsp), %rax
movq %rax, 0x3a0(%rsp)
movq 0x3a0(%rsp), %rdi
callq 0x7d40
testb $0x1, %al
jne 0x1e704
jmp 0x1e859
movq 0x3a0(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x368(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq *%rax
movq 0xc8(%rsp), %rsi
leaq 0x388(%rsp), %rdi
callq 0x7f00
jmp 0x1e73c
leaq 0x368(%rsp), %rdi
callq 0x61e0
movq 0x4d8(%rsp), %rax
movq %rax, 0x360(%rsp)
movl $0x10, %edi
callq 0x62f0
movq %rax, 0xc0(%rsp)
jmp 0x1e76d
leaq 0x388(%rsp), %rdi
callq 0x7fe0
movq %rax, 0xb8(%rsp)
jmp 0x1e784
movq 0x360(%rsp), %rdi
callq 0x7fe0
movq %rax, 0xb0(%rsp)
jmp 0x1e79b
movq 0xc0(%rsp), %rdi
movq 0xb0(%rsp), %rcx
movq 0xb8(%rsp), %rax
subq %rcx, %rax
setg %al
movzbl %al, %esi
callq 0x8c00
jmp 0x1e7c3
movq 0xc0(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x388(%rsp), %rdi
callq 0xb1a0
jmp 0x1ea3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x368(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e847
movq 0xc0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x388(%rsp), %rdi
callq 0xb1a0
jmp 0x1f243
movq 0x3a0(%rsp), %rdi
callq 0x7e00
testb $0x1, %al
jne 0x1e86f
jmp 0x1e9df
movq 0x3a0(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x318(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq *%rax
movq 0xa8(%rsp), %rsi
leaq 0x338(%rsp), %rdi
callq 0x8220
jmp 0x1e8a7
leaq 0x318(%rsp), %rdi
callq 0x61e0
movq 0x4d8(%rsp), %rsi
leaq 0x2f0(%rsp), %rdi
callq 0x8390
jmp 0x1e8cb
movl $0x10, %edi
callq 0x62f0
movq %rax, 0xa0(%rsp)
jmp 0x1e8df
leaq 0x338(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x88a0
movb %al, 0x9f(%rsp)
jmp 0x1e8fd
movq 0xa0(%rsp), %rdi
movb 0x9f(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1e919
movq 0xa0(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x2f0(%rsp), %rdi
callq 0x8540
leaq 0x338(%rsp), %rdi
callq 0x8540
jmp 0x1ea3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x318(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e9cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1e9c0
movq 0xa0(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x2f0(%rsp), %rdi
callq 0x8540
leaq 0x338(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movl $0x10, %edi
callq 0x62f0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x90(%rsp)
callq 0x7aa0
jmp 0x1e9fe
movq 0x90(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1ea3b
movq 0x90(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
jmp 0x1ea3d
jmp 0x1f229
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x2, %eax
jne 0x1ed58
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x4, %eax
jne 0x1ed58
movq 0x4d8(%rsp), %rax
movq %rax, 0x2e8(%rsp)
movq 0x2e8(%rsp), %rdi
callq 0x7d40
testb $0x1, %al
jne 0x1ea94
jmp 0x1ebc7
movq 0x4e0(%rsp), %rax
movq %rax, 0x2e0(%rsp)
movq 0x4d8(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x298(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq *%rax
movq 0x88(%rsp), %rsi
leaq 0x2b8(%rsp), %rdi
callq 0x8220
jmp 0x1eadc
leaq 0x298(%rsp), %rdi
callq 0x61e0
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x80(%rsp)
jmp 0x1eafd
movq 0x2e0(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0x88a0
movb %al, 0x7f(%rsp)
jmp 0x1eb18
movq 0x80(%rsp), %rdi
movb 0x7f(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1eb31
movq 0x80(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x2b8(%rsp), %rdi
callq 0x8540
jmp 0x1ed53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1ebb5
movq 0x80(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x2b8(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movq 0x2e8(%rsp), %rdi
callq 0x7e00
testb $0x1, %al
jne 0x1ebdd
jmp 0x1ecfe
movq 0x4e0(%rsp), %rax
movq %rax, 0x290(%rsp)
movq 0x4d8(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x248(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq *%rax
movq 0x70(%rsp), %rsi
leaq 0x268(%rsp), %rdi
callq 0x8220
jmp 0x1ec1f
leaq 0x248(%rsp), %rdi
callq 0x61e0
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x68(%rsp)
jmp 0x1ec3d
movq 0x290(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x88a0
movb %al, 0x67(%rsp)
jmp 0x1ec58
movq 0x68(%rsp), %rdi
movb 0x67(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1ec6e
movq 0x68(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x268(%rsp), %rdi
callq 0x8540
jmp 0x1ed51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x248(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1ecec
movq 0x68(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x268(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movl $0x10, %edi
callq 0x62f0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x58(%rsp)
callq 0x7aa0
jmp 0x1ed1a
movq 0x58(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1ed51
movq 0x58(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
jmp 0x1ed53
jmp 0x1f227
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x4, %eax
jne 0x1f05c
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x2, %eax
jne 0x1f05c
movq 0x4e0(%rsp), %rax
movq %rax, 0x240(%rsp)
movq 0x240(%rsp), %rdi
callq 0x7d40
testb $0x1, %al
jne 0x1edaa
jmp 0x1eecb
movq 0x4e0(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x1f8(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq *%rax
movq 0x50(%rsp), %rsi
leaq 0x218(%rsp), %rdi
callq 0x8220
jmp 0x1eddc
leaq 0x1f8(%rsp), %rdi
callq 0x61e0
movq 0x4d8(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x48(%rsp)
jmp 0x1ee0a
movq 0x1f0(%rsp), %rsi
leaq 0x218(%rsp), %rdi
callq 0x88a0
movb %al, 0x47(%rsp)
jmp 0x1ee25
movq 0x48(%rsp), %rdi
movb 0x47(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1ee3b
movq 0x48(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x218(%rsp), %rdi
callq 0x8540
jmp 0x1f057
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1eeb9
movq 0x48(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x218(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movq 0x240(%rsp), %rdi
callq 0x7e00
testb $0x1, %al
jne 0x1eee1
jmp 0x1f002
movq 0x240(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x1a8(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq *%rax
movq 0x38(%rsp), %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x8220
jmp 0x1ef13
leaq 0x1a8(%rsp), %rdi
callq 0x61e0
movq 0x4d8(%rsp), %rax
movq %rax, 0x1a0(%rsp)
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x30(%rsp)
jmp 0x1ef41
movq 0x1a0(%rsp), %rsi
leaq 0x1c8(%rsp), %rdi
callq 0x88a0
movb %al, 0x2f(%rsp)
jmp 0x1ef5c
movq 0x30(%rsp), %rdi
movb 0x2f(%rsp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8c00
jmp 0x1ef72
movq 0x30(%rsp), %rax
movq %rax, 0x4d0(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x8540
jmp 0x1f055
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x61e0
jmp 0x1f243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1eff0
movq 0x30(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
leaq 0x1c8(%rsp), %rdi
callq 0x8540
jmp 0x1f243
movl $0x10, %edi
callq 0x62f0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x20(%rsp)
callq 0x7aa0
jmp 0x1f01e
movq 0x20(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1f055
movq 0x20(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
jmp 0x1f057
jmp 0x1f225
movq 0x4e0(%rsp), %rdi
callq 0x7870
cmpl $0x4, %eax
jne 0x1f1d3
movq 0x4d8(%rsp), %rdi
callq 0x7870
cmpl $0x4, %eax
jne 0x1f1d3
movq 0x4e0(%rsp), %rax
movq %rax, 0x198(%rsp)
movq 0x4d8(%rsp), %rax
movq %rax, 0x190(%rsp)
movl $0x10, %edi
callq 0x62f0
movq %rax, 0x18(%rsp)
movb $0x1, 0x14f(%rsp)
movq 0x198(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x170(%rsp), %rdi
callq *%rax
jmp 0x1f0da
movq 0x190(%rsp), %rsi
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq 0x150(%rsp), %rdi
callq *%rax
jmp 0x1f0f5
leaq 0x170(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x6050
movl %eax, 0x14(%rsp)
jmp 0x1f110
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %eax
testl %eax, %eax
setg %al
movzbl %al, %esi
callq 0x8c00
jmp 0x1f128
movq 0x18(%rsp), %rax
movb $0x0, 0x14f(%rsp)
movq %rax, 0x4d0(%rsp)
leaq 0x150(%rsp), %rdi
callq 0x61e0
leaq 0x170(%rsp), %rdi
callq 0x61e0
jmp 0x1f223
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1f1b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
jmp 0x1f1a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
leaq 0x150(%rsp), %rdi
callq 0x61e0
leaq 0x170(%rsp), %rdi
callq 0x61e0
testb $0x1, 0x14f(%rsp)
jne 0x1f1c2
jmp 0x1f1d1
movq 0x18(%rsp), %rdi
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
movl $0x10, %edi
callq 0x62f0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, 0x8(%rsp)
callq 0x7aa0
jmp 0x1f1ef
movq 0x8(%rsp), %rax
movq %rax, 0x4d0(%rsp)
jmp 0x1f223
movq 0x8(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4c8(%rsp)
movl %eax, 0x4c4(%rsp)
movl $0x10, %esi
callq 0x6300
jmp 0x1f243
jmp 0x1f225
jmp 0x1f227
jmp 0x1f229
jmp 0x1f22b
jmp 0x1f22d
jmp 0x1f22f
jmp 0x1f231
jmp 0x1f233
movq 0x4d0(%rsp), %rax
addq $0x4e8, %rsp            # imm = 0x4E8
retq
movq 0x4c8(%rsp), %rdi
callq 0x6550