// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::expression_generator<double>::operator()(exprtk::details::operator_type const&, exprtk::details::expression_node<double>* (&) [2])
inline expression_node_ptr operator() (const details::operator_type& operation, expression_node_ptr (&branch)[2])
         {
            if ((0 == branch[0]) || (0 == branch[1]))
            {
               parser_->set_error(parser_error::make_error(
                  parser_error::e_syntax,
                  parser_->current_state().token,
                  "ERR249 - Invalid branches received for operator '" + details::to_str(operation) + "'",
                  exprtk_error_location));

               return error_node();
            }
            else if (is_invalid_string_op(operation,branch))
            {
               parser_->set_error(parser_error::make_error(
                  parser_error::e_syntax,
                  parser_->current_state().token,
                  "ERR250 - Invalid branch pair for string operator '" + details::to_str(operation) + "'",
                  exprtk_error_location));

               return error_node();
            }
            else if (is_invalid_assignment_op(operation,branch))
            {
               parser_->set_error(parser_error::make_error(
                  parser_error::e_syntax,
                  parser_->current_state().token,
                  "ERR251 - Invalid branch pair for assignment operator '" + details::to_str(operation) + "'",
                  exprtk_error_location));

               return error_node();
            }
            else if (is_invalid_break_continue_op(branch))
            {
               parser_->set_error(parser_error::make_error(
                  parser_error::e_syntax,
                  parser_->current_state().token,
                  "ERR252 - Invalid branch pair for break/continue operator '" + details::to_str(operation) + "'",
                  exprtk_error_location));

               return error_node();
            }
            else if (details::e_assign == operation)
            {
               return synthesize_assignment_expression(operation, branch);
            }
            else if (details::e_swap == operation)
            {
               return synthesize_swap_expression(branch);
            }
            else if (is_assignment_operation(operation))
            {
               return synthesize_assignment_operation_expression(operation, branch);
            }
            else if (is_vector_eqineq_logic_operation(operation, branch))
            {
               return synthesize_veceqineqlogic_operation_expression(operation, branch);
            }
            else if (is_vector_arithmetic_operation(operation, branch))
            {
               return synthesize_vecarithmetic_operation_expression(operation, branch);
            }
            else if (is_shortcircuit_expression(operation))
            {
               return synthesize_shortcircuit_expression(operation, branch);
            }
            else if (is_string_operation(operation, branch))
            {
               return synthesize_string_expression(operation, branch);
            }
            else if (is_null_present(branch))
            {
               return synthesize_null_expression(operation, branch);
            }
            #ifndef exprtk_disable_cardinal_pow_optimisation
            else if (is_constpow_operation(operation, branch))
            {
               return cardinal_pow_optimisation(branch);
            }
            #endif

            expression_node_ptr result = error_node();

            #ifndef exprtk_disable_enhanced_features
            if (synthesize_expression(operation, branch, result))
            {
               return result;
            }
            else
            #endif

            {
               /*
                  Possible reductions:
                  1. c o cob -> cob
                  2. cob o c -> cob
                  3. c o boc -> boc
                  4. boc o c -> boc
               */
               result = error_node();

               if (cocob_optimisable(operation, branch))
               {
                  result = synthesize_cocob_expression::process((*this), operation, branch);
               }
               else if (coboc_optimisable(operation, branch) && (0 == result))
               {
                  result = synthesize_coboc_expression::process((*this), operation, branch);
               }

               if (result)
                  return result;
            }

            if (uvouv_optimisable(operation, branch))
            {
               return synthesize_uvouv_expression(operation, branch);
            }
            else if (vob_optimisable(operation, branch))
            {
               return synthesize_vob_expression::process((*this), operation, branch);
            }
            else if (bov_optimisable(operation, branch))
            {
               return synthesize_bov_expression::process((*this), operation, branch);
            }
            else if (cob_optimisable(operation, branch))
            {
               return synthesize_cob_expression::process((*this), operation, branch);
            }
            else if (boc_optimisable(operation, branch))
            {
               return synthesize_boc_expression::process((*this), operation, branch);
            }
            #ifndef exprtk_disable_enhanced_features
            else if (cov_optimisable(operation, branch))
            {
               return synthesize_cov_expression::process((*this), operation, branch);
            }
            #endif
            else if (binext_optimisable(operation, branch))
            {
               return synthesize_binary_ext_expression::process((*this), operation, branch);
            }
            else
               return synthesize_expression<binary_node_t,2>(operation, branch);
         }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rsi, %rbx
movq %rdi, %r15
cmpq $0x0, (%rdx)
je 0x27b990
movq %rdx, %r14
cmpq $0x0, 0x8(%rdx)
je 0x27b990
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x296946
testb %al, %al
je 0x27b9eb
movq 0x68(%r15), %r14
movq 0x5d8(%r14), %r15
cmpq %r15, 0x5d0(%r14)
je 0x27bef9
movl -0x38(%r15), %eax
leaq 0xb8(%rsp), %rdi
movl %eax, -0x10(%rdi)
movq -0x40(%r15), %rax
movq %rax, -0x18(%rdi)
movl -0x30(%r15), %eax
movl %eax, -0x8(%rdi)
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
movq -0x28(%r15), %rsi
movq -0x20(%r15), %rdx
addq %rsi, %rdx
callq 0x1e7738
movq -0x8(%r15), %rax
jmp 0x27bf23
movq 0x68(%r15), %r14
movq 0x5d8(%r14), %r15
cmpq %r15, 0x5d0(%r14)
je 0x27ba5c
movl -0x38(%r15), %eax
leaq 0xb8(%rsp), %rdi
movl %eax, -0x10(%rdi)
movq -0x40(%r15), %rax
movq %rax, -0x18(%rdi)
movl -0x30(%r15), %eax
movl %eax, -0x8(%rdi)
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
movq -0x28(%r15), %rsi
movq -0x20(%r15), %rdx
addq %rsi, %rdx
callq 0x1e7738
movq -0x8(%r15), %rax
jmp 0x27ba86
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x296a7a
testb %al, %al
je 0x27be40
movq 0x68(%r15), %r14
movq 0x5d8(%r14), %r15
cmpq %r15, 0x5d0(%r14)
je 0x27c1af
movl -0x38(%r15), %eax
leaq 0xb8(%rsp), %rdi
movl %eax, -0x10(%rdi)
movq -0x40(%r15), %rax
movq %rax, -0x18(%rdi)
movl -0x30(%r15), %eax
movl %eax, -0x8(%rdi)
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
movq -0x28(%r15), %rsi
movq -0x20(%r15), %rdx
addq %rsi, %rdx
callq 0x1e7738
movq -0x8(%r15), %rax
jmp 0x27c1d9
leaq 0xc8(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0x18(%rax)
movaps %xmm0, -0x8(%rax)
movaps %xmm0, -0x28(%rax)
movq $0x0, 0x8(%rax)
movq %rax, -0x10(%rax)
movq $-0x1, %rax
movq %rax, 0xd8(%rsp)
movl (%rbx), %esi
leaq 0x80(%rsp), %rdi
callq 0x254d78
leaq 0x11958a(%rip), %rcx    # 0x39502e
leaq 0x80(%rsp), %rdi
movl $0x31, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27bae2
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x27bae8
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x11b55d(%rip), %rsi    # 0x397068
callq 0x11e340
leaq 0x70(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27bb37
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0x27bb3d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movb %cl, (%rbp)
movq %rsp, %rdi
movl $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x34, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %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 0x27bbe6
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 0x27bbcb
leaq 0x11895e(%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 0x27bc26
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x27bc2c
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 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq %rcx, -0x8(%rbx)
movb %cl, (%rbx)
movq $-0x1, 0x10(%rbx)
leaq 0x128(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0x148(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x168(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
leaq 0xb8(%rsp), %rsi
movl -0x8(%rsi), %eax
movl %eax, -0x68(%r12)
callq 0x11e5a0
leaq 0x118(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq %rax, -0x10(%rdi)
leaq 0x60(%rsp), %rsi
callq 0x11e5a0
leaq 0x138(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %r14            # imm = 0x308
leaq 0xe0(%rsp), %rsi
movq %r14, %rdi
callq 0x24d3b4
movq 0x158(%rsp), %rdi
cmpq %r13, %rdi
je 0x27bd29
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x138(%rsp), %rdi
cmpq %r12, %rdi
je 0x27bd46
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x118(%rsp), %rdi
cmpq %r15, %rdi
je 0x27bd63
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x27bd80
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x27bd9c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x27bdb2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x27bdce
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x27bdea
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27be0b
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27be2c
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
xorl %eax, %eax
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rdi
testq %rdi, %rdi
je 0x27be55
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x95, %eax
je 0x27be9e
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x27be6b
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x95, %eax
je 0x27be9e
movq (%r14), %rdi
testq %rdi, %rdi
je 0x27be80
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x96, %eax
je 0x27be9e
movq 0x8(%r14), %rdi
testq %rdi, %rdi
je 0x27c8ad
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x96, %eax
jne 0x27c8ad
movq 0x68(%r15), %r14
movq 0x5d8(%r14), %r15
cmpq %r15, 0x5d0(%r14)
je 0x27c522
movl -0x38(%r15), %eax
leaq 0xb8(%rsp), %rdi
movl %eax, -0x10(%rdi)
movq -0x40(%r15), %rax
movq %rax, -0x18(%rdi)
movl -0x30(%r15), %eax
movl %eax, -0x8(%rdi)
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
movq -0x28(%r15), %rsi
movq -0x20(%r15), %rdx
addq %rsi, %rdx
callq 0x1e7738
movq -0x8(%r15), %rax
jmp 0x27c54c
leaq 0xc8(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0x18(%rax)
movaps %xmm0, -0x8(%rax)
movaps %xmm0, -0x28(%rax)
movq $0x0, 0x8(%rax)
movq %rax, -0x10(%rax)
movq $-0x1, %rax
movq %rax, 0xd8(%rsp)
movl (%rbx), %esi
leaq 0x80(%rsp), %rdi
callq 0x254d78
leaq 0x11911f(%rip), %rcx    # 0x395060
leaq 0x80(%rsp), %rdi
movl $0x32, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27bf7f
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x27bf85
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x11b0c0(%rip), %rsi    # 0x397068
callq 0x11e340
leaq 0x70(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27bfd4
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0x27bfdb
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%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 $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x35, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %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 0x27c084
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 0x27c069
leaq 0x1184c0(%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 0x27c0c4
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x27c0ca
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 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq %rcx, -0x8(%rbx)
movb %cl, (%rbx)
movq $-0x1, 0x10(%rbx)
leaq 0x128(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0x148(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x168(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
leaq 0xb8(%rsp), %rsi
movl -0x8(%rsi), %eax
movl %eax, -0x68(%r12)
callq 0x11e5a0
leaq 0x118(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq %rax, -0x10(%rdi)
leaq 0x60(%rsp), %rsi
callq 0x11e5a0
leaq 0x138(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %r14            # imm = 0x308
leaq 0xe0(%rsp), %rsi
movq %r14, %rdi
callq 0x24d3b4
jmp 0x27c7d3
leaq 0xc8(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0x18(%rax)
movaps %xmm0, -0x8(%rax)
movaps %xmm0, -0x28(%rax)
movq $0x0, 0x8(%rax)
movq %rax, -0x10(%rax)
movq $-0x1, %rax
movq %rax, 0xd8(%rsp)
movl (%rbx), %esi
leaq 0x80(%rsp), %rdi
callq 0x254d78
leaq 0x118e9c(%rip), %rcx    # 0x395093
leaq 0x80(%rsp), %rdi
movl $0x36, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27c235
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x27c23b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x11ae0a(%rip), %rsi    # 0x397068
callq 0x11e340
leaq 0x70(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27c28a
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0x27c290
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movb %cl, (%rbp)
movq %rsp, %rdi
movl $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x36, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %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 0x27c339
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 0x27c31e
leaq 0x11820b(%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 0x27c379
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x27c37f
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 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq %rcx, -0x8(%rbx)
movb %cl, (%rbx)
movq $-0x1, 0x10(%rbx)
leaq 0x128(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0x148(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x168(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
leaq 0xb8(%rsp), %rsi
movl -0x8(%rsi), %eax
movl %eax, -0x68(%r12)
callq 0x11e5a0
leaq 0x118(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq %rax, -0x10(%rdi)
leaq 0x60(%rsp), %rsi
callq 0x11e5a0
leaq 0x138(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %r14            # imm = 0x308
leaq 0xe0(%rsp), %rsi
movq %r14, %rdi
callq 0x24d3b4
movq 0x158(%rsp), %rdi
cmpq %r13, %rdi
je 0x27c47c
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x138(%rsp), %rdi
cmpq %r12, %rdi
je 0x27c499
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x118(%rsp), %rdi
cmpq %r15, %rdi
je 0x27c4b6
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe8(%rsp), %rdi
cmpq %rbx, %rdi
leaq 0x50(%rsp), %rbx
je 0x27c4d8
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x27c4f4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x27c50a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
jne 0x27c88d
jmp 0x27c89a
leaq 0xc8(%rsp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0x18(%rax)
movaps %xmm0, -0x8(%rax)
movaps %xmm0, -0x28(%rax)
movq $0x0, 0x8(%rax)
movq %rax, -0x10(%rax)
movq $-0x1, %rax
movq %rax, 0xd8(%rsp)
movl (%rbx), %esi
leaq 0x80(%rsp), %rdi
callq 0x254d78
leaq 0x118b60(%rip), %rcx    # 0x3950ca
leaq 0x80(%rsp), %rdi
movl $0x3a, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27c5a8
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x27c5ae
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x11aa97(%rip), %rsi    # 0x397068
callq 0x11e340
leaq 0x70(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x27c5fd
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
jmp 0x27c604
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%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 $0x30, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x37, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x32, %esi
callq 0x11e5d0
movq %rsp, %rdi
movl $0x33, %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 0x27c6ad
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 0x27c692
leaq 0x117e97(%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 0x27c6ed
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x27c6f3
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 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq %rcx, -0x8(%rbx)
movb %cl, (%rbx)
movq $-0x1, 0x10(%rbx)
leaq 0x128(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
leaq 0x148(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x168(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r13)
movl $0x1, -0x58(%r13)
leaq 0xb8(%rsp), %rsi
movl -0x8(%rsi), %eax
movl %eax, -0x68(%r12)
callq 0x11e5a0
leaq 0x118(%rsp), %rdi
movq 0xd8(%rsp), %rax
movq %rax, -0x10(%rdi)
leaq 0x60(%rsp), %rsi
callq 0x11e5a0
leaq 0x138(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x11e5a0
addq $0x308, %r14            # imm = 0x308
leaq 0xe0(%rsp), %rsi
movq %r14, %rdi
callq 0x24d3b4
movq 0x158(%rsp), %rdi
cmpq %r13, %rdi
je 0x27c7f0
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x138(%rsp), %rdi
cmpq %r12, %rdi
je 0x27c80d
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x118(%rsp), %rdi
cmpq %r15, %rdi
je 0x27c82a
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe8(%rsp), %rdi
cmpq %rbx, %rdi
leaq 0x50(%rsp), %rbx
leaq 0x10(%rsp), %r14
je 0x27c851
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x27c86d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x27c883
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
cmpq %rbp, %rdi
je 0x27c89a
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x40(%rsp), %rdi
cmpq %rbx, %rdi
jne 0x27bddd
jmp 0x27bdea
movl (%rbx), %eax
cmpl $0x5c, %eax
je 0x27c8d8
cmpl $0x51, %eax
jne 0x27c8f4
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x296c04
movq %r15, %rdi
movq %r14, %rsi
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x297308
addl $-0x52, %eax
cmpl $0x4, %eax
ja 0x27c930
movl $0xd0, %edi
addq 0x68(%r15), %rdi
movq %rbx, %rsi
callq 0x2a6776
testb %al, %al
je 0x27c930
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x297cf6
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2992d0
testb %al, %al
je 0x27c961
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29933c
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29a188
testb %al, %al
je 0x27c992
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29a1f0
movl (%rbx), %eax
andl $-0x2, %eax
cmpl $0x1e, %eax
jne 0x27c9bb
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29ad18
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29af70
testb %al, %al
je 0x27c9ec
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29b00e
movq %r15, %rdi
movq %r14, %rsi
callq 0x29b696
testb %al, %al
je 0x27ca1a
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29b6cc
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29ba18
testb %al, %al
je 0x27ca48
movq %r15, %rdi
movq %r14, %rsi
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x29bb26
leaq 0xe0(%rsp), %rcx
movq $0x0, (%rcx)
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29bc2a
testb %al, %al
je 0x27ca76
movq 0xe0(%rsp), %rax
jmp 0x27be2e
movq $0x0, 0xe0(%rsp)
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29bcea
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
testb %al, %al
je 0x27caa4
callq 0x29bda2
jmp 0x27cace
callq 0x29c42c
movl %eax, %ecx
movq 0xe0(%rsp), %rax
testq %rax, %rax
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x27cad6
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29c4e4
movq %rax, 0xe0(%rsp)
testq %rax, %rax
jne 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29ca20
testb %al, %al
je 0x27cb04
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29ca90
jmp 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29cd86
testb %al, %al
je 0x27cb29
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29cdd0
jmp 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29d236
testb %al, %al
je 0x27cb4e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29d27c
jmp 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29d756
testb %al, %al
je 0x27cb73
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29d7ca
jmp 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29dc1c
testb %al, %al
je 0x27cb98
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29dc90
jmp 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29e110
testb %al, %al
je 0x27cbbd
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x1f92fa
jmp 0x27be2e
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x29e170
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
testb %al, %al
je 0x27cbe2
callq 0x29e1e4
jmp 0x27be2e
callq 0x29e804
jmp 0x27be2e
jmp 0x27cc43
jmp 0x27cc08
jmp 0x27cc26
jmp 0x27cc2e
jmp 0x27cc36
jmp 0x27cca4
jmp 0x27ccd2
jmp 0x27cc26
jmp 0x27cc2e
jmp 0x27cc36
jmp 0x27cc43
movq %rax, %rbx
jmp 0x27cc6f
jmp 0x27cc26
jmp 0x27cc2e
jmp 0x27cc36
jmp 0x27cc43
jmp 0x27cca4
jmp 0x27cc7f
jmp 0x27cca4
jmp 0x27ccd2
movq %rax, %rbx
jmp 0x27cd07
movq %rax, %rbx
jmp 0x27cd23
movq %rax, %rbx
jmp 0x27cd44
jmp 0x27ccd2
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x249100
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x27cc6f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
jne 0x27cc8b
jmp 0x27cc98
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x27cc98
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x27ccfa
jmp 0x27cd07
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x249100
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x27ccd5
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x27ccd5
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0x27cceb
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x27cd07
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x27cd23
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27cd44
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27cd65
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq %rbx, %rdi
callq 0x11e330
nop