// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_special_function_impl<double, 3ul>::process(exprtk::parser<double>&, exprtk::details::operator_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static inline expression_node_ptr process(parser<Type>& p, const details::operator_type opt_type, const std::string& sf_name)
         {
            expression_node_ptr branch[NumberOfParameters];
            expression_node_ptr result = error_node();

            std::fill_n(branch, NumberOfParameters, reinterpret_cast<expression_node_ptr>(0));

            scoped_delete<expression_node_t,NumberOfParameters> sd(p,branch);

            p.next_token();

            if (!p.token_is(token_t::e_lbracket))
            {
               p.set_error(make_error(
                  parser_error::e_syntax,
                  p.current_token(),
                  "ERR146 - Expected '(' for special function '" + sf_name + "'",
                  exprtk_error_location));

               return error_node();
            }

            for (std::size_t i = 0; i < NumberOfParameters; ++i)
            {
               branch[i] = p.parse_expression();

               if (0 == branch[i])
               {
                  return p.error_node();
               }
               else if (i < (NumberOfParameters - 1))
               {
                  if (!p.token_is(token_t::e_comma))
                  {
                     p.set_error(make_error(
                        parser_error::e_syntax,
                        p.current_token(),
                        "ERR147 - Expected ',' before next parameter of special function '" + sf_name + "'",
                        exprtk_error_location));

                     return p.error_node();
                  }
               }
            }

            if (!p.token_is(token_t::e_rbracket))
            {
               p.set_error(make_error(
                  parser_error::e_syntax,
                  p.current_token(),
                  "ERR148 - Invalid number of parameters for special function '" + sf_name + "'",
                  exprtk_error_location));

               return p.error_node();
            }
            else
               result = p.expression_generator_.special_function(opt_type,branch);

            sd.delete_ptr = (0 == result);

            return result;
         }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rdx, %r15
movq %rdi, %rbx
movl %esi, 0x84(%rsp)
xorps %xmm0, %xmm0
leaq 0x150(%rsp), %rax
movaps %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movb $0x1, 0x138(%rsp)
movq %rdi, 0x140(%rsp)
movq %rax, 0x148(%rsp)
movq 0x18(%rdi), %r12
cmpq %r12, 0x8(%rdi)
je 0x3216a5
leaq 0x30(%r12), %rax
movq %rax, 0x18(%rbx)
jmp 0x3216a9
leaq 0x28(%rbx), %r12
movl (%r12), %eax
movl %eax, 0x70(%rbx)
leaq 0x78(%rbx), %r14
leaq 0x8(%r12), %rsi
movq %r14, %rdi
callq 0x11e5a0
movq 0x28(%r12), %rax
movq %rax, 0x98(%rbx)
cmpl $0x28, 0x70(%rbx)
jne 0x3216e8
movq 0x18(%rbx), %r12
cmpq %r12, 0x8(%rbx)
je 0x32173b
leaq 0x30(%r12), %rax
movq %rax, 0x18(%rbx)
jmp 0x32173f
leaq 0x74d5f(%rip), %rsi     # 0x39644e
leaq 0x60(%rsp), %rdi
movq %r15, %rdx
callq 0x24ea8f
leaq 0x75965(%rip), %rsi     # 0x397068
leaq 0x60(%rsp), %rdi
callq 0x11e340
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3217dc
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x3217e2
leaq 0x28(%rbx), %r12
movq %r15, 0x88(%rsp)
movl (%r12), %eax
movl %eax, 0x70(%rbx)
leaq 0x8(%r12), %rsi
movq %r14, %rdi
callq 0x11e5a0
movq 0x28(%r12), %rax
movq %rax, 0x98(%rbx)
leaq 0x28(%rbx), %r15
xorl %r12d, %r12d
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %esi, %esi
callq 0x24edc0
movq %rax, 0x150(%rsp,%rbp,8)
testq %rax, %rax
je 0x321d7c
movl 0x70(%rbx), %eax
cmpq $0x2, %rbp
je 0x3219b1
cmpl $0x2c, %eax
jne 0x321a1e
movq 0x18(%rbx), %rax
movq %r15, %r13
cmpq %rax, 0x8(%rbx)
je 0x3217b9
leaq 0x30(%rax), %rcx
movq %rcx, 0x18(%rbx)
movq %rax, %r13
movl (%r13), %eax
movl %eax, 0x70(%rbx)
leaq 0x8(%r13), %rsi
movq %r14, %rdi
callq 0x11e5a0
movq 0x28(%r13), %rax
movq %rax, 0x98(%rbx)
incq %rbp
jmp 0x321770
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
movq %rsp, %rdi
movl $0x34, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x39, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
testq %rcx, %rcx
setne %dl
addq %rax, %rcx
decq %rcx
cmpq %rax, %rcx
seta %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x32188b
incq %rax
movb -0x1(%rax), %dl
movb (%rcx), %sil
movb %sil, -0x1(%rax)
movb %dl, (%rcx)
decq %rcx
leaq 0x1(%rax), %rdx
cmpq %rcx, %rax
movq %rdx, %rax
jb 0x321870
leaq 0x72cb9(%rip), %rcx     # 0x39454b
movq %rsp, %rdi
movl $0xb, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x30(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3218cb
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x3218d1
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movb %cl, (%rbp)
movq $-0x1, 0x10(%rbp)
leaq 0xd8(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0xf8(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x118(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
movl 0x70(%rbx), %eax
movl %eax, -0x68(%r12)
movq %r14, %rsi
callq 0x11e5a0
leaq 0xc8(%rsp), %rdi
movq 0x98(%rbx), %rax
movq %rax, -0x10(%rdi)
leaq 0x40(%rsp), %rsi
callq 0x11e5a0
leaq 0xe8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %rbx            # imm = 0x308
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x24d3b4
jmp 0x321c97
cmpl $0x29, %eax
jne 0x321a6f
movq 0x18(%rbx), %rax
cmpq %rax, 0x8(%rbx)
je 0x3219cf
leaq 0x30(%rax), %rcx
movq %rcx, 0x18(%rbx)
movq %rax, %r15
movl (%r15), %eax
movl %eax, 0x70(%rbx)
leaq 0x8(%r15), %rsi
movq %r14, %rdi
callq 0x11e5a0
movq 0x28(%r15), %rax
movq %rax, 0x98(%rbx)
addq $0x220, %rbx            # imm = 0x220
leaq 0x84(%rsp), %rsi
leaq 0x150(%rsp), %rdx
movq %rbx, %rdi
callq 0x322bec
movq %rax, %r12
testq %rax, %rax
sete 0x138(%rsp)
jmp 0x321d7c
leaq 0x74a56(%rip), %rsi     # 0x39647b
leaq 0x60(%rsp), %rdi
movq 0x88(%rsp), %rdx
callq 0x24ea8f
leaq 0x7562a(%rip), %rsi     # 0x397068
leaq 0x60(%rsp), %rdi
callq 0x11e340
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x321ac7
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x321acd
leaq 0x74a47(%rip), %rsi     # 0x3964bd
leaq 0x60(%rsp), %rdi
movq 0x88(%rsp), %rdx
callq 0x24ea8f
leaq 0x755d9(%rip), %rsi     # 0x397068
leaq 0x60(%rsp), %rdi
callq 0x11e340
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x321d9e
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x321da4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
movq %rsp, %rdi
movl $0x35, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x34, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x39, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
testq %rcx, %rcx
setne %dl
addq %rax, %rcx
decq %rcx
cmpq %rax, %rcx
seta %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x321b76
incq %rax
movb -0x1(%rax), %dl
movb (%rcx), %sil
movb %sil, -0x1(%rax)
movb %dl, (%rcx)
decq %rcx
leaq 0x1(%rax), %rdx
cmpq %rcx, %rax
movq %rdx, %rax
jb 0x321b5b
leaq 0x729ce(%rip), %rcx     # 0x39454b
movq %rsp, %rdi
movl $0xb, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x30(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x321bb6
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x321bbc
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movb %cl, (%rbp)
movq $-0x1, 0x10(%rbp)
leaq 0xd8(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0xf8(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x118(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
movl 0x70(%rbx), %eax
movl %eax, -0x68(%r12)
movq %r14, %rsi
callq 0x11e5a0
leaq 0xc8(%rsp), %rdi
movq 0x98(%rbx), %rax
movq %rax, -0x10(%rdi)
leaq 0x40(%rsp), %rsi
callq 0x11e5a0
leaq 0xe8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %rbx            # imm = 0x308
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x24d3b4
movq 0x108(%rsp), %rdi
cmpq %r13, %rdi
je 0x321cb4
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe8(%rsp), %rdi
cmpq %r12, %rdi
je 0x321cd1
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xc8(%rsp), %rdi
cmpq %r15, %rdi
je 0x321cee
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x10(%rsp), %rbx
je 0x321d10
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x321d2c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x321d42
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x321d5e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x321d79
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
xorl %r12d, %r12d
leaq 0x138(%rsp), %rdi
callq 0x323276
movq %r12, %rax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
movq %rsp, %rdi
movl $0x38, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x35, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x39, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
testq %rcx, %rcx
setne %dl
addq %rax, %rcx
decq %rcx
cmpq %rax, %rcx
seta %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x321e4d
incq %rax
movb -0x1(%rax), %dl
movb (%rcx), %sil
movb %sil, -0x1(%rax)
movb %dl, (%rcx)
decq %rcx
leaq 0x1(%rax), %rdx
cmpq %rcx, %rax
movq %rdx, %rax
jb 0x321e32
leaq 0x726f7(%rip), %rcx     # 0x39454b
movq %rsp, %rdi
movl $0xb, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x30(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x321e8d
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x321e93
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movb %cl, (%rbp)
movq $-0x1, 0x10(%rbp)
leaq 0xd8(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0xf8(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x118(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
movl 0x70(%rbx), %eax
movl %eax, -0x68(%r12)
movq %r14, %rsi
callq 0x11e5a0
leaq 0xc8(%rsp), %rdi
movq 0x98(%rbx), %rax
movq %rax, -0x10(%rdi)
leaq 0x40(%rsp), %rsi
callq 0x11e5a0
leaq 0xe8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %rbx            # imm = 0x308
leaq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0x24d3b4
movq 0x108(%rsp), %rdi
cmpq %r13, %rdi
je 0x321f8b
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe8(%rsp), %rdi
cmpq %r12, %rdi
je 0x321fa8
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xc8(%rsp), %rdi
cmpq %r15, %rdi
je 0x321fc5
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
leaq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %r14
je 0x321fec
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x322008
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x32201e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x40(%rsp), %rdi
cmpq %rbx, %rdi
jne 0x321d51
jmp 0x321d5e
jmp 0x322072
jmp 0x322054
jmp 0x322059
jmp 0x322102
jmp 0x322102
jmp 0x322072
jmp 0x322054
jmp 0x322059
jmp 0x322102
jmp 0x322072
jmp 0x3220ae
jmp 0x322072
jmp 0x322072
movq %rax, %rbx
jmp 0x32209e
movq %rax, %rbx
jmp 0x3220e3
jmp 0x322102
jmp 0x322102
jmp 0x3220ae
jmp 0x322102
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x249100
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x32209e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
jne 0x3220ba
jmp 0x3220c7
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x3220c7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x3220e3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x322105
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x322105
jmp 0x322102
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0x323276
movq %rbx, %rdi
callq 0x11e330