// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/exprtk_test.cpp
// Function: bool run_test14<double>()
bool run_test14()
{
   typedef exprtk::expression<T>             expression_t;
   typedef exprtk::parser<T>                 parser_t;
   typedef typename parser_t::settings_store settings_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::rtl::vecops::package<T> vector_package;

   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);
   symbol_table.add_function("isnan" , isnan );

   symbol_table.add_package(vector_package);

   expression_t expression;
   expression.register_symbol_table(symbol_table);

   exprtk::parser<T> parser;

   static const std::size_t secondary_compile_options =
      settings_t::e_replacer          +
      settings_t::e_joiner            +
      settings_t::e_numeric_check     +
      settings_t::e_bracket_check     +
      settings_t::e_sequence_check    +
      settings_t::e_strength_reduction;

   const settings_t settings(secondary_compile_options);
   parser_t secondary_parser(settings);

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

   load_expressions("exprtk_functional_test.txt"     , expr_str_list);
   load_expressions("exprtk_functional_ext_test.txt" , expr_str_list);

   if (expr_str_list.empty())
   {
      return true;
   }

   load_expressions("exprtk_noncommutative_test.txt" , expr_noncomm_str_list);

   std::deque<exprtk::expression<T> > expression_list;
   bool error_found = false;

   static const std::size_t rounds = 5;

   for (std::size_t r = 0; r < rounds; ++r)
   {
      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))
         {
            printf("run_test14() - Error: %s   Expression: %s\n",
                   parser.error().c_str(),
                   expr_str_list[i].c_str());

            error_found = true;
         }
         else
         {
            expression_list.push_back(current_expression);
         }
      }

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

         current_expression.register_symbol_table(symbol_table);

         if (!secondary_parser.compile(expr_noncomm_str_list[i],current_expression))
         {
            printf("run_test14() - Error: %s   Expression: %s [secondary parser]\n",
                   secondary_parser.error().c_str(),
                   expr_noncomm_str_list[i].c_str());

            error_found = true;
         }
      }

      if (error_found)
      {
         break;
      }

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

         if (result != T(1))
         {
            error_found = true;

            printf("run_test14() - Error with evaluation of expression: %s\n",
                   expr_str_list[i].c_str());
         }
      }

      expression_list.clear();

      if (error_found)
      {
         break;
      }
   }

   return !error_found;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1ef8, %rsp           # imm = 0x1EF8
xorl %eax, %eax
movq %rax, 0x118(%rsp)
movq %rax, 0x110(%rsp)
movq %rax, 0x108(%rsp)
movq %rax, 0x100(%rsp)
movw %ax, 0x358(%rsp)
movq %rax, 0x360(%rsp)
movq $-0x1, %rcx
movq %rcx, 0x368(%rsp)
movq $0x3, 0x370(%rsp)
leaq 0x3278de(%rip), %rdx    # 0x4d6180
movq %rdx, 0x350(%rsp)
movw %ax, 0x330(%rsp)
movq %rax, 0x338(%rsp)
movq %rcx, 0x340(%rsp)
movq $0x4, 0x348(%rsp)
leaq 0x3279c3(%rip), %rdx    # 0x4d6298
movq %rdx, 0x328(%rsp)
movw %ax, 0x308(%rsp)
movq %rax, 0x310(%rsp)
movq %rcx, 0x318(%rsp)
movq $0x5, 0x320(%rsp)
leaq 0x327a70(%rip), %rdx    # 0x4d6378
movq %rdx, 0x300(%rsp)
movw %ax, 0x2e0(%rsp)
movq %rax, 0x2e8(%rsp)
movq %rcx, 0x2f0(%rsp)
movq $0x6, 0x2f8(%rsp)
leaq 0x327b1d(%rip), %rdx    # 0x4d6458
movq %rdx, 0x2d8(%rsp)
movw %ax, 0x2b8(%rsp)
movq %rax, 0x2c0(%rsp)
movq %rcx, 0x2c8(%rsp)
movq $0x7, 0x2d0(%rsp)
leaq 0x327bca(%rip), %rdx    # 0x4d6538
movq %rdx, 0x2b0(%rsp)
movw %ax, 0x290(%rsp)
movq %rax, 0x298(%rsp)
movq %rcx, 0x2a0(%rsp)
movq $0x8, 0x2a8(%rsp)
leaq 0x327c77(%rip), %rdx    # 0x4d6618
movq %rdx, 0x288(%rsp)
movw %ax, 0x268(%rsp)
movq %rax, 0x270(%rsp)
movq %rcx, 0x278(%rsp)
movq $0x9, 0x280(%rsp)
leaq 0x327d24(%rip), %rdx    # 0x4d66f8
movq %rdx, 0x260(%rsp)
movw %ax, 0x240(%rsp)
movq %rax, 0x248(%rsp)
movq %rcx, 0x250(%rsp)
movq $0xa, 0x258(%rsp)
leaq 0x327dd1(%rip), %rdx    # 0x4d67d8
movq %rdx, 0x238(%rsp)
movw %ax, 0x218(%rsp)
movq %rax, 0x220(%rsp)
movq %rcx, 0x228(%rsp)
movq $0xb, 0x230(%rsp)
leaq 0x327e7e(%rip), %rdx    # 0x4d68b8
movq %rdx, 0x210(%rsp)
movw %ax, 0x1f0(%rsp)
movq %rax, 0x1f8(%rsp)
movq %rcx, 0x200(%rsp)
movq $0xc, 0x208(%rsp)
leaq 0x327f2b(%rip), %rdx    # 0x4d6998
movq %rdx, 0x1e8(%rsp)
movw %ax, 0x1c8(%rsp)
movq %rax, 0x1d0(%rsp)
movq %rcx, 0x1d8(%rsp)
movq $0xd, 0x1e0(%rsp)
leaq 0x327fd8(%rip), %rdx    # 0x4d6a78
movq %rdx, 0x1c0(%rsp)
movw %ax, 0x1a0(%rsp)
movq %rax, 0x1a8(%rsp)
movq %rcx, 0x1b0(%rsp)
movq $0xe, 0x1b8(%rsp)
leaq 0x328085(%rip), %rax    # 0x4d6b58
movq %rax, 0x198(%rsp)
leaq 0x1718(%rsp), %rdi
callq 0x376d04
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
callq 0x1e5424
leaq 0x8(%rsp), %rdi
callq 0x1e546c
leaq 0x388(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x20e053(%rip), %rsi    # 0x3bcb67
leaq 0x20e04d(%rip), %rdx    # 0x3bcb68
leaq 0x378(%rsp), %rdi
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x118(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e7f1a
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aeb61
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1f9cc8(%rip), %rsi    # 0x3a883b
leaq 0x1f9cc2(%rip), %rdx    # 0x3a883c
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x110(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e7f1a
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aebb8
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1ff920(%rip), %rsi    # 0x3ae4ea
leaq 0x1ff91a(%rip), %rdx    # 0x3ae4eb
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x108(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e7f1a
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aec0f
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x20d5d1(%rip), %rsi    # 0x3bc1f2
leaq 0x20d5cb(%rip), %rdx    # 0x3bc1f3
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x100(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e7f1a
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aec66
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e50da(%rip), %rsi    # 0x393d52
leaq 0x1e50d9(%rip), %rdx    # 0x393d58
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x350(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aecbb
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e508c(%rip), %rsi    # 0x393d59
leaq 0x1e508b(%rip), %rdx    # 0x393d5f
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x328(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aed10
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e503e(%rip), %rsi    # 0x393d60
leaq 0x1e503d(%rip), %rdx    # 0x393d66
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x300(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aed65
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4ff0(%rip), %rsi    # 0x393d67
leaq 0x1e4fef(%rip), %rdx    # 0x393d6d
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x2d8(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aedba
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4fa2(%rip), %rsi    # 0x393d6e
leaq 0x1e4fa1(%rip), %rdx    # 0x393d74
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x2b0(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aee0f
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4f54(%rip), %rsi    # 0x393d75
leaq 0x1e4f53(%rip), %rdx    # 0x393d7b
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x288(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aee64
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4f06(%rip), %rsi    # 0x393d7c
leaq 0x1e4f05(%rip), %rdx    # 0x393d82
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x260(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aeeb9
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4eb8(%rip), %rsi    # 0x393d83
leaq 0x1e4eb7(%rip), %rdx    # 0x393d89
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x238(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aef0e
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4e6a(%rip), %rsi    # 0x393d8a
leaq 0x1e4e69(%rip), %rdx    # 0x393d90
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x210(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aef63
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4e1c(%rip), %rsi    # 0x393d91
leaq 0x1e4e1b(%rip), %rdx    # 0x393d97
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x1e8(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1aefb8
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4dce(%rip), %rsi    # 0x393d98
leaq 0x1e4dcd(%rip), %rdx    # 0x393d9e
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1af00d
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1e4d80(%rip), %rsi    # 0x393d9f
leaq 0x1e4d7f(%rip), %rdx    # 0x393da5
callq 0x1e4740
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x1e55b2
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1af062
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x378(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1ff09f(%rip), %rsi    # 0x3ae113
leaq 0x1ff09d(%rip), %rdx    # 0x3ae118
callq 0x1e4740
leaq 0x1c8326(%rip), %rdx    # 0x3773ad
leaq 0x8(%rsp), %rdi
leaq 0x378(%rsp), %rsi
callq 0x3720cc
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1af0b6
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x1718(%rsp), %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
callq 0x37d898
leaq 0x178(%rsp), %rdi
callq 0x1e56bc
movq 0x180(%rsp), %rax
movq 0x188(%rsp), %rcx
subq %rax, %rcx
je 0x1af111
sarq $0x3, %rcx
movq 0x8(%rsp), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
cmpq %rbx, %rax
je 0x1af123
cmpq (%rax), %rdx
je 0x1af123
addq $0x8, %rax
decq %rcx
jne 0x1af0fe
leaq 0x180(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1eb0e8
leaq 0xdf0(%rsp), %rdi
movl $0x7f, %esi
callq 0x1e57c8
leaq 0x378(%rsp), %rdi
leaq 0xdf0(%rsp), %rsi
callq 0x1e58c8
leaq 0xef0(%rsp), %rdi
callq 0x1eb2ea
leaq 0xec0(%rsp), %rdi
callq 0x1eb2ea
leaq 0xe90(%rsp), %rdi
callq 0x1eb2ea
leaq 0xe60(%rsp), %rdi
callq 0x1eb2ea
leaq 0xe30(%rsp), %rdi
callq 0x1eb2ea
leaq 0xe00(%rsp), %rdi
callq 0x1eb2ea
leaq 0xca0(%rsp), %rdi
movl $0x5f, %esi
callq 0x1e57c8
leaq 0xdf0(%rsp), %rdi
leaq 0xca0(%rsp), %rsi
callq 0x1e58c8
xorpd %xmm0, %xmm0
leaq 0xa0(%rsp), %rdi
movapd %xmm0, 0x40(%rdi)
movapd %xmm0, 0x30(%rdi)
movapd %xmm0, 0x20(%rdi)
movapd %xmm0, 0x10(%rdi)
movapd %xmm0, (%rdi)
xorl %esi, %esi
callq 0x373cfe
leaq 0x120(%rsp), %rdi
xorpd %xmm0, %xmm0
movapd %xmm0, 0x40(%rdi)
movapd %xmm0, 0x30(%rdi)
movapd %xmm0, 0x20(%rdi)
movapd %xmm0, 0x10(%rdi)
movapd %xmm0, (%rdi)
xorl %esi, %esi
callq 0x373cfe
leaq 0x40(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x1feef4(%rip), %rsi    # 0x3ae119
leaq 0x1fef07(%rip), %rdx    # 0x3ae133
leaq 0x30(%rsp), %rdi
callq 0x1e4740
leaq 0x30(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x3773bf
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x1af25f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x30(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1feec6(%rip), %rsi    # 0x3ae134
leaq 0x1feedd(%rip), %rdx    # 0x3ae152
callq 0x1e4740
leaq 0x30(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x3773bf
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x1af2a3
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xd0(%rsp), %rax
cmpq 0xb0(%rsp), %rax
je 0x1af9b1
leaq 0x30(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1fee8b(%rip), %rsi    # 0x3ae153
leaq 0x1feea2(%rip), %rdx    # 0x3ae171
callq 0x1e4740
leaq 0x30(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x3773bf
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x1af2fd
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x11e0c0
xorpd %xmm0, %xmm0
leaq 0x30(%rsp), %rdi
movapd %xmm0, 0x40(%rdi)
movapd %xmm0, 0x30(%rdi)
movapd %xmm0, 0x20(%rdi)
movapd %xmm0, 0x10(%rdi)
movapd %xmm0, (%rdi)
xorl %esi, %esi
callq 0x371386
movabsq $0x726f727245206f4e, %r14 # imm = 0x726F727245206F4E
leaq 0x20(%rsp), %r15
leaq 0x80(%rsp), %r12
xorl %eax, %eax
xorl %r13d, %r13d
movq %rax, 0xf8(%rsp)
xorl %ebp, %ebp
movq 0xe8(%rsp), %rax
movq %rax, %rcx
subq 0xc8(%rsp), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0xd0(%rsp), %rax
subq 0xd8(%rsp), %rax
movq 0xc0(%rsp), %rdx
sarq $0x5, %rax
subq 0xb0(%rsp), %rdx
sarq $0x5, %rdx
addq %rax, %rdx
addq %rcx, %rdx
cmpq %rdx, %rbp
jae 0x1af5d4
movq %r12, %rdi
callq 0x1e56bc
movq 0x88(%rsp), %rax
movq 0x90(%rsp), %rcx
subq %rax, %rcx
je 0x1af3e6
sarq $0x3, %rcx
movq 0x8(%rsp), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
cmpq %rbx, %rax
je 0x1af3f6
cmpq (%rax), %rdx
je 0x1af3f6
addq $0x8, %rax
decq %rcx
jne 0x1af3d3
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x1eb0e8
movq 0xb0(%rsp), %rcx
movq 0xc8(%rsp), %rax
movq %rcx, %rsi
subq 0xb8(%rsp), %rsi
sarq $0x5, %rsi
addq %rbp, %rsi
js 0x1af42f
cmpq $0xf, %rsi
ja 0x1af438
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rcx
movq %rcx, %rsi
jmp 0x1af451
movq %rsi, %rcx
sarq $0x4, %rcx
jmp 0x1af43f
movq %rsi, %rcx
shrq $0x4, %rcx
movq %rcx, %rdx
shlq $0x4, %rdx
subq %rdx, %rsi
shlq $0x5, %rsi
addq (%rax,%rcx,8), %rsi
leaq 0x378(%rsp), %rdi
movq %r12, %rdx
callq 0x1e60ec
testb %al, %al
je 0x1af477
leaq 0x30(%rsp), %rdi
movq %r12, %rsi
callq 0x3712ee
jmp 0x1af5c4
movq 0x690(%rsp), %rdi
cmpq %rdi, 0x6b0(%rsp)
je 0x1af4d2
movq 0x6a8(%rsp), %rsi
movq %rdi, %rcx
subq 0x698(%rsp), %rcx
movq %rcx, %rax
sarq $0x3, %rax
movabsq $-0x30c30c30c30c30c3, %rdx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rdx, %rax
cmpq $-0xa7, %rcx
jl 0x1af4f1
cmpq $0x3, %rax
jb 0x1af515
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x1af507
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq %r14, 0x20(%rsp)
movq $0x8, 0x18(%rsp)
movb $0x0, 0x28(%rsp)
jmp 0x1af539
notq %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
notq %rdx
imulq $-0x1f8, %rdx, %rdi     # imm = 0xFE08
addq (%rsi,%rdx,8), %rdi
addq %rcx, %rdi
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x38(%rdi), %rsi
movq 0x40(%rdi), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x1e7738
movq 0x10(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0xc8(%rsp), %rcx
movq %rdx, %rax
subq 0xb8(%rsp), %rax
sarq $0x5, %rax
addq %rbp, %rax
js 0x1af572
cmpq $0xf, %rax
ja 0x1af57b
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rdx
movq %rdx, %rax
jmp 0x1af594
movq %rax, %rdx
sarq $0x4, %rdx
jmp 0x1af582
movq %rax, %rdx
shrq $0x4, %rdx
movq %rdx, %rdi
shlq $0x4, %rdi
subq %rdi, %rax
shlq $0x5, %rax
addq (%rcx,%rdx,8), %rax
movq (%rax), %rdx
leaq 0x1febd4(%rip), %rdi    # 0x3ae172
xorl %eax, %eax
callq 0x11e080
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x1af5c1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movb $0x1, %r13b
movq %r12, %rdi
callq 0x1e7008
incq %rbp
jmp 0x1af34b
xorl %ebp, %ebp
movq 0x168(%rsp), %rax
movq %rax, %rcx
subq 0x148(%rsp), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x150(%rsp), %rax
subq 0x158(%rsp), %rax
movq 0x140(%rsp), %rdx
sarq $0x5, %rax
subq 0x130(%rsp), %rdx
sarq $0x5, %rdx
addq %rax, %rdx
addq %rcx, %rdx
cmpq %rdx, %rbp
jae 0x1af845
movq %r12, %rdi
callq 0x1e56bc
movq 0x88(%rsp), %rax
movq 0x90(%rsp), %rcx
subq %rax, %rcx
je 0x1af671
sarq $0x3, %rcx
movq 0x8(%rsp), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
cmpq %rbx, %rax
je 0x1af681
cmpq (%rax), %rdx
je 0x1af681
addq $0x8, %rax
decq %rcx
jne 0x1af65e
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x1eb0e8
movq 0x130(%rsp), %rcx
movq 0x148(%rsp), %rax
movq %rcx, %rsi
subq 0x138(%rsp), %rsi
sarq $0x5, %rsi
addq %rbp, %rsi
js 0x1af6ba
cmpq $0xf, %rsi
ja 0x1af6c3
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rcx
movq %rcx, %rsi
jmp 0x1af6dc
movq %rsi, %rcx
sarq $0x4, %rcx
jmp 0x1af6ca
movq %rsi, %rcx
shrq $0x4, %rcx
movq %rcx, %rdx
shlq $0x4, %rdx
subq %rdx, %rsi
shlq $0x5, %rsi
addq (%rax,%rcx,8), %rsi
leaq 0xdf0(%rsp), %rdi
movq %r12, %rdx
callq 0x1e60ec
testb %al, %al
jne 0x1af835
movq 0x1108(%rsp), %rdi
cmpq %rdi, 0x1128(%rsp)
je 0x1af74f
movq 0x1120(%rsp), %rsi
movq %rdi, %rcx
subq 0x1110(%rsp), %rcx
movq %rcx, %rax
sarq $0x3, %rax
movabsq $-0x30c30c30c30c30c3, %rdx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rdx, %rax
cmpq $-0xa7, %rcx
jl 0x1af76c
cmpq $0x3, %rax
jb 0x1af790
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x1af782
movq %r15, 0x10(%rsp)
movq %r14, 0x20(%rsp)
movq $0x8, 0x18(%rsp)
movb $0x0, 0x28(%rsp)
movq %r15, %rsi
jmp 0x1af7af
notq %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
notq %rdx
imulq $-0x1f8, %rdx, %rdi     # imm = 0xFE08
addq (%rsi,%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 0x1e7738
movq 0x10(%rsp), %rsi
movq 0x130(%rsp), %rdx
movq 0x148(%rsp), %rcx
movq %rdx, %rax
subq 0x138(%rsp), %rax
sarq $0x5, %rax
addq %rbp, %rax
js 0x1af7e8
cmpq $0xf, %rax
ja 0x1af7f1
movq %rbp, %rax
shlq $0x5, %rax
addq %rax, %rdx
movq %rdx, %rax
jmp 0x1af80a
movq %rax, %rdx
sarq $0x4, %rdx
jmp 0x1af7f8
movq %rax, %rdx
shrq $0x4, %rdx
movq %rdx, %rdi
shlq $0x4, %rdi
subq %rdi, %rax
shlq $0x5, %rax
addq (%rcx,%rdx,8), %rax
movq (%rax), %rdx
leaq 0x1fe989(%rip), %rdi    # 0x3ae19d
xorl %eax, %eax
callq 0x11e080
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x1af832
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movb $0x1, %r13b
movq %r12, %rdi
callq 0x1e7008
incq %rbp
jmp 0x1af5d6
testb $0x1, %r13b
jne 0x1af9a3
xorl %ebp, %ebp
xorl %r14d, %r14d
movq 0x78(%rsp), %rcx
movq 0x58(%rsp), %rax
movq %rcx, %rsi
subq %rax, %rsi
shrq $0x3, %rsi
cmpq $0x1, %rcx
adcq $-0x1, %rsi
shlq $0x4, %rsi
movq 0x60(%rsp), %rcx
subq 0x68(%rsp), %rcx
sarq $0x5, %rcx
movq 0x40(%rsp), %rdx
movq 0x50(%rsp), %rdi
subq %rdx, %rdi
sarq $0x5, %rdi
addq %rcx, %rdi
addq %rsi, %rdi
cmpq %rdi, %r14
jae 0x1af970
movq %rdx, %rcx
subq 0x48(%rsp), %rcx
sarq $0x5, %rcx
addq %r14, %rcx
js 0x1af8c1
cmpq $0xf, %rcx
ja 0x1af8ca
addq %rbp, %rdx
movq %rdx, %rcx
jmp 0x1af8e3
movq %rcx, %rdx
sarq $0x4, %rdx
jmp 0x1af8d1
movq %rcx, %rdx
shrq $0x4, %rdx
movq %rdx, %rsi
shlq $0x4, %rsi
subq %rsi, %rcx
shlq $0x5, %rcx
addq (%rax,%rdx,8), %rcx
movq (%rcx), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
ucomisd 0x1d9728(%rip), %xmm0   # 0x389020
jne 0x1af8fc
jnp 0x1af964
movq 0xb0(%rsp), %rdx
movq 0xc8(%rsp), %rcx
movq %rdx, %rax
subq 0xb8(%rsp), %rax
sarq $0x5, %rax
addq %r14, %rax
js 0x1af92e
cmpq $0xf, %rax
ja 0x1af937
addq %rbp, %rdx
movq %rdx, %rax
jmp 0x1af950
movq %rax, %rdx
sarq $0x4, %rdx
jmp 0x1af93e
movq %rax, %rdx
shrq $0x4, %rdx
movq %rdx, %rsi
shlq $0x4, %rsi
subq %rsi, %rax
shlq $0x5, %rax
addq (%rcx,%rdx,8), %rax
movq (%rax), %rsi
leaq 0x1fe881(%rip), %rdi    # 0x3ae1db
xorl %eax, %eax
callq 0x11e080
movb $0x1, %r13b
incq %r14
addq $0x20, %rbp
jmp 0x1af854
leaq 0x30(%rsp), %rdi
callq 0x3774e4
testb $0x1, %r13b
movq 0xf8(%rsp), %rax
jne 0x1af9a3
incq %rax
cmpq $0x5, %rax
movabsq $0x726f727245206f4e, %r14 # imm = 0x726F727245206F4E
jne 0x1af341
movb $0x1, %bl
jmp 0x1af9a5
xorl %ebx, %ebx
leaq 0x30(%rsp), %rdi
callq 0x37133c
jmp 0x1af9b3
movb $0x1, %bl
leaq 0x120(%rsp), %rdi
callq 0x372e6c
leaq 0xa0(%rsp), %rdi
callq 0x372e6c
leaq 0xdf0(%rsp), %rdi
callq 0x1e6d46
leaq 0xda0(%rsp), %rdi
callq 0x1eb2ea
leaq 0xd70(%rsp), %rdi
callq 0x1eb2ea
leaq 0xd40(%rsp), %rdi
callq 0x1eb2ea
leaq 0xd10(%rsp), %rdi
callq 0x1eb2ea
leaq 0xce0(%rsp), %rdi
callq 0x1eb2ea
leaq 0xcb0(%rsp), %rdi
callq 0x1eb2ea
leaq 0x378(%rsp), %rdi
callq 0x1e6d46
leaq 0x178(%rsp), %rdi
callq 0x1e7008
leaq 0x8(%rsp), %rdi
callq 0x1e7056
leaq 0x1718(%rsp), %rdi
callq 0x37750c
movl %ebx, %eax
addq $0x1ef8, %rsp           # imm = 0x1EF8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1afa9c
jmp 0x1afa79
jmp 0x1afa9c
jmp 0x1afad9
jmp 0x1afa79
jmp 0x1afa9c
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x1afb84
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x1afb84
movq %rax, %rbx
jmp 0x1afb84
movq %rax, %rbx
jmp 0x1afb91
movq %rax, %rbx
jmp 0x1afb9e
movq %rax, %rbx
jmp 0x1afbab
movq %rax, %rbx
jmp 0x1afbb8
movq %rax, %rbx
leaq 0xdf0(%rsp), %rdi
callq 0x1e60a4
jmp 0x1afbc5
movq %rax, %rbx
jmp 0x1afbc5
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
jmp 0x1afb23
jmp 0x1afb56
movq %rax, %rbx
movq 0x378(%rsp), %rdi
cmpq %r14, %rdi
je 0x1afbd2
movq 0x388(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x1afbd2
jmp 0x1afb56
movq %rax, %rbx
jmp 0x1afbdc
movq %rax, %rbx
jmp 0x1afbd2
jmp 0x1afb6a
jmp 0x1afb6a
jmp 0x1afb63
jmp 0x1afb63
movq %rax, %rbx
jmp 0x1afb7a
jmp 0x1afb6a
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x1e7008
leaq 0x30(%rsp), %rdi
callq 0x37133c
leaq 0x120(%rsp), %rdi
callq 0x372e6c
leaq 0xa0(%rsp), %rdi
callq 0x372e6c
leaq 0xdf0(%rsp), %rdi
callq 0x1e6d46
leaq 0xca0(%rsp), %rdi
callq 0x1e60a4
leaq 0x378(%rsp), %rdi
callq 0x1e6d46
leaq 0x178(%rsp), %rdi
callq 0x1e7008
leaq 0x8(%rsp), %rdi
callq 0x1e7056
leaq 0x1718(%rsp), %rdi
callq 0x37750c
movq %rbx, %rdi
callq 0x11e330