// File: /workspace/github_cpp_makefile_star2_O3/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, %rbx
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 0x29ce5d
leaq 0x8(%rsp), %r8
movq $0x0, (%r8)
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x2fd11a
testb %al, %al
je 0x29ce5d
movq (%r15), %rdi
testq %rdi, %rdi
je 0x29ce53
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
je 0x29ce53
movq (%r15), %rdi
testq %rdi, %rdi
je 0x29ce4b
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x12, %eax
je 0x29ce53
movq %r15, %rdi
callq 0x1ea63e
movq 0x8(%rsp), %rbx
jmp 0x29d192
movl (%r12), %ebp
movl %ebp, %eax
andl $-0x2, %eax
cmpl $0x4, %eax
jne 0x29cf37
movq (%r15), %r13
testq %r13, %r13
je 0x29cf37
leaq 0x23926e(%rip), %rsi    # 0x4d60f0
leaq 0x26b217(%rip), %rdx    # 0x5080a0
movq %r13, %rdi
xorl %ecx, %ecx
callq 0x11e4f0
testq %rax, %rax
je 0x29cf37
movq (%r13), %rax
movq %r13, %rdi
callq *0x38(%rax)
cmpl $0x34, %eax
jne 0x29cf33
movq (%r15), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, %r13
movq (%r15), %rdi
testq %rdi, %rdi
je 0x29cee9
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
je 0x29cee9
movq (%r15), %rdi
testq %rdi, %rdi
je 0x29cee1
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x12, %eax
je 0x29cee9
movq %r15, %rdi
callq 0x1ea63e
movl (%r12), %ebp
cmpl $0x5, %ebp
je 0x29d1a4
cmpl $0x4, %ebp
jne 0x29cf37
leaq 0x14(%rsp), %r15
movl $0x34, (%r15)
movl $0x30, %edi
callq 0x11e0f0
movb $0x0, 0x10(%rax)
movq $0x0, 0x18(%rax)
leaq 0x23a394(%rip), %rcx    # 0x4d72b8
movq %rcx, (%rax)
leaq 0x23a3ea(%rip), %rcx    # 0x4d7318
jmp 0x29d1d7
movl (%r12), %ebp
xorl %ebx, %ebx
addl $-0x2, %ebp
cmpl $0x19, %ebp
ja 0x29d192
leaq 0xee8a0(%rip), %rax     # 0x38b7ec
movslq (%rax,%rbp,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fd840
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe9d6
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe458
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fdd90
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe86c
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fd990
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fdee6
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe2fc
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fdc38
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fdae8
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe03c
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe19c
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2feb48
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fecbe
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe710
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fe5b4
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fef9e
jmp 0x29d184
movl $0x38, %edi
callq 0x11e0f0
movq %rax, %rbx
movq (%r15), %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x2fee28
movq %rbx, %rdi
addq $0x8, %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
leaq 0x14(%rsp), %r15
movl $0x34, (%r15)
movl $0x30, %edi
callq 0x11e0f0
movb $0x0, 0x10(%rax)
movq $0x0, 0x18(%rax)
leaq 0x23a18b(%rip), %rcx    # 0x4d7358
movq %rcx, (%rax)
leaq 0x23a1e1(%rip), %rcx    # 0x4d73b8
movq %rcx, 0x8(%rax)
movq %r14, 0x20(%rax)
movq %r13, 0x28(%rax)
leaq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x27b7ae
movq %rax, %rbx
jmp 0x29d192
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
jmp 0x29d21d
movq %rax, %r14
movl $0x38, %esi
movq %rbx, %rdi
callq 0x11e0c0
movq %r14, %rdi
callq 0x11e330
nop