// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk/exprtk_test.cpp
// Function: bool run_test20<double>()
bool run_test20()
{
   typedef exprtk::expression<T>   expression_t;
   typedef exprtk::symbol_table<T> symbol_table_t;

   {


      for (std::size_t i = 0; i < 100; ++i)
      {
         symbol_table_t symbol_table0; // primary symbol_table
         symbol_table_t symbol_table1;
         symbol_table_t symbol_table2;
         symbol_table_t symbol_table3;

         symbol_table0.add_constants();

         expression_t expression;
         expression.register_symbol_table(symbol_table0);
         expression.register_symbol_table(symbol_table1);
         expression.register_symbol_table(symbol_table2);
         expression.register_symbol_table(symbol_table3);

         exprtk::parser<T> parser;

         my_usr<T> musr;
         musr.next_value(true);
         parser.enable_unknown_symbol_resolver(&musr);

         std::string expr_str = "v01+c02+v03+c04+v05+c06+v07+c08+v09+c10+"
                                "v11+c12+v13+c14+v15+c16+v17+c18+v19+c20+"
                                "v21+c22+v23+c24+v25+c26+v27+c28+v29+c30 ";

         if (!parser.compile(expr_str,expression))
         {
            printf("run_test20() - [1] Error: %s   Expression: %s\n",
                   parser.error().c_str(),
                   expr_str.c_str());

            return false;
         }

         T sum_1_30 = T((1 + 30) * 15);
         T result   = expression.value();

         if (sum_1_30 != result)
         {
            printf("run_test20() - [1] Error in evaluation! (1) Expression: %s\n",
                   expr_str.c_str());

            return false;
         }
      }
   }

   {
      for (std::size_t i = 0; i < 100; ++i)
      {
         symbol_table_t symbol_table0; // primary symbol_table
         symbol_table_t symbol_table1;
         symbol_table_t symbol_table2;
         symbol_table_t symbol_table3;

         symbol_table0.add_constants();

         expression_t expression;
         expression.register_symbol_table(symbol_table0);
         expression.register_symbol_table(symbol_table1);
         expression.register_symbol_table(symbol_table2);
         expression.register_symbol_table(symbol_table3);

         exprtk::parser<T> parser;

         my_usr_ext<T> musr;
         parser.enable_unknown_symbol_resolver(&musr);

         std::string expr_str = "foo6(foo1(v0),foo2(c1,foo4(v2,c3,v4,c5)),foo3"
                                "(v6,c7,foo5(v8,c9,v10,c11,v12)),c13,v14,c15) ";

         if (!parser.compile(expr_str,expression))
         {
            printf("run_test20() - [2] Error: %s   Expression: %s\n",
                   parser.error().c_str(),
                   expr_str.c_str());

            return false;
         }
      }
   }

   {
      T              var;
      std::string    str;
      std::vector<T> vec(10,0.0);

      bool result = true;

      {
         symbol_table_t symbol_table;

         symbol_table.add_variable ("val",var);
         symbol_table.add_stringvar("str",str);
         symbol_table.add_vector   ("vec",vec);

         if (symbol_table.get_variable("val") == 0 || !symbol_table.symbol_exists("val"))
         {
            printf("run_test20() - [3] Failed to get 'val' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_stringvar("str") == 0 || !symbol_table.symbol_exists("str"))
         {
            printf("run_test20() - [3] Failed to get 'str' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_vector("vec") == 0 || !symbol_table.symbol_exists("vec"))
         {
            printf("run_test20() - [3] Failed to get 'vec' from symbol_table\n");
            result = false;
         }
      }

      if (!result)
         return result;

      {
         symbol_table_t symbol_table;

         symbol_table.add_variable("val",var);

         if (symbol_table.get_variable("val") == 0 || !symbol_table.symbol_exists("val"))
         {
            printf("run_test20() - [4] Failed to get 'val' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_stringvar("str") != 0 || symbol_table.symbol_exists("str"))
         {
            printf("run_test20() - [4] Failed to get 'str' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_vector("vec") != 0 || symbol_table.symbol_exists("vec"))
         {
            printf("run_test20() - [4] Failed to get 'vec' from symbol_table\n");
            result = false;
         }
      }

      if (!result)
         return result;

      {
         symbol_table_t symbol_table;

         symbol_table.add_stringvar("str",str);

         if (symbol_table.get_stringvar("str") == 0 || !symbol_table.symbol_exists("str"))
         {
            printf("run_test20() - [5] Failed to get 'str' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_variable("val") != 0 || symbol_table.symbol_exists("val"))
         {
            printf("run_test20() - [5] Failed to get 'val' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_vector("vec") != 0 || symbol_table.symbol_exists("vec"))
         {
            printf("run_test20() - [5] Failed to get 'vec' from symbol_table\n");
            result = false;
         }
      }

      if (!result)
         return result;

      {
         symbol_table_t symbol_table;

         symbol_table.add_vector("vec",vec);

         if (symbol_table.get_vector("vec") == 0 || !symbol_table.symbol_exists("vec"))
         {
            printf("run_test20() - [6] Failed to get 'vec' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_variable("val") != 0 || symbol_table.symbol_exists("val"))
         {
            printf("run_test20() - [6] Failed to get 'val' from symbol_table\n");
            result = false;
         }

         if (symbol_table.get_stringvar("str") != 0 || symbol_table.symbol_exists("str"))
         {
            printf("run_test20() - [6] Failed to get 'str' from symbol_table\n");
            result = false;
         }
      }

      if (!result)
         return result;

      {
         symbol_table_t symbol_table1;
         symbol_table_t symbol_table2;
         expression_t   expression;

         if (!expression.register_symbol_table(symbol_table1))
         {
            printf("run_test20() - Failed to register symbol_table1 with expression\n");
            result = false;
         }

         if (!expression.register_symbol_table(symbol_table2))
         {
            printf("run_test20() - Failed to register symbol_table2 with expression\n");
            result = false;
         }

         if (expression.num_symbol_tables() != 2)
         {
            printf("run_test20() - Invalid number of symbol tables in expression [1]\n");
            result = false;
         }

         if (expression.register_symbol_table(symbol_table1))
         {
            printf("run_test20() - Error: was able to register symbol_table1 with expression\n");
            result = false;
         }

         if (expression.register_symbol_table(symbol_table2))
         {
            printf("run_test20() - Error: was able to register symbol_table2 with expression\n");
            result = false;
         }

         if (expression.num_symbol_tables() != 2)
         {
            printf("run_test20() - Invalid number of symbol tables in expression [2]\n");
            result = false;
         }

         symbol_table_t symbol_table12 = symbol_table1;
         symbol_table_t symbol_table22 = symbol_table2;

         if (expression.register_symbol_table(symbol_table12))
         {
            printf("run_test20() - Error: was able to register symbol_table12 with expression\n");
            result = false;
         }

         if (expression.register_symbol_table(symbol_table22))
         {
            printf("run_test20() - Error: was able to register symbol_table22 with expression\n");
            result = false;
         }

         if (expression.num_symbol_tables() != 2)
         {
            printf("run_test20() - Invalid number of symbol tables in expression [3]\n");
            result = false;
         }

         symbol_table12 = symbol_table_t();
         symbol_table22 = symbol_table_t();

         if (!expression.register_symbol_table(symbol_table12))
         {
            printf("run_test20() - Failed to register symbol_table12 with expression [2]\n");
            result = false;
         }

         if (!expression.register_symbol_table(symbol_table22))
         {
            printf("run_test20() - Failed to register symbol_table22 with expression [2]\n");
            result = false;
         }

         if (expression.num_symbol_tables() != 4)
         {
            printf("run_test20() - Invalid number of symbol tables in expression [4]\n");
            result = false;
         }
      }

      if (!result)
         return result;

   }

   return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xae8, %rsp            # imm = 0xAE8
pushq $0x65
popq %r12
pushq $0x1
popq %rbp
leaq 0x18(%rsp), %r13
leaq 0x50(%rsp), %r14
leaq 0x1a0(%rsp), %r15
decq %r12
je 0x18733c
movq %rsp, %rbx
movq %rbx, %rdi
movl %ebp, %esi
callq 0x19486e
leaq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x19486e
leaq 0x8(%rsp), %rdi
movl %ebp, %esi
callq 0x19486e
leaq 0x38(%rsp), %rdi
movl %ebp, %esi
callq 0x19486e
movq %rbx, %rdi
callq 0x194892
movq %r13, %rdi
callq 0x194918
movq %r13, %rdi
movq %rbx, %rsi
callq 0x194978
movq %r13, %rdi
leaq 0x10(%rsp), %rsi
callq 0x194978
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x194978
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
callq 0x194978
movq %r14, %rdi
pushq $0x7f
popq %rsi
callq 0x1949d4
leaq 0x1c0(%rsp), %rdi
movq %r14, %rsi
callq 0x194ae4
movq %r14, %rdi
callq 0x1950fc
andl $0x0, 0x48(%rsp)
andq $0x0, 0x3607ff(%rip)    # 0x4e7a30
leaq 0x32fa48(%rip), %rax    # 0x4b6c80
movq %rax, 0x40(%rsp)
movb $0x1, 0x588(%rsp)
leaq 0x40(%rsp), %rax
movq %rax, 0x598(%rsp)
movq %r14, %rdi
leaq 0x17984d(%rip), %rsi    # 0x300aa9
movq %r15, %rdx
callq 0x127016
leaq 0x1c0(%rsp), %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x195144
testb %al, %al
je 0x1872af
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movb $0x1, %bl
ucomisd 0x14701c(%rip), %xmm0   # 0x2ce2b0
jne 0x187298
jnp 0x1872e4
movq 0x50(%rsp), %rsi
xorl %ebx, %ebx
leaq 0x1798ab(%rip), %rdi    # 0x300b51
xorl %eax, %eax
callq 0x118080
jmp 0x1872e4
movq %r15, %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1955c6
movq 0x1a0(%rsp), %rsi
movq 0x50(%rsp), %rdx
xorl %ebx, %ebx
leaq 0x17984d(%rip), %rdi    # 0x300b22
xorl %eax, %eax
callq 0x118080
movq %r15, %rdi
callq 0x118648
movq %r14, %rdi
callq 0x118648
leaq 0x1c0(%rsp), %rdi
callq 0x19561a
movq %r13, %rdi
callq 0x19577a
leaq 0x38(%rsp), %rdi
callq 0x195790
leaq 0x8(%rsp), %rdi
callq 0x195790
leaq 0x10(%rsp), %rdi
callq 0x195790
movq %rsp, %rdi
callq 0x195790
testb %bl, %bl
leaq 0x1a0(%rsp), %r15
jne 0x187185
jmp 0x1874d0
pushq $0x65
popq %r15
pushq $0x1
popq %rbx
leaq 0x18(%rsp), %r13
leaq 0x1a0(%rsp), %rbp
decq %r15
je 0x1874d7
movq %rsp, %rdi
movl %ebx, %esi
callq 0x19486e
leaq 0x10(%rsp), %rdi
movl %ebx, %esi
callq 0x19486e
leaq 0x8(%rsp), %rdi
movl %ebx, %esi
callq 0x19486e
leaq 0x50(%rsp), %r12
leaq 0x38(%rsp), %rdi
movl %ebx, %r14d
movl %ebx, %esi
callq 0x19486e
movq %rsp, %rdi
callq 0x194892
movq %r13, %rdi
callq 0x194918
movq %r13, %rdi
movq %rsp, %rsi
callq 0x194978
movq %r13, %rdi
leaq 0x10(%rsp), %rsi
callq 0x194978
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x194978
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
callq 0x194978
movq %r12, %rdi
pushq $0x7f
popq %rsi
callq 0x1949d4
leaq 0x1c0(%rsp), %rdi
movq %r12, %rsi
callq 0x194ae4
movq %r12, %rdi
callq 0x1950fc
movl $0x1, 0x48(%rsp)
leaq 0x32f8c5(%rip), %rax    # 0x4b6cc8
movq %rax, 0x40(%rsp)
movb $0x1, 0x588(%rsp)
leaq 0x40(%rsp), %rax
movq %rax, 0x598(%rsp)
movq %r12, %rdi
leaq 0x179766(%rip), %rsi    # 0x300b8d
movq %rbp, %rdx
callq 0x127016
leaq 0x1c0(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x195144
movl %eax, %r12d
testb %al, %al
jne 0x18747f
movq %rbp, %rbx
movq %rbp, %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x1955c6
movq 0x1a0(%rsp), %rsi
movq 0x50(%rsp), %rdx
leaq 0x179778(%rip), %rdi    # 0x300be8
xorl %eax, %eax
callq 0x118080
movq %rbx, %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x1c0(%rsp), %rdi
callq 0x19561a
movq %r13, %rdi
callq 0x19577a
leaq 0x38(%rsp), %rdi
callq 0x195790
leaq 0x8(%rsp), %rdi
callq 0x195790
leaq 0x10(%rsp), %rdi
callq 0x195790
movq %rsp, %rdi
callq 0x195790
testb %r12b, %r12b
movl %r14d, %ebx
jne 0x187350
xorl %ebx, %ebx
jmp 0x187f2a
leaq 0x1d0(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x50(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x1a0(%rsp), %rdi
pushq $0xa
popq %rsi
leaq 0x18(%rsp), %rcx
callq 0x2bb504
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x1796fc(%rip), %rsi    # 0x300c17
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
leaq 0x40(%rsp), %rdx
xorl %ecx, %ecx
callq 0x19666e
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x178d81(%rip), %rsi    # 0x3002d0
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
callq 0x2baf2a
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x179695(%rip), %rsi    # 0x300c1b
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x2bb55a
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x17965c(%rip), %rsi    # 0x300c17
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bc076
testq %rax, %rax
je 0x187621
leaq 0x179634(%rip), %rsi    # 0x300c17
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
movb $0x1, %bl
testb %bpl, %bpl
je 0x18762b
jmp 0x187639
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x1845dd(%rip), %rdi    # 0x30bc0f
callq 0x118550
xorl %ebx, %ebx
leaq 0x178c90(%rip), %rsi    # 0x3002d0
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bd33c
testq %rax, %rax
je 0x1876a4
leaq 0x178c68(%rip), %rsi    # 0x3002d0
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x1876ae
jmp 0x1876bc
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x184593(%rip), %rdi    # 0x30bc48
callq 0x118550
xorl %ebx, %ebx
leaq 0x179558(%rip), %rsi    # 0x300c1b
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2c88b2
testq %rax, %rax
je 0x187727
leaq 0x179530(%rip), %rsi    # 0x300c1b
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187731
jmp 0x18773f
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x184549(%rip), %rdi    # 0x30bc81
callq 0x118550
xorl %ebx, %ebx
movq %rsp, %rdi
callq 0x195790
testb %bl, %bl
je 0x187f0e
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x1794b6(%rip), %rsi    # 0x300c17
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
leaq 0x40(%rsp), %rdx
xorl %ecx, %ecx
callq 0x19666e
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x179482(%rip), %rsi    # 0x300c17
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bc076
testq %rax, %rax
je 0x1877f9
leaq 0x17945a(%rip), %rsi    # 0x300c17
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187803
jmp 0x187811
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x1844b0(%rip), %rdi    # 0x30bcba
callq 0x118550
xorl %ebx, %ebx
leaq 0x178ab8(%rip), %rsi    # 0x3002d0
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bd33c
testq %rax, %rax
je 0x187845
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x187886
leaq 0x178a84(%rip), %rsi    # 0x3002d0
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187894
leaq 0x184466(%rip), %rdi    # 0x30bcf3
callq 0x118550
xorl %ebx, %ebx
leaq 0x179380(%rip), %rsi    # 0x300c1b
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2c88b2
testq %rax, %rax
je 0x1878c8
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x187909
leaq 0x17934c(%rip), %rsi    # 0x300c1b
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187917
leaq 0x18441c(%rip), %rdi    # 0x30bd2c
callq 0x118550
xorl %ebx, %ebx
movq %rsp, %rdi
callq 0x195790
testb %bl, %bl
je 0x187f0e
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x178997(%rip), %rsi    # 0x3002d0
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
callq 0x2baf2a
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x178960(%rip), %rsi    # 0x3002d0
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bd33c
testq %rax, %rax
je 0x1879d4
leaq 0x178938(%rip), %rsi    # 0x3002d0
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x1879de
jmp 0x1879ec
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x184380(%rip), %rdi    # 0x30bd65
callq 0x118550
xorl %ebx, %ebx
leaq 0x179224(%rip), %rsi    # 0x300c17
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bc076
testq %rax, %rax
je 0x187a20
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x187a61
leaq 0x1791f0(%rip), %rsi    # 0x300c17
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187a6f
leaq 0x184336(%rip), %rdi    # 0x30bd9e
callq 0x118550
xorl %ebx, %ebx
leaq 0x1791a5(%rip), %rsi    # 0x300c1b
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2c88b2
testq %rax, %rax
je 0x187aa3
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x187ae4
leaq 0x179171(%rip), %rsi    # 0x300c1b
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187af2
leaq 0x1842ec(%rip), %rdi    # 0x30bdd7
callq 0x118550
xorl %ebx, %ebx
movq %rsp, %rdi
callq 0x195790
testb %bl, %bl
je 0x187f0e
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x179107(%rip), %rsi    # 0x300c1b
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x2bb55a
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x1790d2(%rip), %rsi    # 0x300c1b
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2c88b2
testq %rax, %rax
je 0x187bad
leaq 0x1790aa(%rip), %rsi    # 0x300c1b
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187bb7
jmp 0x187bc5
leaq 0x50(%rsp), %rdi
callq 0x118648
leaq 0x184252(%rip), %rdi    # 0x30be10
callq 0x118550
xorl %ebx, %ebx
leaq 0x17904b(%rip), %rsi    # 0x300c17
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bc076
testq %rax, %rax
je 0x187bf9
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x187c3a
leaq 0x179017(%rip), %rsi    # 0x300c17
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187c48
leaq 0x184208(%rip), %rdi    # 0x30be49
callq 0x118550
xorl %ebx, %ebx
leaq 0x178681(%rip), %rsi    # 0x3002d0
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0x2bd33c
testq %rax, %rax
je 0x187c7c
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x187cbd
leaq 0x17864d(%rip), %rsi    # 0x3002d0
leaq 0x18(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x127016
movq %rsp, %rdi
leaq 0x18(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1965c8
movl %eax, %ebp
leaq 0x18(%rsp), %rdi
callq 0x118648
leaq 0x50(%rsp), %rdi
callq 0x118648
testb %bpl, %bpl
je 0x187ccb
leaq 0x1841be(%rip), %rdi    # 0x30be82
callq 0x118550
xorl %ebx, %ebx
movq %rsp, %rdi
callq 0x195790
testb %bl, %bl
je 0x187f0e
leaq 0x18(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x19486e
movq %rsp, %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x50(%rsp), %rdi
callq 0x194918
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x194978
testb %al, %al
jne 0x187d1e
leaq 0x1841a4(%rip), %rdi    # 0x30bebb
callq 0x118550
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
movq %rsp, %rsi
callq 0x194978
testb %al, %al
jne 0x187d3d
leaq 0x1841c5(%rip), %rdi    # 0x30befb
callq 0x118550
xorl %ebx, %ebx
movq 0x60(%rsp), %rax
subq 0x58(%rsp), %rax
cmpq $0x10, %rax
je 0x187d5b
leaq 0x1841e7(%rip), %rdi    # 0x30bf3b
callq 0x118550
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x194978
testb %al, %al
je 0x187d7c
leaq 0x184207(%rip), %rdi    # 0x30bf7c
callq 0x118550
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
movq %rsp, %rsi
callq 0x194978
testb %al, %al
je 0x187d9b
leaq 0x184231(%rip), %rdi    # 0x30bfc5
callq 0x118550
xorl %ebx, %ebx
movq 0x60(%rsp), %rax
subq 0x58(%rsp), %rax
cmpq $0x10, %rax
je 0x187db9
leaq 0x18425c(%rip), %rdi    # 0x30c00e
callq 0x118550
xorl %ebx, %ebx
movq 0x18(%rsp), %rax
leaq 0x10(%rsp), %rsi
movq %rax, (%rsi)
incq (%rax)
movq (%rsp), %rax
movq %rax, 0x8(%rsp)
incq (%rax)
leaq 0x50(%rsp), %rdi
callq 0x194978
testb %al, %al
je 0x187df1
leaq 0x184265(%rip), %rdi    # 0x30c04f
callq 0x118550
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x194978
testb %al, %al
je 0x187e12
leaq 0x18428e(%rip), %rdi    # 0x30c099
callq 0x118550
xorl %ebx, %ebx
movq 0x60(%rsp), %rax
subq 0x58(%rsp), %rax
cmpq $0x10, %rax
je 0x187e30
leaq 0x1842ba(%rip), %rdi    # 0x30c0e3
callq 0x118550
xorl %ebx, %ebx
leaq 0x38(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x2bcfea
leaq 0x38(%rsp), %rdi
callq 0x195790
leaq 0x38(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x19486e
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x2bcfea
leaq 0x38(%rsp), %rdi
callq 0x195790
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x194978
testb %al, %al
jne 0x187e9d
leaq 0x18428e(%rip), %rdi    # 0x30c124
callq 0x118550
xorl %ebx, %ebx
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x194978
testb %al, %al
jne 0x187ebe
leaq 0x1842b2(%rip), %rdi    # 0x30c169
callq 0x118550
xorl %ebx, %ebx
movq 0x60(%rsp), %rax
subq 0x58(%rsp), %rax
cmpq $0x20, %rax
je 0x187edc
leaq 0x1842d9(%rip), %rdi    # 0x30c1ae
callq 0x118550
xorl %ebx, %ebx
leaq 0x8(%rsp), %rdi
callq 0x195790
leaq 0x10(%rsp), %rdi
callq 0x195790
leaq 0x50(%rsp), %rdi
callq 0x19577a
movq %rsp, %rdi
callq 0x195790
leaq 0x18(%rsp), %rdi
callq 0x195790
jmp 0x187f10
xorl %ebx, %ebx
leaq 0x1a0(%rsp), %rdi
callq 0x2a26b6
leaq 0x1c0(%rsp), %rdi
callq 0x118648
movl %ebx, %eax
addq $0xae8, %rsp            # imm = 0xAE8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x188044
jmp 0x188069
jmp 0x188044
jmp 0x188069
jmp 0x187f59
jmp 0x187fdf
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x195790
jmp 0x187fe2
jmp 0x187fdf
movq %rax, %rbx
jmp 0x188005
movq %rax, %rbx
jmp 0x18800d
jmp 0x1880a2
jmp 0x188044
jmp 0x188069
jmp 0x188044
jmp 0x188069
jmp 0x188044
jmp 0x188069
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x1880a2
jmp 0x188044
jmp 0x188069
jmp 0x188044
jmp 0x188069
jmp 0x188044
jmp 0x188069
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x195790
leaq 0x10(%rsp), %rdi
callq 0x195790
jmp 0x187ffb
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x19577a
movq %rsp, %rdi
callq 0x195790
leaq 0x18(%rsp), %rdi
jmp 0x18807e
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x1880a2
jmp 0x188044
jmp 0x188069
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x1880a2
jmp 0x188044
jmp 0x188069
jmp 0x188044
jmp 0x188069
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x118648
jmp 0x18806c
jmp 0x188069
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
jmp 0x188069
jmp 0x188078
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x18807b
movq %rax, %rbx
movq %rsp, %rdi
callq 0x195790
leaq 0x1a0(%rsp), %rdi
callq 0x2a26b6
leaq 0x1c0(%rsp), %rdi
callq 0x118648
jmp 0x188141
movq %rax, %rbx
jmp 0x188083
movq %rax, %rbx
jmp 0x188090
jmp 0x1880df
jmp 0x1880df
jmp 0x1880df
jmp 0x1880f3
jmp 0x1880d0
jmp 0x1880df
jmp 0x1880ee
jmp 0x1880f3
jmp 0x18810e
jmp 0x1880fa
jmp 0x1880c4
jmp 0x1880c9
movq %rax, %rbx
jmp 0x188139
movq %rax, %rbx
jmp 0x188125
jmp 0x1880f3
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x1950fc
jmp 0x188111
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x118648
jmp 0x1880fd
movq %rax, %rbx
jmp 0x18812f
movq %rax, %rbx
jmp 0x18811b
jmp 0x18810e
movq %rax, %rbx
leaq 0x1c0(%rsp), %rdi
callq 0x19561a
jmp 0x188111
jmp 0x18810e
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x19577a
leaq 0x38(%rsp), %rdi
callq 0x195790
leaq 0x8(%rsp), %rdi
callq 0x195790
leaq 0x10(%rsp), %rdi
callq 0x195790
movq %rsp, %rdi
callq 0x195790
movq %rbx, %rdi
callq 0x118360