// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::collector_helper<double>::collection_pass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, bool, bool, bool, exprtk::symbol_table<double>&)
static inline bool collection_pass(const std::string& expression_string,
                                            std::set<std::string>& symbol_set,
                                            const bool collect_variables,
                                            const bool collect_functions,
                                            const bool vector_pass,
                                            symbol_table_t& ext_symbol_table)
         {
            symbol_table_t symbol_table;
            expression_t   expression;
            parser_t       parser;

            resolve_as_vector vect_resolver;

            expression.register_symbol_table(symbol_table    );
            expression.register_symbol_table(ext_symbol_table);

            if (vector_pass)
               parser.enable_unknown_symbol_resolver(&vect_resolver);
            else
               parser.enable_unknown_symbol_resolver();

            if (collect_variables)
               parser.dec().collect_variables() = true;

            if (collect_functions)
               parser.dec().collect_functions() = true;

            bool pass_result = false;

            details::disable_type_checking(parser);

            if (parser.compile(expression_string, expression))
            {
               pass_result = true;

               std::deque<symbol_t> symb_list;
               parser.dec().symbols(symb_list);

               for (std::size_t i = 0; i < symb_list.size(); ++i)
               {
                  symbol_set.insert(symb_list[i].first);
               }
            }

            return pass_result;
         }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xac8, %rsp            # imm = 0xAC8
movq %r9, %r13
movl %r8d, %r12d
movl %ecx, 0x1c(%rsp)
movl %edx, %r15d
movq %rsi, %rbx
movq %rdi, 0x10(%rsp)
leaq 0x8(%rsp), %rbp
movq %rbp, %rdi
movl $0x1, %esi
callq 0x1eb8c4
leaq 0x20(%rsp), %rdi
callq 0x1ebb7a
leaq 0x50(%rsp), %rdi
movl $0x7f, %esi
callq 0x1ebc94
leaq 0x1a0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x1ebd94
leaq 0x150(%rsp), %rdi
callq 0x1f236c
leaq 0x120(%rsp), %rdi
callq 0x1f236c
leaq 0xf0(%rsp), %rdi
callq 0x1f236c
leaq 0xc0(%rsp), %rdi
callq 0x1f236c
leaq 0x90(%rsp), %rdi
callq 0x1f236c
leaq 0x60(%rsp), %rdi
callq 0x1f236c
leaq 0x28(%rsp), %r14
movq (%r14), %rcx
movq 0x8(%r14), %rax
movl $0x1, 0x48(%rsp)
leaq 0x1d739b(%rip), %rdx    # 0x575978
movq %rdx, 0x40(%rsp)
subq %rcx, %rax
je 0x39e634
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %rbp, %rcx
je 0x39e641
movq 0x8(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x39e641
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x39e634
decq %rsi
cmpq %rbp, %rcx
je 0x39e62c
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x39e613
negq %rsi
cmpq %rax, %rsi
jb 0x39e641
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1f216a
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %rax
subq %rcx, %rax
je 0x39e69c
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %r13, %rcx
je 0x39e6a7
movq (%r13), %rdx
cmpq (%rcx), %rdx
je 0x39e6a7
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x39e69c
decq %rsi
cmpq %r13, %rcx
je 0x39e694
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x39e67b
negq %rsi
cmpq %rax, %rsi
jb 0x39e6a7
movq %r14, %rdi
movq %r13, %rsi
callq 0x1f216a
leaq 0x580(%rsp), %rax
movb $0x1, -0x18(%rax)
testb %r12b, %r12b
leaq 0x40(%rsp), %rcx
cmoveq %rax, %rcx
movq %rcx, -0x8(%rax)
testb %r15b, %r15b
je 0x39e6d0
movb $0x1, 0x458(%rsp)
cmpb $0x0, 0x1c(%rsp)
je 0x39e6df
movb $0x1, 0x459(%rsp)
leaq 0x1a0(%rsp), %rdi
movb $0x0, 0x3ad(%rdi)
leaq 0x20(%rsp), %rdx
movq 0x10(%rsp), %rsi
callq 0x1ec5b8
movl %eax, %ebp
testb %al, %al
je 0x39e837
xorps %xmm0, %xmm0
leaq 0x50(%rsp), %rdi
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x39cfb4
movb %bpl, 0x10(%rsp)
leaq 0x450(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x39b742
movq $-0x1, %r14
xorl %r15d, %r15d
movabsq $-0x3333333333333333, %r12 # imm = 0xCCCCCCCCCCCCCCCD
movabsq $-0x5555555555555555, %r13 # imm = 0xAAAAAAAAAAAAAAAB
xorl %ebp, %ebp
movq 0x98(%rsp), %rax
movq %rax, %rcx
subq 0x78(%rsp), %rcx
sarq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
leaq (%rcx,%rcx,2), %rax
movq 0x80(%rsp), %rcx
subq 0x88(%rsp), %rcx
sarq $0x3, %rcx
imulq %r12, %rcx
leaq (%rcx,%rax,4), %rax
movq 0x60(%rsp), %rsi
movq 0x70(%rsp), %rcx
subq %rsi, %rcx
sarq $0x3, %rcx
imulq %r12, %rcx
addq %rax, %rcx
cmpq %rcx, %rbp
jae 0x39e828
movq %rsi, %rdx
subq 0x68(%rsp), %rdx
sarq $0x3, %rdx
imulq %r12, %rdx
leaq (%rdx,%rbp), %rcx
cmpq $0xb, %rcx
ja 0x39e7d8
addq %r15, %rsi
jmp 0x39e811
testq %rcx, %rcx
jle 0x39e7e9
movq %rcx, %rax
mulq %r13
shrq $0x3, %rdx
jmp 0x39e7f9
movq %r14, %rax
subq %rdx, %rax
mulq %r13
shrq $0x3, %rdx
notq %rdx
movq 0x78(%rsp), %rax
imulq $-0x1e0, %rdx, %rsi     # imm = 0xFE20
addq (%rax,%rdx,8), %rsi
leaq (%rcx,%rcx,4), %rax
leaq (%rsi,%rax,8), %rsi
movq %rbx, %rdi
callq 0x1ed878
incq %rbp
addq $0x28, %r15
decq %r14
jmp 0x39e760
leaq 0x50(%rsp), %rdi
callq 0x39b93c
movb 0x10(%rsp), %bpl
leaq 0x1a0(%rsp), %rdi
callq 0x1ed044
leaq 0x20(%rsp), %rdi
callq 0x1ed306
leaq 0x8(%rsp), %rdi
callq 0x1ed354
movl %ebp, %eax
addq $0xac8, %rsp            # imm = 0xAC8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x39e890
jmp 0x39e88b
jmp 0x39e88b
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x1ec570
jmp 0x39e8aa
movq %rax, %rbx
jmp 0x39e8aa
movq %rax, %rbx
jmp 0x39e8b4
movq %rax, %rbx
jmp 0x39e89d
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x39b93c
leaq 0x1a0(%rsp), %rdi
callq 0x1ed044
leaq 0x20(%rsp), %rdi
callq 0x1ed306
leaq 0x8(%rsp), %rdi
callq 0x1ed354
movq %rbx, %rdi
callq 0x120330