// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk-extras/exprtk_testgen.cpp
// Function: bool test_gen<double>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
inline bool test_gen(const std::string& expr_file)
{
   typedef exprtk::expression<T> expression_t;

   T x = T(0);
   T y = T(0);
   T z = T(0);
   T w = T(0);

   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_constants();
   symbol_table.add_variable("x",x);
   symbol_table.add_variable("y",y);
   symbol_table.add_variable("z",z);
   symbol_table.add_variable("w",w);
   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);

   exprtk::parser<T> parser;

   std::deque<std::string> expr_str_list;

   if (0 == load_expressions(expr_file,expr_str_list))
   {
      return true;
   }

   std::deque<exprtk::expression<T> > expression_list;

   bool load_success = true;

   for (std::size_t i = 0; i < expr_str_list.size(); ++i)
   {
      exprtk::expression<T> current_expression;

      current_expression.register_symbol_table(symbol_table);

      if (!parser.compile(expr_str_list[i],current_expression))
      {
         load_success = false;
         printf("test_gen() - Error: %s   Expression: %s\n",
                parser.error().c_str(),
                expr_str_list[i].c_str());
      }
      else
         expression_list.push_back(current_expression);
   }

   if (!load_success)
      return false;

   for (std::size_t i = 0; i < expression_list.size(); ++i)
   {
      T result = expression_list[i].value();

      printf("equal((%050.30f),(%s))\n",
             result,
             expr_str_list[i].c_str());
   }

   return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd38, %rsp            # imm = 0xD38
movq %rdi, %rbx
xorl %eax, %eax
movq %rax, 0x48(%rsp)
movq %rax, 0x40(%rsp)
movq %rax, 0x38(%rsp)
movq %rax, 0x30(%rsp)
movw %ax, 0x250(%rsp)
movq %rax, 0x258(%rsp)
movq $-0x1, %rcx
movq %rcx, 0x260(%rsp)
movq $0x3, 0x268(%rsp)
leaq 0x2b99d7(%rip), %rdx    # 0x3d4ed8
movq %rdx, 0x248(%rsp)
movw %ax, 0x228(%rsp)
movq %rax, 0x230(%rsp)
movq %rcx, 0x238(%rsp)
movq $0x4, 0x240(%rsp)
leaq 0x2b9b84(%rip), %rdx    # 0x3d50b8
movq %rdx, 0x220(%rsp)
movw %ax, 0x200(%rsp)
movq %rax, 0x208(%rsp)
movq %rcx, 0x210(%rsp)
movq $0x5, 0x218(%rsp)
leaq 0x2b9c31(%rip), %rdx    # 0x3d5198
movq %rdx, 0x1f8(%rsp)
movw %ax, 0x1d8(%rsp)
movq %rax, 0x1e0(%rsp)
movq %rcx, 0x1e8(%rsp)
movq $0x6, 0x1f0(%rsp)
leaq 0x2b9cde(%rip), %rdx    # 0x3d5278
movq %rdx, 0x1d0(%rsp)
movw %ax, 0x1b0(%rsp)
movq %rax, 0x1b8(%rsp)
movq %rcx, 0x1c0(%rsp)
movq $0x7, 0x1c8(%rsp)
leaq 0x2b9d8b(%rip), %rdx    # 0x3d5358
movq %rdx, 0x1a8(%rsp)
movw %ax, 0x188(%rsp)
movq %rax, 0x190(%rsp)
movq %rcx, 0x198(%rsp)
movq $0x8, 0x1a0(%rsp)
leaq 0x2b9e38(%rip), %rdx    # 0x3d5438
movq %rdx, 0x180(%rsp)
movw %ax, 0x160(%rsp)
movq %rax, 0x168(%rsp)
movq %rcx, 0x170(%rsp)
movq $0x9, 0x178(%rsp)
leaq 0x2b9ee5(%rip), %rdx    # 0x3d5518
movq %rdx, 0x158(%rsp)
movw %ax, 0x138(%rsp)
movq %rax, 0x140(%rsp)
movq %rcx, 0x148(%rsp)
movq $0xa, 0x150(%rsp)
leaq 0x2b9f92(%rip), %rdx    # 0x3d55f8
movq %rdx, 0x130(%rsp)
movw %ax, 0x110(%rsp)
movq %rax, 0x118(%rsp)
movq %rcx, 0x120(%rsp)
movq $0xb, 0x128(%rsp)
leaq 0x2ba03f(%rip), %rdx    # 0x3d56d8
movq %rdx, 0x108(%rsp)
movw %ax, 0xe8(%rsp)
movq %rax, 0xf0(%rsp)
movq %rcx, 0xf8(%rsp)
movq $0xc, 0x100(%rsp)
leaq 0x2ba0ec(%rip), %rdx    # 0x3d57b8
movq %rdx, 0xe0(%rsp)
movw %ax, 0xc0(%rsp)
movq %rax, 0xc8(%rsp)
movq %rcx, 0xd0(%rsp)
movq $0xd, 0xd8(%rsp)
leaq 0x2ba199(%rip), %rdx    # 0x3d5898
movq %rdx, 0xb8(%rsp)
movw %ax, 0x98(%rsp)
movq %rax, 0xa0(%rsp)
movq %rcx, 0xa8(%rsp)
movq $0xe, 0xb0(%rsp)
leaq 0x2ba246(%rip), %rax    # 0x3d5978
movq %rax, 0x90(%rsp)
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movl $0x1, %esi
callq 0x11c406
movq %r14, %rdi
callq 0x11c44e
leaq 0x420(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b20b2(%rip), %rsi    # 0x2cd819
leaq 0x1b20ac(%rip), %rdx    # 0x2cd81a
leaq 0x410(%rsp), %rdi
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x48(%rsp), %rdx
xorl %ecx, %ecx
callq 0x11c594
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b7b1
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b227e(%rip), %rsi    # 0x2cda41
leaq 0x1b2278(%rip), %rdx    # 0x2cda42
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x40(%rsp), %rdx
xorl %ecx, %ecx
callq 0x11c594
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b805
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b20aa(%rip), %rsi    # 0x2cd8c1
leaq 0x1b20a4(%rip), %rdx    # 0x2cd8c2
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x38(%rsp), %rdx
xorl %ecx, %ecx
callq 0x11c594
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b859
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1fd1(%rip), %rsi    # 0x2cd83c
leaq 0x1b1fcb(%rip), %rdx    # 0x2cd83d
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x30(%rsp), %rdx
xorl %ecx, %ecx
callq 0x11c594
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b8ad
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b2004(%rip), %rsi    # 0x2cd8c3
leaq 0x1b2003(%rip), %rdx    # 0x2cd8c9
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x248(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b902
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1fb6(%rip), %rsi    # 0x2cd8ca
leaq 0x1b1fb5(%rip), %rdx    # 0x2cd8d0
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x220(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b957
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1f68(%rip), %rsi    # 0x2cd8d1
leaq 0x1b1f67(%rip), %rdx    # 0x2cd8d7
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11b9ac
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1f1a(%rip), %rsi    # 0x2cd8d8
leaq 0x1b1f19(%rip), %rdx    # 0x2cd8de
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x1d0(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11ba01
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1ecc(%rip), %rsi    # 0x2cd8df
leaq 0x1b1ecb(%rip), %rdx    # 0x2cd8e5
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11ba56
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1e7e(%rip), %rsi    # 0x2cd8e6
leaq 0x1b1e7d(%rip), %rdx    # 0x2cd8ec
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11baab
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1e30(%rip), %rsi    # 0x2cd8ed
leaq 0x1b1e2f(%rip), %rdx    # 0x2cd8f3
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x158(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11bb00
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1de2(%rip), %rsi    # 0x2cd8f4
leaq 0x1b1de1(%rip), %rdx    # 0x2cd8fa
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x130(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11bb55
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1d94(%rip), %rsi    # 0x2cd8fb
leaq 0x1b1d93(%rip), %rdx    # 0x2cd901
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0x108(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11bbaa
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1d46(%rip), %rsi    # 0x2cd902
leaq 0x1b1d45(%rip), %rdx    # 0x2cd908
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0xe0(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11bbff
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1cf8(%rip), %rsi    # 0x2cd909
leaq 0x1b1cf7(%rip), %rdx    # 0x2cd90f
callq 0x11c376
leaq 0x8(%rsp), %rdi
leaq 0x410(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11bc54
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x410(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x1b1caa(%rip), %rsi    # 0x2cd910
leaq 0x1b1ca9(%rip), %rdx    # 0x2cd916
callq 0x11c376
leaq 0x8(%rsp), %r14
leaq 0x410(%rsp), %rsi
leaq 0x90(%rsp), %rdx
movq %r14, %rdi
callq 0x11c702
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11bcac
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
leaq 0x50(%rsp), %rdi
callq 0x11c82a
movq 0x58(%rsp), %rcx
movq 0x60(%rsp), %rax
subq %rcx, %rax
je 0x11bd12
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %r14, %rcx
je 0x11bd21
movq 0x8(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x11bd21
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x11bd12
decq %rsi
cmpq %r14, %rcx
je 0x11bd0a
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x11bcf1
negq %rsi
cmpq %rax, %rsi
jb 0x11bd21
leaq 0x58(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x122cb2
leaq 0x2c0(%rsp), %rdi
movl $0x7f, %esi
callq 0x11c8c4
leaq 0x410(%rsp), %rdi
leaq 0x2c0(%rsp), %rsi
callq 0x11c9c4
leaq 0x3c0(%rsp), %rdi
callq 0x122eb4
leaq 0x390(%rsp), %rdi
callq 0x122eb4
leaq 0x360(%rsp), %rdi
callq 0x122eb4
leaq 0x330(%rsp), %rdi
callq 0x122eb4
leaq 0x300(%rsp), %rdi
callq 0x122eb4
leaq 0x2d0(%rsp), %r15
movq %r15, %rdi
callq 0x122eb4
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%r15)
movaps %xmm0, 0x20(%r15)
movaps %xmm0, 0x10(%r15)
movaps %xmm0, (%r15)
movaps %xmm0, -0x10(%r15)
leaq 0x2c0(%rsp), %rdi
xorl %esi, %esi
callq 0x197852
leaq 0x2c0(%rsp), %rsi
movq %rbx, %rdi
callq 0x11d1e7
testq %rax, %rax
je 0x11c232
xorps %xmm0, %xmm0
leaq 0x270(%rsp), %rdi
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x197c80
leaq 0x20(%rsp), %r15
movb $0x1, %bl
leaq 0x70(%rsp), %r12
leaq 0x410(%rsp), %r13
xorl %ebp, %ebp
movq 0x308(%rsp), %rax
movq %rax, %rcx
subq 0x2e8(%rsp), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x2f0(%rsp), %rax
subq 0x2f8(%rsp), %rax
movq 0x2e0(%rsp), %rdx
sarq $0x5, %rax
subq 0x2d0(%rsp), %rdx
sarq $0x5, %rdx
addq %rax, %rdx
addq %rcx, %rdx
cmpq %rdx, %rbp
jae 0x11c0cf
movq %r12, %rdi
callq 0x11c82a
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %rax
subq %rcx, %rax
je 0x11bed8
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rdi
adcq $0x0, %rdi
cmpq %r14, %rcx
je 0x11bee5
movq 0x8(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x11bee5
addq $0x8, %rcx
movl $0x1, %esi
subq %rdi, %rsi
xorl %edi, %edi
cmpq %rdi, %rsi
je 0x11bed8
decq %rdi
cmpq %r14, %rcx
je 0x11bed0
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x11beb7
negq %rdi
cmpq %rax, %rdi
jb 0x11bee5
leaq 0x78(%rsp), %rdi
movq %r14, %rsi
callq 0x122cb2
movq 0x2d0(%rsp), %rsi
movq %rsi, %rax
subq 0x2d8(%rsp), %rax
sarq $0x5, %rax
addq %rbp, %rax
cmpq $0xf, %rax
ja 0x11bf11
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rsi
jmp 0x11bf4c
movq %rax, %rcx
shrq $0x4, %rcx
movq %rcx, %rdx
movabsq $-0x1000000000000000, %rsi # imm = 0xF000000000000000
orq %rsi, %rdx
testq %rax, %rax
cmovgq %rcx, %rdx
movq 0x2e8(%rsp), %rcx
movq %rdx, %rsi
shlq $0x4, %rsi
subq %rsi, %rax
shlq $0x5, %rax
addq (%rcx,%rdx,8), %rax
movq %rax, %rsi
movq %r13, %rdi
movq %r12, %rdx
callq 0x11d30c
testb %al, %al
je 0x11bf70
leaq 0x270(%rsp), %rdi
movq %r12, %rsi
callq 0x11dcde
jmp 0x11c0bf
movq 0x728(%rsp), %rdi
cmpq %rdi, 0x748(%rsp)
je 0x11bfbf
movq %rdi, %rcx
subq 0x730(%rsp), %rcx
movq %rcx, %rax
sarq $0x3, %rax
movabsq $-0x30c30c30c30c30c3, %rdx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rdx, %rax
cmpq $0x3, %rax
jb 0x11c00f
testq %rcx, %rcx
jle 0x11bfe3
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x11bff9
movq %r15, 0x10(%rsp)
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
movq %rax, 0x20(%rsp)
movq $0x8, 0x18(%rsp)
movb $0x0, 0x28(%rsp)
jmp 0x11c029
notq %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
notq %rdx
movq 0x740(%rsp), %rax
imulq $-0x1f8, %rdx, %rdi     # imm = 0xFE08
addq (%rax,%rdx,8), %rdi
addq %rcx, %rdi
movq %r15, 0x10(%rsp)
movq 0x38(%rdi), %rsi
movq 0x40(%rdi), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x11f36a
movq 0x2d0(%rsp), %rcx
movq %rcx, %rax
subq 0x2d8(%rsp), %rax
movq 0x10(%rsp), %rsi
sarq $0x5, %rax
addq %rbp, %rax
cmpq $0xf, %rax
ja 0x11c05a
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rcx
jmp 0x11c095
movq %rax, %rcx
shrq $0x4, %rcx
movq %rcx, %rdx
movabsq $-0x1000000000000000, %rdi # imm = 0xF000000000000000
orq %rdi, %rdx
testq %rax, %rax
cmovgq %rcx, %rdx
movq 0x2e8(%rsp), %rcx
movq %rdx, %rdi
shlq $0x4, %rdi
subq %rdi, %rax
shlq $0x5, %rax
addq (%rcx,%rdx,8), %rax
movq %rax, %rcx
movq (%rcx), %rdx
leaq 0x1b1878(%rip), %rdi    # 0x2cd917
xorl %eax, %eax
callq 0x118080
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x11c0bd
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x1180c0
xorl %ebx, %ebx
movq %r12, %rdi
callq 0x11dd2c
incq %rbp
jmp 0x11be17
testb $0x1, %bl
je 0x11c223
xorl %r15d, %r15d
leaq 0x1b185e(%rip), %r14    # 0x2cd940
xorl %r12d, %r12d
movq 0x2b8(%rsp), %rcx
movq 0x298(%rsp), %rax
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
cmpq $0x1, %rcx
adcq $-0x1, %rdx
shlq $0x4, %rdx
movq 0x2a0(%rsp), %rsi
subq 0x2a8(%rsp), %rsi
sarq $0x5, %rsi
movq 0x280(%rsp), %rcx
movq 0x290(%rsp), %rdi
subq %rcx, %rdi
sarq $0x5, %rdi
addq %rsi, %rdi
addq %rdx, %rdi
cmpq %rdi, %r12
jae 0x11c223
movq %rcx, %rdx
subq 0x288(%rsp), %rdx
sarq $0x5, %rdx
leaq (%r12,%rdx), %rsi
cmpq $0xf, %rsi
ja 0x11c163
addq %r15, %rcx
jmp 0x11c199
movq %rsi, %rcx
shrq $0x4, %rcx
movq %rcx, %rdi
movabsq $-0x1000000000000000, %r8 # imm = 0xF000000000000000
orq %r8, %rdi
testq %rsi, %rsi
cmovgq %rcx, %rdi
movq %rdi, %rcx
shlq $0x4, %rcx
subq %rcx, %rdx
addq %r12, %rdx
shlq $0x5, %rdx
addq (%rax,%rdi,8), %rdx
movq %rdx, %rcx
movq (%rcx), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movq 0x2d0(%rsp), %rcx
movq %rcx, %rax
subq 0x2d8(%rsp), %rax
sarq $0x5, %rax
leaq (%r12,%rax), %rdx
cmpq $0xf, %rdx
ja 0x11c1cc
addq %r15, %rcx
jmp 0x11c20a
movq 0x2e8(%rsp), %rcx
movq %rdx, %rsi
shrq $0x4, %rsi
movq %rsi, %rdi
movabsq $-0x1000000000000000, %r8 # imm = 0xF000000000000000
orq %r8, %rdi
testq %rdx, %rdx
cmovgq %rsi, %rdi
movq %rdi, %rdx
shlq $0x4, %rdx
subq %rdx, %rax
addq %r12, %rax
shlq $0x5, %rax
addq (%rcx,%rdi,8), %rax
movq %rax, %rcx
movq (%rcx), %rsi
movq %r14, %rdi
movb $0x1, %al
callq 0x118080
incq %r12
addq $0x20, %r15
jmp 0x11c0e5
leaq 0x270(%rsp), %rdi
callq 0x11dd7a
jmp 0x11c234
movb $0x1, %bl
leaq 0x2c0(%rsp), %rdi
callq 0x11ddc4
leaq 0x410(%rsp), %rdi
callq 0x11de0e
leaq 0x50(%rsp), %rdi
callq 0x11dd2c
leaq 0x8(%rsp), %rdi
callq 0x11e0d0
andb $0x1, %bl
movl %ebx, %eax
addq $0xd38, %rsp            # imm = 0xD38
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11c2a2
jmp 0x11c27d
movq %rax, %rbx
jmp 0x11c334
movq %rax, %rbx
jmp 0x11c341
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
callq 0x11d1a0
jmp 0x11c34e
movq %rax, %rbx
jmp 0x11c34e
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
jmp 0x11c2e8
jmp 0x11c30c
movq %rax, %rbx
movq 0x410(%rsp), %rdi
cmpq %r15, %rdi
je 0x11c358
movq 0x420(%rsp), %rsi
incq %rsi
callq 0x1180c0
jmp 0x11c358
jmp 0x11c30c
movq %rax, %rbx
jmp 0x11c358
jmp 0x11c31a
jmp 0x11c315
movq %rax, %rbx
jmp 0x11c327
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x11dd2c
leaq 0x270(%rsp), %rdi
callq 0x11dd7a
leaq 0x2c0(%rsp), %rdi
callq 0x11ddc4
leaq 0x410(%rsp), %rdi
callq 0x11de0e
leaq 0x50(%rsp), %rdi
callq 0x11dd2c
leaq 0x8(%rsp), %rdi
callq 0x11e0d0
movq %rbx, %rdi
callq 0x118310