// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_repeat_until_loop()
inline expression_node_ptr parse_repeat_until_loop()
      {
         // Parse: [repeat][{][expression][}][until][(][test expr][)]
         expression_node_ptr condition = error_node();
         expression_node_ptr branch    = error_node();
         next_token();

         std::vector<expression_node_ptr> arg_list;
         std::vector<bool> side_effect_list;

         scoped_vec_delete<expression_node_t> svd((*this), arg_list);

         brkcnt_list_.push_front(false);

         if (details::imatch(current_token().value,"until"))
         {
            next_token();
            branch = node_allocator_.allocate<details::null_node<T> >();
         }
         else
         {
            const token_t::token_type separator = token_t::e_eof;

            scope_handler sh(*this);

            scoped_bool_or_restorer sbr(state_.side_effect_present);

            scoped_inc_dec sid(state_.parsing_loop_stmt_count);

            for ( ; ; )
            {
               state_.side_effect_present = false;

               expression_node_ptr arg = parse_expression();

               if (0 == arg)
                  return error_node();
               else
               {
                  arg_list.push_back(arg);
                  side_effect_list.push_back(state_.side_effect_present);
               }

               if (details::imatch(current_token().value,"until"))
               {
                  next_token();
                  break;
               }

               const bool is_next_until = peek_token_is(token_t::e_symbol) &&
                                          peek_token_is("until");

               if (!token_is(separator) && is_next_until)
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR070 - Expected '" + token_t::to_str(separator) + "' in body of repeat until loop",
                     exprtk_error_location));

                  return error_node();
               }

               if (details::imatch(current_token().value,"until"))
               {
                  next_token();
                  break;
               }
            }

            branch = simplify(arg_list,side_effect_list);

            svd.delete_ptr = (0 == branch);

            if (svd.delete_ptr)
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR071 - Failed to parse body of repeat until loop",
                  exprtk_error_location));

               return error_node();
            }
         }

         if (!token_is(token_t::e_lbracket))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR072 - Expected '(' before condition statement of repeat until loop",
               exprtk_error_location));

            free_node(node_allocator_, branch);
            return error_node();
         }
         else if (0 == (condition = parse_expression()))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR073 - Failed to parse condition for repeat until loop",
               exprtk_error_location));

            free_node(node_allocator_, branch);
            return error_node();
         }
         else if (!token_is(token_t::e_rbracket))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR074 - Expected ')' after condition of repeat until loop",
               exprtk_error_location));

            free_node(node_allocator_, branch   );
            free_node(node_allocator_, condition);

            return error_node();
         }

         expression_node_ptr result_node =
            expression_generator_
               .repeat_until_loop(
                  condition,
                  branch,
                  brkcnt_list_.front());

         if (0 == result_node)
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR075 - Failed to synthesize repeat until loop",
               exprtk_error_location));

            free_node(node_allocator_, condition);

            return error_node();
         }

         handle_brkcnt_scope_exit();

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

         set_error(make_error(
            parser_error::e_synthesis,
            current_token(),
            "ERR076 - Failed to synthesize 'valid' repeat until loop",
            exprtk_error_location));

         free_node(node_allocator_, result_node);

         return error_node();
      }

// Assembly:
subq $0xa48, %rsp            # imm = 0xA48
movq %rdi, 0xa38(%rsp)
movq 0xa38(%rsp), %rax
movq %rax, 0x120(%rsp)
callq 0x2821f0
movq %rax, 0xa30(%rsp)
callq 0x2821f0
movq 0x120(%rsp), %rdi
movq %rax, 0xa28(%rsp)
callq 0x373690
leaq 0xa10(%rsp), %rdi
movq %rdi, 0x128(%rsp)
callq 0x3798f0
leaq 0x9e8(%rsp), %rdi
callq 0x379900
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
leaq 0x9d0(%rsp), %rdi
callq 0x379910
jmp 0x387e97
movq 0x120(%rsp), %rdi
addq $0x358, %rdi            # imm = 0x358
movb $0x0, 0x9c3(%rsp)
leaq 0x9c3(%rsp), %rsi
callq 0x4e5b60
jmp 0x387ebd
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x118(%rsp)
jmp 0x387ed4
movq 0x118(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
leaq 0x99f(%rsp), %rdi
movq %rdi, 0x110(%rsp)
callq 0x11b6f0
movq 0x110(%rsp), %rdx
leaq 0x21865c(%rip), %rsi    # 0x5a0568
leaq 0x9a0(%rsp), %rdi
callq 0x134520
jmp 0x387f1b
movq 0x108(%rsp), %rdi
leaq 0x9a0(%rsp), %rsi
callq 0x37fb20
movb %al, 0x107(%rsp)
jmp 0x387f39
leaq 0x9a0(%rsp), %rdi
callq 0x11b838
leaq 0x99f(%rsp), %rdi
callq 0x11b820
movb 0x107(%rsp), %al
testb $0x1, %al
jne 0x387f63
jmp 0x388020
movq 0x120(%rsp), %rdi
callq 0x373690
jmp 0x387f72
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
callq 0x39c7b0
movq %rax, 0xf8(%rsp)
jmp 0x387f90
movq 0xf8(%rsp), %rax
movq %rax, 0xa28(%rsp)
jmp 0x3889d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38950b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3894fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38800e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x9a0(%rsp), %rdi
callq 0x11b838
leaq 0x99f(%rsp), %rdi
callq 0x11b820
jmp 0x3894fe
movq 0x120(%rsp), %rsi
movl $0x6, 0x998(%rsp)
leaq 0x990(%rsp), %rdi
callq 0x39c810
jmp 0x388042
movq 0x120(%rsp), %rsi
addq $0x3ac, %rsi            # imm = 0x3AC
leaq 0x980(%rsp), %rdi
callq 0x39c840
jmp 0x388060
movq 0x120(%rsp), %rsi
addq $0x3c0, %rsi            # imm = 0x3C0
leaq 0x978(%rsp), %rdi
callq 0x4e5b90
jmp 0x38807e
jmp 0x388080
movq 0x120(%rsp), %rdi
movb $0x0, 0x3ac(%rdi)
xorl %esi, %esi
callq 0x379940
movq %rax, 0xf0(%rsp)
jmp 0x3880a0
movq 0xf0(%rsp), %rax
movq %rax, 0x970(%rsp)
xorl %eax, %eax
cmpq 0x970(%rsp), %rax
jne 0x388124
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x38896f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3889c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3889b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3889a9
leaq 0xa10(%rsp), %rdi
leaq 0x970(%rsp), %rsi
callq 0x37d3b0
jmp 0x38813b
movq 0x120(%rsp), %rax
movzbl 0x3ac(%rax), %esi
andl $0x1, %esi
leaq 0x9e8(%rsp), %rdi
callq 0x37d420
jmp 0x38815c
jmp 0x38815e
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0xe8(%rsp)
jmp 0x388175
movq 0xe8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xd8(%rsp)
leaq 0x947(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x11b6f0
movq 0xe0(%rsp), %rdx
leaq 0x2183bb(%rip), %rsi    # 0x5a0568
leaq 0x948(%rsp), %rdi
callq 0x134520
jmp 0x3881bc
movq 0xd8(%rsp), %rdi
leaq 0x948(%rsp), %rsi
callq 0x37fb20
movb %al, 0xd7(%rsp)
jmp 0x3881da
leaq 0x948(%rsp), %rdi
callq 0x11b838
leaq 0x947(%rsp), %rdi
callq 0x11b820
movb 0xd7(%rsp), %al
testb $0x1, %al
jne 0x388201
jmp 0x38825e
movq 0x120(%rsp), %rdi
callq 0x373690
jmp 0x388210
jmp 0x388738
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38824c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x948(%rsp), %rdi
callq 0x11b838
leaq 0x947(%rsp), %rdi
callq 0x11b820
jmp 0x3889a9
movq 0x120(%rsp), %rdi
movl $0x8, 0x940(%rsp)
movb $0x0, 0x91e(%rsp)
movb $0x0, 0x91d(%rsp)
leaq 0x940(%rsp), %rsi
callq 0x39c870
movb %al, 0xd6(%rsp)
jmp 0x388297
movb 0xd6(%rsp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0xd5(%rsp)
jne 0x3882ae
jmp 0x38831f
leaq 0x91f(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0x11b6f0
movq 0xc8(%rsp), %rdx
movb $0x1, 0x91e(%rsp)
leaq 0x21828e(%rip), %rsi    # 0x5a0568
leaq 0x920(%rsp), %rdi
callq 0x134520
jmp 0x3882e9
movq 0x120(%rsp), %rdi
movb $0x1, 0x91d(%rsp)
leaq 0x920(%rsp), %rsi
callq 0x4e5b00
movb %al, 0xc7(%rsp)
jmp 0x38830f
movb 0xc7(%rsp), %al
movb %al, 0xd5(%rsp)
jmp 0x38831f
movb 0xd5(%rsp), %al
movb %al, 0xc6(%rsp)
testb $0x1, 0x91d(%rsp)
jne 0x388339
jmp 0x388346
leaq 0x920(%rsp), %rdi
callq 0x11b838
testb $0x1, 0x91e(%rsp)
jne 0x388352
jmp 0x38835f
leaq 0x91f(%rsp), %rdi
callq 0x11b820
movq 0x120(%rsp), %rdi
movb 0xc6(%rsp), %al
andb $0x1, %al
movb %al, 0x946(%rsp)
leaq 0x998(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0xc5(%rsp)
jmp 0x388392
movb 0xc5(%rsp), %al
testb $0x1, %al
jne 0x388636
jmp 0x3883a3
testb $0x1, 0x946(%rsp)
je 0x388636
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0xb8(%rsp)
jmp 0x3883c8
leaq 0x810(%rsp), %rdi
movl $0x6, %esi
callq 0x39b6e0
jmp 0x3883dc
leaq 0x2203f8(%rip), %rsi    # 0x5a87db
leaq 0x830(%rsp), %rdi
leaq 0x810(%rsp), %rdx
callq 0x29dd70
jmp 0x3883fa
leaq 0x2203ee(%rip), %rdx    # 0x5a87ef
leaq 0x850(%rsp), %rdi
leaq 0x830(%rsp), %rsi
callq 0x29dc30
jmp 0x388418
leaq 0x7d0(%rsp), %rdi
movl $0x68b7, %esi           # imm = 0x68B7
callq 0x371f20
jmp 0x38842c
leaq 0x21eae0(%rip), %rsi    # 0x5a6f13
leaq 0x7f0(%rsp), %rdi
leaq 0x7d0(%rsp), %rdx
callq 0x29dd70
jmp 0x38844a
movq 0xb8(%rsp), %rdx
leaq 0x870(%rsp), %rdi
movl $0x1, %esi
leaq 0x850(%rsp), %rcx
leaq 0x7f0(%rsp), %r8
callq 0x3741e0
jmp 0x388476
movq 0x120(%rsp), %rdi
leaq 0x870(%rsp), %rsi
callq 0x371e40
jmp 0x38848d
leaq 0x870(%rsp), %rdi
callq 0x371330
leaq 0x7f0(%rsp), %rdi
callq 0x11b838
leaq 0x7d0(%rsp), %rdi
callq 0x11b838
leaq 0x850(%rsp), %rdi
callq 0x11b838
leaq 0x830(%rsp), %rdi
callq 0x11b838
leaq 0x810(%rsp), %rdi
callq 0x11b838
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x38896f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38853d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
testb $0x1, 0x91d(%rsp)
jne 0x38852e
jmp 0x38853b
leaq 0x920(%rsp), %rdi
callq 0x11b838
jmp 0x38853d
testb $0x1, 0x91e(%rsp)
jne 0x388549
jmp 0x388556
leaq 0x91f(%rsp), %rdi
callq 0x11b820
jmp 0x3889a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388624
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388617
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38860a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3885fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3885f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x870(%rsp), %rdi
callq 0x371330
leaq 0x7f0(%rsp), %rdi
callq 0x11b838
leaq 0x7d0(%rsp), %rdi
callq 0x11b838
leaq 0x850(%rsp), %rdi
callq 0x11b838
leaq 0x830(%rsp), %rdi
callq 0x11b838
leaq 0x810(%rsp), %rdi
callq 0x11b838
jmp 0x3889a9
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0xb0(%rsp)
jmp 0x38864d
movq 0xb0(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xa0(%rsp)
leaq 0x7af(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x11b6f0
movq 0xa8(%rsp), %rdx
leaq 0x217ee3(%rip), %rsi    # 0x5a0568
leaq 0x7b0(%rsp), %rdi
callq 0x134520
jmp 0x388694
movq 0xa0(%rsp), %rdi
leaq 0x7b0(%rsp), %rsi
callq 0x37fb20
movb %al, 0x9f(%rsp)
jmp 0x3886b2
leaq 0x7b0(%rsp), %rdi
callq 0x11b838
leaq 0x7af(%rsp), %rdi
callq 0x11b820
movb 0x9f(%rsp), %al
testb $0x1, %al
jne 0x3886d9
jmp 0x388733
movq 0x120(%rsp), %rdi
callq 0x373690
jmp 0x3886e8
jmp 0x388738
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388721
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x7b0(%rsp), %rdi
callq 0x11b838
leaq 0x7af(%rsp), %rdi
callq 0x11b820
jmp 0x3889a9
jmp 0x388080
movq 0x120(%rsp), %rdi
leaq 0xa10(%rsp), %rsi
leaq 0x9e8(%rsp), %rdx
xorl %ecx, %ecx
callq 0x37d820
movq %rax, 0x90(%rsp)
jmp 0x388761
movq 0x90(%rsp), %rax
movq %rax, 0xa28(%rsp)
xorl %eax, %eax
cmpq 0xa28(%rsp), %rax
sete %al
andb $0x1, %al
movb %al, 0x9d0(%rsp)
testb $0x1, 0x9d0(%rsp)
je 0x388964
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x88(%rsp)
jmp 0x3887ac
leaq 0x6df(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x11b6f0
movq 0x80(%rsp), %rdx
leaq 0x22003e(%rip), %rsi    # 0x5a880e
leaq 0x6e0(%rsp), %rdi
callq 0x134520
jmp 0x3887df
leaq 0x698(%rsp), %rdi
movl $0x68cd, %esi           # imm = 0x68CD
callq 0x371f20
jmp 0x3887f3
leaq 0x21e719(%rip), %rsi    # 0x5a6f13
leaq 0x6b8(%rsp), %rdi
leaq 0x698(%rsp), %rdx
callq 0x29dd70
jmp 0x388811
movq 0x88(%rsp), %rdx
leaq 0x700(%rsp), %rdi
movl $0x1, %esi
leaq 0x6e0(%rsp), %rcx
leaq 0x6b8(%rsp), %r8
callq 0x3741e0
jmp 0x38883d
movq 0x120(%rsp), %rdi
leaq 0x700(%rsp), %rsi
callq 0x371e40
jmp 0x388854
leaq 0x700(%rsp), %rdi
callq 0x371330
leaq 0x6b8(%rsp), %rdi
callq 0x11b838
leaq 0x698(%rsp), %rdi
callq 0x11b838
leaq 0x6e0(%rsp), %rdi
callq 0x11b838
leaq 0x6df(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x38896f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388955
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388948
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38893b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38892e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x700(%rsp), %rdi
callq 0x371330
leaq 0x6b8(%rsp), %rdi
callq 0x11b838
leaq 0x698(%rsp), %rdi
callq 0x11b838
leaq 0x6e0(%rsp), %rdi
callq 0x11b838
leaq 0x6df(%rsp), %rdi
callq 0x11b820
jmp 0x3889a9
movl $0x0, 0x96c(%rsp)
leaq 0x978(%rsp), %rdi
callq 0x4e5fc0
leaq 0x980(%rsp), %rdi
callq 0x39ca40
leaq 0x990(%rsp), %rdi
callq 0x39ca80
movl 0x96c(%rsp), %eax
testl %eax, %eax
jne 0x3894c7
jmp 0x3889a7
jmp 0x3889d5
leaq 0x978(%rsp), %rdi
callq 0x4e5fc0
leaq 0x980(%rsp), %rdi
callq 0x39ca40
leaq 0x990(%rsp), %rdi
callq 0x39ca80
jmp 0x3894fe
movq 0x120(%rsp), %rdi
movl $0x28, 0x694(%rsp)
leaq 0x694(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x7f(%rsp)
jmp 0x388a00
movb 0x7f(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x388a0f
jmp 0x388bf3
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x70(%rsp)
jmp 0x388a23
leaq 0x5c7(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x11b6f0
movq 0x68(%rsp), %rdx
leaq 0x21fe00(%rip), %rsi    # 0x5a8841
leaq 0x5c8(%rsp), %rdi
callq 0x134520
jmp 0x388a50
leaq 0x580(%rsp), %rdi
movl $0x68d9, %esi           # imm = 0x68D9
callq 0x371f20
jmp 0x388a64
leaq 0x21e4a8(%rip), %rsi    # 0x5a6f13
leaq 0x5a0(%rsp), %rdi
leaq 0x580(%rsp), %rdx
callq 0x29dd70
jmp 0x388a82
movq 0x70(%rsp), %rdx
leaq 0x5e8(%rsp), %rdi
movl $0x1, %esi
leaq 0x5c8(%rsp), %rcx
leaq 0x5a0(%rsp), %r8
callq 0x3741e0
jmp 0x388aab
movq 0x120(%rsp), %rdi
leaq 0x5e8(%rsp), %rsi
callq 0x371e40
jmp 0x388ac2
leaq 0x5e8(%rsp), %rdi
callq 0x371330
leaq 0x5a0(%rsp), %rdi
callq 0x11b838
leaq 0x580(%rsp), %rdi
callq 0x11b838
leaq 0x5c8(%rsp), %rdi
callq 0x11b838
leaq 0x5c7(%rsp), %rdi
callq 0x11b820
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0xa28(%rsp), %rsi
callq 0x284bd0
jmp 0x388b21
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x3894c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388be1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388bd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388bc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388bba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x5e8(%rsp), %rdi
callq 0x371330
leaq 0x5a0(%rsp), %rdi
callq 0x11b838
leaq 0x580(%rsp), %rdi
callq 0x11b838
leaq 0x5c8(%rsp), %rdi
callq 0x11b838
leaq 0x5c7(%rsp), %rdi
callq 0x11b820
jmp 0x3894fe
movq 0x120(%rsp), %rdi
xorl %esi, %esi
callq 0x379940
movq %rax, 0x60(%rsp)
jmp 0x388c09
movq 0x60(%rsp), %rcx
movq %rcx, 0xa30(%rsp)
xorl %eax, %eax
cmpq %rcx, %rax
jne 0x388e05
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x58(%rsp)
jmp 0x388c35
leaq 0x4b7(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x11b6f0
movq 0x50(%rsp), %rdx
leaq 0x21fc34(%rip), %rsi    # 0x5a8887
leaq 0x4b8(%rsp), %rdi
callq 0x134520
jmp 0x388c62
leaq 0x470(%rsp), %rdi
movl $0x68e4, %esi           # imm = 0x68E4
callq 0x371f20
jmp 0x388c76
leaq 0x21e296(%rip), %rsi    # 0x5a6f13
leaq 0x490(%rsp), %rdi
leaq 0x470(%rsp), %rdx
callq 0x29dd70
jmp 0x388c94
movq 0x58(%rsp), %rdx
leaq 0x4d8(%rsp), %rdi
movl $0x1, %esi
leaq 0x4b8(%rsp), %rcx
leaq 0x490(%rsp), %r8
callq 0x3741e0
jmp 0x388cbd
movq 0x120(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0x371e40
jmp 0x388cd4
leaq 0x4d8(%rsp), %rdi
callq 0x371330
leaq 0x490(%rsp), %rdi
callq 0x11b838
leaq 0x470(%rsp), %rdi
callq 0x11b838
leaq 0x4b8(%rsp), %rdi
callq 0x11b838
leaq 0x4b7(%rsp), %rdi
callq 0x11b820
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0xa28(%rsp), %rsi
callq 0x284bd0
jmp 0x388d33
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x3894c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388df3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388de6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388dd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x388dcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x4d8(%rsp), %rdi
callq 0x371330
leaq 0x490(%rsp), %rdi
callq 0x11b838
leaq 0x470(%rsp), %rdi
callq 0x11b838
leaq 0x4b8(%rsp), %rdi
callq 0x11b838
leaq 0x4b7(%rsp), %rdi
callq 0x11b820
jmp 0x3894fe
movq 0x120(%rsp), %rdi
movl $0x29, 0x46c(%rsp)
leaq 0x46c(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x4f(%rsp)
jmp 0x388e30
movb 0x4f(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x388e3f
jmp 0x389041
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x40(%rsp)
jmp 0x388e53
leaq 0x39f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x11b6f0
movq 0x38(%rsp), %rdx
leaq 0x21fa4f(%rip), %rsi    # 0x5a88c0
leaq 0x3a0(%rsp), %rdi
callq 0x134520
jmp 0x388e80
leaq 0x358(%rsp), %rdi
movl $0x68ef, %esi           # imm = 0x68EF
callq 0x371f20
jmp 0x388e94
leaq 0x21e078(%rip), %rsi    # 0x5a6f13
leaq 0x378(%rsp), %rdi
leaq 0x358(%rsp), %rdx
callq 0x29dd70
jmp 0x388eb2
movq 0x40(%rsp), %rdx
leaq 0x3c0(%rsp), %rdi
movl $0x1, %esi
leaq 0x3a0(%rsp), %rcx
leaq 0x378(%rsp), %r8
callq 0x3741e0
jmp 0x388edb
movq 0x120(%rsp), %rdi
leaq 0x3c0(%rsp), %rsi
callq 0x371e40
jmp 0x388ef2
leaq 0x3c0(%rsp), %rdi
callq 0x371330
leaq 0x378(%rsp), %rdi
callq 0x11b838
leaq 0x358(%rsp), %rdi
callq 0x11b838
leaq 0x3a0(%rsp), %rdi
callq 0x11b838
leaq 0x39f(%rsp), %rdi
callq 0x11b820
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0xa28(%rsp), %rsi
callq 0x284bd0
jmp 0x388f51
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0xa30(%rsp), %rsi
callq 0x284bd0
jmp 0x388f6f
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x3894c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38902f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389022
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389015
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389008
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x3c0(%rsp), %rdi
callq 0x371330
leaq 0x378(%rsp), %rdi
callq 0x11b838
leaq 0x358(%rsp), %rdi
callq 0x11b838
leaq 0x3a0(%rsp), %rdi
callq 0x11b838
leaq 0x39f(%rsp), %rdi
callq 0x11b820
jmp 0x3894fe
jmp 0x389043
jmp 0x389045
movq 0x120(%rsp), %rdi
movq %rdi, %rax
addq $0x220, %rax            # imm = 0x220
movq %rax, 0x28(%rsp)
addq $0x358, %rdi            # imm = 0x358
callq 0x4e5f90
movq 0x28(%rsp), %rdi
movzbl (%rax), %ecx
andl $0x1, %ecx
leaq 0xa30(%rsp), %rsi
leaq 0xa28(%rsp), %rdx
callq 0x4e75f0
movq %rax, 0x30(%rsp)
jmp 0x38908e
movq 0x30(%rsp), %rax
movq %rax, 0x350(%rsp)
xorl %eax, %eax
cmpq 0x350(%rsp), %rax
jne 0x38928f
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x20(%rsp)
jmp 0x3890bf
leaq 0x287(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x11b6f0
movq 0x18(%rsp), %rdx
leaq 0x21f81e(%rip), %rsi    # 0x5a88fb
leaq 0x288(%rsp), %rdi
callq 0x134520
jmp 0x3890ec
leaq 0x240(%rsp), %rdi
movl $0x6904, %esi           # imm = 0x6904
callq 0x371f20
jmp 0x389100
leaq 0x21de0c(%rip), %rsi    # 0x5a6f13
leaq 0x260(%rsp), %rdi
leaq 0x240(%rsp), %rdx
callq 0x29dd70
jmp 0x38911e
movq 0x20(%rsp), %rdx
leaq 0x2a8(%rsp), %rdi
movl $0x1, %esi
leaq 0x288(%rsp), %rcx
leaq 0x260(%rsp), %r8
callq 0x3741e0
jmp 0x389147
movq 0x120(%rsp), %rdi
leaq 0x2a8(%rsp), %rsi
callq 0x371e40
jmp 0x38915e
leaq 0x2a8(%rsp), %rdi
callq 0x371330
leaq 0x260(%rsp), %rdi
callq 0x11b838
leaq 0x240(%rsp), %rdi
callq 0x11b838
leaq 0x288(%rsp), %rdi
callq 0x11b838
leaq 0x287(%rsp), %rdi
callq 0x11b820
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0xa30(%rsp), %rsi
callq 0x284bd0
jmp 0x3891bd
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x3894c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38927d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389263
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389256
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x2a8(%rsp), %rdi
callq 0x371330
leaq 0x260(%rsp), %rdi
callq 0x11b838
leaq 0x240(%rsp), %rdi
callq 0x11b838
leaq 0x288(%rsp), %rdi
callq 0x11b838
leaq 0x287(%rsp), %rdi
callq 0x11b820
jmp 0x3894fe
movq 0x120(%rsp), %rdi
callq 0x4e5fe0
cmpq $0x0, 0x350(%rsp)
je 0x3892e8
movq 0x350(%rsp), %rdi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movb %al, 0x17(%rsp)
jmp 0x3892be
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x3892c8
jmp 0x3892e8
movq 0x350(%rsp), %rax
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x3894c7
movq 0x120(%rsp), %rdi
callq 0x373e90
movq %rax, 0x8(%rsp)
jmp 0x3892fc
leaq 0x177(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x11b6f0
movq (%rsp), %rdx
leaq 0x21f613(%rip), %rsi    # 0x5a892b
leaq 0x178(%rsp), %rdi
callq 0x134520
jmp 0x389327
leaq 0x130(%rsp), %rdi
movl $0x6916, %esi           # imm = 0x6916
callq 0x371f20
jmp 0x38933b
leaq 0x21dbd1(%rip), %rsi    # 0x5a6f13
leaq 0x150(%rsp), %rdi
leaq 0x130(%rsp), %rdx
callq 0x29dd70
jmp 0x389359
movq 0x8(%rsp), %rdx
leaq 0x198(%rsp), %rdi
movl $0x7, %esi
leaq 0x178(%rsp), %rcx
leaq 0x150(%rsp), %r8
callq 0x3741e0
jmp 0x389382
movq 0x120(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x371e40
jmp 0x389399
leaq 0x198(%rsp), %rdi
callq 0x371330
leaq 0x150(%rsp), %rdi
callq 0x11b838
leaq 0x130(%rsp), %rdi
callq 0x11b838
leaq 0x178(%rsp), %rdi
callq 0x11b838
leaq 0x177(%rsp), %rdi
callq 0x11b820
movq 0x120(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x350(%rsp), %rsi
callq 0x284bd0
jmp 0x3893f8
callq 0x2821f0
movq %rax, 0xa40(%rsp)
movl $0x1, 0x96c(%rsp)
jmp 0x3894c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3894b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x3894ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x38949e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
jmp 0x389491
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x9c8(%rsp)
movl %eax, 0x9c4(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x371330
leaq 0x150(%rsp), %rdi
callq 0x11b838
leaq 0x130(%rsp), %rdi
callq 0x11b838
leaq 0x178(%rsp), %rdi
callq 0x11b838
leaq 0x177(%rsp), %rdi
callq 0x11b820
jmp 0x3894fe
leaq 0x9d0(%rsp), %rdi
callq 0x37dec0
leaq 0x9e8(%rsp), %rdi
callq 0x37df80
leaq 0xa10(%rsp), %rdi
callq 0x37df90
movq 0xa40(%rsp), %rax
addq $0xa48, %rsp            # imm = 0xA48
retq
leaq 0x9d0(%rsp), %rdi
callq 0x37dec0
leaq 0x9e8(%rsp), %rdi
callq 0x37df80
leaq 0xa10(%rsp), %rdi
callq 0x37df90
movq 0x9c8(%rsp), %rdi
callq 0x11b4e0
nopw %cs:(%rax,%rax)
nopl (%rax)