// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::str_vararg_node<double, exprtk::details::vararg_multi_op<double>>::str_vararg_node<std::allocator<exprtk::details::expression_node<double>*>, std::vector>(std::vector<exprtk::details::expression_node<double>*, std::allocator<exprtk::details::expression_node<double>*>> const&)
explicit str_vararg_node(const Sequence<expression_ptr,Allocator>& arg_list)
         : initialised_(false)
         , str_base_ptr_ (0)
         , str_range_ptr_(0)
         {
            construct_branch_pair(final_node_, const_cast<expression_ptr>(arg_list.back()));

            if (0 == final_node_.first)
               return;
            else if (!is_generally_string_node(final_node_.first))
               return;

            str_base_ptr_ = dynamic_cast<str_base_ptr>(final_node_.first);

            if (0 == str_base_ptr_)
               return;

            str_range_ptr_ = dynamic_cast<irange_ptr>(final_node_.first);

            if (0 == str_range_ptr_)
               return;

            if (arg_list.size() > 1)
            {
               const std::size_t arg_list_size = arg_list.size() - 1;

               arg_list_.resize(arg_list_size);

               for (std::size_t i = 0; i < arg_list_size; ++i)
               {
                  if (arg_list[i] && arg_list[i]->valid())
                  {
                     construct_branch_pair(arg_list_[i], arg_list[i]);
                  }
                  else
                  {
                     arg_list_.clear();
                     return;
                  }
               }

               initialised_ = true;
            }

            initialised_ &= str_base_ptr_ && str_range_ptr_;
            assert(valid());
         }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
xorl %eax, %eax
movb %al, 0x10(%rdi)
movq %rax, 0x18(%rdi)
leaq 0x28f80d(%rip), %rcx    # 0x5079b0
movq %rcx, (%rdi)
leaq 0x28f87b(%rip), %rcx    # 0x507a28
movq %rcx, 0x8(%rdi)
leaq 0x28f898(%rip), %rcx    # 0x507a50
movq %rcx, 0x20(%rdi)
leaq 0x28f8c5(%rip), %rcx    # 0x507a88
movq %rcx, 0x28(%rdi)
movb %al, 0x30(%rdi)
movq %rax, 0x38(%rdi)
movb %al, 0x40(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x48(%rdi)
movups %xmm0, 0x58(%rdi)
movq %rax, 0x68(%rdi)
movq 0x8(%rsi), %rax
movq -0x8(%rax), %r12
testq %r12, %r12
je 0x278378
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x58(%rdi), %r13
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
cmpl $0x11, %eax
jne 0x27820e
xorl %eax, %eax
jmp 0x27821e
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
cmpl $0x12, %eax
setne %al
movq %r12, 0x38(%rbx)
movb %al, 0x40(%rbx)
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
cmpl $0x21, %eax
ja 0x278367
movl %eax, %ecx
movabsq $0x388fc0000, %rdx      # imm = 0x388FC0000
btq %rcx, %rdx
jae 0x278367
leaq 0x48(%rbx), %r15
movq 0x38(%rbx), %r12
testq %r12, %r12
je 0x27835e
leaq 0x25de8a(%rip), %rsi    # 0x4d60f0
leaq 0x28f83b(%rip), %rdx    # 0x507aa8
movq %r12, %rdi
movq $-0x2, %rcx
callq 0x11e4f0
movq %rax, (%r15)
testq %rax, %rax
je 0x278378
leaq 0x25de61(%rip), %rsi    # 0x4d60f0
leaq 0x28f822(%rip), %rdx    # 0x507ab8
movq %r12, %rdi
movq $-0x2, %rcx
callq 0x11e4f0
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0x278378
movq 0x8(%r14), %r12
subq (%r14), %r12
sarq $0x3, %r12
cmpq $0x1, %r12
jbe 0x278372
decq %r12
movq %r13, (%rsp)
movq %r13, %rdi
movq %r12, %rsi
callq 0x274e4a
testq %r12, %r12
je 0x278346
xorl %ebp, %ebp
movq (%r14), %rax
movq (%rax,%rbp), %rdi
testq %rdi, %rdi
je 0x278387
movq (%rdi), %rax
callq *0x30(%rax)
movq (%rsp), %rcx
movq (%rcx), %r15
testb %al, %al
je 0x27838e
movq (%r14), %rax
movq (%rax,%rbp), %r13
testq %r13, %r13
je 0x27833d
movq (%r13), %rax
movq %r13, %rdi
callq *0x28(%rax)
cmpl $0x11, %eax
jne 0x278324
xorl %eax, %eax
jmp 0x278334
movq (%r13), %rax
movq %r13, %rdi
callq *0x28(%rax)
cmpl $0x12, %eax
setne %al
movq %r13, (%r15,%rbp,2)
movb %al, 0x8(%r15,%rbp,2)
addq $0x8, %rbp
decq %r12
jne 0x2782e0
movb $0x1, 0x30(%rbx)
cmpq $0x0, 0x48(%rbx)
setne %cl
cmpq $0x0, 0x50(%rbx)
setne %al
andb %cl, %al
jmp 0x278375
movq $0x0, (%r15)
jmp 0x278378
cmpl $0x7b, %eax
je 0x27824e
jmp 0x278378
movb 0x30(%rbx), %al
movb %al, 0x30(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rsp), %rax
movq (%rax), %r15
cmpq %r15, 0x60(%rbx)
je 0x278378
movq %r15, 0x60(%rbx)
jmp 0x278378
jmp 0x2783a2
jmp 0x2783a2
movq %r13, (%rsp)
movq %rax, %r14
movq (%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x2783bd
movq 0x68(%rbx), %rsi
subq %rdi, %rsi
callq 0x11e0c0
movq %r14, %rdi
callq 0x11e330