// File: /workspace/github_cpp_makefile_star2_O2/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
movq %rdi, %rbx
xorl %eax, %eax
movb %al, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
leaq 0x275485(%rip), %rcx    # 0x480990
movq %rcx, (%rdi)
leaq 0x2754f3(%rip), %rcx    # 0x480a08
movq %rcx, 0x8(%rdi)
leaq 0x275510(%rip), %rcx    # 0x480a30
movq %rcx, 0x20(%rdi)
leaq 0x27553d(%rip), %rcx    # 0x480a68
movq %rcx, 0x28(%rdi)
movb %al, 0x30(%rdi)
andq $0x0, 0x38(%rdi)
movq %rsi, %r15
leaq 0x38(%rdi), %r12
movb %al, 0x40(%rdi)
leaq 0x58(%rdi), %r14
xorps %xmm0, %xmm0
andq $0x0, 0x68(%rdi)
movups %xmm0, 0x48(%rdi)
movups %xmm0, 0x58(%rdi)
movq 0x8(%rsi), %rax
movq -0x8(%rax), %rsi
movq %r12, %rdi
callq 0x2085be
movq (%r12), %rdi
testq %rdi, %rdi
je 0x20b66b
callq 0x20b691
testb %al, %al
je 0x20b66b
leaq 0x48(%rbx), %r13
movq (%r12), %r12
testq %r12, %r12
je 0x20b636
leaq 0x243b39(%rip), %rsi    # 0x44f0d0
leaq 0x2754ea(%rip), %rdx    # 0x480a88
pushq $-0x2
popq %rcx
movq %r12, %rdi
callq 0x118510
movq %rax, (%r13)
testq %rax, %rax
je 0x20b66b
leaq 0x243b13(%rip), %rsi    # 0x44f0d0
leaq 0x2754d4(%rip), %rdx    # 0x480a98
pushq $-0x2
popq %rcx
movq %r12, %rdi
callq 0x118510
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0x20b66b
movq 0x8(%r15), %r12
subq (%r15), %r12
sarq $0x3, %r12
cmpq $0x1, %r12
jbe 0x20b63d
decq %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0x20858a
xorl %r13d, %r13d
xorl %ebp, %ebp
cmpq %rbp, %r12
je 0x20b652
movq (%r15), %rax
movq (%rax,%rbp,8), %rdi
testq %rdi, %rdi
je 0x20b642
movq (%rdi), %rax
callq *0x30(%rax)
testb %al, %al
je 0x20b642
movq (%r14), %rdi
addq %r13, %rdi
movq (%r15), %rax
movq (%rax,%rbp,8), %rsi
callq 0x2085be
incq %rbp
addq $0x10, %r13
jmp 0x20b600
andq $0x0, (%r13)
jmp 0x20b66b
movb 0x30(%rbx), %al
jmp 0x20b668
movq 0x58(%rbx), %rax
cmpq %rax, 0x60(%rbx)
je 0x20b66b
movq %rax, 0x60(%rbx)
jmp 0x20b66b
movb $0x1, 0x30(%rbx)
cmpq $0x0, 0x48(%rbx)
setne %cl
cmpq $0x0, 0x50(%rbx)
setne %al
andb %cl, %al
movb %al, 0x30(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x20b67e
jmp 0x20b67e
movq %rax, %rbx
movq %r14, %rdi
callq 0x208898
movq %rbx, %rdi
callq 0x118360