// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/exprtk_test.cpp
// Function: bool run_test12<double>()
bool run_test12()
{
   typedef exprtk::expression<T> expression_t;

   static const std::string expression_string[] =
   {
      "equal(poly01(x,2.2,1.1),(2.2x^1+1.1))",
      "equal(poly02(x,3.3,2.2,1.1),(3.3x^2+2.2x^1+1.1))",
      "equal(poly03(x,4.4,3.3,2.2,1.1),(4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly04(x,5.5,4.4,3.3,2.2,1.1),(5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly05(x,6.6,5.5,4.4,3.3,2.2,1.1),(6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly06(x,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly07(x,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly08(x,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly09(x,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly10(x,2.2,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(2.2x^10+1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly11(x,3.3,2.2,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(3.3x^11+2.2x^10+1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equal(poly12(x,4.4,3.3,2.2,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(4.4x^12+3.3x^11+2.2x^10+1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "EquaL(Poly01(x,2.2,1.1),(2.2x^1+1.1))",
      "eQuAl(pOly02(x,3.3,2.2,1.1),(3.3x^2+2.2x^1+1.1))",
      "eqUal(poLy03(x,4.4,3.3,2.2,1.1),(4.4x^3+3.3x^2+2.2x^1+1.1))",
      "eQuAl(polY04(x,5.5,4.4,3.3,2.2,1.1),(5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "EquAl(pOLy05(x,6.6,5.5,4.4,3.3,2.2,1.1),(6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "EqUaL(pOly06(x,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "Equal(Poly07(x,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "eQual(PoLy08(x,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "eqUal(pOlY09(x,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equAl(POLY10(x,2.2,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(2.2x^10+1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "equaL(PolY11(x,3.3,2.2,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(3.3x^11+2.2x^10+1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))",
      "EQUAL(pOLy12(x,4.4,3.3,2.2,1.1,9.9,8.8,7.7,6.6,5.5,4.4,3.3,2.2,1.1),(4.4x^12+3.3x^11+2.2x^10+1.1x^9+9.9x^8+8.8x^7+7.7x^6+6.6x^5+5.5x^4+4.4x^3+3.3x^2+2.2x^1+1.1))"
   };

   static const std::size_t expression_string_size = sizeof(expression_string) / sizeof(std::string);

   T x = T(1.23456);

   exprtk::polynomial<T, 1> poly01;
   exprtk::polynomial<T, 2> poly02;
   exprtk::polynomial<T, 3> poly03;
   exprtk::polynomial<T, 4> poly04;
   exprtk::polynomial<T, 5> poly05;
   exprtk::polynomial<T, 6> poly06;
   exprtk::polynomial<T, 7> poly07;
   exprtk::polynomial<T, 8> poly08;
   exprtk::polynomial<T, 9> poly09;
   exprtk::polynomial<T,10> poly10;
   exprtk::polynomial<T,11> poly11;
   exprtk::polynomial<T,12> poly12;

   exprtk::symbol_table<T> symbol_table;

   symbol_table.add_variable("x",x);
   symbol_table.add_function("poly01", poly01);
   symbol_table.add_function("poly02", poly02);
   symbol_table.add_function("poly03", poly03);
   symbol_table.add_function("poly04", poly04);
   symbol_table.add_function("poly05", poly05);
   symbol_table.add_function("poly06", poly06);
   symbol_table.add_function("poly07", poly07);
   symbol_table.add_function("poly08", poly08);
   symbol_table.add_function("poly09", poly09);
   symbol_table.add_function("poly10", poly10);
   symbol_table.add_function("poly11", poly11);
   symbol_table.add_function("poly12", poly12);

   expression_t expression;
   expression.register_symbol_table(symbol_table);

   static const std::size_t rounds = 500;

   for (std::size_t i = 0; i < rounds; ++i)
   {
      for (std::size_t j = 0; j < expression_string_size; ++j)
      {
         const std::string& expr_str = expression_string[j];

         {
            exprtk::parser<T> parser;

            if (!parser.compile(expr_str,expression))
            {
               printf("run_test12() - Error: %s   Expression: %s\n",
                      parser.error().c_str(),
                      expr_str.c_str());

               return false;
            }
         }

         if (T(1) != expression.value())
         {
            printf("run_test12() - Error in evaluation! Expression: %s\n",expr_str.c_str());
            return false;
         }
      }
   }

   return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc98, %rsp            # imm = 0xC98
movb 0x3c1394(%rip), %al     # 0x56daa0
testb %al, %al
je 0x1ad097
movabsq $0x3ff3c0c1fc8f3238, %rax # imm = 0x3FF3C0C1FC8F3238
movq %rax, 0x38(%rsp)
xorl %eax, %eax
movw %ax, 0x200(%rsp)
movq %rax, 0x208(%rsp)
movq $-0x1, %rcx
movq %rcx, 0x210(%rsp)
movq $0x3, 0x218(%rsp)
leaq 0x329a29(%rip), %rdx    # 0x4d6180
movq %rdx, 0x1f8(%rsp)
movw %ax, 0x1d8(%rsp)
movq %rax, 0x1e0(%rsp)
movq %rcx, 0x1e8(%rsp)
movq $0x4, 0x1f0(%rsp)
leaq 0x329b0e(%rip), %rdx    # 0x4d6298
movq %rdx, 0x1d0(%rsp)
movw %ax, 0x1b0(%rsp)
movq %rax, 0x1b8(%rsp)
movq %rcx, 0x1c0(%rsp)
movq $0x5, 0x1c8(%rsp)
leaq 0x329bbb(%rip), %rdx    # 0x4d6378
movq %rdx, 0x1a8(%rsp)
movw %ax, 0x188(%rsp)
movq %rax, 0x190(%rsp)
movq %rcx, 0x198(%rsp)
movq $0x6, 0x1a0(%rsp)
leaq 0x329c68(%rip), %rdx    # 0x4d6458
movq %rdx, 0x180(%rsp)
movw %ax, 0x160(%rsp)
movq %rax, 0x168(%rsp)
movq %rcx, 0x170(%rsp)
movq $0x7, 0x178(%rsp)
leaq 0x329d15(%rip), %rdx    # 0x4d6538
movq %rdx, 0x158(%rsp)
movw %ax, 0x138(%rsp)
movq %rax, 0x140(%rsp)
movq %rcx, 0x148(%rsp)
movq $0x8, 0x150(%rsp)
leaq 0x329dc2(%rip), %rdx    # 0x4d6618
movq %rdx, 0x130(%rsp)
movw %ax, 0x110(%rsp)
movq %rax, 0x118(%rsp)
movq %rcx, 0x120(%rsp)
movq $0x9, 0x128(%rsp)
leaq 0x329e6f(%rip), %rdx    # 0x4d66f8
movq %rdx, 0x108(%rsp)
movw %ax, 0xe8(%rsp)
movq %rax, 0xf0(%rsp)
movq %rcx, 0xf8(%rsp)
movq $0xa, 0x100(%rsp)
leaq 0x329f1c(%rip), %rdx    # 0x4d67d8
movq %rdx, 0xe0(%rsp)
movw %ax, 0xc0(%rsp)
movq %rax, 0xc8(%rsp)
movq %rcx, 0xd0(%rsp)
movq $0xb, 0xd8(%rsp)
leaq 0x329fc9(%rip), %rdx    # 0x4d68b8
movq %rdx, 0xb8(%rsp)
movw %ax, 0x98(%rsp)
movq %rax, 0xa0(%rsp)
movq %rcx, 0xa8(%rsp)
movq $0xc, 0xb0(%rsp)
leaq 0x32a076(%rip), %rdx    # 0x4d6998
movq %rdx, 0x90(%rsp)
movw %ax, 0x70(%rsp)
movq %rax, 0x78(%rsp)
movq %rcx, 0x80(%rsp)
movq $0xd, 0x88(%rsp)
leaq 0x32a129(%rip), %rdx    # 0x4d6a78
movq %rdx, 0x68(%rsp)
movw %ax, 0x48(%rsp)
movq %rax, 0x50(%rsp)
movq %rcx, 0x58(%rsp)
movq $0xe, 0x60(%rsp)
leaq 0x32a1e5(%rip), %rax    # 0x4d6b58
movq %rax, 0x40(%rsp)
movq %rsp, %rdi
movl $0x1, %esi
callq 0x1e5424
leaq 0x380(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2101cf(%rip), %rsi    # 0x3bcb67
leaq 0x2101c9(%rip), %rdx    # 0x3bcb68
leaq 0x370(%rsp), %rdi
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x38(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e7f1a
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1ac9e0
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e7360(%rip), %rsi    # 0x393d52
leaq 0x1e735f(%rip), %rdx    # 0x393d58
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aca33
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e7314(%rip), %rsi    # 0x393d59
leaq 0x1e7313(%rip), %rdx    # 0x393d5f
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x1d0(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aca86
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e72c8(%rip), %rsi    # 0x393d60
leaq 0x1e72c7(%rip), %rdx    # 0x393d66
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acad9
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e727c(%rip), %rsi    # 0x393d67
leaq 0x1e727b(%rip), %rdx    # 0x393d6d
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acb2c
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e7230(%rip), %rsi    # 0x393d6e
leaq 0x1e722f(%rip), %rdx    # 0x393d74
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acb7f
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e71e4(%rip), %rsi    # 0x393d75
leaq 0x1e71e3(%rip), %rdx    # 0x393d7b
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acbd2
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e7198(%rip), %rsi    # 0x393d7c
leaq 0x1e7197(%rip), %rdx    # 0x393d82
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acc25
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e714c(%rip), %rsi    # 0x393d83
leaq 0x1e714b(%rip), %rdx    # 0x393d89
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0xe0(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acc78
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e7100(%rip), %rsi    # 0x393d8a
leaq 0x1e70ff(%rip), %rdx    # 0x393d90
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acccb
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e70b4(%rip), %rsi    # 0x393d91
leaq 0x1e70b3(%rip), %rdx    # 0x393d97
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acd1e
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e7068(%rip), %rsi    # 0x393d98
leaq 0x1e7067(%rip), %rdx    # 0x393d9e
callq 0x1e4740
movq %rsp, %rdi
leaq 0x370(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acd6e
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e701f(%rip), %rsi    # 0x393d9f
leaq 0x1e701e(%rip), %rdx    # 0x393da5
callq 0x1e4740
movq %rsp, %rbx
leaq 0x370(%rsp), %rsi
leaq 0x40(%rsp), %rdx
movq %rbx, %rdi
callq 0x1e55b2
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1acdc1
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x18(%rsp), %rdi
callq 0x1e56bc
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
subq %rax, %rcx
je 0x1acdfd
sarq $0x3, %rcx
movq (%rsp), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
cmpq %rbx, %rax
je 0x1ace0a
cmpq (%rax), %rdx
je 0x1ace0a
addq $0x8, %rax
decq %rcx
jne 0x1acdea
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x1eb0e8
leaq 0x260(%rsp), %rbx
xorl %ecx, %ecx
leaq 0x220(%rsp), %r14
leaq 0x370(%rsp), %r15
leaq 0x18(%rsp), %r12
movq $0x0, 0x8(%rsp)
movq %rcx, 0x10(%rsp)
xorl %ebp, %ebp
movl $0x7f, %esi
movq %r14, %rdi
callq 0x1e57c8
movq %r15, %rdi
movq %r14, %rsi
callq 0x1e58c8
leaq 0x3c0948(%rip), %rax    # 0x56d7a0
leaq (%rax,%rbp), %r13
leaq 0x320(%rsp), %rdi
callq 0x1eb2ea
leaq 0x2f0(%rsp), %rdi
callq 0x1eb2ea
leaq 0x2c0(%rsp), %rdi
callq 0x1eb2ea
leaq 0x290(%rsp), %rdi
callq 0x1eb2ea
movq %rbx, %rdi
callq 0x1eb2ea
leaq 0x230(%rsp), %rdi
callq 0x1eb2ea
movq %r15, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x1e60ec
testb %al, %al
je 0x1acf1d
movq %r15, %rdi
callq 0x1e6d46
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
ucomisd 0x1dc14a(%rip), %xmm0   # 0x389020
jne 0x1acf84
jp 0x1acf84
addq $0x20, %rbp
cmpq $0x300, %rbp            # imm = 0x300
jne 0x1ace39
movq 0x8(%rsp), %rax
cmpq $0x1f3, %rax            # imm = 0x1F3
leaq 0x1(%rax), %rax
setae %cl
movq %rax, 0x8(%rsp)
cmpq $0x1f4, %rax            # imm = 0x1F4
jne 0x1ace32
movb $0x1, %bl
jmp 0x1ad06e
movq 0x688(%rsp), %r8
cmpq %r8, 0x6a8(%rsp)
je 0x1acfa3
movq 0x6a0(%rsp), %rsi
movq %r8, %rcx
subq 0x690(%rsp), %rcx
movq %rcx, %rdx
sarq $0x3, %rdx
movabsq $-0x30c30c30c30c30c3, %rax # imm = 0xCF3CF3CF3CF3CF3D
imulq %rdx, %rax
cmpq $-0xa7, %rcx
leaq 0x230(%rsp), %rbx
jl 0x1acfde
cmpq $0x3, %rax
jb 0x1ad002
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x1acff4
leaq 0x3c0815(%rip), %rax    # 0x56d7a0
movq (%rbp,%rax), %rsi
leaq 0x200def(%rip), %rdi    # 0x3add86
xorl %eax, %eax
callq 0x11e080
jmp 0x1ad069
leaq 0x230(%rsp), %rbx
movq %rbx, 0x220(%rsp)
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
movq %rax, 0x230(%rsp)
movq $0x8, 0x228(%rsp)
movb $0x0, 0x238(%rsp)
movq %rbx, %rsi
jmp 0x1ad025
notq %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
notq %rdx
imulq $-0x1f8, %rdx, %r8      # imm = 0xFE08
addq (%rsi,%rdx,8), %r8
addq %rcx, %r8
leaq 0x220(%rsp), %rdi
movq %rbx, (%rdi)
movq 0x38(%r8), %rsi
movq 0x40(%r8), %rdx
addq %rsi, %rdx
callq 0x1e7738
movq 0x220(%rsp), %rsi
leaq 0x3c0774(%rip), %rax    # 0x56d7a0
movq (%rbp,%rax), %rdx
leaq 0x200d23(%rip), %rdi    # 0x3add5b
xorl %eax, %eax
callq 0x11e080
movq 0x220(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1ad05c
movq 0x230(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x370(%rsp), %rdi
callq 0x1e6d46
movq 0x10(%rsp), %rbx
leaq 0x18(%rsp), %rdi
callq 0x1e7008
movq %rsp, %rdi
callq 0x1e7056
andb $0x1, %bl
movl %ebx, %eax
addq $0xc98, %rsp            # imm = 0xC98
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3c0a02(%rip), %rdi    # 0x56daa0
callq 0x11e1a0
testl %eax, %eax
je 0x1ac714
leaq 0x3c06fe(%rip), %rax    # 0x56d7b0
movq %rax, 0x3c06e7(%rip)    # 0x56d7a0
leaq 0x3c06e0(%rip), %r14    # 0x56d7a0
leaq 0x20034c(%rip), %rsi    # 0x3ad413
leaq 0x20036a(%rip), %rdx    # 0x3ad438
movq %r14, %rdi
callq 0x1e4740
leaq 0x3c06f3(%rip), %rax    # 0x56d7d0
movq %rax, 0x3c06dc(%rip)    # 0x56d7c0
leaq 0x3c06d5(%rip), %r15    # 0x56d7c0
leaq 0x200347(%rip), %rsi    # 0x3ad439
leaq 0x200370(%rip), %rdx    # 0x3ad469
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06e8(%rip), %rax    # 0x56d7f0
movq %rax, 0x3c06d1(%rip)    # 0x56d7e0
leaq 0x3c06ca(%rip), %r15    # 0x56d7e0
leaq 0x20034d(%rip), %rsi    # 0x3ad46a
leaq 0x200381(%rip), %rdx    # 0x3ad4a5
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06dd(%rip), %rax    # 0x56d810
movq %rax, 0x3c06c6(%rip)    # 0x56d800
leaq 0x3c06bf(%rip), %r15    # 0x56d800
leaq 0x20035e(%rip), %rsi    # 0x3ad4a6
leaq 0x20039d(%rip), %rdx    # 0x3ad4ec
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06d2(%rip), %rax    # 0x56d830
movq %rax, 0x3c06bb(%rip)    # 0x56d820
leaq 0x3c06b4(%rip), %r15    # 0x56d820
leaq 0x20037a(%rip), %rsi    # 0x3ad4ed
leaq 0x2003c4(%rip), %rdx    # 0x3ad53e
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06c7(%rip), %rax    # 0x56d850
movq %rax, 0x3c06b0(%rip)    # 0x56d840
leaq 0x3c06a9(%rip), %r15    # 0x56d840
leaq 0x2003a1(%rip), %rsi    # 0x3ad53f
leaq 0x2003f6(%rip), %rdx    # 0x3ad59b
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06bc(%rip), %rax    # 0x56d870
movq %rax, 0x3c06a5(%rip)    # 0x56d860
leaq 0x3c069e(%rip), %r15    # 0x56d860
leaq 0x2003d3(%rip), %rsi    # 0x3ad59c
leaq 0x200433(%rip), %rdx    # 0x3ad603
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06b1(%rip), %rax    # 0x56d890
movq %rax, 0x3c069a(%rip)    # 0x56d880
leaq 0x3c0693(%rip), %r15    # 0x56d880
leaq 0x200410(%rip), %rsi    # 0x3ad604
leaq 0x20047b(%rip), %rdx    # 0x3ad676
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c06a6(%rip), %rax    # 0x56d8b0
movq %rax, 0x3c068f(%rip)    # 0x56d8a0
leaq 0x3c0688(%rip), %r15    # 0x56d8a0
leaq 0x200458(%rip), %rsi    # 0x3ad677
leaq 0x2004ce(%rip), %rdx    # 0x3ad6f4
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c069b(%rip), %rax    # 0x56d8d0
movq %rax, 0x3c0684(%rip)    # 0x56d8c0
leaq 0x3c067d(%rip), %r15    # 0x56d8c0
leaq 0x2004ab(%rip), %rsi    # 0x3ad6f5
leaq 0x20052d(%rip), %rdx    # 0x3ad77e
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0690(%rip), %rax    # 0x56d8f0
movq %rax, 0x3c0679(%rip)    # 0x56d8e0
leaq 0x3c0672(%rip), %r15    # 0x56d8e0
leaq 0x20050a(%rip), %rsi    # 0x3ad77f
leaq 0x200598(%rip), %rdx    # 0x3ad814
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0685(%rip), %rax    # 0x56d910
movq %rax, 0x3c066e(%rip)    # 0x56d900
leaq 0x3c0667(%rip), %r15    # 0x56d900
leaq 0x200575(%rip), %rsi    # 0x3ad815
leaq 0x20060f(%rip), %rdx    # 0x3ad8b6
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c067a(%rip), %rax    # 0x56d930
movq %rax, 0x3c0663(%rip)    # 0x56d920
leaq 0x3c065c(%rip), %r15    # 0x56d920
leaq 0x2005ec(%rip), %rsi    # 0x3ad8b7
leaq 0x20060a(%rip), %rdx    # 0x3ad8dc
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c066f(%rip), %rax    # 0x56d950
movq %rax, 0x3c0658(%rip)    # 0x56d940
leaq 0x3c0651(%rip), %r15    # 0x56d940
leaq 0x2005e7(%rip), %rsi    # 0x3ad8dd
leaq 0x200610(%rip), %rdx    # 0x3ad90d
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0664(%rip), %rax    # 0x56d970
movq %rax, 0x3c064d(%rip)    # 0x56d960
leaq 0x3c0646(%rip), %r15    # 0x56d960
leaq 0x2005ed(%rip), %rsi    # 0x3ad90e
leaq 0x200621(%rip), %rdx    # 0x3ad949
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0659(%rip), %rax    # 0x56d990
movq %rax, 0x3c0642(%rip)    # 0x56d980
leaq 0x3c063b(%rip), %r15    # 0x56d980
leaq 0x2005fe(%rip), %rsi    # 0x3ad94a
leaq 0x20063d(%rip), %rdx    # 0x3ad990
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c064e(%rip), %rax    # 0x56d9b0
movq %rax, 0x3c0637(%rip)    # 0x56d9a0
leaq 0x3c0630(%rip), %r15    # 0x56d9a0
leaq 0x20061a(%rip), %rsi    # 0x3ad991
leaq 0x200664(%rip), %rdx    # 0x3ad9e2
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0643(%rip), %rax    # 0x56d9d0
movq %rax, 0x3c062c(%rip)    # 0x56d9c0
leaq 0x3c0625(%rip), %r15    # 0x56d9c0
leaq 0x200641(%rip), %rsi    # 0x3ad9e3
leaq 0x200696(%rip), %rdx    # 0x3ada3f
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0638(%rip), %rax    # 0x56d9f0
movq %rax, 0x3c0621(%rip)    # 0x56d9e0
leaq 0x3c061a(%rip), %r15    # 0x56d9e0
leaq 0x200673(%rip), %rsi    # 0x3ada40
leaq 0x2006d3(%rip), %rdx    # 0x3adaa7
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c062d(%rip), %rax    # 0x56da10
movq %rax, 0x3c0616(%rip)    # 0x56da00
leaq 0x3c060f(%rip), %r15    # 0x56da00
leaq 0x2006b0(%rip), %rsi    # 0x3adaa8
leaq 0x20071b(%rip), %rdx    # 0x3adb1a
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0622(%rip), %rax    # 0x56da30
movq %rax, 0x3c060b(%rip)    # 0x56da20
leaq 0x3c0604(%rip), %r15    # 0x56da20
leaq 0x2006f8(%rip), %rsi    # 0x3adb1b
leaq 0x20076e(%rip), %rdx    # 0x3adb98
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0617(%rip), %rax    # 0x56da50
movq %rax, 0x3c0600(%rip)    # 0x56da40
leaq 0x3c05f9(%rip), %r15    # 0x56da40
leaq 0x20074b(%rip), %rsi    # 0x3adb99
leaq 0x2007cd(%rip), %rdx    # 0x3adc22
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c060c(%rip), %rax    # 0x56da70
movq %rax, 0x3c05f5(%rip)    # 0x56da60
leaq 0x3c05ee(%rip), %r15    # 0x56da60
leaq 0x2007aa(%rip), %rsi    # 0x3adc23
leaq 0x200838(%rip), %rdx    # 0x3adcb8
movq %r15, %rdi
callq 0x1e4740
leaq 0x3c0601(%rip), %rax    # 0x56da90
movq %rax, 0x3c05ea(%rip)    # 0x56da80
leaq 0x3c05e3(%rip), %r15    # 0x56da80
leaq 0x200815(%rip), %rsi    # 0x3adcb9
leaq 0x2008af(%rip), %rdx    # 0x3add5a
movq %r15, %rdi
callq 0x1e4740
leaq -0x7e47f(%rip), %rdi    # 0x12f03b
leaq 0x392e4f(%rip), %rdx    # 0x540310
xorl %esi, %esi
callq 0x11e480
leaq 0x3c05d1(%rip), %rdi    # 0x56daa0
callq 0x11e2e0
jmp 0x1ac714
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
jmp 0x1ad505
movq %rax, %rbx
addq $-0x10, %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x1ad520
movq (%r15), %rsi
incq %rsi
callq 0x11e0c0
leaq -0x20(%r15), %rax
addq $-0x10, %r15
cmpq %r14, %r15
movq %rax, %r15
jne 0x1ad50c
leaq 0x3c0569(%rip), %rdi    # 0x56daa0
callq 0x11e220
jmp 0x1ad5e3
movq %rax, %rbx
jmp 0x1ad530
jmp 0x1ad5aa
jmp 0x1ad5bc
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
jmp 0x1ad57c
jmp 0x1ad59e
movq %rax, %rbx
movq 0x370(%rsp), %rdi
cmpq %r14, %rdi
je 0x1ad5db
movq 0x380(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x1ad5db
movq %rax, %rbx
jmp 0x1ad5db
movq %rax, %rbx
jmp 0x1ad5e3
jmp 0x1ad5bc
movq %rax, %rbx
leaq 0x370(%rsp), %rdi
callq 0x1e6d46
jmp 0x1ad5d1
movq %rax, %rbx
jmp 0x1ad5d1
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
callq 0x1e60a4
leaq 0x18(%rsp), %rdi
callq 0x1e7008
movq %rsp, %rdi
callq 0x1e7056
movq %rbx, %rdi
callq 0x11e330