// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::expression_generator<double>::synthesize_vob_expression::process(exprtk::parser<double>::expression_generator<double>&, exprtk::details::operator_type const&, exprtk::details::expression_node<double>* (&) [2])
static inline expression_node_ptr process(expression_generator<Type>& expr_gen,
                                                      const details::operator_type& operation,
                                                      expression_node_ptr (&branch)[2])
            {
               const Type& v = static_cast<details::variable_node<Type>*>(branch[0])->ref();

               #ifndef exprtk_disable_enhanced_features
               if (details::is_sf3ext_node(branch[1]))
               {
                  expression_node_ptr result = error_node();

                  const bool synthesis_result =
                     synthesize_sf4ext_expression::template compile_right<vtype>
                        (expr_gen, v, operation, branch[1], result);

                  if (synthesis_result)
                  {
                     details::free_node(*expr_gen.node_allocator_,branch[1]);
                     return result;
                  }
               }
               #endif

               if (
                    (details::e_mul == operation) ||
                    (details::e_div == operation)
                  )
               {
                  if (details::is_uv_node(branch[1]))
                  {
                     typedef details::uv_base_node<Type>* uvbn_ptr_t;

                     details::operator_type o = static_cast<uvbn_ptr_t>(branch[1])->operation();

                     if (details::e_neg == o)
                     {
                        const Type& v1 = static_cast<uvbn_ptr_t>(branch[1])->v();

                        details::free_node(*expr_gen.node_allocator_,branch[1]);

                        switch (operation)
                        {
                           case details::e_mul : return expr_gen(details::e_neg,
                                                    expr_gen.node_allocator_->
                                                       template allocate_rr<typename details::
                                                          vov_node<Type,details::mul_op<Type> > >(v,v1));

                           case details::e_div : return expr_gen(details::e_neg,
                                                    expr_gen.node_allocator_->
                                                       template allocate_rr<typename details::
                                                          vov_node<Type,details::div_op<Type> > >(v,v1));

                           default             : break;
                        }
                     }
                  }
               }

               switch (operation)
               {
                  #define case_stmt(op0, op1)                                                      \
                  case op0 : return expr_gen.node_allocator_->                                     \
                                template allocate_rc<typename details::vob_node<Type,op1<Type> > > \
                                   (v, branch[1]);                                                 \

                  basic_opr_switch_statements
                  extended_opr_switch_statements
                  #undef case_stmt
                  default : return error_node();
               }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r13
movq (%rdx), %rax
movq 0x8(%rdx), %rdi
movq 0x28(%rax), %r14
addq $0x8, %r15
movq (%rdi), %rax
callq *0x28(%rax)
addl $-0x6a, %eax
cmpl $0x4, %eax
ja 0x2b9cc6
movq %rsp, %r8
movq $0x0, (%r8)
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x318598
movl %eax, %ebp
testb %al, %al
je 0x2b9cbd
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2b9cb9
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
je 0x2b9cb9
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2b9cb1
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x12, %eax
je 0x2b9cb9
movq %r15, %rdi
callq 0x1f1690
movq (%rsp), %rbx
testb %bpl, %bpl
jne 0x2ba059
movl (%r12), %eax
andl $-0x2, %eax
cmpl $0x4, %eax
jne 0x2b9dfd
movq (%r15), %rbp
testq %rbp, %rbp
je 0x2b9dfd
leaq 0x255747(%rip), %rsi    # 0x50f430
leaq 0x287fd8(%rip), %rdx    # 0x541cc8
movq %rbp, %rdi
xorl %ecx, %ecx
callq 0x1204f0
testq %rax, %rax
je 0x2b9dfd
movq (%rbp), %rax
movq %rbp, %rdi
callq *0x38(%rax)
movb $0x1, %bpl
cmpl $0x34, %eax
jne 0x2b9df4
movq (%r15), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, 0x10(%rsp)
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2b9d55
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
je 0x2b9d55
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2b9d4d
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x12, %eax
je 0x2b9d55
movq %r15, %rdi
callq 0x1f1690
movl (%r12), %eax
cmpl $0x5, %eax
je 0x2b9d9b
cmpl $0x4, %eax
jne 0x2b9df4
leaq 0xc(%rsp), %rbx
movl $0x34, (%rbx)
movl $0x30, %edi
callq 0x1200f0
movb $0x0, 0x10(%rax)
movq $0x0, 0x18(%rax)
leaq 0x256af9(%rip), %rcx    # 0x510888
movq %rcx, (%rax)
leaq 0x256b4f(%rip), %rcx    # 0x5108e8
jmp 0x2b9dcd
leaq 0xc(%rsp), %rbx
movl $0x34, (%rbx)
movl $0x30, %edi
callq 0x1200f0
movb $0x0, 0x10(%rax)
movq $0x0, 0x18(%rax)
leaq 0x256b65(%rip), %rcx    # 0x510928
movq %rcx, (%rax)
leaq 0x256bbb(%rip), %rcx    # 0x510988
movq %rcx, 0x8(%rax)
movq %r14, 0x20(%rax)
movq 0x10(%rsp), %rcx
movq %rcx, 0x28(%rax)
movq %rsp, %rdx
movq %rax, (%rdx)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x29b38c
movq %rax, %rbx
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x2ba059
movl (%r12), %eax
xorl %ebx, %ebx
addl $-0x2, %eax
cmpl $0x19, %eax
ja 0x2ba059
leaq 0xfa95e(%rip), %rcx     # 0x3b4774
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x318cd6
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319e3a
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3198cc
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319218
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319cd4
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x318e24
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x31936a
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319774
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3190c4
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x318f78
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3194bc
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319618
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319fa8
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x31a11a
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319b7c
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x319a24
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x31a3f2
jmp 0x2ba04e
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x31a280
leaq 0x8(%rbx), %rdi
movq 0x8(%rbx), %rax
callq *0x10(%rax)
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
jmp 0x2ba08d
movq %rax, %r14
movl $0x38, %esi
movq %rbx, %rdi
callq 0x1200c0
movq %r14, %rdi
callq 0x120330
nop