// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: bool exprtk::function_compositor<double>::compile_expression<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::deque>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::deque<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>>>> const&, bool)
bool compile_expression(const std::string& name,
                              const std::string& expression,
                              const Sequence<std::string,Allocator>& input_var_list,
                              bool  return_present = false)
      {
         expression_t compiled_expression;
         symbol_table_t local_symbol_table;

         local_symbol_table.load_from(symbol_table_);
         local_symbol_table.add_constants();

         if (load_variables_)
         {
            local_symbol_table.load_variables_from(symbol_table_);
         }

         if (load_vectors_)
         {
            local_symbol_table.load_vectors_from(symbol_table_);
         }

         error_list_.clear();

         if (!valid(name,input_var_list.size()))
         {
            parser_error::type error =
               parser_error::make_error(
                  parser_error::e_parser,
                  lexer::token(),
                  "ERR283 - Function '" + name + "' is an invalid overload",
                  exprtk_error_location);

            error_list_.push_back(error);
            return false;
         }

         if (!forward(name,
                      input_var_list.size(),
                      local_symbol_table,
                      return_present))
            return false;

         compiled_expression.register_symbol_table(local_symbol_table);

         for (std::size_t i = 0; i < auxiliary_symtab_list_.size(); ++i)
         {
            compiled_expression.register_symbol_table((*auxiliary_symtab_list_[i]));
         }

         std::string mod_expression;

         for (std::size_t i = 0; i < input_var_list.size(); ++i)
         {
            mod_expression += " var " + input_var_list[i] + "{};\n";
         }

         if (
              ('{' == details::front(expression)) &&
              ('}' == details::back (expression))
            )
            mod_expression += "~" + expression + ";";
         else
            mod_expression += "~{" + expression + "};";

         if (!parser_.compile(mod_expression,compiled_expression))
         {
            exprtk_debug(("Compositor Error: %s\n", parser_.error().c_str()));
            exprtk_debug(("Compositor modified expression: \n%s\n", mod_expression.c_str()));

            remove(name,input_var_list.size());

            for (std::size_t err_index = 0; err_index < parser_.error_count(); ++err_index)
            {
               error_list_.push_back(parser_.get_error(err_index));
            }

            return false;
         }

         if (!return_present && parser_.dec().return_present())
         {
            remove(name,input_var_list.size());
            return compile_expression(name, expression, input_var_list, true);
         }

         // Make sure every return point has a scalar as its first parameter
         if (parser_.dec().return_present())
         {
            typedef std::vector<std::string> str_list_t;

            str_list_t ret_param_list = parser_.dec().return_param_type_list();

            for (std::size_t i = 0; i < ret_param_list.size(); ++i)
            {
               const std::string& params = ret_param_list[i];

               if (params.empty() || ('T' != params[0]))
               {
                  exprtk_debug(("Compositor Error: Return statement in function '%s' is invalid\n",
                                name.c_str()));

                  remove(name,input_var_list.size());

                  return false;
               }
            }
         }

         expr_map_[name] = compiled_expression;

         exprtk::ifunction<T>& ifunc = (*(fp_map_[input_var_list.size()])[name]);

         if (symbol_table_.add_function(name,ifunc))
            return true;
         else
         {
            exprtk_debug(("Compositor Error: Failed to add function '%s' to symbol table\n",
                          name.c_str()));
            return false;
         }
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movl %r8d, %ebp
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %r14
leaq 0x140(%rsp), %rdi
callq 0x1e56bc
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
callq 0x1e5424
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x383cda
leaq 0x8(%rsp), %rdi
callq 0x1e546c
cmpb $0x1, 0x9e0(%r14)
jne 0x38291e
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x38413a
cmpb $0x1, 0x9e1(%r14)
jne 0x382935
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x38423c
leaq 0x990(%r14), %rdi
movq %rdi, 0x138(%rsp)
callq 0x2492b4
movq 0x48(%r12), %rax
movq %rax, %rcx
subq 0x28(%r12), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x30(%r12), %rax
subq 0x38(%r12), %rax
movq 0x20(%r12), %rbx
sarq $0x5, %rax
subq 0x10(%r12), %rbx
sarq $0x5, %rbx
addq %rax, %rbx
addq %rcx, %rbx
cmpq $0x6, %rbx
ja 0x3829c4
movq %r14, %rdi
movq %r15, %rsi
callq 0x3848f0
testb %al, %al
jne 0x3829c4
leaq (%rbx,%rbx,2), %rbx
shlq $0x4, %rbx
addq 0x960(%r14), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x384a1c
addq $0x8, %rbx
cmpq %rax, %rbx
je 0x382d53
leaq 0x70(%rsp), %rax
movl $0x0, -0x18(%rax)
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq $-0x1, 0x10(%rax)
leaq 0x38942(%rip), %rsi     # 0x3bb330
leaq 0x188(%rsp), %rdi
movq %r15, %rdx
callq 0x24ea8f
leaq 0x3893f(%rip), %rsi     # 0x3bb344
leaq 0x188(%rsp), %rdi
callq 0x11e340
leaq 0x20(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x382a39
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x382a3f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rcx, -0x8(%r12)
movb %cl, (%r12)
leaq 0x38(%rsp), %rdi
movl $0x39, %esi
callq 0x11e5d0
leaq 0x38(%rsp), %rdi
movl $0x37, %esi
callq 0x11e5d0
leaq 0x38(%rsp), %rdi
movl $0x35, %esi
callq 0x11e5d0
leaq 0x38(%rsp), %rdi
movl $0x33, %esi
callq 0x11e5d0
leaq 0x38(%rsp), %rdi
movl $0x34, %esi
callq 0x11e5d0
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rcx
testq %rcx, %rcx
setne %dl
addq %rax, %rcx
decq %rcx
cmpq %rax, %rcx
seta %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x382af6
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 0x382adb
leaq 0x11a4e(%rip), %rcx     # 0x39454b
leaq 0x38(%rsp), %rdi
movl $0xb, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x11e110
leaq 0x60(%rsp), %rsi
leaq 0x170(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x382b46
movq %rdx, 0x160(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x170(%rsp)
jmp 0x382b4d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x168(%rsp)
movq %rcx, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movb %cl, 0x10(%rax)
leaq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq %rcx, -0x8(%rbx)
movb %cl, (%rbx)
movq $-0x1, 0x10(%rbx)
leaq 0xd0(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rcx, -0x8(%r13)
movb %cl, (%r13)
leaq 0xf0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movb %cl, (%rbp)
leaq 0x110(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rcx, -0x8(%r15)
movb %cl, (%r15)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r15)
movl $0x9, -0x58(%r15)
movl 0x58(%rsp), %eax
movl %eax, -0x68(%rbp)
callq 0x11e5a0
leaq 0xc0(%rsp), %rdi
movq 0x80(%rsp), %rax
movq %rax, -0x10(%rdi)
leaq 0x10(%rsp), %rsi
callq 0x11e5a0
leaq 0xe0(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x11e5a0
movq 0x160(%rsp), %rdi
cmpq %r14, %rdi
je 0x382c2d
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x382c44
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x382c60
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x198(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x382c81
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x382c9d
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x88(%rsp), %rsi
movq 0x138(%rsp), %rdi
callq 0x24d3b4
movq 0x100(%rsp), %rdi
cmpq %r15, %rdi
je 0x382ccf
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x382cec
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x382d09
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x90(%rsp), %rdi
cmpq %rbx, %rdi
je 0x382d26
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x11e0c0
xorl %ebx, %ebx
leaq 0x8(%rsp), %rdi
callq 0x1e7056
leaq 0x140(%rsp), %rdi
callq 0x1e7008
movl %ebx, %eax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x48(%r12), %rax
movq %rax, %rcx
subq 0x28(%r12), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x20(%r12), %rax
movq 0x30(%r12), %rdx
subq 0x38(%r12), %rdx
sarq $0x5, %rdx
subq 0x10(%r12), %rax
sarq $0x5, %rax
addq %rdx, %rax
addq %rcx, %rax
leaq 0x88(%rsp), %rdx
movq %rax, (%rdx)
movzbl %bpl, %r8d
leaq 0x8(%rsp), %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rcx
callq 0x38442c
testb %al, %al
je 0x382d26
leaq 0x148(%rsp), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
subq %rax, %rcx
je 0x382df4
sarq $0x3, %rcx
movq 0x8(%rsp), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
cmpq %rbx, %rax
je 0x382e06
cmpq (%rax), %rdx
je 0x382e06
addq $0x8, %rax
decq %rcx
jne 0x382de1
leaq 0x8(%rsp), %rsi
leaq 0x148(%rsp), %rdi
callq 0x1eb0e8
movq 0x978(%r14), %rax
movq 0x980(%r14), %rcx
cmpq %rax, %rcx
je 0x382e83
xorl %ebx, %ebx
movq (%rax,%rbx,8), %rsi
movq 0x148(%rsp), %rdx
movq 0x150(%rsp), %rdi
subq %rdx, %rdi
je 0x382e56
sarq $0x3, %rdi
movq (%rsi), %r8
cmpq $0x1, %rdi
adcq $0x0, %rdi
cmpq %rsi, %rdx
je 0x382e71
cmpq (%rdx), %r8
je 0x382e71
addq $0x8, %rdx
decq %rdi
jne 0x382e43
leaq 0x148(%rsp), %rdi
callq 0x1eb0e8
movq 0x978(%r14), %rax
movq 0x980(%r14), %rcx
incq %rbx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %rdx, %rbx
jb 0x382e1b
movl %ebp, 0x34(%rsp)
movq %r13, 0x180(%rsp)
movq %r15, 0x130(%rsp)
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x98(%rsp), %r13
xorl %r15d, %r15d
leaq 0x10(%rsp), %rbp
xorl %ebx, %ebx
movq 0x48(%r12), %rcx
movq 0x28(%r12), %rax
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
cmpq $0x1, %rcx
adcq $-0x1, %rdx
shlq $0x4, %rdx
movq 0x30(%r12), %rsi
subq 0x38(%r12), %rsi
sarq $0x5, %rsi
movq 0x10(%r12), %rcx
movq 0x20(%r12), %rdi
subq %rcx, %rdi
sarq $0x5, %rdi
addq %rsi, %rdi
addq %rdx, %rdi
cmpq %rdi, %rbx
jae 0x383018
movq %rcx, %rdx
subq 0x18(%r12), %rdx
sarq $0x5, %rdx
addq %rbx, %rdx
js 0x382f2a
cmpq $0xf, %rdx
ja 0x382f33
addq %r15, %rcx
movq %rcx, %rdx
jmp 0x382f4c
movq %rdx, %rcx
sarq $0x4, %rcx
jmp 0x382f3a
movq %rdx, %rcx
shrq $0x4, %rcx
movq %rcx, %rsi
shlq $0x4, %rsi
subq %rsi, %rdx
shlq $0x5, %rdx
addq (%rax,%rcx,8), %rdx
movq %rbp, %rdi
leaq 0x38407(%rip), %rsi     # 0x3bb35d
callq 0x24ea8f
movq %rbp, %rdi
leaq 0x383fe(%rip), %rsi     # 0x3bb363
callq 0x11e340
movq %r13, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x382f96
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x382f9e
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
leaq 0x58(%rsp), %rdi
callq 0x11e3b0
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x382ff0
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x38300c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
incq %rbx
addq $0x20, %r15
jmp 0x382ebd
movq 0x180(%rsp), %r15
movq (%r15), %rax
cmpb $0x7b, (%rax)
jne 0x38308f
movq 0x8(%r15), %rcx
cmpb $0x7d, -0x1(%rax,%rcx)
jne 0x38308f
leaq 0x11aaa(%rip), %rsi     # 0x394ae4
leaq 0x10(%rsp), %rdi
movq %r15, %rdx
callq 0x24ea8f
movl 0x34(%rsp), %ebp
leaq 0x2d783(%rip), %rsi     # 0x3b07d5
leaq 0x10(%rsp), %rdi
callq 0x11e340
movq %r13, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x383123
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x38312b
leaq 0x382d2(%rip), %rsi     # 0x3bb368
leaq 0x10(%rsp), %rdi
movq %r15, %rdx
callq 0x24ea8f
movl 0x34(%rsp), %ebp
leaq 0x42312(%rip), %rsi     # 0x3c53c0
leaq 0x10(%rsp), %rdi
callq 0x11e340
movq %r13, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3830e4
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x3830ec
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
leaq 0x58(%rsp), %rdi
callq 0x11e3b0
jmp 0x383160
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
leaq 0x58(%rsp), %rdi
callq 0x11e3b0
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x38317d
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
movq 0x130(%rsp), %r13
je 0x3831a1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x8(%r14), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x140(%rsp), %rbx
movq %rbx, %rdx
callq 0x1e60ec
testb %al, %al
je 0x38324b
movb 0x2c3(%r14), %al
testb %bpl, %bpl
jne 0x3833da
testb $0x1, %al
je 0x3833da
movq 0x48(%r12), %rax
movq %rax, %rcx
subq 0x28(%r12), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x20(%r12), %rax
movq 0x30(%r12), %rdx
subq 0x38(%r12), %rdx
sarq $0x5, %rdx
subq 0x10(%r12), %rax
sarq $0x5, %rax
addq %rdx, %rax
addq %rcx, %rax
leaq 0x88(%rsp), %rdx
movq %rax, (%rdx)
movq %r14, %rdi
movq %r13, %rsi
callq 0x3827c6
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r12, %rcx
movl $0x1, %r8d
callq 0x3828b4
jmp 0x383521
movq 0x48(%r12), %rax
movq %rax, %rcx
subq 0x28(%r12), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x20(%r12), %rax
movq 0x30(%r12), %rdx
subq 0x38(%r12), %rdx
sarq $0x5, %rdx
subq 0x10(%r12), %rax
sarq $0x5, %rax
addq %rdx, %rax
addq %rcx, %rax
leaq 0x88(%rsp), %rdx
movq %rax, (%rdx)
movq %r14, %rdi
movq %r13, %rsi
callq 0x3827c6
leaq 0x320(%r14), %rbx
leaq 0xa0(%rsp), %rbp
xorl %r15d, %r15d
movabsq $-0x30c30c30c30c30c3, %r13 # imm = 0xCF3CF3CF3CF3CF3D
leaq 0x88(%rsp), %r12
movq 0x358(%r14), %rax
movq %rax, %rcx
subq 0x338(%r14), %rcx
sarq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
leaq (%rcx,%rcx,2), %rax
movq 0x330(%r14), %rcx
movq 0x340(%r14), %rdx
subq 0x348(%r14), %rdx
sarq $0x3, %rdx
imulq %r13, %rdx
addq %rax, %rdx
subq 0x320(%r14), %rcx
sarq $0x3, %rcx
imulq %r13, %rcx
addq %rdx, %rcx
cmpq %rcx, %r15
jae 0x383584
movq %rbx, %rdi
movq %r15, %rsi
callq 0x36f18a
movq %r12, %rdi
movq %rax, %rsi
callq 0x24d4f8
movq 0x138(%rsp), %rdi
movq %r12, %rsi
callq 0x3866f4
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x38336b
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x383390
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x3833b5
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x90(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3833d2
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x11e0c0
incq %r15
jmp 0x3832c4
testb $0x1, %al
je 0x383444
leaq 0x2f8(%r14), %rsi
leaq 0x88(%rsp), %rdi
callq 0x385bca
movq 0x88(%rsp), %rax
movq 0x90(%rsp), %rcx
subq %rax, %rcx
je 0x383437
sarq $0x5, %rcx
cmpq $0x1, %rcx
adcq $0x0, %rcx
addq $0x8, %rax
cmpq $0x0, (%rax)
je 0x383525
movq -0x8(%rax), %rdx
cmpb $0x54, (%rdx)
jne 0x383525
addq $0x20, %rax
decq %rcx
jne 0x383417
leaq 0x88(%rsp), %rdi
callq 0x24916a
leaq 0x930(%r14), %rdi
movq %r13, %rsi
callq 0x383ad2
movq %rax, %r15
cmpq %rbx, %rax
je 0x3834b1
movq (%r15), %rbx
testq %rbx, %rbx
je 0x38348f
movq (%rbx), %rax
testq %rax, %rax
je 0x383488
decq %rax
movq %rax, (%rbx)
jne 0x383488
movq %rbx, %rdi
callq 0x1ea4a4
movl $0x40, %esi
movq %rbx, %rdi
callq 0x11e0c0
movq $0x0, (%r15)
movq 0x140(%rsp), %rax
movq %rax, (%r15)
incq (%rax)
addq $0x8, %r15
movq %r15, %rdi
leaq 0x148(%rsp), %rsi
callq 0x38695e
movq 0x48(%r12), %rax
movq %rax, %rcx
subq 0x28(%r12), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
movq 0x20(%r12), %rax
movq 0x30(%r12), %rdx
subq 0x38(%r12), %rdx
subq 0x10(%r12), %rax
sarq $0x5, %rdx
sarq $0x5, %rax
leaq (%rcx,%rcx,2), %rcx
shlq $0x8, %rcx
addq 0x960(%r14), %rcx
leaq (%rdx,%rdx,2), %rdx
shlq $0x4, %rdx
leaq (%rax,%rax,2), %rdi
shlq $0x4, %rdi
addq %rdx, %rdi
addq %rcx, %rdi
movq %r13, %rsi
callq 0x383772
movq (%rax), %rdx
movq %r14, %rdi
movq %r13, %rsi
callq 0x1e55b2
movl %eax, %ebx
jmp 0x383586
movq 0x48(%r12), %rax
movq %rax, %rcx
subq 0x28(%r12), %rcx
shrq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
shlq $0x4, %rcx
movq 0x20(%r12), %rax
movq 0x30(%r12), %rdx
subq 0x38(%r12), %rdx
sarq $0x5, %rdx
subq 0x10(%r12), %rax
sarq $0x5, %rax
addq %rdx, %rax
addq %rcx, %rax
leaq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %r14, %rdi
movq %r13, %rsi
callq 0x3827c6
leaq 0x88(%rsp), %rdi
callq 0x24916a
xorl %ebx, %ebx
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x382d28
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x382d28
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x24916a
jmp 0x38368f
jmp 0x38368c
jmp 0x38368c
jmp 0x383649
jmp 0x38366b
jmp 0x38368c
jmp 0x38368c
jmp 0x38368c
jmp 0x383649
jmp 0x38366b
jmp 0x38368c
jmp 0x38368c
jmp 0x3836db
jmp 0x3836db
jmp 0x38368c
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x249100
jmp 0x38368f
jmp 0x3836db
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x249100
jmp 0x383753
jmp 0x3836e0
movq %rax, %rbx
jmp 0x383716
movq %rax, %rbx
jmp 0x383737
movq %rax, %rbx
jmp 0x38375d
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r13, %rdi
je 0x38366e
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x38366e
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x38368f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x38368f
movq %rax, %rbx
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x383753
movq 0x68(%rsp), %rsi
jmp 0x38374b
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x249100
movq 0x160(%rsp), %rdi
cmpq %r14, %rdi
je 0x3836e3
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x11e0c0
jmp 0x3836e3
movq %rax, %rbx
jmp 0x383753
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x3836fa
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x383716
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x198(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x383737
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x11e0c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x383753
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x11e0c0
leaq 0x8(%rsp), %rdi
callq 0x1e7056
leaq 0x140(%rsp), %rdi
callq 0x1e7008
movq %rbx, %rdi
callq 0x11e330