// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/exprtk_benchmark.cpp
// Function: perform_file_based_benchmark(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long const&)
void perform_file_based_benchmark(const std::string& file_name, const std::size_t& rounds)
{
   std::deque<std::string> expr_str_list;

   if (0 == load_expression_file(file_name,expr_str_list))
   {
      printf("Failed to load any expressions from: %s\n", file_name.c_str());
      return;
   }

   typedef exprtk::symbol_table<double> symbol_table_t;
   typedef exprtk::expression<double>   expression_t;
   typedef exprtk::parser<double>       parser_t;

   std::deque<expression_t> expression_list;

   symbol_table_t symbol_table;

   double a = 1.1;
   double b = 2.2;
   double c = 3.3;
   double x = 2.123456;
   double y = 3.123456;
   double z = 4.123456;
   double w = 5.123456;

   exprtk::rtl::vecops::package<double> vector_package;

   symbol_table.add_variable("a", a);
   symbol_table.add_variable("b", b);
   symbol_table.add_variable("c", c);

   symbol_table.add_variable("x", x);
   symbol_table.add_variable("y", y);
   symbol_table.add_variable("z", z);
   symbol_table.add_variable("w", w);

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

   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_package(vector_package);


   static double e = exprtk::details::numeric::constant::e;
   symbol_table.add_variable("e", e, true);

   symbol_table.add_constants();

   {
      parser_t parser;

      for (std::size_t i = 0; i < expr_str_list.size(); ++i)
      {
         expression_t expression;
         expression.register_symbol_table(symbol_table);

         if (!parser.compile(expr_str_list[i],expression))
         {
            printf("[perform_file_based_benchmark] - Parser Error: %s\tExpression: %s\n",
                   parser.error().c_str(),
                   expr_str_list[i].c_str());

            return;
         }

         expression_list.push_back(expression);
      }
   }

   exprtk::timer total_timer;
   exprtk::timer timer;

   double single_eval_total_time = 0.0;

   total_timer.start();

   for (std::size_t i = 0; i < expression_list.size(); ++i)
   {
      expression_t& expression = expression_list[i];

      a = 1.1;
      b = 2.2;
      c = 3.3;
      x = 2.123456;
      y = 3.123456;
      z = 4.123456;
      w = 5.123456;

      timer.start();
      double sum = 0.0;

      for (std::size_t r = 0; r < rounds; ++r)
      {
         sum += expression.value();
         std::swap(a,b);
         std::swap(x,y);
      }

      timer.stop();

      printf("Expression %3d of %3d %9.3f ns\t%10d ns\t(%30.10f)  '%s'\n",
             static_cast<int>(i + 1),
             static_cast<int>(expression_list.size()),
             (timer.time() * 1000000000.0) / (1.0 * rounds),
             static_cast<int>(timer.time() * 1000000000.0),
             sum,
             expr_str_list[i].c_str());

      fflush(stdout);

      single_eval_total_time += (timer.time() * 1000000000.0) / (1.0 * rounds);
   }

   total_timer.stop();

   printf("[*] Number Of Evals:        %15.0f\n",
          rounds * (expression_list.size() * 1.0));

   printf("[*] Total Time:             %9.3fsec\n",
          total_timer.time());

   printf("[*] Total Single Eval Time: %9.3fms\n",
          single_eval_total_time / 1000000.0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1568, %rsp           # imm = 0x1568
movq %rsi, %r12
movq %rdi, %r14
leaq 0x2a0(%rsp), %r15
movq %r15, %rdi
callq 0x117ed4
movq %r14, %rdi
movq %r15, %rsi
callq 0x1166dd
testq %rax, %rax
je 0x1152a5
leaq 0x250(%rsp), %rdi
callq 0x117cbe
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x115b2e
movabsq $0x3ff199999999999a, %rax # imm = 0x3FF199999999999A
movq %rax, 0x28(%rsp)
movabsq $0x400199999999999a, %rax # imm = 0x400199999999999A
movq %rax, 0x20(%rsp)
movabsq $0x400a666666666666, %rax # imm = 0x400A666666666666
movq %rax, 0x60(%rsp)
movabsq $0x4000fcd67fd3f5b6, %rax # imm = 0x4000FCD67FD3F5B6
movq %rax, 0x18(%rsp)
movabsq $0x4008fcd67fd3f5b6, %rax # imm = 0x4008FCD67FD3F5B6
movq %rax, 0x10(%rsp)
movabsq $0x40107e6b3fe9fadb, %rax # imm = 0x40107E6B3FE9FADB
movq %rax, 0x58(%rsp)
movabsq $0x40147e6b3fe9fadb, %rax # imm = 0x40147E6B3FE9FADB
movq %rax, 0x50(%rsp)
leaq 0xd88(%rsp), %rdi
callq 0x1167bc
leaq 0x1341af(%rip), %rsi    # 0x248b57
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x28(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132a61(%rip), %rsi    # 0x24744b
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x20(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1326d9(%rip), %rsi    # 0x247105
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x60(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1329b2(%rip), %rsi    # 0x247420
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x18(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1328be(%rip), %rsi    # 0x24736e
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x10(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132e4e(%rip), %rsi    # 0x247940
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x58(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132e3a(%rip), %rsi    # 0x24796e
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x50(%rsp), %rdx
xorl %ecx, %ecx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
andw $0x0, 0x230(%rsp)
andq $0x0, 0x238(%rsp)
orq $-0x1, 0x240(%rsp)
andw $0x0, 0x208(%rsp)
movq $0x3, 0x248(%rsp)
andq $0x0, 0x210(%rsp)
leaq 0x25d121(%rip), %rax    # 0x371cd0
orq $-0x1, 0x218(%rsp)
movq %rax, 0x228(%rsp)
andw $0x0, 0x1e0(%rsp)
movq $0x4, 0x220(%rsp)
andq $0x0, 0x1e8(%rsp)
leaq 0x25d1f3(%rip), %rax    # 0x371dd8
orq $-0x1, 0x1f0(%rsp)
movq %rax, 0x200(%rsp)
andw $0x0, 0x1b8(%rsp)
movq $0x5, 0x1f8(%rsp)
andq $0x0, 0x1c0(%rsp)
leaq 0x25d29d(%rip), %rax    # 0x371eb8
orq $-0x1, 0x1c8(%rsp)
movq %rax, 0x1d8(%rsp)
andw $0x0, 0x190(%rsp)
movq $0x6, 0x1d0(%rsp)
andq $0x0, 0x198(%rsp)
leaq 0x25d347(%rip), %rax    # 0x371f98
orq $-0x1, 0x1a0(%rsp)
movq %rax, 0x1b0(%rsp)
andw $0x0, 0x168(%rsp)
movq $0x7, 0x1a8(%rsp)
andq $0x0, 0x170(%rsp)
leaq 0x25d3f1(%rip), %rax    # 0x372078
orq $-0x1, 0x178(%rsp)
movq %rax, 0x188(%rsp)
andw $0x0, 0x140(%rsp)
movq $0x8, 0x180(%rsp)
andq $0x0, 0x148(%rsp)
leaq 0x25d49b(%rip), %rax    # 0x372158
orq $-0x1, 0x150(%rsp)
movq %rax, 0x160(%rsp)
andw $0x0, 0x118(%rsp)
movq $0x9, 0x158(%rsp)
andq $0x0, 0x120(%rsp)
leaq 0x25d545(%rip), %rax    # 0x372238
orq $-0x1, 0x128(%rsp)
movq %rax, 0x138(%rsp)
andw $0x0, 0xf0(%rsp)
movq $0xa, 0x130(%rsp)
andq $0x0, 0xf8(%rsp)
leaq 0x25d5ef(%rip), %rax    # 0x372318
orq $-0x1, 0x100(%rsp)
movq %rax, 0x110(%rsp)
andw $0x0, 0xc8(%rsp)
movq $0xb, 0x108(%rsp)
andq $0x0, 0xd0(%rsp)
leaq 0x25d699(%rip), %rax    # 0x3723f8
orq $-0x1, 0xd8(%rsp)
movq %rax, 0xe8(%rsp)
andw $0x0, 0xa0(%rsp)
movq $0xc, 0xe0(%rsp)
andq $0x0, 0xa8(%rsp)
leaq 0x25d743(%rip), %rax    # 0x3724d8
orq $-0x1, 0xb0(%rsp)
movq %rax, 0xc0(%rsp)
andw $0x0, 0x78(%rsp)
movq $0xd, 0xb8(%rsp)
andq $0x0, 0x80(%rsp)
leaq 0x25d7f0(%rip), %rax    # 0x3725b8
orq $-0x1, 0x88(%rsp)
movq %rax, 0x98(%rsp)
movq $0xe, 0x90(%rsp)
leaq 0x25d8ac(%rip), %rax    # 0x372698
movq %rax, 0x70(%rsp)
leaq 0x132655(%rip), %rsi    # 0x24744d
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x228(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132619(%rip), %rsi    # 0x247454
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x200(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1325dd(%rip), %rsi    # 0x24745b
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1325a1(%rip), %rsi    # 0x247462
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132565(%rip), %rsi    # 0x247469
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x188(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132529(%rip), %rsi    # 0x247470
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1324ed(%rip), %rsi    # 0x247477
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x138(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1324b1(%rip), %rsi    # 0x24747e
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132475(%rip), %rsi    # 0x247485
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x132439(%rip), %rsi    # 0x24748c
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1323fd(%rip), %rsi    # 0x247493
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x1323c1(%rip), %rsi    # 0x24749a
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x116be2
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0xd88(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x11e9ca
leaq 0x1335bb(%rip), %rsi    # 0x2486e6
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x115af2
leaq 0x2c21d9(%rip), %rdx    # 0x3d7320
leaq 0x8(%rsp), %rdi
leaq 0x460(%rsp), %rsi
pushq $0x1
popq %rcx
callq 0x115b78
leaq 0x460(%rsp), %rdi
callq 0x112628
leaq 0x8(%rsp), %rdi
callq 0x115b52
leaq 0x2f0(%rsp), %rdi
pushq $0x7f
popq %rsi
callq 0x116c42
leaq 0x460(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x116d52
leaq 0x2f0(%rsp), %r15
movq %r15, %rdi
callq 0x11736a
leaq 0x2a0(%rsp), %rbx
leaq 0x440(%rsp), %rbp
xorl %r13d, %r13d
movq %rbx, %rdi
callq 0x1173b2
cmpq %rax, %r13
jae 0x1152bb
movq %r15, %rdi
callq 0x1173c2
movq %r12, %r14
movq %r15, %rdi
leaq 0x8(%rsp), %rsi
callq 0x117422
leaq 0x2b0(%rsp), %rdi
movq %r13, %rsi
callq 0x17d2fa
leaq 0x460(%rsp), %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x11747e
movl %eax, %r12d
testb %al, %al
je 0x115220
leaq 0x250(%rsp), %rdi
movq %r15, %rsi
callq 0x117954
jmp 0x11527c
movq %rbx, %r15
movq %rbp, %rbx
movq %rbp, %rdi
leaq 0x460(%rsp), %rsi
callq 0x117900
movq 0x440(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x2b0(%rsp), %rdi
movq %r13, %rsi
callq 0x17d2fa
movq (%rax), %rdx
leaq 0x132244(%rip), %rdi    # 0x2474a1
movq 0x30(%rsp), %rsi
xorl %eax, %eax
callq 0x112080
movq %rbx, %rdi
callq 0x112628
movq %r15, %rbx
leaq 0x2f0(%rsp), %r15
movq %r15, %rdi
callq 0x11797e
incq %r13
testb %r12b, %r12b
movq %r14, %r12
jne 0x1151bb
leaq 0x460(%rsp), %rdi
callq 0x117994
jmp 0x1155dc
movq (%r14), %rsi
leaq 0x132173(%rip), %rdi    # 0x247422
xorl %eax, %eax
callq 0x112080
jmp 0x115600
leaq 0x460(%rsp), %r14
movq %r14, %rdi
callq 0x117994
xorl %r13d, %r13d
movb %r13b, (%r14)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x8(%r14)
movupd %xmm0, 0x18(%r14)
leaq 0x2f0(%rsp), %r15
movb %r13b, (%r15)
movupd %xmm0, 0x8(%r15)
movupd %xmm0, 0x18(%r15)
leaq 0x460(%rsp), %rdi
callq 0x117ace
xorpd %xmm0, %xmm0
movsd %xmm0, 0x40(%rsp)
leaq 0x250(%rsp), %rbp
movq %rbp, %rdi
callq 0x115d28
cmpq %rax, %r13
jae 0x11552d
leaq 0x260(%rsp), %rdi
movq %r13, 0x68(%rsp)
movq %r13, %rsi
callq 0x11d870
movq %rax, %r14
movabsq $0x3ff199999999999a, %rax # imm = 0x3FF199999999999A
movq %rax, 0x28(%rsp)
movabsq $0x400199999999999a, %rax # imm = 0x400199999999999A
movq %rax, 0x20(%rsp)
movabsq $0x400a666666666666, %rax # imm = 0x400A666666666666
movq %rax, 0x60(%rsp)
movabsq $0x4000fcd67fd3f5b6, %rax # imm = 0x4000FCD67FD3F5B6
movq %rax, 0x18(%rsp)
movabsq $0x4008fcd67fd3f5b6, %rax # imm = 0x4008FCD67FD3F5B6
movq %rax, 0x10(%rsp)
movabsq $0x40107e6b3fe9fadb, %rax # imm = 0x40107E6B3FE9FADB
movq %rax, 0x58(%rsp)
movabsq $0x40147e6b3fe9fadb, %rax # imm = 0x40147E6B3FE9FADB
movq %rax, 0x50(%rsp)
movq %r15, %rdi
callq 0x117ace
xorpd %xmm0, %xmm0
movsd %xmm0, 0x30(%rsp)
xorl %r13d, %r13d
cmpq (%r12), %r13
jae 0x115416
movq (%r14), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd 0x30(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x30(%rsp)
movsd 0x28(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
movsd %xmm1, 0x28(%rsp)
movsd %xmm0, 0x20(%rsp)
movsd 0x18(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd %xmm1, 0x18(%rsp)
movsd %xmm0, 0x10(%rsp)
incq %r13
jmp 0x1153be
movq %r12, %rbx
movq %r15, %rdi
callq 0x117adc
movq %rbp, %r12
movq %rbp, %rdi
callq 0x115d28
movq %rax, %rbp
movq %r15, %rdi
callq 0x117af0
movsd %xmm0, 0x48(%rsp)
movq (%rbx), %r13
movq %r15, %rdi
callq 0x117af0
movq 0x68(%rsp), %rsi
leaq 0x1(%rsi), %r14
movsd 0x12cc1f(%rip), %xmm3   # 0x242078
movsd 0x48(%rsp), %xmm1
mulsd %xmm3, %xmm1
movapd %xmm1, %xmm4
movq %r13, %xmm1
punpckldq 0x12cb9c(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x12cba4(%rip), %xmm1   # 0x242020
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm4
movsd %xmm4, 0x48(%rsp)
mulsd %xmm3, %xmm0
cvttsd2si %xmm0, %r13d
leaq 0x2b0(%rsp), %rdi
callq 0x17d2fa
movq (%rax), %r8
leaq 0x132031(%rip), %rdi    # 0x2474e3
movl %r14d, %esi
movl %ebp, %edx
movsd 0x48(%rsp), %xmm0
movl %r13d, %ecx
movsd 0x30(%rsp), %xmm1
movb $0x2, %al
callq 0x112080
movq 0x2c1b0c(%rip), %rax    # 0x3d6fe0
movq (%rax), %rdi
callq 0x1122a0
movq %r15, %rdi
callq 0x117af0
mulsd 0x12cb8c(%rip), %xmm0   # 0x242078
movsd (%rbx), %xmm1
unpcklps 0x12cb19(%rip), %xmm1   # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x12cb21(%rip), %xmm1   # 0x242020
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movsd 0x40(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x40(%rsp)
movq %r14, %r13
movq %r12, %rbp
movq %rbx, %r12
jmp 0x115317
leaq 0x460(%rsp), %r14
movq %r14, %rdi
callq 0x117adc
movsd (%r12), %xmm0
movsd 0x12cac5(%rip), %xmm1   # 0x242010
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
subpd 0x12caca(%rip), %xmm0   # 0x242020
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm1, 0x30(%rsp)
leaq 0x250(%rsp), %rdi
callq 0x115d28
movq %rax, %xmm1
punpckldq 0x12ca8e(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x12ca96(%rip), %xmm1   # 0x242020
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x30(%rsp), %xmm0
leaq 0x131f78(%rip), %rdi    # 0x24751b
movb $0x1, %al
callq 0x112080
movq %r14, %rdi
callq 0x117af0
leaq 0x131f86(%rip), %rdi    # 0x24753f
movb $0x1, %al
callq 0x112080
movsd 0x40(%rsp), %xmm0
divsd 0x12caa2(%rip), %xmm0   # 0x242070
leaq 0x131f90(%rip), %rdi    # 0x247565
movb $0x1, %al
callq 0x112080
leaq 0xd88(%rsp), %rdi
callq 0x117b24
leaq 0x8(%rsp), %rdi
callq 0x11669c
leaq 0x250(%rsp), %rdi
callq 0x116650
leaq 0x2a0(%rsp), %rdi
callq 0x117c72
addq $0x1568, %rsp           # imm = 0x1568
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1156eb
movq %rax, %rbx
leaq 0x2f0(%rsp), %rdi
callq 0x11736a
jmp 0x1156ee
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
jmp 0x11569c
jmp 0x1156eb
movq %rax, %rbx
leaq 0x460(%rsp), %rdi
callq 0x112628
jmp 0x1156ee
jmp 0x1156eb
movq %rax, %rbx
jmp 0x1156fb
movq %rax, %rbx
jmp 0x115705
jmp 0x1156bc
movq %rax, %rbx
jmp 0x115712
jmp 0x1156eb
jmp 0x1156ca
movq %rax, %rbx
jmp 0x1156da
movq %rax, %rbx
leaq 0x2f0(%rsp), %rdi
callq 0x11797e
leaq 0x460(%rsp), %rdi
callq 0x117994
jmp 0x1156ee
jmp 0x1156eb
movq %rax, %rbx
leaq 0xd88(%rsp), %rdi
callq 0x117b24
leaq 0x8(%rsp), %rdi
callq 0x11669c
leaq 0x250(%rsp), %rdi
callq 0x116650
leaq 0x2a0(%rsp), %rdi
callq 0x117c72
movq %rbx, %rdi
callq 0x112370