// File: /workspace/github_cpp_makefile_star2_O2/hitc8494[P]Matrix/test.cpp
// Function: main
int main(){
  header( "Basic assignment" );{
    header( "Constructors" );{
      Matrix a;
      test( a.m() == 0 && a.n() == 0, "Test the base constructor." );
      Matrix b( 1, 1 );
      test( b.m() == 1 && b.n() == 1, "Test the common constructor." );
      Matrix c(b);
      test( c.m() == 1 && c.n() == 1, "Test the copy constructor." );
    }
    footer();
    header( "Input" );{
      Matrix a( 4, 4 );
      test( a.print_test() == "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0", "Empty matrix." );
      Matrix b;
      { Matrix c( 4, 4 );
	c <<  1 <<  2 <<  3 <<  4
	  <<  5 <<  6 <<  7 <<  8 
	  <<  9 << 10 << 11 << 12
	  << 13 << 14 << 15 << 16;
	test( c.print_test() == "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16", "Basic 4x4." );
	b = c;
      }
      test( b.print_test() == "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16", "Op = test" );
    }
    footer();
    header( "Resize" );{
      Matrix a( 2, 2 );
      a << 1 << 2 
	<< 3 << 4;
      a.resize( 2, 2 );
      test( a.print_test() == "1 2 3 4", "Same size resize." );
      a.resize( 3, 3 );
      test( a.print_test() == "1 2 0 3 4 0 0 0 0", "Scaled up resize." );
      a.print();
      a.resize( 1, 1 );
      test( a.print_test() == "1", "Scaled down resize." );
      a.resize( 2, 2 );
    }
    footer();
    header( "Submatrix" );{
      Matrix a( 3, 3 );
      a << 1 << 2 << 3
	<< 4 << 5 << 6 
	<< 7 << 8 << 9;
      Matrix b = a.submatrix(1,1,2,2);
      test( b.print_test() == "1 2 4 5", "Basic submatrix" );
      Matrix c = a.submatrix(2,2,2,2);
      test( c.print_test() == "5 6 8 9", "Basic submatrix #2" );
      test( a.SUBMATRIX(1,1,2,3).print_test() == "1 2 3 4 5 6", "Immediate submatrix" );
      test( a.SUBMATRIX(1,1,2,1).print_test() == "1 4", "Immediate submatrix #2" );
    }
    footer();
  }
  footer();
  header( "Mathematical functions" );{
    header( "Addition" );{
      Matrix a(2, 2);
      a << 1 << 2
	<< 3 << 4;
      Matrix b(2, 2);
      b << 4 << 3
	<< 2 << 1;
      Matrix c = b + a;
      test( c.print_test() == "5 5 5 5", "Basic addition" );
      c = a + b;
      test( c.print_test() == "5 5 5 5", "Addition is transitive" );
      b.resize(1, 1);
      c = b + a;
      test( c.error() == true, "Unable to add unlike matrices" );
      b.resize(2, 2);
      c = a + b;
      test( c.print_test() == "5 2 3 4", "Basic addition after a resize" );
      test( a.print_test() == "1 2 3 4", "  A is unchanged by addition" );
      a += b;
      test( a.print_test() == "5 2 3 4", "Immediate addition." );
    }
    footer();
    header( "Subtraction" );{
      Matrix a( 2, 2 );
      a << 1 << 2 << 3 << 4;
      Matrix b( 2, 2 );
      b << 1 << 1 << 1 << 1;
      Matrix c( 1, 1 );
      test( (a - b).print_test() == "0 1 2 3", "Basic subtraction" );
      test( (b - a).print_test() != "0 1 2 3", "Subtraction is NOT transitive" );
      c = b + c;
      test( c.error() == true, "Unable to subtract unlike matrices" );
      a -= b;
      test( a.print_test() == "0 1 2 3", "Immediate subtraction." );
    }
    footer();
    header( "Multiplication" );{
      Matrix a( 2, 3 );
      a <<  2 <<  4 <<  3 
	<< -2 <<  3 <<  1;
      Matrix b( 3, 4 );
      b <<  2 <<  4 <<  5 <<  6 
	<< -2 <<  1 << -2 <<  1 
	<< -9 << -9 << -9 <<  1;
      Matrix c( 2, 2 );
      c << 1 << 2
	<< 4 << 1;
      Matrix d( 2, 2 );
      d << 3 << 1
	<< 3 << 0;
      test( (a * b).print_test()=="-31 -15 -25 19 -19 -14 -25 -8","Basic multiplication");
      test( (b*a).error() == true, "Can NOT multiply improper matrices" );
      test( (c*d).print_test() != (d*c).print_test(), "Multiplication is NOT transitive");
      test( (a * 2).print_test() == "4 8 6 -4 6 2", "Basic scalar multiplication" );
      test( a.print_test() == "2 4 3 -2 3 1", "  A is unchanged by multiplication" );
      c *= a;
      test( c.print_test() == "-2 10 5 6 19 13","Immediate multiplication");
      c *= 2;
      test( c.print_test() == "-4 20 10 12 38 26", "Immediate scalar multiplication" );
    }
    footer();
    header( "Division" );{
      
      
    }
    footer();
    header( "Exponent" );{
      
    }
    footer();
    header( "Transpose" );{
      Matrix a( 2, 3 );
      a << 4 << 3 << 2
	<< 1 << 5 << 6;
      Matrix b = +a;
      test( a.m() == b.n() && a.n() == b.m(), "Basic transpose" );
      ++a;
      test( a == b, "Immediate transpose" );
    }
    footer();
    header( "Inverse" );{
      Matrix a( 3,3 );
      a << 0 << 1 << 2 
	<< 1 << 0 << 3
	<< 4 << -3 << 8;
      Matrix b = ~a;
      test( b.print_test() == "-4.5 7 -1.5 -2 4 -1 1.5 -2 0.5", "Inverse" );
      test( (!a).print_test() == "-4.5 7 -1.5 -2 4 -1 1.5 -2 0.5", "Immediate inverse" );
    }
    footer();
    header( "Determinant" );{
      Matrix c(1,1);
      c << 1;
      test( c.det() == 1, "Determinant test 1x1" );
      Matrix b(2,2);
      b << 3 << 4 
	<< 1 << 2;
      test( b.det() == 2, "Determinant test 2x2" );
      Matrix a(3,3);
      a << 1 << 2 << 0
	<< 4 << 5 << 6 
	<< 7 << 8 << 9;
      test( a.det() == 9, "Determinant test 3x3" );
      Matrix d(6,6);
      d << 0 << 9 << 3 << 4 << 1 << 2
	<< 0 << 2 << 1 << 5 << 5 << 2
	<< 3 << 4 << 1 << 1 << 7 << 3
	<< 9 << 4 << 2 << 4 << 7 << 6
	<< 6 << 1 << 8 << 2 << 7 << 3
	<< 3 << 7 << 2 << 7 << 3 << 4;
      test( d.det() == 330, "Determinant test 6x6" );
    }
    footer();
  }
  footer();
  
  cout << endl
       << "Tests passed: " << passed << endl
       << "Tests failed: " << failed << endl;
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x858, %rsp            # imm = 0x858
leaq 0x3764(%rip), %rsi      # 0x816c
leaq 0x838(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x838(%rsp), %rdi
callq 0x48bc
leaq 0x838(%rsp), %rdi
callq 0x2090
leaq 0x3742(%rip), %rsi      # 0x817d
leaq 0x818(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x818(%rsp), %rdi
callq 0x48bc
leaq 0x818(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
callq 0x235c
movl 0x18(%rbx), %ebp
movl 0x1c(%rbx), %ebx
leaq 0x3709(%rip), %rsi      # 0x818a
leaq 0x7f8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x3e56
xorl %edi, %edi
orl %ebx, %ebp
sete %dil
leaq 0x7f8(%rsp), %rsi
callq 0x4939
leaq 0x7f8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x25b2
movl 0xa0(%rsp), %ebx
movl 0xa4(%rsp), %ebp
leaq 0x36c6(%rip), %rsi      # 0x81a5
leaq 0x7d8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
xorl $0x1, %ebx
xorl $0x1, %ebp
xorl %edi, %edi
orl %ebx, %ebp
sete %dil
leaq 0x7d8(%rsp), %rsi
callq 0x4939
leaq 0x7d8(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x2708
movl 0xe0(%rsp), %ebx
movl 0xe4(%rsp), %ebp
leaq 0x367c(%rip), %rsi      # 0x81c2
leaq 0x7b8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
xorl $0x1, %ebx
xorl $0x1, %ebp
xorl %edi, %edi
orl %ebx, %ebp
sete %dil
leaq 0x7b8(%rsp), %rsi
callq 0x4939
leaq 0x7b8(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x757d(%rip)     # 0xc128
leaq 0x362b(%rip), %rsi      # 0x81dd
leaq 0x798(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x798(%rsp), %rdi
callq 0x48bc
leaq 0x798(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x4
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x292c
leaq 0x35dc(%rip), %rsi      # 0x81e3
leaq 0x88(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x35e6(%rip), %rsi      # 0x8203
leaq 0x778(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x778(%rsp), %rsi
callq 0x4939
leaq 0x778(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x235c
leaq 0xc8(%rsp), %rdi
pushq $0x4
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0xc8(%rsp), %rdi
movsd 0x337d(%rip), %xmm0     # 0x8008
callq 0x27be
movsd 0x3428(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x3420(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x3418(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x3410(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x3408(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
movsd 0x3400(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x33f8(%rip), %xmm0     # 0x80f0
movq %rax, %rdi
callq 0x27be
movsd 0x33f0(%rip), %xmm0     # 0x80f8
movq %rax, %rdi
callq 0x27be
movsd 0x33e8(%rip), %xmm0     # 0x8100
movq %rax, %rdi
callq 0x27be
movsd 0x33e0(%rip), %xmm0     # 0x8108
movq %rax, %rdi
callq 0x27be
movsd 0x33d8(%rip), %xmm0     # 0x8110
movq %rax, %rdi
callq 0x27be
movsd 0x33d0(%rip), %xmm0     # 0x8118
movq %rax, %rdi
callq 0x27be
movsd 0x33c8(%rip), %xmm0     # 0x8120
movq %rax, %rdi
callq 0x27be
movsd 0x33c0(%rip), %xmm0     # 0x8128
movq %rax, %rdi
callq 0x27be
movsd 0x33b8(%rip), %xmm0     # 0x8130
movq %rax, %rdi
callq 0x27be
leaq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x3478(%rip), %rsi      # 0x8211
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x348c(%rip), %rsi      # 0x8238
leaq 0x758(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x758(%rsp), %rsi
callq 0x4939
leaq 0x758(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x3d92
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x292c
leaq 0x33eb(%rip), %rsi      # 0x8211
leaq 0xc8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x3407(%rip), %rsi      # 0x8243
leaq 0x738(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x738(%rsp), %rsi
callq 0x4939
leaq 0x738(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x7292(%rip)     # 0xc128
leaq 0x33b0(%rip), %rsi      # 0x824d
leaq 0x718(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x718(%rsp), %rdi
callq 0x48bc
leaq 0x718(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x2
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
movsd 0x3125(%rip), %xmm0     # 0x8008
movq %rbx, %rdi
callq 0x27be
movsd 0x31cd(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x31c5(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x31bd(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
leaq 0x48(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x239a
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x3311(%rip), %rsi      # 0x8254
leaq 0x88(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x3303(%rip), %rsi      # 0x825c
leaq 0x6f8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x6f8(%rsp), %rsi
callq 0x4939
leaq 0x6f8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
pushq $0x3
popq %rdx
movl %edx, %esi
callq 0x239a
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x32ae(%rip), %rsi      # 0x826e
leaq 0x88(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x32aa(%rip), %rsi      # 0x8280
leaq 0x6d8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x6d8(%rsp), %rsi
callq 0x4939
leaq 0x6d8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
callq 0x28b6
leaq 0x48(%rsp), %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x239a
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x34d2(%rip), %rsi      # 0x8519
leaq 0x88(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x3235(%rip), %rsi      # 0x8292
leaq 0x6b8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x6b8(%rsp), %rsi
callq 0x4939
leaq 0x6b8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x239a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x706c(%rip)     # 0xc128
leaq 0x31e3(%rip), %rsi      # 0x82a6
leaq 0x698(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x698(%rsp), %rdi
callq 0x48bc
leaq 0x698(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x3
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
movsd 0x2eff(%rip), %xmm0     # 0x8008
movq %rbx, %rdi
callq 0x27be
movsd 0x2fa7(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x2f9f(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x2f97(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x2f8f(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x2f87(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
movsd 0x2f7f(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x2f77(%rip), %xmm0     # 0x80f0
movq %rax, %rdi
callq 0x27be
movsd 0x2f6f(%rip), %xmm0     # 0x80f8
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movl %ecx, %edx
movl %r8d, %r9d
callq 0x2f82
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x292c
leaq 0x30e5(%rip), %rsi      # 0x82b0
leaq 0xc8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x30d7(%rip), %rsi      # 0x82b8
leaq 0x678(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x678(%rsp), %rsi
callq 0x4939
leaq 0x678(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
pushq $0x2
popq %rcx
movl %ecx, %edx
movl %ecx, %r8d
movl %ecx, %r9d
callq 0x2f82
leaq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x3075(%rip), %rsi      # 0x82c8
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x306a(%rip), %rsi      # 0x82d0
leaq 0x658(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x658(%rsp), %rsi
callq 0x4939
leaq 0x658(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
pushq $0x1
popq %rdx
pushq $0x2
popq %rcx
pushq $0x3
popq %r8
movl %edx, %esi
callq 0x303e
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x292c
leaq 0x3017(%rip), %rsi      # 0x82e3
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x3010(%rip), %rsi      # 0x82ef
leaq 0x638(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x638(%rsp), %rsi
callq 0x4939
leaq 0x638(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
pushq $0x2
popq %rcx
pushq $0x1
popq %rdx
movl %edx, %esi
movl %edx, %r8d
callq 0x303e
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x292c
leaq 0x2fbf(%rip), %rsi      # 0x8303
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2fb0(%rip), %rsi      # 0x8307
leaq 0x618(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x618(%rsp), %rsi
callq 0x4939
leaq 0x618(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x6, 0x6d6a(%rip)     # 0xc128
leaq 0x2f59(%rip), %rsi      # 0x831e
leaq 0x5f8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x5f8(%rsp), %rdi
callq 0x48bc
leaq 0x5f8(%rsp), %rdi
callq 0x2090
leaq 0x2f3d(%rip), %rsi      # 0x8335
leaq 0x5d8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x5d8(%rsp), %rdi
callq 0x48bc
leaq 0x5d8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x2
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
movsd 0x2bca(%rip), %xmm0     # 0x8008
movq %rbx, %rdi
callq 0x27be
movsd 0x2c72(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x2c6a(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x2c62(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0x88(%rsp), %rdi
movsd 0x2c38(%rip), %xmm0     # 0x80d0
callq 0x27be
movsd 0x2c23(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x2c0b(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x2b43(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x3122
leaq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x2e3e(%rip), %rsi      # 0x833e
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2e33(%rip), %rsi      # 0x8346
leaq 0x5b8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x5b8(%rsp), %rsi
callq 0x4939
leaq 0x5b8(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x3122
leaq 0xc8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3d92
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x2da3(%rip), %rsi      # 0x833e
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2da7(%rip), %rsi      # 0x8355
leaq 0x598(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x598(%rsp), %rsi
callq 0x4939
leaq 0x598(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x239a
leaq 0x8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x3122
leaq 0xc8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3d92
leaq 0x8(%rsp), %rdi
callq 0x273a
movb 0xf9(%rsp), %bl
leaq 0x2d2f(%rip), %rsi      # 0x836c
leaq 0x578(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x578(%rsp), %rsi
callq 0x4939
leaq 0x578(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x239a
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x3122
leaq 0xc8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3d92
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x2cc0(%rip), %rsi      # 0x838a
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2cb5(%rip), %rsi      # 0x8392
leaq 0x558(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x558(%rsp), %rsi
callq 0x4939
leaq 0x558(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x2b25(%rip), %rsi      # 0x8254
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2c6e(%rip), %rsi      # 0x83b0
leaq 0x538(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x538(%rsp), %rsi
callq 0x4939
leaq 0x538(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x3186
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x2be4(%rip), %rsi      # 0x838a
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2c14(%rip), %rsi      # 0x83cd
leaq 0x518(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x518(%rsp), %rsi
callq 0x4939
leaq 0x518(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x6908(%rip)     # 0xc128
leaq 0x2bba(%rip), %rsi      # 0x83e1
leaq 0x4f8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x4f8(%rsp), %rdi
callq 0x48bc
leaq 0x4f8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x2
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
movsd 0x279b(%rip), %xmm0     # 0x8008
movq %rbx, %rdi
callq 0x27be
movsd 0x2843(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x283b(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x2833(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0x88(%rsp), %rdi
movsd 0x2741(%rip), %xmm0     # 0x8008
callq 0x27be
movsd 0x2734(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x2724(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x2714(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
leaq 0xc8(%rsp), %rdi
pushq $0x1
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x320c
leaq 0x118(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x292c
leaq 0x2aaf(%rip), %rsi      # 0x83ed
leaq 0x118(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2aa1(%rip), %rsi      # 0x83f5
leaq 0x4d8(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x4d8(%rsp), %rsi
callq 0x4939
leaq 0x4d8(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0x8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x320c
leaq 0x118(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x292c
leaq 0x2a20(%rip), %rsi      # 0x83ed
leaq 0x118(%rsp), %rdi
callq 0x7173
movl %eax, %ebx
leaq 0x2a24(%rip), %rsi      # 0x8407
leaq 0x4b8(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x4b8(%rsp), %rsi
callq 0x4939
leaq 0x4b8(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0x8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x3122
leaq 0xc8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3d92
leaq 0x8(%rsp), %rdi
callq 0x273a
movb 0xf9(%rsp), %bl
leaq 0x29b5(%rip), %rsi      # 0x8425
leaq 0x498(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x498(%rsp), %rsi
callq 0x4939
leaq 0x498(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x3266
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x2926(%rip), %rsi      # 0x83ed
leaq 0x8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x296e(%rip), %rsi      # 0x8448
leaq 0x478(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x478(%rsp), %rsi
callq 0x4939
leaq 0x478(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x65e7(%rip)     # 0xc128
leaq 0x2917(%rip), %rsi      # 0x845f
leaq 0x458(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x458(%rsp), %rdi
callq 0x48bc
leaq 0x458(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x2
popq %rsi
pushq $0x3
popq %rdx
movq %rbx, %rdi
callq 0x25b2
movsd 0x2531(%rip), %xmm0     # 0x80c0
movq %rbx, %rdi
callq 0x27be
movsd 0x2531(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x2519(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x2579(%rip), %xmm0     # 0x8138
movq %rax, %rdi
callq 0x27be
movsd 0x24f9(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x2429(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
pushq $0x3
popq %rsi
pushq $0x4
popq %rdx
callq 0x25b2
leaq 0x88(%rsp), %rdi
movsd 0x24b6(%rip), %xmm0     # 0x80c0
callq 0x27be
movsd 0x24b9(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x24b1(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x24a9(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
movsd 0x24f1(%rip), %xmm0     # 0x8138
movq %rax, %rdi
callq 0x27be
movsd 0x23b1(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x24d1(%rip), %xmm0     # 0x8138
movq %rax, %rdi
callq 0x27be
movsd 0x2391(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x24b9(%rip), %xmm0     # 0x8140
movq %rax, %rdi
callq 0x27be
movsd 0x24a9(%rip), %xmm0     # 0x8140
movq %rax, %rdi
callq 0x27be
movsd 0x2499(%rip), %xmm0     # 0x8140
movq %rax, %rdi
callq 0x27be
movsd 0x2351(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
leaq 0xc8(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0xc8(%rsp), %rdi
movsd 0x2327(%rip), %xmm0     # 0x8008
callq 0x27be
movsd 0x23d2(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x23d2(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x22fa(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0x8(%rsp), %rdi
movsd 0x2396(%rip), %xmm0     # 0x80c8
callq 0x27be
movsd 0x22c9(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x2379(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x27be
leaq 0x118(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x3332
leaq 0x158(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x292c
leaq 0x26d5(%rip), %rsi      # 0x846e
leaq 0x158(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x26dd(%rip), %rsi      # 0x848c
leaq 0x438(%rsp), %rdi
leaq 0x198(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x438(%rsp), %rsi
callq 0x4939
leaq 0x438(%rsp), %rdi
callq 0x2090
leaq 0x158(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x273a
leaq 0x118(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x3332
movb 0x149(%rsp), %bl
leaq 0x267e(%rip), %rsi      # 0x84a1
leaq 0x418(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x418(%rsp), %rsi
callq 0x4939
leaq 0x418(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x273a
leaq 0x118(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3332
leaq 0x198(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x292c
leaq 0x158(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x3332
leaq 0x1b8(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x292c
leaq 0x198(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x717d
movl %eax, %ebx
leaq 0x25e6(%rip), %rsi      # 0x84c4
leaq 0x3f8(%rsp), %rdi
leaq 0x117(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x3f8(%rsp), %rsi
callq 0x4939
leaq 0x3f8(%rsp), %rdi
callq 0x2090
leaq 0x1b8(%rsp), %rdi
callq 0x2090
leaq 0x158(%rsp), %rdi
callq 0x273a
leaq 0x198(%rsp), %rbx
movq %rbx, %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x273a
movabsq $0x4000000000000000, %r14 # imm = 0x4000000000000000
movq %r14, (%rbx)
leaq 0x118(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x2a74
leaq 0x158(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x292c
leaq 0x255b(%rip), %rsi      # 0x84e5
leaq 0x158(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2552(%rip), %rsi      # 0x84f2
leaq 0x3d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x3d8(%rsp), %rsi
callq 0x4939
leaq 0x3d8(%rsp), %rdi
callq 0x2090
leaq 0x158(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x273a
leaq 0x118(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x292c
leaq 0x2509(%rip), %rsi      # 0x850e
leaq 0x118(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x2500(%rip), %rsi      # 0x851b
leaq 0x3b8(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x3b8(%rsp), %rsi
callq 0x4939
leaq 0x3b8(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x33ec
leaq 0x118(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x24b6(%rip), %rsi      # 0x853e
leaq 0x118(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x24b0(%rip), %rsi      # 0x854e
leaq 0x398(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x398(%rsp), %rsi
callq 0x4939
leaq 0x398(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rbx
movq %rbx, %rdi
callq 0x2090
movq %r14, (%rbx)
leaq 0xc8(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x3448
leaq 0x118(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x292c
leaq 0x2453(%rip), %rsi      # 0x8567
leaq 0x118(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x244f(%rip), %rsi      # 0x8579
leaq 0x378(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x378(%rsp), %rsi
callq 0x4939
leaq 0x378(%rsp), %rdi
callq 0x2090
leaq 0x118(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x5f8a(%rip)     # 0xc128
leaq 0x23f4(%rip), %rsi      # 0x8599
leaq 0x358(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x358(%rsp), %rdi
callq 0x48bc
leaq 0x358(%rsp), %rdi
callq 0x2090
addl $-0x3, 0x5f50(%rip)     # 0xc128
leaq 0x23c3(%rip), %rsi      # 0x85a2
leaq 0x338(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x338(%rsp), %rdi
callq 0x48bc
leaq 0x338(%rsp), %rdi
callq 0x2090
addl $-0x3, 0x5f16(%rip)     # 0xc128
leaq 0x2392(%rip), %rsi      # 0x85ab
leaq 0x318(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x318(%rsp), %rdi
callq 0x48bc
leaq 0x318(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x2
popq %rsi
pushq $0x3
popq %rdx
movq %rbx, %rdi
callq 0x25b2
movsd 0x1e70(%rip), %xmm0     # 0x80d0
movq %rbx, %rdi
callq 0x27be
movsd 0x1e58(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x1e40(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x1d78(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x1e38(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x1e30(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x3974
movl 0x60(%rsp), %ebx
movl 0x64(%rsp), %ebp
movl 0xa0(%rsp), %r14d
movl 0xa4(%rsp), %r15d
leaq 0x22cc(%rip), %rsi      # 0x85b5
leaq 0x2f8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
xorl %r15d, %ebx
xorl %r14d, %ebp
xorl %edi, %edi
orl %ebx, %ebp
sete %dil
leaq 0x2f8(%rsp), %rsi
callq 0x4939
leaq 0x2f8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
callq 0x39d2
leaq 0x48(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x2740
movl %eax, %ebx
leaq 0x227a(%rip), %rsi      # 0x85c5
leaq 0x2d8(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x2d8(%rsp), %rsi
callq 0x4939
leaq 0x2d8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x5d8d(%rip)     # 0xc128
leaq 0x2237(%rip), %rsi      # 0x85d9
leaq 0x2b8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x2b8(%rsp), %rdi
callq 0x48bc
leaq 0x2b8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x3
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
xorpd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x27be
movsd 0x1c14(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x1cbc(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x1bf4(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x27be
movsd 0x1c98(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x1c90(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x1cf8(%rip), %xmm0     # 0x8148
movq %rax, %rdi
callq 0x27be
movsd 0x1c90(%rip), %xmm0     # 0x80f0
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x38ae
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x292c
leaq 0x214b(%rip), %rsi      # 0x85e1
leaq 0xc8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x212d(%rip), %rsi      # 0x85d9
leaq 0x298(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x298(%rsp), %rsi
callq 0x4939
leaq 0x298(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rdi
callq 0x390c
leaq 0xc8(%rsp), %rdi
movq %rax, %rsi
callq 0x292c
leaq 0x20d8(%rip), %rsi      # 0x85e1
leaq 0xc8(%rsp), %rdi
callq 0x7166
movl %eax, %ebx
leaq 0x20e1(%rip), %rsi      # 0x8600
leaq 0x278(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movzbl %bl, %edi
leaq 0x278(%rsp), %rsi
callq 0x4939
leaq 0x278(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x3, 0x5baf(%rip)     # 0xc128
leaq 0x2092(%rip), %rsi      # 0x8612
leaq 0x258(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x3e56
leaq 0x258(%rsp), %rdi
callq 0x48bc
leaq 0x258(%rsp), %rdi
callq 0x2090
leaq 0x48(%rsp), %rbx
pushq $0x1
popq %rdx
movq %rbx, %rdi
movl %edx, %esi
callq 0x25b2
movsd 0x1a42(%rip), %xmm0     # 0x8008
movq %rbx, %rdi
callq 0x27be
leaq 0x48(%rsp), %rdi
callq 0x39d8
movsd %xmm0, 0x108(%rsp)
leaq 0x2036(%rip), %rsi      # 0x861e
leaq 0x238(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x3e56
movsd 0x108(%rsp), %xmm0
cmpeqsd 0x19f9(%rip), %xmm0     # 0x8008
movq %xmm0, %rdi
andl $0x1, %edi
leaq 0x238(%rsp), %rsi
callq 0x4939
leaq 0x238(%rsp), %rdi
callq 0x2090
leaq 0x88(%rsp), %rdi
pushq $0x2
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0x88(%rsp), %rdi
movsd 0x1a75(%rip), %xmm0     # 0x80c8
callq 0x27be
movsd 0x1a70(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x1998(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x1a40(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
leaq 0x88(%rsp), %rdi
callq 0x39d8
movsd %xmm0, 0x108(%rsp)
leaq 0x1f8e(%rip), %rsi      # 0x8633
leaq 0x218(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x3e56
movsd 0x108(%rsp), %xmm0
cmpeqsd 0x19f4(%rip), %xmm0     # 0x80c0
movq %xmm0, %rdi
andl $0x1, %edi
leaq 0x218(%rsp), %rsi
callq 0x4939
leaq 0x218(%rsp), %rdi
callq 0x2090
leaq 0xc8(%rsp), %rdi
pushq $0x3
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0xc8(%rsp), %rdi
movsd 0x18f8(%rip), %xmm0     # 0x8008
callq 0x27be
movsd 0x19a3(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x27be
movsd 0x1997(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x198f(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x1987(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
movsd 0x197f(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x1977(%rip), %xmm0     # 0x80f0
movq %rax, %rdi
callq 0x27be
movsd 0x196f(%rip), %xmm0     # 0x80f8
movq %rax, %rdi
callq 0x27be
leaq 0xc8(%rsp), %rdi
callq 0x39d8
movsd %xmm0, 0x108(%rsp)
leaq 0x1e9a(%rip), %rsi      # 0x8648
leaq 0x1f8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3e56
movsd 0x108(%rsp), %xmm0
cmpeqsd 0x1926(%rip), %xmm0     # 0x80f8
movq %xmm0, %rdi
andl $0x1, %edi
leaq 0x1f8(%rsp), %rsi
callq 0x4939
leaq 0x1f8(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
pushq $0x6
popq %rdx
movl %edx, %esi
callq 0x25b2
leaq 0x8(%rsp), %rdi
xorpd %xmm0, %xmm0
callq 0x27be
movsd 0x18df(%rip), %xmm0     # 0x80f8
movq %rax, %rdi
callq 0x27be
movsd 0x189f(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x1897(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x17bf(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x1867(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
xorpd %xmm0, %xmm0
movq %rax, %rdi
callq 0x27be
movsd 0x184b(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x1783(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x1843(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x1833(%rip), %xmm0     # 0x80d8
movq %rax, %rdi
callq 0x27be
movsd 0x180b(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x1803(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x17fb(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x1723(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x1713(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x17e3(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x17b3(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x17d3(%rip), %xmm0     # 0x80f8
movq %rax, %rdi
callq 0x27be
movsd 0x179b(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x177b(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x177b(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
movsd 0x1783(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x176b(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
movsd 0x175b(%rip), %xmm0     # 0x80e0
movq %rax, %rdi
callq 0x27be
movsd 0x1673(%rip), %xmm0     # 0x8008
movq %rax, %rdi
callq 0x27be
movsd 0x174b(%rip), %xmm0     # 0x80f0
movq %rax, %rdi
callq 0x27be
movsd 0x170b(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x1723(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x16f3(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x16e3(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x16f3(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x16bb(%rip), %xmm0     # 0x80c0
movq %rax, %rdi
callq 0x27be
movsd 0x16d3(%rip), %xmm0     # 0x80e8
movq %rax, %rdi
callq 0x27be
movsd 0x16a3(%rip), %xmm0     # 0x80c8
movq %rax, %rdi
callq 0x27be
movsd 0x169b(%rip), %xmm0     # 0x80d0
movq %rax, %rdi
callq 0x27be
leaq 0x8(%rsp), %rdi
callq 0x39d8
movsd %xmm0, 0x108(%rsp)
leaq 0x1c06(%rip), %rsi      # 0x865d
leaq 0x1d8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x3e56
movsd 0x108(%rsp), %xmm0
cmpeqsd 0x16d2(%rip), %xmm0     # 0x8150
movq %xmm0, %rdi
andl $0x1, %edi
leaq 0x1d8(%rsp), %rsi
callq 0x4939
leaq 0x1d8(%rsp), %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
addl $-0x6, 0x5653(%rip)     # 0xc128
movq 0x54fc(%rip), %rdi      # 0xbfd8
callq 0x20a0
leaq 0x1b8a(%rip), %rsi      # 0x8672
movq %rax, %rdi
callq 0x2130
movl 0x5636(%rip), %esi      # 0xc12c
movq %rax, %rdi
callq 0x21d0
movq %rax, %rdi
callq 0x20a0
leaq 0x1b74(%rip), %rsi      # 0x8681
movq %rax, %rdi
callq 0x2130
movl 0x5615(%rip), %esi      # 0xc130
movq %rax, %rdi
callq 0x21d0
movq %rax, %rdi
callq 0x20a0
xorl %eax, %eax
addq $0x858, %rsp            # imm = 0x858
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x1d8(%rsp), %rdi
jmp 0x6e0a
jmp 0x712d
jmp 0x7128
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
jmp 0x704c
jmp 0x7128
jmp 0x7123
movq %rax, %rbx
leaq 0x218(%rsp), %rdi
jmp 0x7023
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x238(%rsp), %rdi
jmp 0x7082
jmp 0x711c
movq %rax, %rbx
leaq 0x258(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x278(%rsp), %rdi
jmp 0x7011
jmp 0x7018
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
jmp 0x7011
jmp 0x7018
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x2b8(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x2d8(%rsp), %rdi
jmp 0x7023
jmp 0x7123
movq %rax, %rbx
leaq 0x2f8(%rsp), %rdi
jmp 0x7023
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x318(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x338(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x358(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x378(%rsp), %rdi
jmp 0x6df8
jmp 0x6dff
jmp 0x712d
jmp 0x712d
movq %rax, %rbx
leaq 0x398(%rsp), %rdi
jmp 0x6df8
jmp 0x6dff
jmp 0x712d
movq %rax, %rbx
leaq 0x3b8(%rsp), %rdi
jmp 0x6df8
jmp 0x6dff
jmp 0x712d
movq %rax, %rbx
leaq 0x3d8(%rsp), %rdi
jmp 0x6d3f
jmp 0x6d46
jmp 0x6d58
jmp 0x712d
movq %rax, %rbx
leaq 0x3f8(%rsp), %rdi
callq 0x2090
jmp 0x6ceb
movq %rax, %rbx
leaq 0x1b8(%rsp), %rdi
callq 0x2090
jmp 0x6cfd
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x273a
jmp 0x6d0f
movq %rax, %rbx
leaq 0x198(%rsp), %rdi
jmp 0x6d51
jmp 0x6d58
jmp 0x712d
movq %rax, %rbx
leaq 0x418(%rsp), %rdi
jmp 0x6d51
jmp 0x6d58
jmp 0x712d
movq %rax, %rbx
leaq 0x438(%rsp), %rdi
callq 0x2090
jmp 0x6d49
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x2090
jmp 0x6d5b
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0x273a
jmp 0x7130
jmp 0x712d
jmp 0x7128
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x458(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x478(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
jmp 0x7128
movq %rax, %rbx
leaq 0x498(%rsp), %rdi
jmp 0x704c
jmp 0x7128
jmp 0x712d
jmp 0x7128
movq %rax, %rbx
leaq 0x4b8(%rsp), %rdi
jmp 0x6df8
jmp 0x6dff
jmp 0x712d
jmp 0x7128
movq %rax, %rbx
leaq 0x4d8(%rsp), %rdi
callq 0x2090
jmp 0x6e02
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0x2090
jmp 0x7130
jmp 0x712d
jmp 0x7128
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x4f8(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x518(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
movq %rax, %rbx
leaq 0x538(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
movq %rax, %rbx
leaq 0x558(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
jmp 0x712d
jmp 0x7128
movq %rax, %rbx
leaq 0x578(%rsp), %rdi
jmp 0x704c
jmp 0x7128
jmp 0x712d
jmp 0x7128
movq %rax, %rbx
leaq 0x598(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
jmp 0x712d
jmp 0x7128
movq %rax, %rbx
leaq 0x5b8(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x5d8(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x5f8(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x618(%rsp), %rdi
jmp 0x703d
jmp 0x7044
movq %rax, %rbx
leaq 0x638(%rsp), %rdi
jmp 0x703d
jmp 0x7044
movq %rax, %rbx
leaq 0x658(%rsp), %rdi
jmp 0x703d
jmp 0x7044
jmp 0x7128
jmp 0x7123
movq %rax, %rbx
leaq 0x678(%rsp), %rdi
jmp 0x7011
jmp 0x7018
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x698(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x6b8(%rsp), %rdi
jmp 0x7070
jmp 0x7077
jmp 0x711c
movq %rax, %rbx
leaq 0x6d8(%rsp), %rdi
jmp 0x7070
jmp 0x7077
jmp 0x711c
movq %rax, %rbx
leaq 0x6f8(%rsp), %rdi
jmp 0x7070
jmp 0x7077
jmp 0x711c
movq %rax, %rbx
leaq 0x718(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x738(%rsp), %rdi
callq 0x2090
jmp 0x701b
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x2090
jmp 0x7147
jmp 0x7123
movq %rax, %rbx
leaq 0x758(%rsp), %rdi
callq 0x2090
jmp 0x7047
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x2090
jmp 0x713a
jmp 0x7128
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x778(%rsp), %rdi
callq 0x2090
jmp 0x707a
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x2090
jmp 0x7154
jmp 0x711c
movq %rax, %rbx
leaq 0x798(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x7b8(%rsp), %rdi
jmp 0x704c
jmp 0x7128
jmp 0x7123
movq %rax, %rbx
leaq 0x7d8(%rsp), %rdi
jmp 0x7023
jmp 0x7123
jmp 0x711c
movq %rax, %rbx
leaq 0x7f8(%rsp), %rdi
jmp 0x7082
jmp 0x711c
movq %rax, %rbx
leaq 0x818(%rsp), %rdi
jmp 0x70ee
jmp 0x70f5
movq %rax, %rbx
leaq 0x838(%rsp), %rdi
callq 0x2090
jmp 0x715e
movq %rax, %rbx
jmp 0x715e
jmp 0x711c
jmp 0x7123
jmp 0x7123
jmp 0x7128
jmp 0x7128
jmp 0x7128
jmp 0x7128
jmp 0x7123
jmp 0x711c
jmp 0x7123
jmp 0x711c
jmp 0x7123
jmp 0x712d
jmp 0x711c
jmp 0x711c
jmp 0x711c
jmp 0x711c
movq %rax, %rbx
jmp 0x7154
jmp 0x7128
movq %rax, %rbx
jmp 0x7147
movq %rax, %rbx
jmp 0x713a
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x273a
leaq 0xc8(%rsp), %rdi
callq 0x273a
leaq 0x88(%rsp), %rdi
callq 0x273a
leaq 0x48(%rsp), %rdi
callq 0x273a
movq %rbx, %rdi
callq 0x21f0