// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk-extras/exprtk_repl.cpp
// Function: expression_processor<double>::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void process(std::string program)
   {
      program = trim_whitespace(program);

      if (program.empty())
         return;

      setup_symbol_table();

      expression_t expression;
      expression.register_symbol_table(symbol_table_);
      expression.register_symbol_table(function_symbol_table_);

      exprtk::timer compile_timer;
      compile_timer.start();

      if (enable_usr_)
         parser_.enable_unknown_symbol_resolver();
      else
         parser_.disable_unknown_symbol_resolver();

      if (disable_local_vardef_)
         parser_.settings().disable_local_vardef();
      else
         parser_.settings().enable_local_vardef();

      parser_.dec().collect_variables() = symbol_dump_;
      parser_.dec().collect_functions() = symbol_dump_;

      parser_.dec().collect_assignments() = assignment_dump_;

      if (!parser_.compile(program,expression))
      {
         printf("Error: %s\tExpression:%c%s\n",
                parser_.error().c_str(),
                ((std::string::npos != program.find_first_of('\n')) ? '\n' : ' '),
                ((program.size() < 200) ? program.c_str() : "....."));

         for (std::size_t i = 0; i < parser_.error_count(); ++i)
         {
            error_t error = parser_.get_error(i);

            printf("Err No.: %02d  Pos: %02d  Type: [%14s] Msg: %s\n",
                   static_cast<unsigned int>(i),
                   static_cast<unsigned int>(error.token.position),
                   exprtk::parser_error::to_str(error.mode).c_str(),
                   error.diagnostic.c_str());

            if (
                 (0 == i) &&
                 exprtk::parser_error::update_error(error,program)
               )
            {
               printf("Error (line: %d column: %d)\n",
                      static_cast<unsigned int>(error.line_no),
                      static_cast<unsigned int>(error.column_no));

               printf("%s \n",error.error_line.c_str());
               printf("%s^\n",std::string(error.column_no,'~').c_str());
            }
         }

         return;
      }

      compile_timer.stop();

      if (display_total_compile_time_)
      {
         printf("\nCompile time: %6.3fms\n",compile_timer.time() * 1000.0);
      }

      if (batch_runs_cnt_)
      {
         std::vector<double> timings(batch_runs_cnt_,0.0);

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

         T result = T(0);

         total_timer.start();

         for (std::size_t i = 0; i < batch_runs_cnt_; ++i)
         {
            timer.start();

            result = expression.value();

            timer.stop();

            timings[i] = timer.time() * 1000.0;
         }

         total_timer.stop();

         printf("\nResult: %15.9f\n",result);

         std::sort(timings.begin(),timings.end());

         printf("\nRuns: %4d  Time min: %7.3fms   max: %7.3fms   avg: %7.3fms   tot: %7.3fms   90%%:%7.3fms\n",
                static_cast<unsigned int>(batch_runs_cnt_),
                timings.front(),
                timings.back (),
                std::accumulate(timings.begin(),timings.end(),0.0) / timings.size(),
                total_timer.time() * 1000.0,
                timings[static_cast<int>(timings.size() * 0.90)]);

         return;
      }

      exprtk::timer timer;
      timer.start();

      const T result = expression.value();

      timer.stop();

      if (expression.results().count())
      {
         print_results(expression.results());
      }

      printf("\nResult: %15.9f\n",result);

      if (display_total_time_)
      {
         printf("\nTotal time: %6.3fms\n",timer.time() * 1000.0);
      }

      if (symbol_dump_)
      {
         symbol_list_t symbol_list;

         parser_.dec().symbols(symbol_list);

         printf("------ Symbols ------\n");
         perform_symbol_dump(symbol_list);
         printf("---------------------\n");
      }

      if (assignment_dump_)
      {
         symbol_list_t assignment_list;

         parser_.dec().assignment_symbols(assignment_list);

         printf("---- Assignments ----\n");
         perform_symbol_dump(assignment_list);
         printf("---------------------\n");
      }
   }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movq %rsi, %r13
movq %rdi, %rbx
leaq 0x120(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rsi), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq 0x110(%rsp), %r14
movq %r14, %rdi
callq 0x2bf986
leaq 0x68(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2be698
leaq 0x68(%rsp), %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x11c320
movq (%r14), %rdi
leaq 0x78(%rsp), %r15
cmpq %r15, %rdi
je 0x1211be
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0x110(%rsp), %rdi
cmpq %r12, %rdi
je 0x1211db
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x11c0d0
cmpq $0x0, 0x8(%r13)
je 0x121c83
movq %rbx, %rdi
callq 0x2bfa1c
leaq 0x48(%rsp), %rdi
callq 0x193e3a
leaq 0x10(%rbx), %rsi
leaq 0x50(%rsp), %r14
movq (%r14), %rax
movq 0x8(%r14), %rcx
movq %rcx, %rdx
subq %rax, %rdx
je 0x121235
sarq $0x3, %rdx
movq (%rsi), %rdi
cmpq $0x1, %rdx
adcq $0x0, %rdx
movq %rax, %r8
cmpq %rsi, %r8
je 0x121247
cmpq (%r8), %rdi
je 0x121247
addq $0x8, %r8
decq %rdx
jne 0x121222
movq %r14, %rdi
callq 0x199260
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
leaq 0x18(%rbx), %rsi
subq %rax, %rcx
je 0x121272
sarq $0x3, %rcx
movq (%rsi), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
cmpq %rsi, %rax
je 0x12127a
cmpq (%rax), %rdx
je 0x12127a
addq $0x8, %rax
decq %rcx
jne 0x12125f
movq %r14, %rdi
callq 0x199260
leaq 0x138(%rsp), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, 0x10(%rdi)
movupd %xmm0, (%rdi)
movb $0x1, -0x8(%rdi)
xorl %esi, %esi
callq 0x11c2f0
movb 0x5(%rbx), %al
leaq 0x400(%rbx), %rcx
movb %al, 0x3e8(%rbx)
movq %rcx, 0x3f8(%rbx)
movb 0x6(%rbx), %al
movb %al, 0xfa(%rbx)
leaq 0x20(%rbx), %rdi
movb 0x1(%rbx), %al
movb 0x2(%rbx), %cl
movb %al, 0x2d8(%rbx)
movb %al, 0x2d9(%rbx)
movb %cl, 0x2da(%rbx)
leaq 0x48(%rsp), %rdx
movq %r13, %rsi
callq 0x194b98
testb %al, %al
je 0x12132b
leaq 0x148(%rsp), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x11c2f0
movb $0x0, -0x18(%r14)
cmpb $0x1, 0x4(%rbx)
jne 0x1216a9
movq 0x148(%rsp), %rax
subq 0x138(%rsp), %rax
jge 0x121653
movsd 0x1a0ce2(%rip), %xmm0   # 0x2c2008
jmp 0x12169b
movq 0x338(%rbx), %r8
movabsq $-0x30c30c30c30c30c3, %rdx # imm = 0xCF3CF3CF3CF3CF3D
cmpq %r8, 0x358(%rbx)
je 0x121382
movq 0x350(%rbx), %rsi
movq %r8, %rcx
subq 0x340(%rbx), %rcx
movq %rcx, %rax
sarq $0x3, %rax
imulq %rdx, %rax
cmpq $-0xa7, %rcx
jl 0x1213ac
cmpq $0x3, %rax
jb 0x1213d0
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x1213c2
movq %r15, 0x68(%rsp)
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
movq %rax, 0x78(%rsp)
movq $0x8, 0x70(%rsp)
movb $0x0, 0x80(%rsp)
movq %r15, %r14
jmp 0x1213ed
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 0x68(%rsp), %rdi
movq %r15, (%rdi)
movq 0x38(%r8), %rsi
movq 0x40(%r8), %rdx
addq %rsi, %rdx
callq 0x2bf986
movq 0x68(%rsp), %r14
movl $0xa, %ebp
movq %r13, %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x11c650
cmpq $-0x1, %rax
movl $0x20, %edx
cmovnel %ebp, %edx
cmpq $0xc7, 0x8(%r13)
ja 0x12141d
movq (%r13), %rcx
jmp 0x121424
leaq 0x1aa620(%rip), %rcx    # 0x2cba44
movq %r13, 0x28(%rsp)
leaq 0x1aa5f9(%rip), %rdi    # 0x2cba29
movq %r14, %rsi
xorl %eax, %eax
callq 0x11c090
movq 0x68(%rsp), %rdi
cmpq %r15, %rdi
je 0x121451
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x11c0d0
leaq 0x338(%rbx), %r15
leaq 0x10(%rsp), %r13
leaq 0x68(%rsp), %r12
xorl %r14d, %r14d
movq 0x370(%rbx), %rax
movq %rax, %rcx
subq 0x350(%rbx), %rcx
sarq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
leaq (%rcx,%rcx,2), %rax
movq 0x348(%rbx), %rcx
movq 0x358(%rbx), %rdx
subq 0x360(%rbx), %rdx
sarq $0x3, %rdx
movabsq $-0x30c30c30c30c30c3, %rsi # imm = 0xCF3CF3CF3CF3CF3D
imulq %rsi, %rdx
addq %rax, %rdx
subq 0x338(%rbx), %rcx
sarq $0x3, %rcx
imulq %rsi, %rcx
addq %rdx, %rcx
cmpq %rcx, %r14
jae 0x121c79
movq %r15, %rdi
movq %r14, %rsi
callq 0x2bd432
movq %r12, %rdi
movq %rax, %rsi
callq 0x197254
movq 0x90(%rsp), %rbp
movl 0x98(%rsp), %esi
movq %rsp, %rdi
callq 0x2bfb04
movq (%rsp), %rcx
movq 0xa0(%rsp), %r8
leaq 0x1aa53f(%rip), %rdi    # 0x2cba4a
movl %r14d, %esi
movl %ebp, %edx
xorl %eax, %eax
callq 0x11c090
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x12152d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11c0d0
testq %r14, %r14
jne 0x1215ba
movq %r12, %rdi
movq 0x28(%rsp), %rsi
callq 0x2bfbb1
testb %al, %al
je 0x1215ba
movl 0x100(%rsp), %esi
movl 0x108(%rsp), %edx
leaq 0x1aa51e(%rip), %rdi    # 0x2cba7a
xorl %eax, %eax
callq 0x11c090
movq 0xe0(%rsp), %rsi
leaq 0x1aa525(%rip), %rdi    # 0x2cba97
xorl %eax, %eax
callq 0x11c090
movq 0x108(%rsp), %rsi
movq %r13, (%rsp)
movq %rsp, %rdi
movl $0x7e, %edx
callq 0x11c360
movq (%rsp), %rsi
leaq 0x1aa4ff(%rip), %rdi    # 0x2cba9c
xorl %eax, %eax
callq 0x11c090
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x1215ba
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x1215df
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x121604
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0x121629
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x12164b
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11c0d0
incq %r14
jmp 0x121465
imulq $0xf4240, %rax, %rax    # imm = 0xF4240
addq 0x150(%rsp), %rax
subq 0x140(%rsp), %rax
movq %rax, %xmm1
punpckldq 0x1a0a79(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a0a81(%rip), %xmm1   # 0x2c2100
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x1a097d(%rip), %xmm0   # 0x2c2010
mulsd 0x1a097d(%rip), %xmm0   # 0x2c2018
leaq 0x1aa3ff(%rip), %rdi    # 0x2cbaa1
movb $0x1, %al
callq 0x11c090
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x1217b4
leaq 0x68(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x30(%rsp), %rdi
movq %rsp, %rcx
callq 0x198048
leaq 0x70(%rsp), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, 0x10(%rdi)
movupd %xmm0, (%rdi)
movupd %xmm0, 0x18(%rsp)
movupd %xmm0, 0x8(%rsp)
movb $0x1, -0x8(%rdi)
xorl %esi, %esi
callq 0x11c2f0
cmpq $0x0, 0x8(%rbx)
je 0x121b1b
leaq 0x8(%rsp), %r14
leaq 0x18(%rsp), %r15
xorl %r12d, %r12d
movb $0x1, (%rsp)
movq %r14, %rdi
xorl %esi, %esi
callq 0x11c2f0
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd %xmm0, 0x28(%rsp)
movq %r15, %rdi
xorl %esi, %esi
callq 0x11c2f0
movb $0x0, (%rsp)
movq 0x18(%rsp), %rax
movsd 0x1a08ba(%rip), %xmm0   # 0x2c2008
subq 0x8(%rsp), %rax
jl 0x121797
imulq $0xf4240, %rax, %rax    # imm = 0xF4240
addq 0x20(%rsp), %rax
subq 0x10(%rsp), %rax
movq %rax, %xmm1
punpckldq 0x1a097d(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a0985(%rip), %xmm1   # 0x2c2100
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x1a0881(%rip), %xmm0   # 0x2c2010
mulsd 0x1a0881(%rip), %xmm0   # 0x2c2018
movq 0x30(%rsp), %rax
movsd %xmm0, (%rax,%r12,8)
incq %r12
cmpq 0x8(%rbx), %r12
jb 0x121710
jmp 0x121b25
leaq 0x70(%rsp), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, 0x10(%rdi)
movupd %xmm0, (%rdi)
movb $0x1, -0x8(%rdi)
xorl %esi, %esi
callq 0x11c2f0
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd %xmm0, 0x28(%rsp)
leaq 0x80(%rsp), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x11c2f0
movb $0x0, -0x18(%r14)
movq 0x48(%rsp), %rax
movq 0x28(%rax), %rax
testq %rax, %rax
jne 0x121820
movb 0x30ffd7(%rip), %al     # 0x4317e8
testb %al, %al
je 0x121c95
leaq 0x30ffa8(%rip), %rax    # 0x4317c8
cmpb $0x1, (%rax)
jne 0x12185a
movq 0x10(%rax), %rcx
cmpq 0x8(%rax), %rcx
je 0x12185a
movq 0x48(%rsp), %rax
movq 0x28(%rax), %rsi
testq %rsi, %rsi
jne 0x121852
movb 0x30ffa5(%rip), %al     # 0x4317e8
testb %al, %al
je 0x121ca8
leaq 0x30ff76(%rip), %rsi    # 0x4317c8
movq %rbx, %rdi
callq 0x2bfcd4
leaq 0x1aa258(%rip), %rdi    # 0x2cbab9
movsd 0x28(%rsp), %xmm0
movb $0x1, %al
callq 0x11c090
cmpb $0x1, 0x3(%rbx)
jne 0x1218e5
movsd 0x1a078c(%rip), %xmm0   # 0x2c2008
cmpb $0x0, 0x68(%rsp)
jne 0x1218d7
movq 0x80(%rsp), %rax
subq 0x70(%rsp), %rax
jl 0x1218d7
imulq $0xf4240, %rax, %rax    # imm = 0xF4240
addq 0x88(%rsp), %rax
subq 0x78(%rsp), %rax
movq %rax, %xmm1
punpckldq 0x1a083d(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x1a0845(%rip), %xmm1   # 0x2c2100
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x1a0741(%rip), %xmm0   # 0x2c2010
mulsd 0x1a0741(%rip), %xmm0   # 0x2c2018
leaq 0x1aa247(%rip), %rdi    # 0x2cbb25
movb $0x1, %al
callq 0x11c090
cmpb $0x1, 0x1(%rbx)
jne 0x121a02
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
cmpb $0x0, 0x2d8(%rbx)
jne 0x121917
cmpb $0x1, 0x2d9(%rbx)
jne 0x1219d7
movq 0x2e0(%rbx), %r14
movq 0x2e8(%rbx), %r15
cmpq %r15, %r14
je 0x1219d7
xorl %r12d, %r12d
movabsq $-0x3333333333333333, %r13 # imm = 0xCCCCCCCCCCCCCCCD
leaq (%r12,%r12,4), %rax
cmpq $0x0, 0x8(%r14,%rax,8)
je 0x121978
leaq (%r14,%rax,8), %r14
xorl %r15d, %r15d
movq (%r14), %rbp
movsbl (%rbp,%r15), %edi
callq 0x11c4f0
movb %al, (%rbp,%r15)
incq %r15
cmpq 0x8(%r14), %r15
jb 0x12194e
movq 0x2e0(%rbx), %r14
movq 0x2e8(%rbx), %r15
incq %r12
movq %r15, %rax
subq %r14, %rax
sarq $0x3, %rax
imulq %r13, %rax
cmpq %rax, %r12
jb 0x12193b
cmpq %r15, %r14
je 0x1219c4
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c0377
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c0454
movq 0x2e0(%rbx), %r14
movq 0x2e8(%rbx), %r15
cmpq %r15, %r14
je 0x1219d7
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c0db8
leaq 0x1aa28f(%rip), %rdi    # 0x2cbc6d
callq 0x11c620
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x2bff30
leaq 0x1aa2fd(%rip), %rdi    # 0x2cbcf2
callq 0x11c620
movq %rsp, %rdi
callq 0x183430
cmpb $0x1, 0x2(%rbx)
jne 0x121c79
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
cmpb $0x1, 0x2da(%rbx)
jne 0x121aeb
movq 0x2f8(%rbx), %r14
movq 0x300(%rbx), %r15
cmpq %r15, %r14
je 0x121aeb
xorl %r12d, %r12d
movabsq $-0x3333333333333333, %r13 # imm = 0xCCCCCCCCCCCCCCCD
leaq (%r12,%r12,4), %rax
cmpq $0x0, 0x8(%r14,%rax,8)
je 0x121a8c
leaq (%r14,%rax,8), %r14
xorl %r15d, %r15d
movq (%r14), %rbp
movsbl (%rbp,%r15), %edi
callq 0x11c4f0
movb %al, (%rbp,%r15)
incq %r15
cmpq 0x8(%r14), %r15
jb 0x121a62
movq 0x2f8(%rbx), %r14
movq 0x300(%rbx), %r15
incq %r12
movq %r15, %rax
subq %r14, %rax
sarq $0x3, %rax
imulq %r13, %rax
cmpq %rax, %r12
jb 0x121a4f
cmpq %r15, %r14
je 0x121ad8
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c0377
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c0454
movq 0x2f8(%rbx), %r14
movq 0x300(%rbx), %r15
cmpq %r15, %r14
je 0x121aeb
movq %rsp, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c0db8
leaq 0x1aa191(%rip), %rdi    # 0x2cbc83
callq 0x11c620
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x2bff30
leaq 0x1aa1e9(%rip), %rdi    # 0x2cbcf2
callq 0x11c620
movq %rsp, %rdi
callq 0x183430
jmp 0x121c79
xorpd %xmm0, %xmm0
movsd %xmm0, 0x28(%rsp)
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x11c2f0
leaq 0x1a9f7e(%rip), %rdi    # 0x2cbab9
movsd 0x28(%rsp), %xmm0
movb $0x1, %al
callq 0x11c090
movq 0x30(%rsp), %r14
movq 0x38(%rsp), %r15
cmpq %r15, %r14
je 0x121b8e
movq %r15, %rax
subq %r14, %rax
sarq $0x3, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x2bffbf
movq %r14, %rdi
movq %r15, %rsi
callq 0x2c00b8
movq 0x30(%rsp), %r14
movq 0x38(%rsp), %r15
xorpd %xmm2, %xmm2
cmpq %r15, %r14
je 0x121ba7
movq %r14, %rax
addsd (%rax), %xmm2
addq $0x8, %rax
cmpq %r15, %rax
jne 0x121b9a
movq 0x8(%rbx), %rsi
movsd (%r14), %xmm0
movsd -0x8(%r15), %xmm1
subq %r14, %r15
sarq $0x3, %r15
movq 0x80(%rsp), %rax
subq 0x70(%rsp), %rax
jge 0x121bd6
movsd 0x1a0434(%rip), %xmm3   # 0x2c2008
jmp 0x121c1b
imulq $0xf4240, %rax, %rax    # imm = 0xF4240
addq 0x88(%rsp), %rax
subq 0x78(%rsp), %rax
movq %rax, %xmm4
punpckldq 0x1a04f9(%rip), %xmm4 # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1]
subpd 0x1a0501(%rip), %xmm4   # 0x2c2100
movapd %xmm4, %xmm3
unpckhpd %xmm4, %xmm3            # xmm3 = xmm3[1],xmm4[1]
addsd %xmm4, %xmm3
mulsd 0x1a03fd(%rip), %xmm3   # 0x2c2010
mulsd 0x1a03fd(%rip), %xmm3   # 0x2c2018
movq %r15, %xmm4
punpckldq 0x1a04c8(%rip), %xmm4 # xmm4 = xmm4[0],mem[0],xmm4[1],mem[1]
subpd 0x1a04d0(%rip), %xmm4   # 0x2c2100
movapd %xmm4, %xmm5
unpckhpd %xmm4, %xmm5            # xmm5 = xmm5[1],xmm4[1]
addsd %xmm4, %xmm5
divsd %xmm5, %xmm2
mulsd 0x1a03d8(%rip), %xmm5   # 0x2c2020
cvttsd2si %xmm5, %eax
cltq
movsd (%r14,%rax,8), %xmm4
leaq 0x1a9e6f(%rip), %rdi    # 0x2cbaca
movb $0x5, %al
callq 0x11c090
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x121c79
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x11c0d0
leaq 0x48(%rsp), %rdi
callq 0x183766
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rsp, %r14
movq %r14, %rdi
callq 0x11c720
movq (%r14), %rax
jmp 0x121820
movq %rsp, %r14
movq %r14, %rdi
callq 0x11c77f
movq (%r14), %rsi
jmp 0x121852
jmp 0x121cbd
movq %rax, %rbx
movq %rsp, %rdi
callq 0x183430
jmp 0x121d2a
jmp 0x121d18
jmp 0x121d18
jmp 0x121d18
jmp 0x121cfc
jmp 0x121d18
jmp 0x121d18
movq %rax, %rbx
movq 0x110(%rsp), %rdi
cmpq %r12, %rdi
je 0x121d34
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x11c0d0
jmp 0x121d34
jmp 0x121d1d
jmp 0x121d1d
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x121d2a
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x11c0d0
jmp 0x121d2a
movq %rax, %rbx
jmp 0x121d2a
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x183368
leaq 0x48(%rsp), %rdi
callq 0x183766
movq %rbx, %rdi
callq 0x11c3c0