// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_for_loop()
inline expression_node_ptr parse_for_loop()
      {
         expression_node_ptr initialiser = error_node();
         expression_node_ptr condition   = error_node();
         expression_node_ptr incrementor = error_node();
         expression_node_ptr loop_body   = error_node();

         scope_element* se = 0;
         bool result       = true;

         next_token();

         scope_handler sh(*this);

         if (!token_is(token_t::e_lbracket))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR077 - Expected '(' at start of for-loop",
               exprtk_error_location));

            return error_node();
         }

         if (!token_is(token_t::e_eof))
         {
            if (
                 !token_is(token_t::e_symbol,prsrhlpr_t::e_hold) &&
                 details::imatch(current_token().value,"var")
               )
            {
               next_token();

               if (!token_is(token_t::e_symbol,prsrhlpr_t::e_hold))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR078 - Expected a variable at the start of initialiser section of for-loop",
                     exprtk_error_location));

                  return error_node();
               }
               else if (!peek_token_is(token_t::e_assign))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR079 - Expected variable assignment of initialiser section of for-loop",
                     exprtk_error_location));

                  return error_node();
               }

               const std::string loop_counter_symbol = current_token().value;

               se = &sem_.get_element(loop_counter_symbol);

               if ((se->name == loop_counter_symbol) && se->active)
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR080 - For-loop variable '" + loop_counter_symbol+ "' is being shadowed by a previous declaration",
                     exprtk_error_location));

                  return error_node();
               }
               else if (!symtab_store_.is_variable(loop_counter_symbol))
               {
                  if (
                       !se->active &&
                       (se->name == loop_counter_symbol) &&
                       (se->type == scope_element::e_variable)
                     )
                  {
                     se->active = true;
                     se->ref_count++;
                  }
                  else
                  {
                     scope_element nse;
                     nse.name      = loop_counter_symbol;
                     nse.active    = true;
                     nse.ref_count = 1;
                     nse.type      = scope_element::e_variable;
                     nse.depth     = state_.scope_depth;
                     nse.data      = new T(T(0));
                     nse.var_node  = node_allocator_.allocate<variable_node_t>(*reinterpret_cast<T*>(nse.data));

                     if (!sem_.add_element(nse))
                     {
                        set_error(make_error(
                           parser_error::e_syntax,
                           current_token(),
                           "ERR081 - Failed to add new local variable '" + loop_counter_symbol + "' to SEM",
                           exprtk_error_location));

                        sem_.free_element(nse);

                        result = false;
                     }
                     else
                     {
                        exprtk_debug(("parse_for_loop() - INFO - Added new local variable: %s\n", nse.name.c_str()));

                        state_.activate_side_effect("parse_for_loop()");
                     }
                  }
               }
            }

            if (0 == (initialiser = parse_expression()))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR082 - Failed to parse initialiser of for-loop",
                  exprtk_error_location));

               result = false;
            }
            else if (!token_is(token_t::e_eof))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR083 - Expected ';' after initialiser of for-loop",
                  exprtk_error_location));

               result = false;
            }
         }

         if (!token_is(token_t::e_eof))
         {
            if (0 == (condition = parse_expression()))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR084 - Failed to parse condition of for-loop",
                  exprtk_error_location));

               result = false;
            }
            else if (!token_is(token_t::e_eof))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR085 - Expected ';' after condition section of for-loop",
                  exprtk_error_location));

               result = false;
            }
         }

         if (!token_is(token_t::e_rbracket))
         {
            if (0 == (incrementor = parse_expression()))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR086 - Failed to parse incrementor of for-loop",
                  exprtk_error_location));

               result = false;
            }
            else if (!token_is(token_t::e_rbracket))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR087 - Expected ')' after incrementor section of for-loop",
                  exprtk_error_location));

               result = false;
            }
         }

         if (result)
         {
            brkcnt_list_.push_front(false);

            scoped_inc_dec sid(state_.parsing_loop_stmt_count);

            if (0 == (loop_body = parse_multi_sequence("for-loop", true)))
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR088 - Failed to parse body of for-loop",
                  exprtk_error_location));

               result = false;
            }
         }

         if (!result)
         {
            if (se)
            {
               se->ref_count--;
            }

            free_node(node_allocator_, initialiser);
            free_node(node_allocator_, condition  );
            free_node(node_allocator_, incrementor);
            free_node(node_allocator_, loop_body  );
            return error_node();
         }

         expression_node_ptr result_node =
            expression_generator_.for_loop(initialiser,
                                           condition,
                                           incrementor,
                                           loop_body,
                                           brkcnt_list_.front());
         handle_brkcnt_scope_exit();

         if (result_node && result_node->valid())
         {
            return result_node;
         }

         set_error(make_error(
            parser_error::e_synthesis,
            current_token(),
            "ERR089 - Failed to synthesize 'valid' for-loop",
            exprtk_error_location));

         free_node(node_allocator_, result_node);

         return error_node();
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
andq $0x0, 0xf0(%rsp)
andq $0x0, 0xe8(%rsp)
andq $0x0, 0xe0(%rsp)
movq %rdi, %rbx
andq $0x0, 0xd8(%rsp)
callq 0x1f6d68
movq %rbx, 0x1a0(%rsp)
incq 0x3b0(%rbx)
leaq 0xf8(%rsp), %rsi
movl $0x28, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x2002bd
leaq 0xf8(%rsp), %rsi
movl $0x6, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x20035d
movb $0x1, %bpl
xorl %r14d, %r14d
jmp 0x20065f
leaq 0xdb387(%rip), %rsi     # 0x2db64b
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x6931, %esi           # imm = 0x6931
callq 0x1f7a3c
leaq 0xd9912(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
jmp 0x200ba8
leaq 0x68(%rsp), %rsi
movl $0x8, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
jne 0x200514
leaq 0xd2ed9(%rip), %rsi     # 0x2d325a
leaq 0xf8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
leaq 0x78(%rbx), %r14
leaq 0xf8(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x1fbcc5
movl %eax, %ebp
movq %r15, %rdi
callq 0x118648
testb %bpl, %bpl
je 0x200514
movq %rbx, %rdi
callq 0x1f6d68
leaq 0xf8(%rsp), %rsi
movl $0x8, (%rsi)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1fae6e
testb %al, %al
je 0x200bcd
movq 0x18(%rbx), %rax
leaq 0x28(%rbx), %rcx
cmpq %rax, 0x8(%rbx)
cmovneq %rax, %rcx
leaq 0x70(%rbx), %r15
cmpl $0xa, (%rcx)
jne 0x200c42
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x1182f0
leaq 0x530(%rbx), %r12
leaq 0x8(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %r12, %rdi
callq 0x28ca1a
movq %rax, %r14
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x253fc9
testb %al, %al
je 0x200cb6
cmpb $0x1, 0x4c(%r14)
jne 0x200cb6
leaq 0xdb2bc(%rip), %rsi     # 0x2db70c
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1f8aab
leaq 0xdb2c3(%rip), %rdx     # 0x2db729
leaq 0x68(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x1b42c3
leaq 0x1a8(%rsp), %rdi
movl $0x695e, %esi           # imm = 0x695E
callq 0x1f7a3c
leaq 0xd976d(%rip), %rsi     # 0x2d9bfb
leaq 0x48(%rsp), %rdi
leaq 0x1a8(%rsp), %rdx
callq 0x1b4349
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x48(%rsp), %r8
movq %r15, %rdx
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x48(%rsp), %rdi
callq 0x118648
leaq 0x1a8(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
movb $0x1, %bpl
xorl %r13d, %r13d
jmp 0x200eb4
movb $0x1, %bpl
xorl %r14d, %r14d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0xf0(%rsp)
testq %rax, %rax
je 0x2005c5
leaq 0xf8(%rsp), %rsi
movl $0x6, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
jne 0x20065f
leaq 0xdb271(%rip), %rsi     # 0x2db7ce
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x699e, %esi           # imm = 0x699E
callq 0x1f7a3c
leaq 0xd9679(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
jmp 0x200632
leaq 0xdb1d1(%rip), %rsi     # 0x2db79d
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x6994, %esi           # imm = 0x6994
callq 0x1f7a3c
leaq 0xd960a(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
xorl %ebp, %ebp
leaq 0xf8(%rsp), %rsi
movl $0x6, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
jne 0x2007c5
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0xe8(%rsp)
testq %rax, %rax
je 0x20072b
leaq 0xf8(%rsp), %rsi
movl $0x6, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
jne 0x2007c5
leaq 0xdb16e(%rip), %rsi     # 0x2db831
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x69b6, %esi           # imm = 0x69B6
callq 0x1f7a3c
leaq 0xd9513(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
jmp 0x200798
leaq 0xdb0d0(%rip), %rsi     # 0x2db802
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x69ac, %esi           # imm = 0x69AC
callq 0x1f7a3c
leaq 0xd94a4(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
xorl %ebp, %ebp
leaq 0xf8(%rsp), %rsi
movl $0x29, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
jne 0x20081e
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1f9016
movq %rax, 0xe0(%rsp)
testq %rax, %rax
je 0x200a51
leaq 0xf8(%rsp), %rsi
movl $0x29, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x1fae6e
testb %al, %al
je 0x200ac0
testb %bpl, %bpl
je 0x200933
leaq 0x358(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
movb $0x0, (%rsi)
callq 0x28bc7c
incq 0x3c0(%rbx)
leaq 0xdb0dc(%rip), %rsi     # 0x2db928
leaq 0xf8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x127016
leaq 0xf8(%rsp), %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x206ecc
movq %rax, %r15
movq %rax, 0xd8(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0x118648
testq %r15, %r15
jne 0x20092c
leaq 0xdb03f(%rip), %rsi     # 0x2db8d8
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x69e0, %esi           # imm = 0x69E0
callq 0x1f7a3c
leaq 0xd933d(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
xorl %ebp, %ebp
decq 0x3c0(%rbx)
testb %bpl, %bpl
je 0x200b58
leaq 0x220(%rbx), %rdi
movq 0x368(%rbx), %rax
movzbl (%rax), %r9d
leaq 0xf0(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
leaq 0xe0(%rsp), %rcx
leaq 0xd8(%rsp), %r8
callq 0x28cc2e
movq %rax, %r14
leaq 0x358(%rbx), %rdi
movq %rax, 0x48(%rsp)
callq 0x28c3ea
testq %r14, %r14
je 0x20099d
movq (%r14), %rax
movq %r14, %rdi
callq *0x30(%rax)
testb %al, %al
jne 0x200bab
leaq 0xdaf5e(%rip), %rsi     # 0x2db902
leaq 0x68(%rsp), %rdi
leaq 0x1a8(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x6a05, %esi           # imm = 0x6A05
callq 0x1f7a3c
leaq 0xd922f(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x7
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
addq $0x290, %rbx            # imm = 0x290
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
jmp 0x200ba8
leaq 0xdae13(%rip), %rsi     # 0x2db86b
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x69c4, %esi           # imm = 0x69C4
callq 0x1f7a3c
leaq 0xd917e(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
jmp 0x200b2d
leaq 0xdadd5(%rip), %rsi     # 0x2db89c
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x69ce, %esi           # imm = 0x69CE
callq 0x1f7a3c
leaq 0xd910f(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rdi
callq 0x118648
testq %r14, %r14
je 0x200b61
decq 0x38(%r14)
addq $0x290, %rbx            # imm = 0x290
leaq 0xf0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
leaq 0xe8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
leaq 0xe0(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
leaq 0xd8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1ad9c8
xorl %r14d, %r14d
leaq 0x1a0(%rsp), %rdi
callq 0x208208
movq %r14, %rax
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xdaaa2(%rip), %rsi     # 0x2db676
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x6945, %esi           # imm = 0x6945
callq 0x1f7a3c
leaq 0xd9002(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0x70(%rbx), %rdx
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
jmp 0x20032d
leaq 0xdaa7a(%rip), %rsi     # 0x2db6c3
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x127016
leaq 0x28(%rsp), %rdi
movl $0x694f, %esi           # imm = 0x694F
callq 0x1f7a3c
leaq 0xd8f8d(%rip), %rsi     # 0x2d9bfb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x1b4349
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %r8
movq %r15, %rdx
callq 0x1f7341
addq $0x308, %rbx            # imm = 0x308
leaq 0xf8(%rsp), %rsi
movq %rbx, %rdi
callq 0x1f76ce
jmp 0x20032d
leaq 0x298(%rbx), %rdi
leaq 0x8(%rsp), %rsi
callq 0x28cabe
movb $0x1, %r13b
testb %al, %al
je 0x200cd6
movb $0x1, %bpl
jmp 0x200eb4
cmpb $0x0, 0x4c(%r14)
je 0x200d9e
leaq 0x68(%rsp), %rdi
callq 0x19ec34
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1185c0
movb $0x1, 0xb4(%rsp)
movq $0x1, 0xa0(%rsp)
movl $0x2, 0xb0(%rsp)
movq 0x3b0(%rbx), %rax
movq %rax, 0x98(%rsp)
pushq $0x8
popq %rdi
callq 0x118100
andq $0x0, (%rax)
movq %rax, 0xb8(%rsp)
leaq 0x290(%rbx), %rdi
movq %rax, %rsi
callq 0x28cb18
leaq 0x68(%rsp), %rsi
movq %rax, 0x58(%rsi)
movq %r12, %rdi
callq 0x28cb54
testb %al, %al
je 0x200dd2
leaq 0xdaa25(%rip), %rsi     # 0x2db78c
leaq 0xf8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x127016
cmpb $0x0, 0x3ac(%rbx)
jne 0x200d89
movb $0x1, 0x3ac(%rbx)
leaq 0xf8(%rsp), %rdi
callq 0x118648
movb $0x1, %bpl
jmp 0x200eaa
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x253fc9
testb %al, %al
je 0x200ce1
cmpl $0x2, 0x48(%r14)
jne 0x200ce1
movb $0x1, 0x4c(%r14)
incq 0x38(%r14)
movb $0x1, %bpl
movb $0x1, %r13b
jmp 0x200eb4
leaq 0xda97e(%rip), %rsi     # 0x2db757
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1f8aab
leaq 0xda994(%rip), %rdx     # 0x2db783
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1b42c3
leaq 0x1c8(%rsp), %rdi
movl $0x697e, %esi           # imm = 0x697E
callq 0x1f7a3c
leaq 0xd8de4(%rip), %rsi     # 0x2d9bfb
leaq 0x1a8(%rsp), %rdi
leaq 0x1c8(%rsp), %rdx
callq 0x1b4349
leaq 0xf8(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x28(%rsp), %rcx
leaq 0x1a8(%rsp), %r8
movq %r15, %rdx
callq 0x1f7341
leaq 0x308(%rbx), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1f76ce
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
leaq 0x1a8(%rsp), %rdi
callq 0x118648
leaq 0x1c8(%rsp), %rdi
callq 0x118648
leaq 0x28(%rsp), %rdi
callq 0x118648
leaq 0x48(%rsp), %rdi
callq 0x118648
leaq 0x68(%rsp), %rsi
movq %r12, %rdi
callq 0x1f7500
xorl %ebp, %ebp
leaq 0x68(%rsp), %rdi
callq 0x118648
leaq 0x8(%rsp), %rdi
callq 0x118648
testb %r13b, %r13b
jne 0x20051a
jmp 0x200ba8
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
jmp 0x200ee1
movq %rax, %r14
leaq 0x1a8(%rsp), %rdi
callq 0x118648
jmp 0x200ef3
movq %rax, %r14
leaq 0x1c8(%rsp), %rdi
callq 0x118648
jmp 0x200f05
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x118648
jmp 0x200f14
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0x118648
jmp 0x200f95
jmp 0x200f92
jmp 0x200f92
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
jmp 0x200f39
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0x118648
jmp 0x200f48
movq %rax, %r14
leaq 0x1a8(%rsp), %rdi
callq 0x118648
jmp 0x200f5a
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0x118648
jmp 0x200f69
movq %rax, %r14
leaq 0x28(%rsp), %rdi
jmp 0x200f9a
jmp 0x200fa1
jmp 0x200fa1
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
jmp 0x2010fc
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0x118648
jmp 0x200fa4
movq %rax, %r14
leaq 0x8(%rsp), %rdi
jmp 0x2010ef
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
jmp 0x200fdc
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x118648
jmp 0x200feb
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x118648
jmp 0x200ffa
movq %rax, %r14
leaq 0x68(%rsp), %rdi
jmp 0x20109a
jmp 0x2010a1
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010b7
jmp 0x2010fc
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010b7
jmp 0x2010fc
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
jmp 0x2010b7
jmp 0x2010c9
jmp 0x2010d8
jmp 0x2010e7
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x118648
jmp 0x2010a4
movq %rax, %r14
decq 0x3c0(%rbx)
jmp 0x2010ff
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x1f5c4c
jmp 0x2010cc
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x118648
jmp 0x2010db
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x118648
jmp 0x2010ea
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0x118648
jmp 0x2010ff
jmp 0x2010fc
jmp 0x2010fc
jmp 0x2010fc
movq %rax, %r14
leaq 0x1a0(%rsp), %rdi
callq 0x208208
movq %r14, %rdi
callq 0x118360