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

   static const std::string expression_string[] =
   {
      "equal(sin(30),0.5)                    ",
      "equal(cos(60),0.5)                    ",
      "equal(sin(60),sqrt(3)/2)              ",
      "equal(cos(30),sqrt(3)/2)              ",
      "equal(sin(x_deg),0.5)                 ",
      "equal(cos(y_deg),0.5)                 ",
      "equal(sin(y_deg),sqrt(3)/2)           ",
      "equal(cos(x_deg),sqrt(3)/2)           ",
      "equal(sin(30) + sin(30),1.0)          ",
      "equal(cos(60) + cos(60),1.0)          ",
      "equal(sin(60) + sin(60),sqrt(3))      ",
      "equal(cos(30) + cos(30),sqrt(3))      ",
      "equal(sin(x_deg) + sin(x_deg),1.0)    ",
      "equal(cos(y_deg) + cos(y_deg),1.0)    ",
      "equal(sin(y_deg) + sin(y_deg),sqrt(3))",
      "equal(cos(x_deg) + cos(x_deg),sqrt(3))"
   };

   static const std::size_t expression_string_size = sizeof(expression_string) / sizeof(std::string);

   {
      T x_deg = T(30);
      T y_deg = T(60);

      sine_deg  <T>   sine;
      cosine_deg<T> cosine;

      symbol_table_t symbol_table_0;
      symbol_table_t symbol_table_1;

      symbol_table_0.add_variable("x_deg",x_deg);
      symbol_table_1.add_variable("y_deg",y_deg);

      symbol_table_0.add_function(  "sine_deg",   sine);
      symbol_table_1.add_function("cosine_deg", cosine);

      expression_t expression;

      expression.register_symbol_table(symbol_table_0);
      expression.register_symbol_table(symbol_table_1);

      static const std::size_t rounds = 100;

      for (std::size_t i = 0; i < rounds; ++i)
      {
         for (std::size_t j = 0; j < expression_string_size; ++j)
         {
            const std::string& expr_str = expression_string[j];

            {
               parser_t parser;

               parser.replace_symbol("sin",   "sine_deg");
               parser.replace_symbol("cos", "cosine_deg");

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

                  return false;
               }
            }

            if (T(1) != expression.value())
            {
               printf("run_test13() - Error in evaluation! Expression: %s  [1]\n",expr_str.c_str());
               return false;
            }
         }
      }
   }

   {
      T x_deg = T(30);
      T y_deg = T(60);

      sine_deg  <T>   sine;
      cosine_deg<T> cosine;

      symbol_table_t symbol_table_0;
      symbol_table_t symbol_table_1;

      symbol_table_0.add_variable("x_deg",x_deg);
      symbol_table_1.add_variable("y_deg",y_deg);

      symbol_table_0.add_reserved_function("sin",  sine);
      symbol_table_1.add_reserved_function("cos",cosine);

      expression_t expression;

      expression.register_symbol_table(symbol_table_0);
      expression.register_symbol_table(symbol_table_1);

      static const std::size_t rounds = 100;

      for (std::size_t i = 0; i < rounds; ++i)
      {
         for (std::size_t j = 0; j < expression_string_size; ++j)
         {
            const std::string& expr_str = expression_string[j];

            {
               typedef typename parser_t::settings_store settings_t;

               parser_t parser;

               parser.settings()
                  .disable_base_function(settings_t::e_bf_sin)
                  .disable_base_function(settings_t::e_bf_cos);

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

                  return false;
               }
            }

            if (T(1) != expression.value())
            {
               printf("run_test13() - Error in evaluation! Expression: %s  [2]\n",expr_str.c_str());
               return false;
            }
         }
      }
   }

   return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb68, %rsp            # imm = 0xB68
movb 0x3f7f48(%rip), %al     # 0x5a7cb0
testb %al, %al
je 0x1b0c4e
movabsq $0x403e000000000000, %rax # imm = 0x403E000000000000
movq %rax, 0x80(%rsp)
movabsq $0x404e000000000000, %rax # imm = 0x404E000000000000
movq %rax, 0x10(%rsp)
movw $0x100, %ax             # imm = 0x100
movw %ax, 0xd0(%rsp)
xorl %ecx, %ecx
movq %rcx, 0xd8(%rsp)
movq $-0x1, %rdx
movq %rdx, 0xe0(%rsp)
movl $0x1, %esi
movq %rsi, 0xe8(%rsp)
leaq 0x3c5bf6(%rip), %rdi    # 0x5759c0
movq %rdi, 0xc8(%rsp)
movw %ax, 0xa8(%rsp)
movq %rcx, 0xb0(%rsp)
movq %rdx, 0xb8(%rsp)
movq %rsi, 0xc0(%rsp)
leaq 0x3c5ca7(%rip), %rax    # 0x575aa0
movq %rax, 0xa0(%rsp)
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
callq 0x1eb8c4
leaq 0x18(%rsp), %rdi
movl $0x1, %esi
callq 0x1eb8c4
leaq 0x250(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2271ce(%rip), %rsi    # 0x3d7000
leaq 0x2271cc(%rip), %rdx    # 0x3d7005
leaq 0x240(%rsp), %rdi
callq 0x1eabb8
leaq 0x8(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x80(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1ee244
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1afe87
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x227165(%rip), %rsi    # 0x3d7006
leaq 0x227163(%rip), %rdx    # 0x3d700b
callq 0x1eabb8
leaq 0x18(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x10(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1ee244
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1afeeb
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x227109(%rip), %rsi    # 0x3d700e
leaq 0x22710a(%rip), %rdx    # 0x3d7016
callq 0x1eabb8
leaq 0x8(%rsp), %r15
leaq 0x240(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
movq %r15, %rdi
callq 0x1eba52
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1aff53
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x22709f(%rip), %rsi    # 0x3d700c
leaq 0x2270a2(%rip), %rdx    # 0x3d7016
callq 0x1eabb8
leaq 0x18(%rsp), %rbx
leaq 0x240(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
movq %rbx, %rdi
callq 0x1eba52
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1affbb
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x58(%rsp), %rdi
callq 0x1ebb7a
leaq 0x60(%rsp), %r14
movq (%r14), %rcx
movq 0x8(%r14), %rax
subq %rcx, %rax
je 0x1b0023
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %r15, %rcx
je 0x1b0030
movq 0x8(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x1b0030
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x1b0023
decq %rsi
cmpq %r15, %rcx
je 0x1b001b
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x1b0002
negq %rsi
cmpq %rax, %rsi
jb 0x1b0030
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1f216a
movq 0x60(%rsp), %rcx
movq 0x68(%rsp), %rax
subq %rcx, %rax
je 0x1b008c
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %rbx, %rcx
je 0x1b0099
movq 0x18(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x1b0099
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x1b008c
decq %rsi
cmpq %rbx, %rcx
je 0x1b0084
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x1b006b
negq %rsi
cmpq %rax, %rsi
jb 0x1b0099
leaq 0x18(%rsp), %rsi
movq %r14, %rdi
callq 0x1f216a
leaq 0x100(%rsp), %rbx
leaq 0x48(%rsp), %r15
leaq 0xf0(%rsp), %r14
movq $0x0, 0x88(%rsp)
movq $0x0, 0x90(%rsp)
movq $0x0, 0x98(%rsp)
movq $0x0, 0x78(%rsp)
movl $0x7f, %esi
movq %r14, %rdi
callq 0x1ebc94
leaq 0x240(%rsp), %rdi
movq %r14, %rsi
callq 0x1ebd94
leaq 0x1f0(%rsp), %rdi
callq 0x1f236c
leaq 0x1c0(%rsp), %rdi
callq 0x1f236c
leaq 0x190(%rsp), %rdi
callq 0x1f236c
leaq 0x160(%rsp), %rdi
callq 0x1f236c
leaq 0x130(%rsp), %rdi
callq 0x1f236c
movq %rbx, %rdi
callq 0x1f236c
movq %rbx, 0xf0(%rsp)
movq %r14, %rdi
leaq 0x206a24(%rip), %rsi    # 0x3b6b77
leaq 0x206a20(%rip), %rdx    # 0x3b6b7a
callq 0x1eabb8
movq %r15, 0x38(%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x226e9e(%rip), %rsi    # 0x3d700e
leaq 0x226e9f(%rip), %rdx    # 0x3d7016
callq 0x1eabb8
cmpb $0x1, 0x310(%rsp)
jne 0x1b028a
movq 0xf0(%rsp), %r12
movq 0xf8(%rsp), %rbx
movq %rbx, %rax
subq $0x1, %rax
movq %rax, 0x28(%rsp)
setb 0x20(%rsp)
movb $0x1, %r15b
xorl %r14d, %r14d
movq %rbx, 0x30(%rsp)
movq %r14, %rax
shlq $0x5, %rax
leaq 0x3ca19c(%rip), %rcx    # 0x57a360
cmpq 0x8(%rax,%rcx), %rbx
jne 0x1b023c
movb 0x20(%rsp), %cl
testq %rbx, %rbx
je 0x1b0238
leaq 0x3ca185(%rip), %rcx    # 0x57a360
addq %rcx, %rax
movq (%rax), %r13
movsbl (%r12), %edi
callq 0x120450
movl %eax, %ebp
movsbl (%r13), %edi
callq 0x120450
cmpl %eax, %ebp
jne 0x1b023c
xorl %ebx, %ebx
cmpq %rbx, 0x28(%rsp)
je 0x1b0225
movsbl 0x1(%r12,%rbx), %edi
callq 0x120450
movl %eax, %ebp
movsbl 0x1(%r13,%rbx), %edi
callq 0x120450
incq %rbx
cmpl %eax, %ebp
je 0x1b01fd
jmp 0x1b022a
movq 0x30(%rsp), %rbx
movq 0x30(%rsp), %rax
cmpq %rax, %rbx
movq %rax, %rbx
setae %cl
testb %cl, %cl
jne 0x1b0255
cmpq $0x20, %r14
leaq 0x1(%r14), %rax
setb %r15b
movq %rax, %r14
cmpq $0x21, %rax
jne 0x1b01b6
testb $0x1, %r15b
leaq 0x100(%rsp), %rbx
leaq 0x48(%rsp), %r15
leaq 0xf0(%rsp), %r14
jne 0x1b028a
leaq 0x968(%rsp), %rdi
movq %r14, %rsi
leaq 0x38(%rsp), %rdx
movl $0x8, %ecx
callq 0x1fd68c
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b02a1
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq 0xf0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1b02be
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq %rbx, 0xf0(%rsp)
movq %r14, %rdi
leaq 0x20689c(%rip), %rsi    # 0x3b6b6c
leaq 0x206898(%rip), %rdx    # 0x3b6b6f
callq 0x1eabb8
movq %r15, 0x38(%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x226d1f(%rip), %rsi    # 0x3d700c
leaq 0x226d22(%rip), %rdx    # 0x3d7016
callq 0x1eabb8
cmpb $0x1, 0x310(%rsp)
jne 0x1b0406
movq 0xf0(%rsp), %r12
movq 0xf8(%rsp), %r13
movq %r13, %rax
subq $0x1, %rax
movq %rax, 0x28(%rsp)
setb 0x20(%rsp)
movb $0x1, %r15b
xorl %r14d, %r14d
movq %r13, 0x30(%rsp)
movq %r14, %rax
shlq $0x5, %rax
leaq 0x3ca01f(%rip), %rcx    # 0x57a360
cmpq 0x8(%rax,%rcx), %r13
jne 0x1b03b8
movb 0x20(%rsp), %cl
testq %r13, %r13
je 0x1b03b4
leaq 0x3ca008(%rip), %rcx    # 0x57a360
addq %rcx, %rax
movq (%rax), %rbx
movsbl (%r12), %edi
callq 0x120450
movl %eax, %ebp
movsbl (%rbx), %edi
callq 0x120450
cmpl %eax, %ebp
jne 0x1b03b8
xorl %r13d, %r13d
cmpq %r13, 0x28(%rsp)
je 0x1b03a1
movsbl 0x1(%r12,%r13), %edi
callq 0x120450
movl %eax, %ebp
movsbl 0x1(%rbx,%r13), %edi
callq 0x120450
incq %r13
cmpl %eax, %ebp
je 0x1b0379
jmp 0x1b03a6
movq 0x30(%rsp), %r13
movq 0x30(%rsp), %rax
cmpq %rax, %r13
movq %rax, %r13
setae %cl
testb %cl, %cl
jne 0x1b03d1
cmpq $0x20, %r14
leaq 0x1(%r14), %rax
setb %r15b
movq %rax, %r14
cmpq $0x21, %rax
jne 0x1b0333
testb $0x1, %r15b
leaq 0x100(%rsp), %rbx
leaq 0x48(%rsp), %r15
leaq 0xf0(%rsp), %r14
jne 0x1b0406
leaq 0x968(%rsp), %rdi
movq %r14, %rsi
leaq 0x38(%rsp), %rdx
movl $0x8, %ecx
callq 0x1fd68c
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b041d
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq 0xf0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1b043a
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq 0x78(%rsp), %r12
shlq $0x5, %r12
leaq 0x3f7666(%rip), %rax    # 0x5a7ab0
addq %rax, %r12
leaq 0x240(%rsp), %rdi
movq %r12, %rsi
leaq 0x58(%rsp), %rdx
callq 0x1ec5b8
movl %eax, %ebp
testb %al, %al
je 0x1b047a
leaq 0x240(%rsp), %rdi
callq 0x1ed044
jmp 0x1b0589
movq 0x558(%rsp), %rdi
cmpq %rdi, 0x578(%rsp)
je 0x1b04c9
movq %rdi, %rcx
subq 0x560(%rsp), %rcx
movq %rcx, %rax
sarq $0x3, %rax
movabsq $-0x30c30c30c30c30c3, %rdx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rdx, %rax
cmpq $0x3, %rax
jb 0x1b0525
testq %rcx, %rcx
jle 0x1b04f9
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x1b050f
movq %rbx, 0xf0(%rsp)
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
movq %rax, 0x100(%rsp)
movq $0x8, 0xf8(%rsp)
movb $0x0, 0x108(%rsp)
jmp 0x1b0540
notq %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
notq %rdx
movq 0x570(%rsp), %rax
imulq $-0x1f8, %rdx, %rdi     # imm = 0xFE08
addq (%rax,%rdx,8), %rdi
addq %rcx, %rdi
movq %rbx, 0xf0(%rsp)
movq 0x38(%rdi), %rsi
movq 0x40(%rdi), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x1eda34
movq 0xf0(%rsp), %rsi
movq (%r12), %rdx
leaq 0x226ac4(%rip), %rdi    # 0x3d7017
xorl %eax, %eax
callq 0x120080
movq 0xf0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1b0577
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
callq 0x1ed044
testb %bpl, %bpl
je 0x1b05df
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
ucomisd 0x201a80(%rip), %xmm0   # 0x3b2020
jne 0x1b05cd
jp 0x1b05cd
movq 0x78(%rsp), %rax
cmpq $0xf, %rax
leaq 0x1(%rax), %rax
setae %cl
movq %rcx, 0x98(%rsp)
movq %rax, 0x78(%rsp)
cmpq $0x10, %rax
jne 0x1b00db
jmp 0x1b05e9
movq (%r12), %rsi
leaq 0x226a6f(%rip), %rdi    # 0x3d7047
xorl %eax, %eax
callq 0x120080
testb $0x1, 0x98(%rsp)
je 0x1b0636
movq 0x90(%rsp), %rax
cmpq $0x63, %rax
leaq 0x1(%rax), %rax
setae %cl
movq %rcx, 0x88(%rsp)
movq %rax, 0x90(%rsp)
cmpq $0x64, %rax
jne 0x1b00c6
leaq 0x58(%rsp), %rdi
callq 0x1ed306
leaq 0x18(%rsp), %rdi
callq 0x1ed354
leaq 0x8(%rsp), %rdi
callq 0x1ed354
jmp 0x1b0662
leaq 0x58(%rsp), %rdi
callq 0x1ed306
leaq 0x18(%rsp), %rdi
callq 0x1ed354
leaq 0x8(%rsp), %rdi
callq 0x1ed354
testb $0x1, 0x88(%rsp)
je 0x1b0c4a
movabsq $0x403e000000000000, %rax # imm = 0x403E000000000000
movq %rax, 0x38(%rsp)
movabsq $0x404e000000000000, %rax # imm = 0x404E000000000000
movq %rax, 0x80(%rsp)
movw $0x100, %ax             # imm = 0x100
movw %ax, 0xd0(%rsp)
xorl %ecx, %ecx
movq %rcx, 0xd8(%rsp)
movq $-0x1, %rdx
movq %rdx, 0xe0(%rsp)
movl $0x1, %esi
movq %rsi, 0xe8(%rsp)
leaq 0x3c5304(%rip), %rdi    # 0x5759c0
movq %rdi, 0xc8(%rsp)
movw %ax, 0xa8(%rsp)
movq %rcx, 0xb0(%rsp)
movq %rdx, 0xb8(%rsp)
movq %rsi, 0xc0(%rsp)
leaq 0x3c53b5(%rip), %rax    # 0x575aa0
movq %rax, 0xa0(%rsp)
leaq 0x10(%rsp), %rdi
movl $0x1, %esi
callq 0x1eb8c4
leaq 0x8(%rsp), %rdi
movl $0x1, %esi
callq 0x1eb8c4
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x2268d5(%rip), %rsi    # 0x3d7000
leaq 0x2268d3(%rip), %rdx    # 0x3d7005
callq 0x1eabb8
leaq 0x10(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x38(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1ee244
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1b0775
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x226877(%rip), %rsi    # 0x3d7006
leaq 0x226875(%rip), %rdx    # 0x3d700b
callq 0x1eabb8
leaq 0x8(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x80(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1ee244
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1b07dc
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x206381(%rip), %rsi    # 0x3b6b77
leaq 0x20637d(%rip), %rdx    # 0x3b6b7a
callq 0x1eabb8
leaq 0x10(%rsp), %r15
leaq 0x240(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
movq %r15, %rdi
callq 0x39f2ae
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1b0844
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
movq %rax, (%rdi)
leaq 0x20630e(%rip), %rsi    # 0x3b6b6c
leaq 0x20630a(%rip), %rdx    # 0x3b6b6f
callq 0x1eabb8
leaq 0x8(%rsp), %rbx
leaq 0x240(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
movq %rbx, %rdi
callq 0x39f2ae
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1b08ac
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x58(%rsp), %rdi
callq 0x1ebb7a
leaq 0x60(%rsp), %r14
movq (%r14), %rcx
movq 0x8(%r14), %rax
subq %rcx, %rax
je 0x1b0914
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %r15, %rcx
je 0x1b0921
movq 0x10(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x1b0921
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x1b0914
decq %rsi
cmpq %r15, %rcx
je 0x1b090c
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x1b08f3
negq %rsi
cmpq %rax, %rsi
jb 0x1b0921
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x1f216a
movq 0x60(%rsp), %rcx
movq 0x68(%rsp), %rax
subq %rcx, %rax
je 0x1b097d
sarq $0x3, %rax
cmpq $0x1, %rax
movq %rax, %rsi
adcq $0x0, %rsi
cmpq %rbx, %rcx
je 0x1b098a
movq 0x8(%rsp), %rdx
cmpq (%rcx), %rdx
je 0x1b098a
addq $0x8, %rcx
movl $0x1, %edi
subq %rsi, %rdi
xorl %esi, %esi
cmpq %rsi, %rdi
je 0x1b097d
decq %rsi
cmpq %rbx, %rcx
je 0x1b0975
leaq 0x8(%rcx), %r8
cmpq (%rcx), %rdx
movq %r8, %rcx
jne 0x1b095c
negq %rsi
cmpq %rax, %rsi
jb 0x1b098a
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1f216a
leaq 0x320(%rsp), %r15
movq $0x0, 0x20(%rsp)
leaq 0xf0(%rsp), %r13
movq $0x0, 0x28(%rsp)
xorl %ebx, %ebx
leaq 0x3f70fb(%rip), %rbp    # 0x5a7ab0
xorl %r14d, %r14d
movl $0x7f, %esi
movq %r13, %rdi
callq 0x1ebc94
leaq 0x240(%rsp), %rdi
movq %r13, %r12
movq %r13, %rsi
callq 0x1ebd94
leaq 0x1f0(%rsp), %rdi
callq 0x1f236c
leaq 0x1c0(%rsp), %rdi
callq 0x1f236c
leaq 0x190(%rsp), %rdi
callq 0x1f236c
leaq 0x160(%rsp), %rdi
callq 0x1f236c
leaq 0x130(%rsp), %rdi
callq 0x1f236c
leaq 0x100(%rsp), %rdi
callq 0x1f236c
movq %r15, %rdi
leaq 0x3cadd0(%rip), %rsi    # 0x57b800
callq 0x1fe520
movq %r15, %rdi
leaq 0x3ca9c1(%rip), %rsi    # 0x57b400
callq 0x1fe520
leaq 0x240(%rsp), %rdi
movq %rbp, %rsi
leaq 0x58(%rsp), %rdx
callq 0x1ec5b8
movl %eax, %r13d
testb %al, %al
je 0x1b0a72
leaq 0x240(%rsp), %rdi
callq 0x1ed044
jmp 0x1b0b99
movq 0x558(%rsp), %rdi
cmpq %rdi, 0x578(%rsp)
je 0x1b0ac1
movq %rdi, %rcx
subq 0x560(%rsp), %rcx
movq %rcx, %rax
sarq $0x3, %rax
movabsq $-0x30c30c30c30c30c3, %rdx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rdx, %rax
cmpq $0x3, %rax
jb 0x1b0b25
testq %rcx, %rcx
jle 0x1b0af9
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
jmp 0x1b0b0f
leaq 0x100(%rsp), %r15
movq %r15, 0xf0(%rsp)
movabsq $0x726f727245206f4e, %rax # imm = 0x726F727245206F4E
movq %rax, 0x100(%rsp)
movq $0x8, 0xf8(%rsp)
movb $0x0, 0x108(%rsp)
jmp 0x1b0b48
notq %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
mulq %rdx
shrq %rdx
notq %rdx
movq 0x570(%rsp), %rax
imulq $-0x1f8, %rdx, %rdi     # imm = 0xFE08
addq (%rax,%rdx,8), %rdi
addq %rcx, %rdi
leaq 0x100(%rsp), %r15
movq %r15, 0xf0(%rsp)
movq 0x38(%rdi), %rsi
movq 0x40(%rdi), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x1eda34
movq 0xf0(%rsp), %rsi
movq (%rbp), %rdx
leaq 0x226525(%rip), %rdi    # 0x3d7080
xorl %eax, %eax
callq 0x120080
movq 0xf0(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b0b7f
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x1200c0
leaq 0x240(%rsp), %rdi
callq 0x1ed044
testb %r13b, %r13b
leaq 0x320(%rsp), %r15
je 0x1b0be7
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
ucomisd 0x201470(%rip), %xmm0   # 0x3b2020
jne 0x1b0bd5
jp 0x1b0bd5
movq %r12, %r13
cmpq $0xf, %r14
leaq 0x1(%r14), %rax
setae %bl
addq $0x20, %rbp
movq %rax, %r14
cmpq $0x10, %rax
jne 0x1b09b8
jmp 0x1b0bef
movq (%rbp), %rsi
leaq 0x2264d0(%rip), %rdi    # 0x3d70b0
xorl %eax, %eax
callq 0x120080
testb $0x1, %bl
movq %r12, %r13
je 0x1b0c13
movq 0x28(%rsp), %rax
cmpq $0x63, %rax
leaq 0x1(%rax), %rax
setae %cl
movq %rcx, 0x20(%rsp)
movq %rax, 0x28(%rsp)
cmpq $0x64, %rax
jne 0x1b09ac
leaq 0x58(%rsp), %rdi
callq 0x1ed306
leaq 0x8(%rsp), %rdi
callq 0x1ed354
leaq 0x10(%rsp), %rdi
callq 0x1ed354
movq 0x20(%rsp), %rax
andb $0x1, %al
addq $0xb68, %rsp            # imm = 0xB68
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
jmp 0x1b0c36
leaq 0x3f705b(%rip), %rdi    # 0x5a7cb0
callq 0x1201a0
testl %eax, %eax
je 0x1afd70
leaq 0x3f6e57(%rip), %rax    # 0x5a7ac0
movq %rax, 0x3f6e40(%rip)    # 0x5a7ab0
leaq 0x3f6e39(%rip), %rbx    # 0x5a7ab0
leaq 0x226112(%rip), %rsi    # 0x3d6d90
leaq 0x226131(%rip), %rdx    # 0x3d6db6
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e4c(%rip), %rax    # 0x5a7ae0
movq %rax, 0x3f6e35(%rip)    # 0x5a7ad0
leaq 0x3f6e2e(%rip), %rbx    # 0x5a7ad0
leaq 0x22610e(%rip), %rsi    # 0x3d6db7
leaq 0x22612d(%rip), %rdx    # 0x3d6ddd
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e41(%rip), %rax    # 0x5a7b00
movq %rax, 0x3f6e2a(%rip)    # 0x5a7af0
leaq 0x3f6e23(%rip), %rbx    # 0x5a7af0
leaq 0x22610a(%rip), %rsi    # 0x3d6dde
leaq 0x226129(%rip), %rdx    # 0x3d6e04
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e36(%rip), %rax    # 0x5a7b20
movq %rax, 0x3f6e1f(%rip)    # 0x5a7b10
leaq 0x3f6e18(%rip), %rbx    # 0x5a7b10
leaq 0x226106(%rip), %rsi    # 0x3d6e05
leaq 0x226125(%rip), %rdx    # 0x3d6e2b
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e2b(%rip), %rax    # 0x5a7b40
movq %rax, 0x3f6e14(%rip)    # 0x5a7b30
leaq 0x3f6e0d(%rip), %rbx    # 0x5a7b30
leaq 0x226102(%rip), %rsi    # 0x3d6e2c
leaq 0x226121(%rip), %rdx    # 0x3d6e52
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e20(%rip), %rax    # 0x5a7b60
movq %rax, 0x3f6e09(%rip)    # 0x5a7b50
leaq 0x3f6e02(%rip), %rbx    # 0x5a7b50
leaq 0x2260fe(%rip), %rsi    # 0x3d6e53
leaq 0x22611d(%rip), %rdx    # 0x3d6e79
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e15(%rip), %rax    # 0x5a7b80
movq %rax, 0x3f6dfe(%rip)    # 0x5a7b70
leaq 0x3f6df7(%rip), %rbx    # 0x5a7b70
leaq 0x2260fa(%rip), %rsi    # 0x3d6e7a
leaq 0x226119(%rip), %rdx    # 0x3d6ea0
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6e0a(%rip), %rax    # 0x5a7ba0
movq %rax, 0x3f6df3(%rip)    # 0x5a7b90
leaq 0x3f6dec(%rip), %rbx    # 0x5a7b90
leaq 0x2260f6(%rip), %rsi    # 0x3d6ea1
leaq 0x226115(%rip), %rdx    # 0x3d6ec7
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6dff(%rip), %rax    # 0x5a7bc0
movq %rax, 0x3f6de8(%rip)    # 0x5a7bb0
leaq 0x3f6de1(%rip), %rbx    # 0x5a7bb0
leaq 0x2260f2(%rip), %rsi    # 0x3d6ec8
leaq 0x226111(%rip), %rdx    # 0x3d6eee
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6df4(%rip), %rax    # 0x5a7be0
movq %rax, 0x3f6ddd(%rip)    # 0x5a7bd0
leaq 0x3f6dd6(%rip), %rbx    # 0x5a7bd0
leaq 0x2260ee(%rip), %rsi    # 0x3d6eef
leaq 0x22610d(%rip), %rdx    # 0x3d6f15
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6de9(%rip), %rax    # 0x5a7c00
movq %rax, 0x3f6dd2(%rip)    # 0x5a7bf0
leaq 0x3f6dcb(%rip), %rbx    # 0x5a7bf0
leaq 0x2260ea(%rip), %rsi    # 0x3d6f16
leaq 0x226109(%rip), %rdx    # 0x3d6f3c
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6dde(%rip), %rax    # 0x5a7c20
movq %rax, 0x3f6dc7(%rip)    # 0x5a7c10
leaq 0x3f6dc0(%rip), %rbx    # 0x5a7c10
leaq 0x2260e6(%rip), %rsi    # 0x3d6f3d
leaq 0x226105(%rip), %rdx    # 0x3d6f63
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6dd3(%rip), %rax    # 0x5a7c40
movq %rax, 0x3f6dbc(%rip)    # 0x5a7c30
leaq 0x3f6db5(%rip), %rbx    # 0x5a7c30
leaq 0x2260e2(%rip), %rsi    # 0x3d6f64
leaq 0x226101(%rip), %rdx    # 0x3d6f8a
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6dc8(%rip), %rax    # 0x5a7c60
movq %rax, 0x3f6db1(%rip)    # 0x5a7c50
leaq 0x3f6daa(%rip), %rbx    # 0x5a7c50
leaq 0x2260de(%rip), %rsi    # 0x3d6f8b
leaq 0x2260fd(%rip), %rdx    # 0x3d6fb1
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6dbd(%rip), %rax    # 0x5a7c80
movq %rax, 0x3f6da6(%rip)    # 0x5a7c70
leaq 0x3f6d9f(%rip), %rbx    # 0x5a7c70
leaq 0x2260da(%rip), %rsi    # 0x3d6fb2
leaq 0x2260f9(%rip), %rdx    # 0x3d6fd8
movq %rbx, %rdi
callq 0x1eabb8
leaq 0x3f6db2(%rip), %rax    # 0x5a7ca0
movq %rax, 0x3f6d9b(%rip)    # 0x5a7c90
leaq 0x3f6d94(%rip), %rbx    # 0x5a7c90
leaq 0x2260d6(%rip), %rsi    # 0x3d6fd9
leaq 0x2260f5(%rip), %rdx    # 0x3d6fff
movq %rbx, %rdi
callq 0x1eabb8
leaq -0x8098b(%rip), %rdi    # 0x13058e
leaq 0x3c93f0(%rip), %rdx    # 0x57a310
xorl %esi, %esi
callq 0x120480
leaq 0x3f6d82(%rip), %rdi    # 0x5a7cb0
callq 0x1202e0
jmp 0x1afd70
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
jmp 0x1b0f54
movq %rax, %r14
xorl %eax, %eax
testb %al, %al
jne 0x1b0f8c
addq $-0x10, %rbx
leaq 0x3f6b48(%rip), %r15    # 0x5a7ab0
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x1b0f7c
movq (%rbx), %rsi
incq %rsi
callq 0x1200c0
leaq -0x20(%rbx), %rax
addq $-0x10, %rbx
cmpq %r15, %rbx
movq %rax, %rbx
jne 0x1b0f68
leaq 0x3f6d1d(%rip), %rdi    # 0x5a7cb0
callq 0x120220
jmp 0x1b112e
movq %rax, %r14
movb $0x1, %al
jmp 0x1b0f59
jmp 0x1b0fe3
jmp 0x1b0fb2
jmp 0x1b0fe3
jmp 0x1b0fb2
jmp 0x1b0fe3
jmp 0x1b0fb2
jmp 0x1b0fe3
movq %rax, %r14
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1b111a
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
jmp 0x1b111a
movq %rax, %r14
jmp 0x1b111a
movq %rax, %r14
jmp 0x1b1124
jmp 0x1b1049
jmp 0x1b107a
jmp 0x1b1039
jmp 0x1b1008
jmp 0x1b1039
jmp 0x1b1008
jmp 0x1b1039
jmp 0x1b1008
jmp 0x1b1039
movq %rax, %r14
movq 0x240(%rsp), %rdi
leaq 0x250(%rsp), %rax
cmpq %rax, %rdi
je 0x1b10ef
movq 0x250(%rsp), %rsi
incq %rsi
callq 0x1200c0
jmp 0x1b10ef
movq %rax, %r14
jmp 0x1b10ef
movq %rax, %r14
jmp 0x1b10f9
movq %rax, %r14
jmp 0x1b112e
jmp 0x1b1096
jmp 0x1b1055
movq %rax, %r14
movq 0x38(%rsp), %rdi
cmpq %r15, %rdi
je 0x1b10a0
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x1200c0
jmp 0x1b10a0
jmp 0x1b1100
jmp 0x1b10d5
jmp 0x1b107a
movq %rax, %r14
jmp 0x1b1110
movq %rax, %r14
leaq 0xf0(%rsp), %rdi
callq 0x1ec570
jmp 0x1b1110
jmp 0x1b1096
movq %rax, %r14
jmp 0x1b10e5
jmp 0x1b109d
movq %rax, %r14
movq 0xf0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1b10d8
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x1200c0
jmp 0x1b10d8
jmp 0x1b10d5
jmp 0x1b10d5
movq %rax, %r14
leaq 0xf0(%rsp), %rdi
callq 0x1ec570
jmp 0x1b10e5
movq %rax, %r14
leaq 0x240(%rsp), %rdi
callq 0x1ed044
leaq 0x58(%rsp), %rdi
callq 0x1ed306
leaq 0x18(%rsp), %rdi
callq 0x1ed354
leaq 0x8(%rsp), %rdi
jmp 0x1b1129
movq %rax, %r14
leaq 0x240(%rsp), %rdi
callq 0x1ed044
leaq 0x58(%rsp), %rdi
callq 0x1ed306
leaq 0x8(%rsp), %rdi
callq 0x1ed354
leaq 0x10(%rsp), %rdi
callq 0x1ed354
movq %r14, %rdi
callq 0x120330