// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::parse_switch_statement()
inline expression_node_ptr parse_switch_statement()
      {
         std::vector<expression_node_ptr> arg_list;

         if (!details::imatch(current_token().value,"switch"))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR090 - Expected keyword 'switch'",
               exprtk_error_location));

            return error_node();
         }

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

         next_token();

         if (!token_is(token_t::e_lcrlbracket))
         {
            set_error(make_error(
               parser_error::e_syntax,
               current_token(),
               "ERR091 - Expected '{' for call to switch statement",
               exprtk_error_location));

            return error_node();
         }

         expression_node_ptr default_statement = error_node();

         scoped_expression_delete defstmt_delete((*this), default_statement);

         for ( ; ; )
         {
            if (details::imatch("case",current_token().value))
            {
               next_token();

               expression_node_ptr condition = parse_expression();

               if (0 == condition)
                  return error_node();
               else if (!token_is(token_t::e_colon))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR092 - Expected ':' for case of switch statement",
                     exprtk_error_location));

                  free_node(node_allocator_, condition);

                  return error_node();
               }

               expression_node_ptr consequent =
                  (token_is(token_t::e_lcrlbracket,prsrhlpr_t::e_hold)) ?
                  parse_multi_sequence("switch-consequent") :
                  parse_expression();

               if (0 == consequent)
               {
                  free_node(node_allocator_, condition);

                  return error_node();
               }
               else if (!token_is(token_t::e_eof))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR093 - Expected ';' at end of case for switch statement",
                     exprtk_error_location));

                  free_node(node_allocator_, condition );
                  free_node(node_allocator_, consequent);

                  return error_node();
               }

               // Can we optimise away the case statement?
               if (is_constant_node(condition) && is_false(condition))
               {
                  free_node(node_allocator_, condition );
                  free_node(node_allocator_, consequent);
               }
               else
               {
                  arg_list.push_back(condition );
                  arg_list.push_back(consequent);
               }

            }
            else if (details::imatch("default",current_token().value))
            {
               if (0 != default_statement)
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR094 - Multiple default cases for switch statement",
                     exprtk_error_location));

                  return error_node();
               }

               next_token();

               if (!token_is(token_t::e_colon))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR095 - Expected ':' for default of switch statement",
                     exprtk_error_location));

                  return error_node();
               }

               default_statement =
                  (token_is(token_t::e_lcrlbracket,prsrhlpr_t::e_hold)) ?
                  parse_multi_sequence("switch-default"):
                  parse_expression();

               if (0 == default_statement)
                  return error_node();
               else if (!token_is(token_t::e_eof))
               {
                  set_error(make_error(
                     parser_error::e_syntax,
                     current_token(),
                     "ERR096 - Expected ';' at end of default for switch statement",
                     exprtk_error_location));

                  return error_node();
               }
            }
            else if (token_is(token_t::e_rcrlbracket))
               break;
            else
            {
               set_error(make_error(
                  parser_error::e_syntax,
                  current_token(),
                  "ERR097 - Expected '}' at end of switch statement",
                  exprtk_error_location));

               return error_node();
            }
         }

         const bool default_statement_present = (0 != default_statement);

         if (default_statement_present)
         {
            arg_list.push_back(default_statement);
         }
         else
         {
            arg_list.push_back(node_allocator_.allocate_c<literal_node_t>(std::numeric_limits<T>::quiet_NaN()));
         }

         expression_node_ptr result = expression_generator_.switch_statement(arg_list, (0 != default_statement));

         svd.delete_ptr = (0 == result);
         defstmt_delete.delete_ptr = (0 == result);

         return result;
      }

// Assembly:
subq $0xba8, %rsp            # imm = 0xBA8
movq %rdi, 0xb98(%rsp)
movq 0xb98(%rsp), %rax
movq %rax, 0x178(%rsp)
leaq 0xb80(%rsp), %rdi
callq 0x3798f0
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x180(%rsp)
jmp 0x38b873
movq 0x180(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x168(%rsp)
leaq 0xb4f(%rsp), %rdi
movq %rdi, 0x170(%rsp)
callq 0x11b6f0
movq 0x170(%rsp), %rdx
leaq 0x21be30(%rip), %rsi    # 0x5a76db
leaq 0xb50(%rsp), %rdi
callq 0x134520
jmp 0x38b8ba
movq 0x168(%rsp), %rdi
leaq 0xb50(%rsp), %rsi
callq 0x37fb20
movb %al, 0x167(%rsp)
jmp 0x38b8d8
movb 0x167(%rsp), %al
xorb $-0x1, %al
movb %al, 0x166(%rsp)
leaq 0xb50(%rsp), %rdi
callq 0x11b838
leaq 0xb4f(%rsp), %rdi
callq 0x11b820
movb 0x166(%rsp), %al
testb $0x1, %al
jne 0x38b912
jmp 0x38bb46
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x158(%rsp)
jmp 0x38b929
leaq 0xa7f(%rsp), %rdi
movq %rdi, 0x150(%rsp)
callq 0x11b6f0
movq 0x150(%rsp), %rdx
leaq 0x21d351(%rip), %rsi    # 0x5a8c9e
leaq 0xa80(%rsp), %rdi
callq 0x134520
jmp 0x38b95c
leaq 0xa38(%rsp), %rdi
movl $0x6a16, %esi           # imm = 0x6A16
callq 0x371f20
jmp 0x38b970
leaq 0x21b59c(%rip), %rsi    # 0x5a6f13
leaq 0xa58(%rsp), %rdi
leaq 0xa38(%rsp), %rdx
callq 0x29dd70
jmp 0x38b98e
movq 0x158(%rsp), %rdx
leaq 0xaa0(%rsp), %rdi
movl $0x1, %esi
leaq 0xa80(%rsp), %rcx
leaq 0xa58(%rsp), %r8
callq 0x3741e0
jmp 0x38b9ba
movq 0x178(%rsp), %rdi
leaq 0xaa0(%rsp), %rsi
callq 0x371e40
jmp 0x38b9d1
leaq 0xaa0(%rsp), %rdi
callq 0x371330
leaq 0xa58(%rsp), %rdi
callq 0x11b838
leaq 0xa38(%rsp), %rdi
callq 0x11b838
leaq 0xa80(%rsp), %rdi
callq 0x11b838
leaq 0xa7f(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d223
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d240
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38ba7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0xb50(%rsp), %rdi
callq 0x11b838
leaq 0xb4f(%rsp), %rdi
callq 0x11b820
jmp 0x38d240
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bb34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bb27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bb1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bb0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0xaa0(%rsp), %rdi
callq 0x371330
leaq 0xa58(%rsp), %rdi
callq 0x11b838
leaq 0xa38(%rsp), %rdi
callq 0x11b838
leaq 0xa80(%rsp), %rdi
callq 0x11b838
leaq 0xa7f(%rsp), %rdi
callq 0x11b820
jmp 0x38d240
movq 0x178(%rsp), %rsi
leaq 0xa18(%rsp), %rdi
leaq 0xb80(%rsp), %rdx
callq 0x379910
jmp 0x38bb65
movq 0x178(%rsp), %rdi
callq 0x373690
jmp 0x38bb74
movq 0x178(%rsp), %rdi
movl $0x7b, 0xa14(%rsp)
leaq 0xa14(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x14f(%rsp)
jmp 0x38bba2
movb 0x14f(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38bbb4
jmp 0x38bd9f
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x140(%rsp)
jmp 0x38bbcb
leaq 0x947(%rsp), %rdi
movq %rdi, 0x138(%rsp)
callq 0x11b6f0
movq 0x138(%rsp), %rdx
leaq 0x21d0d2(%rip), %rsi    # 0x5a8cc1
leaq 0x948(%rsp), %rdi
callq 0x134520
jmp 0x38bbfe
leaq 0x900(%rsp), %rdi
movl $0x6a25, %esi           # imm = 0x6A25
callq 0x371f20
jmp 0x38bc12
leaq 0x21b2fa(%rip), %rsi    # 0x5a6f13
leaq 0x920(%rsp), %rdi
leaq 0x900(%rsp), %rdx
callq 0x29dd70
jmp 0x38bc30
movq 0x140(%rsp), %rdx
leaq 0x968(%rsp), %rdi
movl $0x1, %esi
leaq 0x948(%rsp), %rcx
leaq 0x920(%rsp), %r8
callq 0x3741e0
jmp 0x38bc5c
movq 0x178(%rsp), %rdi
leaq 0x968(%rsp), %rsi
callq 0x371e40
jmp 0x38bc73
leaq 0x968(%rsp), %rdi
callq 0x371330
leaq 0x920(%rsp), %rdi
callq 0x11b838
leaq 0x900(%rsp), %rdi
callq 0x11b838
leaq 0x948(%rsp), %rdi
callq 0x11b838
leaq 0x947(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d205
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d214
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bd8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bd80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bd73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38bd66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x968(%rsp), %rdi
callq 0x371330
leaq 0x920(%rsp), %rdi
callq 0x11b838
leaq 0x900(%rsp), %rdi
callq 0x11b838
leaq 0x948(%rsp), %rdi
callq 0x11b838
leaq 0x947(%rsp), %rdi
callq 0x11b820
jmp 0x38d214
callq 0x2821f0
movq 0x178(%rsp), %rsi
movq %rax, 0x8f8(%rsp)
leaq 0x8e0(%rsp), %rdi
leaq 0x8f8(%rsp), %rdx
callq 0x4ebef0
jmp 0x38bdcb
jmp 0x38bdcd
leaq 0x8bf(%rsp), %rdi
movq %rdi, 0x130(%rsp)
callq 0x11b6f0
movq 0x130(%rsp), %rdx
leaq 0x214739(%rip), %rsi    # 0x5a052a
leaq 0x8c0(%rsp), %rdi
callq 0x134520
jmp 0x38be00
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x128(%rsp)
jmp 0x38be17
movq 0x128(%rsp), %rsi
addq $0x8, %rsi
leaq 0x8c0(%rsp), %rdi
callq 0x37fb20
movb %al, 0x127(%rsp)
jmp 0x38be39
leaq 0x8c0(%rsp), %rdi
callq 0x11b838
leaq 0x8bf(%rsp), %rdi
callq 0x11b820
movb 0x127(%rsp), %al
testb $0x1, %al
jne 0x38be63
jmp 0x38c64a
movq 0x178(%rsp), %rdi
callq 0x373690
jmp 0x38be72
movq 0x178(%rsp), %rdi
xorl %esi, %esi
callq 0x379940
movq %rax, 0x118(%rsp)
jmp 0x38be8b
movq 0x118(%rsp), %rax
movq %rax, 0x8b0(%rsp)
xorl %eax, %eax
cmpq 0x8b0(%rsp), %rax
jne 0x38bf26
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38befb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x8c0(%rsp), %rdi
callq 0x11b838
leaq 0x8bf(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d1f6
movq 0x178(%rsp), %rdi
movl $0x3a, 0x8ac(%rsp)
leaq 0x8ac(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x117(%rsp)
jmp 0x38bf54
movb 0x117(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38bf66
jmp 0x38c156
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x108(%rsp)
jmp 0x38bf7d
leaq 0x7df(%rsp), %rdi
movq %rdi, 0x100(%rsp)
callq 0x11b6f0
movq 0x100(%rsp), %rdx
leaq 0x21cd53(%rip), %rsi    # 0x5a8cf4
leaq 0x7e0(%rsp), %rdi
callq 0x134520
jmp 0x38bfb0
leaq 0x798(%rsp), %rdi
movl $0x6a3e, %esi           # imm = 0x6A3E
callq 0x371f20
jmp 0x38bfc4
leaq 0x21af48(%rip), %rsi    # 0x5a6f13
leaq 0x7b8(%rsp), %rdi
leaq 0x798(%rsp), %rdx
callq 0x29dd70
jmp 0x38bfe2
movq 0x108(%rsp), %rdx
leaq 0x800(%rsp), %rdi
movl $0x1, %esi
leaq 0x7e0(%rsp), %rcx
leaq 0x7b8(%rsp), %r8
callq 0x3741e0
jmp 0x38c00e
movq 0x178(%rsp), %rdi
leaq 0x800(%rsp), %rsi
callq 0x371e40
jmp 0x38c025
leaq 0x800(%rsp), %rdi
callq 0x371330
leaq 0x7b8(%rsp), %rdi
callq 0x11b838
leaq 0x798(%rsp), %rdi
callq 0x11b838
leaq 0x7e0(%rsp), %rdi
callq 0x11b838
leaq 0x7df(%rsp), %rdi
callq 0x11b820
movq 0x178(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x8b0(%rsp), %rsi
callq 0x284bd0
jmp 0x38c084
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c144
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c137
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c12a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c11d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x800(%rsp), %rdi
callq 0x371330
leaq 0x7b8(%rsp), %rdi
callq 0x11b838
leaq 0x798(%rsp), %rdi
callq 0x11b838
leaq 0x7e0(%rsp), %rdi
callq 0x11b838
leaq 0x7df(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
jmp 0x38c158
movq 0x178(%rsp), %rdi
movl $0x7b, 0x78c(%rsp)
movb $0x0, 0x766(%rsp)
movb $0x0, 0x765(%rsp)
leaq 0x78c(%rsp), %rsi
xorl %edx, %edx
callq 0x37d640
movb %al, 0xff(%rsp)
jmp 0x38c193
movb 0xff(%rsp), %al
testb $0x1, %al
jne 0x38c1a0
jmp 0x38c216
leaq 0x767(%rsp), %rdi
movq %rdi, 0xf0(%rsp)
callq 0x11b6f0
movq 0xf0(%rsp), %rdx
movb $0x1, 0x766(%rsp)
leaq 0x21b54c(%rip), %rsi    # 0x5a7718
leaq 0x768(%rsp), %rdi
callq 0x134520
jmp 0x38c1db
movq 0x178(%rsp), %rdi
movb $0x1, 0x765(%rsp)
leaq 0x768(%rsp), %rsi
xorl %edx, %edx
callq 0x399340
movq %rax, 0xe8(%rsp)
jmp 0x38c204
movq 0xe8(%rsp), %rax
movq %rax, 0xe0(%rsp)
jmp 0x38c241
movq 0x178(%rsp), %rdi
xorl %esi, %esi
callq 0x379940
movq %rax, 0xd8(%rsp)
jmp 0x38c22f
movq 0xd8(%rsp), %rax
movq %rax, 0xe0(%rsp)
jmp 0x38c241
movq 0xe0(%rsp), %rax
movq %rax, 0xd0(%rsp)
testb $0x1, 0x765(%rsp)
jne 0x38c25d
jmp 0x38c26a
leaq 0x768(%rsp), %rdi
callq 0x11b838
testb $0x1, 0x766(%rsp)
jne 0x38c276
jmp 0x38c283
leaq 0x767(%rsp), %rdi
callq 0x11b820
movq 0xd0(%rsp), %rax
movq %rax, 0x790(%rsp)
xorl %eax, %eax
cmpq 0x790(%rsp), %rax
jne 0x38c341
movq 0x178(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x8b0(%rsp), %rsi
callq 0x284bd0
jmp 0x38c2c1
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c323
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
testb $0x1, 0x765(%rsp)
jne 0x38c314
jmp 0x38c321
leaq 0x768(%rsp), %rdi
callq 0x11b838
jmp 0x38c323
testb $0x1, 0x766(%rsp)
jne 0x38c32f
jmp 0x38c33c
leaq 0x767(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
movq 0x178(%rsp), %rdi
movl $0x6, 0x760(%rsp)
leaq 0x760(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0xcf(%rsp)
jmp 0x38c36f
movb 0xcf(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38c381
jmp 0x38c58f
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0xc0(%rsp)
jmp 0x38c398
leaq 0x697(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x11b6f0
movq 0xb8(%rsp), %rdx
leaq 0x21c96b(%rip), %rsi    # 0x5a8d27
leaq 0x698(%rsp), %rdi
callq 0x134520
jmp 0x38c3cb
leaq 0x650(%rsp), %rdi
movl $0x6a56, %esi           # imm = 0x6A56
callq 0x371f20
jmp 0x38c3df
leaq 0x21ab2d(%rip), %rsi    # 0x5a6f13
leaq 0x670(%rsp), %rdi
leaq 0x650(%rsp), %rdx
callq 0x29dd70
jmp 0x38c3fd
movq 0xc0(%rsp), %rdx
leaq 0x6b8(%rsp), %rdi
movl $0x1, %esi
leaq 0x698(%rsp), %rcx
leaq 0x670(%rsp), %r8
callq 0x3741e0
jmp 0x38c429
movq 0x178(%rsp), %rdi
leaq 0x6b8(%rsp), %rsi
callq 0x371e40
jmp 0x38c440
leaq 0x6b8(%rsp), %rdi
callq 0x371330
leaq 0x670(%rsp), %rdi
callq 0x11b838
leaq 0x650(%rsp), %rdi
callq 0x11b838
leaq 0x698(%rsp), %rdi
callq 0x11b838
leaq 0x697(%rsp), %rdi
callq 0x11b820
movq 0x178(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x8b0(%rsp), %rsi
callq 0x284bd0
jmp 0x38c49f
movq 0x178(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x790(%rsp), %rsi
callq 0x284bd0
jmp 0x38c4bd
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c57d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c570
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c563
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c556
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x6b8(%rsp), %rdi
callq 0x371330
leaq 0x670(%rsp), %rdi
callq 0x11b838
leaq 0x650(%rsp), %rdi
callq 0x11b838
leaq 0x698(%rsp), %rdi
callq 0x11b838
leaq 0x697(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
jmp 0x38c591
movq 0x8b0(%rsp), %rdi
callq 0x39cbf0
movb %al, 0xb7(%rsp)
jmp 0x38c5a7
movb 0xb7(%rsp), %al
testb $0x1, %al
jne 0x38c5b4
jmp 0x38c615
movq 0x8b0(%rsp), %rdi
callq 0x39cc60
movb %al, 0xb6(%rsp)
jmp 0x38c5ca
movb 0xb6(%rsp), %al
testb $0x1, %al
jne 0x38c5d7
jmp 0x38c615
movq 0x178(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x8b0(%rsp), %rsi
callq 0x284bd0
jmp 0x38c5f5
movq 0x178(%rsp), %rdi
addq $0x290, %rdi            # imm = 0x290
leaq 0x790(%rsp), %rsi
callq 0x284bd0
jmp 0x38c613
jmp 0x38c645
leaq 0xb80(%rsp), %rdi
leaq 0x8b0(%rsp), %rsi
callq 0x37d3b0
jmp 0x38c62c
leaq 0xb80(%rsp), %rdi
leaq 0x790(%rsp), %rsi
callq 0x37d3b0
jmp 0x38c643
jmp 0x38c645
jmp 0x38d0c3
leaq 0x62f(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x11b6f0
movq 0xa8(%rsp), %rdx
leaq 0x21c765(%rip), %rsi    # 0x5a8dd3
leaq 0x630(%rsp), %rdi
callq 0x134520
jmp 0x38c67d
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0xa0(%rsp)
jmp 0x38c694
movq 0xa0(%rsp), %rsi
addq $0x8, %rsi
leaq 0x630(%rsp), %rdi
callq 0x37fb20
movb %al, 0x9f(%rsp)
jmp 0x38c6b6
leaq 0x630(%rsp), %rdi
callq 0x11b838
leaq 0x62f(%rsp), %rdi
callq 0x11b820
movb 0x9f(%rsp), %al
testb $0x1, %al
jne 0x38c6e0
jmp 0x38cec1
xorl %eax, %eax
cmpq 0x8f8(%rsp), %rax
je 0x38c90b
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x90(%rsp)
jmp 0x38c707
leaq 0x55f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x11b6f0
movq 0x88(%rsp), %rdx
leaq 0x21c636(%rip), %rsi    # 0x5a8d61
leaq 0x560(%rsp), %rdi
callq 0x134520
jmp 0x38c73a
leaq 0x518(%rsp), %rdi
movl $0x6a73, %esi           # imm = 0x6A73
callq 0x371f20
jmp 0x38c74e
leaq 0x21a7be(%rip), %rsi    # 0x5a6f13
leaq 0x538(%rsp), %rdi
leaq 0x518(%rsp), %rdx
callq 0x29dd70
jmp 0x38c76c
movq 0x90(%rsp), %rdx
leaq 0x580(%rsp), %rdi
movl $0x1, %esi
leaq 0x560(%rsp), %rcx
leaq 0x538(%rsp), %r8
callq 0x3741e0
jmp 0x38c798
movq 0x178(%rsp), %rdi
leaq 0x580(%rsp), %rsi
callq 0x371e40
jmp 0x38c7af
leaq 0x580(%rsp), %rdi
callq 0x371330
leaq 0x538(%rsp), %rdi
callq 0x11b838
leaq 0x518(%rsp), %rdi
callq 0x11b838
leaq 0x560(%rsp), %rdi
callq 0x11b838
leaq 0x55f(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c844
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x630(%rsp), %rdi
callq 0x11b838
leaq 0x62f(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c8f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c8ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c8df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38c8d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x580(%rsp), %rdi
callq 0x371330
leaq 0x538(%rsp), %rdi
callq 0x11b838
leaq 0x518(%rsp), %rdi
callq 0x11b838
leaq 0x560(%rsp), %rdi
callq 0x11b838
leaq 0x55f(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
movq 0x178(%rsp), %rdi
callq 0x373690
jmp 0x38c91a
movq 0x178(%rsp), %rdi
movl $0x3a, 0x514(%rsp)
leaq 0x514(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x87(%rsp)
jmp 0x38c948
movb 0x87(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38c95a
jmp 0x38cb20
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x78(%rsp)
jmp 0x38c96e
leaq 0x447(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x11b6f0
movq 0x70(%rsp), %rdx
leaq 0x21c40a(%rip), %rsi    # 0x5a8d96
leaq 0x448(%rsp), %rdi
callq 0x134520
jmp 0x38c99b
leaq 0x400(%rsp), %rdi
movl $0x6a80, %esi           # imm = 0x6A80
callq 0x371f20
jmp 0x38c9af
leaq 0x21a55d(%rip), %rsi    # 0x5a6f13
leaq 0x420(%rsp), %rdi
leaq 0x400(%rsp), %rdx
callq 0x29dd70
jmp 0x38c9cd
movq 0x78(%rsp), %rdx
leaq 0x468(%rsp), %rdi
movl $0x1, %esi
leaq 0x448(%rsp), %rcx
leaq 0x420(%rsp), %r8
callq 0x3741e0
jmp 0x38c9f6
movq 0x178(%rsp), %rdi
leaq 0x468(%rsp), %rsi
callq 0x371e40
jmp 0x38ca0d
leaq 0x468(%rsp), %rdi
callq 0x371330
leaq 0x420(%rsp), %rdi
callq 0x11b838
leaq 0x400(%rsp), %rdi
callq 0x11b838
leaq 0x448(%rsp), %rdi
callq 0x11b838
leaq 0x447(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38cb0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38cb01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38caf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38cae7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x468(%rsp), %rdi
callq 0x371330
leaq 0x420(%rsp), %rdi
callq 0x11b838
leaq 0x400(%rsp), %rdi
callq 0x11b838
leaq 0x448(%rsp), %rdi
callq 0x11b838
leaq 0x447(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
movq 0x178(%rsp), %rdi
movl $0x7b, 0x3fc(%rsp)
movb $0x0, 0x3d6(%rsp)
movb $0x0, 0x3d5(%rsp)
leaq 0x3fc(%rsp), %rsi
xorl %edx, %edx
callq 0x37d640
movb %al, 0x6f(%rsp)
jmp 0x38cb58
movb 0x6f(%rsp), %al
testb $0x1, %al
jne 0x38cb62
jmp 0x38cbc9
leaq 0x3d7(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x11b6f0
movq 0x60(%rsp), %rdx
movb $0x1, 0x3d6(%rsp)
leaq 0x21c244(%rip), %rsi    # 0x5a8dcc
leaq 0x3d8(%rsp), %rdi
callq 0x134520
jmp 0x38cb97
movq 0x178(%rsp), %rdi
movb $0x1, 0x3d5(%rsp)
leaq 0x3d8(%rsp), %rsi
xorl %edx, %edx
callq 0x399340
movq %rax, 0x58(%rsp)
jmp 0x38cbbd
movq 0x58(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x38cbeb
movq 0x178(%rsp), %rdi
xorl %esi, %esi
callq 0x379940
movq %rax, 0x48(%rsp)
jmp 0x38cbdf
movq 0x48(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x38cbeb
movq 0x50(%rsp), %rax
movq %rax, 0x8f8(%rsp)
testb $0x1, 0x3d5(%rsp)
jne 0x38cc04
jmp 0x38cc11
leaq 0x3d8(%rsp), %rdi
callq 0x11b838
testb $0x1, 0x3d6(%rsp)
jne 0x38cc1d
jmp 0x38cc2a
leaq 0x3d7(%rsp), %rdi
callq 0x11b820
xorl %eax, %eax
cmpq 0x8f8(%rsp), %rax
jne 0x38ccba
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38cc9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
testb $0x1, 0x3d5(%rsp)
jne 0x38cc8d
jmp 0x38cc9a
leaq 0x3d8(%rsp), %rdi
callq 0x11b838
jmp 0x38cc9c
testb $0x1, 0x3d6(%rsp)
jne 0x38cca8
jmp 0x38ccb5
leaq 0x3d7(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
movq 0x178(%rsp), %rdi
movl $0x6, 0x3d0(%rsp)
leaq 0x3d0(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x47(%rsp)
jmp 0x38cce5
movb 0x47(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38ccf4
jmp 0x38ceba
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x38(%rsp)
jmp 0x38cd08
leaq 0x307(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x11b6f0
movq 0x30(%rsp), %rdx
leaq 0x21c0b5(%rip), %rsi    # 0x5a8ddb
leaq 0x308(%rsp), %rdi
callq 0x134520
jmp 0x38cd35
leaq 0x2c0(%rsp), %rdi
movl $0x6a92, %esi           # imm = 0x6A92
callq 0x371f20
jmp 0x38cd49
leaq 0x21a1c3(%rip), %rsi    # 0x5a6f13
leaq 0x2e0(%rsp), %rdi
leaq 0x2c0(%rsp), %rdx
callq 0x29dd70
jmp 0x38cd67
movq 0x38(%rsp), %rdx
leaq 0x328(%rsp), %rdi
movl $0x1, %esi
leaq 0x308(%rsp), %rcx
leaq 0x2e0(%rsp), %r8
callq 0x3741e0
jmp 0x38cd90
movq 0x178(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0x371e40
jmp 0x38cda7
leaq 0x328(%rsp), %rdi
callq 0x371330
leaq 0x2e0(%rsp), %rdi
callq 0x11b838
leaq 0x2c0(%rsp), %rdi
callq 0x11b838
leaq 0x308(%rsp), %rdi
callq 0x11b838
leaq 0x307(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38cea8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38ce9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38ce8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38ce81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x371330
leaq 0x2e0(%rsp), %rdi
callq 0x11b838
leaq 0x2c0(%rsp), %rdi
callq 0x11b838
leaq 0x308(%rsp), %rdi
callq 0x11b838
leaq 0x307(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
jmp 0x38cebc
jmp 0x38d0c1
movq 0x178(%rsp), %rdi
movl $0x7d, 0x2bc(%rsp)
leaq 0x2bc(%rsp), %rsi
movl $0x1, %edx
callq 0x37d640
movb %al, 0x2f(%rsp)
jmp 0x38ceec
movb 0x2f(%rsp), %al
testb $0x1, %al
jne 0x38cef6
jmp 0x38cefb
jmp 0x38d0c8
movq 0x178(%rsp), %rdi
callq 0x373e90
movq %rax, 0x20(%rsp)
jmp 0x38cf0f
leaq 0x1ef(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x11b6f0
movq 0x18(%rsp), %rdx
leaq 0x21beeb(%rip), %rsi    # 0x5a8e18
leaq 0x1f0(%rsp), %rdi
callq 0x134520
jmp 0x38cf3c
leaq 0x1a8(%rsp), %rdi
movl $0x6a9f, %esi           # imm = 0x6A9F
callq 0x371f20
jmp 0x38cf50
leaq 0x219fbc(%rip), %rsi    # 0x5a6f13
leaq 0x1c8(%rsp), %rdi
leaq 0x1a8(%rsp), %rdx
callq 0x29dd70
jmp 0x38cf6e
movq 0x20(%rsp), %rdx
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
leaq 0x1f0(%rsp), %rcx
leaq 0x1c8(%rsp), %r8
callq 0x3741e0
jmp 0x38cf97
movq 0x178(%rsp), %rdi
leaq 0x210(%rsp), %rsi
callq 0x371e40
jmp 0x38cfae
leaq 0x210(%rsp), %rdi
callq 0x371330
leaq 0x1c8(%rsp), %rdi
callq 0x11b838
leaq 0x1a8(%rsp), %rdi
callq 0x11b838
leaq 0x1f0(%rsp), %rdi
callq 0x11b838
leaq 0x1ef(%rsp), %rdi
callq 0x11b820
callq 0x2821f0
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
jmp 0x38d1e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d0af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d0a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d095
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
jmp 0x38d088
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb78(%rsp)
movl %eax, 0xb74(%rsp)
leaq 0x210(%rsp), %rdi
callq 0x371330
leaq 0x1c8(%rsp), %rdi
callq 0x11b838
leaq 0x1a8(%rsp), %rdi
callq 0x11b838
leaq 0x1f0(%rsp), %rdi
callq 0x11b838
leaq 0x1ef(%rsp), %rdi
callq 0x11b820
jmp 0x38d1f6
jmp 0x38d0c3
jmp 0x38bdcd
xorl %eax, %eax
cmpq 0x8f8(%rsp), %rax
setne %al
andb $0x1, %al
movb %al, 0x1a7(%rsp)
testb $0x1, 0x1a7(%rsp)
je 0x38d101
leaq 0xb80(%rsp), %rdi
leaq 0x8f8(%rsp), %rsi
callq 0x37d3b0
jmp 0x38d0ff
jmp 0x38d161
movq 0x178(%rsp), %rax
addq $0x290, %rax            # imm = 0x290
movq %rax, 0x8(%rsp)
callq 0x2361c0
movq 0x8(%rsp), %rdi
movsd %xmm0, 0x190(%rsp)
leaq 0x190(%rsp), %rsi
callq 0x287b60
movq %rax, 0x10(%rsp)
jmp 0x38d13b
movq 0x10(%rsp), %rax
movq %rax, 0x198(%rsp)
leaq 0xb80(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x4ebf20
jmp 0x38d15f
jmp 0x38d161
movq 0x178(%rsp), %rdi
addq $0x220, %rdi            # imm = 0x220
movq 0x8f8(%rsp), %rax
testq %rax, %rax
setne %al
movzbl %al, %edx
leaq 0xb80(%rsp), %rsi
callq 0x4ebf50
movq %rax, (%rsp)
jmp 0x38d194
movq (%rsp), %rax
movq %rax, 0x188(%rsp)
xorl %eax, %eax
cmpq 0x188(%rsp), %rax
sete %al
andb $0x1, %al
movb %al, 0xa18(%rsp)
xorl %eax, %eax
cmpq 0x188(%rsp), %rax
sete %al
andb $0x1, %al
movb %al, 0x8e0(%rsp)
movq 0x188(%rsp), %rax
movq %rax, 0xba0(%rsp)
movl $0x1, 0xa34(%rsp)
leaq 0x8e0(%rsp), %rdi
callq 0x4ec130
jmp 0x38d205
leaq 0x8e0(%rsp), %rdi
callq 0x4ec130
jmp 0x38d214
leaq 0xa18(%rsp), %rdi
callq 0x37dec0
jmp 0x38d223
leaq 0xa18(%rsp), %rdi
callq 0x37dec0
jmp 0x38d240
leaq 0xb80(%rsp), %rdi
callq 0x37df90
movq 0xba0(%rsp), %rax
addq $0xba8, %rsp            # imm = 0xBA8
retq
leaq 0xb80(%rsp), %rdi
callq 0x37df90
movq 0xb78(%rsp), %rdi
callq 0x11b4e0
nopw (%rax,%rax)