// File: /workspace/github_cpp_makefile_star2_O1/dsharlet[P]array/test/array.cpp
// Function: nda::test_array_default_constructor_body()
TEST(array_default_constructor) {
  // GCC 9.3 struggles to disambiguate this, clang is fine.
  dense_array<int, 1> a(dense_shape<1>{10});
  for (int x = 0; x < 10; x++) {
    ASSERT_EQ(a(x), 0);
  }

  dense_array<int, 2> b({7, 3});
  ASSERT_EQ(b.width(), 7);
  ASSERT_EQ(b.height(), 3);
  for (int y = 0; y < 3; y++) {
    for (int x = 0; x < 7; x++) {
      ASSERT_EQ(b(x, y), 0);
    }
  }

  dense_array<int, 3> c({5, 9, 3});
  ASSERT_EQ(c.width(), 5);
  ASSERT_EQ(c.height(), 9);
  ASSERT_EQ(c.channels(), 3);
  for (int z = 0; z < 3; z++) {
    for (int y = 0; y < 9; y++) {
      for (int x = 0; x < 5; x++) {
        ASSERT_EQ(c(x, y, z), 0);
      }
    }
  }

  array<int, shape<dim<>, dim<>>> sparse({{-2, 5, 2}, {4, 10, 20}});
  ASSERT_EQ(sparse.rows(), 5);
  ASSERT_EQ(sparse.columns(), 10);
  for (int y = 4; y < 14; y++) {
    for (int x = -2; x < 3; x++) {
      ASSERT_EQ(sparse(x, y), 0);
    }
  }

  sparse.clear();
  ASSERT(sparse.empty());
  sparse.clear();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x498, %rsp            # imm = 0x498
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
leaq 0x178(%rsp), %rbx
movq $0x0, (%rbx)
movl $0xa, %r15d
movq %r15, 0x8(%rbx)
movq %rax, 0x10(%rbx)
xorl %ebp, %ebp
xorl %edi, %edi
movq %rbx, %rsi
callq 0xd09f
xorps %xmm0, %xmm0
leaq 0x140(%rsp), %r14
movups %xmm0, 0x8(%r14)
movups %xmm0, 0x18(%r14)
movq %r15, 0x28(%r14)
movq %r14, %rdi
callq 0x1cba0
movq %r14, %rdi
callq 0x1cbf0
leaq 0x88(%rsp), %r12
leaq 0x924a8(%rip), %r13     # 0xa1654
leaq 0x96177(%rip), %r14     # 0xa532a
movq 0x158(%rsp), %rax
movq 0x160(%rsp), %rcx
shlq $0x2, %rcx
subq %rcx, %rax
movl (%rax,%rbp,4), %r15d
leaq 0x98(%rsp), %rax
movq %rax, 0x88(%rsp)
movq %r12, %rdi
leaq 0x9396a(%rip), %rsi     # 0xa2b52
leaq 0x9396c(%rip), %rdx     # 0xa2b5b
callq 0xd0b8
xorl %esi, %esi
testl %r15d, %r15d
sete %sil
movq %rbx, %rdi
movq %r12, %rdx
callq 0xbf0a
movq %rbx, %rdi
movq %r13, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x9393f(%rip), %rsi     # 0xa2b5c
callq 0x18a4e
movq %rax, %rdi
movq %r14, %rsi
callq 0x18a16
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0xf25f
movq 0x158(%rsp), %rax
movq 0x160(%rsp), %rcx
shlq $0x2, %rcx
subq %rcx, %rax
movq %r15, %rdi
addq $0x10, %rdi
movl (%rax,%rbp,4), %esi
callq 0x22f0
movq %r15, %rdi
movq %r13, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x93c63(%rip), %rsi     # 0xa2ed7
callq 0x18a16
movq %rax, %rdi
movq %r14, %rsi
callq 0x18a16
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0xf29e
movq %r15, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
movq %r15, %rdi
leaq 0xa90c1(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbx, %rdi
callq 0xbf62
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf2da
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21f0
incq %rbp
cmpq $0xa, %rbp
jne 0xf1b3
leaq 0x178(%rsp), %rsi
movq $0x0, (%rsi)
movq $0x7, 0x8(%rsi)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq %rbx, 0x10(%rsi)
xorl %edi, %edi
callq 0xd09f
xorps %xmm0, %xmm0
leaq 0xf0(%rsp), %rdi
movups %xmm0, 0x8(%rdi)
movups %xmm0, 0x18(%rdi)
movq $0x3, 0x28(%rdi)
movq %rbx, 0x30(%rdi)
movq $0x0, 0x38(%rdi)
movq $0x7, 0x40(%rdi)
callq 0x1c19e
leaq 0xf0(%rsp), %rdi
callq 0x1c258
movq 0x130(%rsp), %rbx
leaq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
movq %rax, (%rdi)
leaq 0x937eb(%rip), %rsi     # 0xa2b61
leaq 0x937f2(%rip), %rdx     # 0xa2b6f
callq 0xd0b8
xorl %esi, %esi
cmpq $0x7, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0xbf0a
leaq 0x922ac(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x937b4(%rip), %rsi     # 0xa2b70
movq %rax, %rdi
callq 0x18a86
leaq 0x95f5f(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf3f3
movq 0x130(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x9225a(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x93765(%rip), %rsi     # 0xa2b6e
movq %rax, %rdi
callq 0x18a16
leaq 0x95f12(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf43d
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x7, %esi
callq 0x22f0
leaq 0xa8f25(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf47e
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x118(%rsp), %rbx
leaq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
movq %rax, (%rdi)
leaq 0x936da(%rip), %rsi     # 0xa2b7a
leaq 0x936e2(%rip), %rdx     # 0xa2b89
callq 0xd0b8
xorl %esi, %esi
cmpq $0x3, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0xbf0a
leaq 0x92182(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x936a4(%rip), %rsi     # 0xa2b8a
movq %rax, %rdi
callq 0x18abe
leaq 0x95e35(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf51d
movq 0x118(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x92130(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x9c616(%rip), %rsi     # 0xabb49
movq %rax, %rdi
callq 0x18a16
leaq 0x95de8(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf567
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x3, %esi
callq 0x22f0
leaq 0xa8dfb(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf5a8
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21f0
movq $0x0, (%rsp)
leaq 0x88(%rsp), %rbx
leaq 0x178(%rsp), %r12
leaq 0x9208d(%rip), %r13     # 0xa1654
leaq 0x95d5c(%rip), %r15     # 0xa532a
xorl %edx, %edx
movq %r13, %rbp
movq (%rsp), %rax
subq 0x110(%rsp), %rax
imulq 0x120(%rsp), %rax
movq 0x128(%rsp), %rcx
shlq $0x2, %rax
shlq $0x2, %rcx
subq %rcx, %rax
addq 0x108(%rsp), %rax
movq %rdx, 0x8(%rsp)
movl (%rax,%rdx,4), %r14d
leaq 0x98(%rsp), %rax
movq %rax, 0x88(%rsp)
movq %rbx, %r13
movq %rbx, %rdi
leaq 0x9356c(%rip), %rsi     # 0xa2b95
leaq 0x93571(%rip), %rdx     # 0xa2ba1
callq 0xd0b8
xorl %esi, %esi
testl %r14d, %r14d
sete %sil
movq %r12, %rdi
movq %r13, %rbx
movq %r13, %rdx
callq 0xbf0a
movq %rbp, %r13
movq %r12, %rdi
movq %rbp, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x9353e(%rip), %rsi     # 0xa2ba2
callq 0x18af6
movq %rax, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0xf6c4
movq (%rsp), %rax
subq 0x110(%rsp), %rax
movq 0x128(%rsp), %rcx
imulq 0x120(%rsp), %rax
shlq $0x2, %rax
shlq $0x2, %rcx
subq %rcx, %rax
addq 0x108(%rsp), %rax
movq %r14, %rdi
addq $0x10, %rdi
movq 0x8(%rsp), %rcx
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r14, %rdi
movq %r13, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x937fe(%rip), %rsi     # 0xa2ed7
callq 0x18a16
movq %rax, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0xf703
movq %r14, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
movq %r14, %rdi
leaq 0xa8c5c(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %r12, %rdi
callq 0xbf62
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf73f
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x8(%rsp), %rdx
incq %rdx
cmpq $0x7, %rdx
jne 0xf5d0
movq (%rsp), %rcx
incq %rcx
movq %rcx, (%rsp)
cmpq $0x3, %rcx
jne 0xf5ce
leaq 0x178(%rsp), %rsi
movq $0x0, (%rsi)
movq $0x5, 0x8(%rsi)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq %rbx, 0x10(%rsi)
xorl %edi, %edi
callq 0xd09f
xorps %xmm0, %xmm0
leaq 0x88(%rsp), %rdi
movups %xmm0, 0x8(%rdi)
movups %xmm0, 0x18(%rdi)
movq $0x3, 0x28(%rdi)
movq %rbx, 0x30(%rdi)
xorl %eax, %eax
movq %rax, 0x38(%rdi)
movq $0x9, 0x40(%rdi)
movq %rbx, 0x48(%rdi)
movq %rax, 0x50(%rdi)
movq $0x5, 0x58(%rdi)
callq 0xc2a2
leaq 0x88(%rsp), %rdi
callq 0xc38a
movq 0xe0(%rsp), %rbx
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x933b1(%rip), %rsi     # 0xa2baa
leaq 0x933b8(%rip), %rdx     # 0xa2bb8
leaq 0x30(%rsp), %rdi
callq 0xd0b8
xorl %esi, %esi
cmpq $0x5, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf0a
leaq 0x91e27(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x93378(%rip), %rsi     # 0xa2bb9
movq %rax, %rdi
callq 0x18a86
leaq 0x95ada(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf878
movq 0xe0(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x91dd5(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x93972(%rip), %rsi     # 0xa3200
movq %rax, %rdi
callq 0x18a16
leaq 0x95a8d(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf8c2
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x5, %esi
callq 0x22f0
leaq 0xa8aa0(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xf8fa
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xc8(%rsp), %rbx
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
movq %rax, (%rdi)
leaq 0x932ad(%rip), %rsi     # 0xa2bc3
leaq 0x932b5(%rip), %rdx     # 0xa2bd2
callq 0xd0b8
xorl %esi, %esi
cmpq $0x9, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf0a
leaq 0x91d0f(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x9327a(%rip), %rsi     # 0xa2bd3
movq %rax, %rdi
callq 0x18abe
leaq 0x959c2(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf990
movq 0xc8(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x91cbd(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x9322b(%rip), %rsi     # 0xa2bd1
movq %rax, %rdi
callq 0x18a16
leaq 0x95975(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xf9da
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x9, %esi
callq 0x22f0
leaq 0xa8988(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xfa12
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xb0(%rsp), %rbx
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
movq %rax, (%rdi)
leaq 0x931b0(%rip), %rsi     # 0xa2bde
leaq 0x931ba(%rip), %rdx     # 0xa2bef
callq 0xd0b8
xorl %esi, %esi
cmpq $0x3, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf0a
leaq 0x91bf7(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x9317f(%rip), %rsi     # 0xa2bf0
movq %rax, %rdi
callq 0x18b2e
leaq 0x958aa(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xfaa8
movq 0xb0(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x91ba5(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x9c08b(%rip), %rsi     # 0xabb49
movq %rax, %rdi
callq 0x18a16
leaq 0x9585d(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xfaf2
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x3, %esi
callq 0x22f0
leaq 0xa8870(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xfb2a
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq $0x0, 0x80(%rsp)
leaq 0x30(%rsp), %rbp
leaq 0x178(%rsp), %r12
leaq 0x91b0a(%rip), %rbx     # 0xa1654
leaq 0x957d9(%rip), %r13     # 0xa532a
movq $0x0, (%rsp)
xorl %esi, %esi
movq %rbx, %r15
movq 0x80(%rsp), %rax
subq 0xa8(%rsp), %rax
movq 0xd8(%rsp), %rcx
imulq 0xb8(%rsp), %rax
movq (%rsp), %rdx
subq 0xc0(%rsp), %rdx
imulq 0xd0(%rsp), %rdx
shlq $0x2, %rdx
leaq (%rdx,%rax,4), %rax
shlq $0x2, %rcx
subq %rcx, %rax
addq 0xa0(%rsp), %rax
movq %rsi, 0x8(%rsp)
movl (%rax,%rsi,4), %r14d
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq %rbp, %rbx
movq %rbp, %rdi
leaq 0x93032(%rip), %rsi     # 0xa2bfd
leaq 0x9303a(%rip), %rdx     # 0xa2c0c
callq 0xd0b8
xorl %esi, %esi
testl %r14d, %r14d
sete %sil
movq %r12, %rdi
movq %rbx, %rbp
movq %rbx, %rdx
callq 0xbf0a
movq %r15, %rbx
movq %r12, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x93007(%rip), %rsi     # 0xa2c0d
callq 0x18abe
movq %rax, %rdi
movq %r13, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0xfc83
movq 0x80(%rsp), %rax
subq 0xa8(%rsp), %rax
imulq 0xb8(%rsp), %rax
movq 0xd8(%rsp), %rcx
movq (%rsp), %rdx
subq 0xc0(%rsp), %rdx
imulq 0xd0(%rsp), %rdx
shlq $0x2, %rdx
leaq (%rdx,%rax,4), %rax
shlq $0x2, %rcx
subq %rcx, %rax
addq 0xa0(%rsp), %rax
movq %r14, %rdi
addq $0x10, %rdi
movq 0x8(%rsp), %rcx
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x9323f(%rip), %rsi     # 0xa2ed7
callq 0x18a16
movq %rax, %rdi
movq %r13, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0xfcc2
movq %r14, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
movq %r14, %rdi
leaq 0xa869d(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %r12, %rdi
callq 0xbf62
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xfcf5
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x8(%rsp), %rsi
incq %rsi
cmpq $0x5, %rsi
jne 0xfb5b
movq (%rsp), %rcx
incq %rcx
movq %rcx, (%rsp)
cmpq $0x9, %rcx
jne 0xfb59
movq 0x80(%rsp), %rcx
incq %rcx
movq %rcx, 0x80(%rsp)
cmpq $0x3, %rcx
jne 0xfb51
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rdi
movups %xmm0, 0x8(%rdi)
movq $0x0, 0x18(%rdi)
movq $0x4, 0x20(%rdi)
movq $0xa, 0x28(%rdi)
movq $0x14, 0x30(%rdi)
movq $-0x2, 0x38(%rdi)
movq $0x5, 0x40(%rdi)
movq $0x2, 0x48(%rdi)
callq 0xdf80
leaq 0x30(%rsp), %rdi
callq 0xe05e
movq 0x70(%rsp), %rbx
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x92e77(%rip), %rsi     # 0xa2c18
leaq 0x92e82(%rip), %rdx     # 0xa2c2a
leaq 0x10(%rsp), %rdi
callq 0xd0b8
xorl %esi, %esi
cmpq $0x5, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xbf0a
leaq 0x9187f(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x92e42(%rip), %rsi     # 0xa2c2b
movq %rax, %rdi
callq 0x18b66
leaq 0x95532(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xfe1d
movq 0x70(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x91830(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x933cd(%rip), %rsi     # 0xa3200
movq %rax, %rdi
callq 0x18a16
leaq 0x954e8(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xfe67
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x5, %esi
callq 0x22f0
leaq 0xa84fb(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xfe9f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x58(%rsp), %rbx
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
leaq 0x92d81(%rip), %rsi     # 0xa2c39
leaq 0x92d90(%rip), %rdx     # 0xa2c4f
callq 0xd0b8
xorl %esi, %esi
cmpq $0xa, %rbx
sete %sil
leaq 0x178(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xbf0a
leaq 0x9176d(%rip), %rsi     # 0xa1654
leaq 0x178(%rsp), %rdi
callq 0x18a16
leaq 0x92d55(%rip), %rsi     # 0xa2c50
movq %rax, %rdi
callq 0x18b9e
leaq 0x95420(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xff2f
movq 0x58(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x9171e(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x92d08(%rip), %rsi     # 0xa2c4d
movq %rax, %rdi
callq 0x18bd6
leaq 0x953d6(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0xff79
movq %rbx, %rdi
addq $0x10, %rdi
movl $0xa, %esi
callq 0x22f0
leaq 0xa83e9(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xffb1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
movl $0x4, %eax
movq %rax, (%rsp)
leaq 0x10(%rsp), %rbx
leaq 0x178(%rsp), %r12
leaq 0x91686(%rip), %r13     # 0xa1654
leaq 0x95355(%rip), %r15     # 0xa532a
movq $-0x2, %rax
movq %r13, %rbp
movq %rax, 0x8(%rsp)
subq 0x68(%rsp), %rax
imulq 0x78(%rsp), %rax
movq (%rsp), %rcx
subq 0x50(%rsp), %rcx
imulq 0x60(%rsp), %rcx
shlq $0x2, %rcx
addq 0x48(%rsp), %rcx
movl (%rcx,%rax,4), %r14d
leaq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq %rbx, %r13
movq %rbx, %rdi
leaq 0x92c3f(%rip), %rsi     # 0xa2c61
leaq 0x92c49(%rip), %rdx     # 0xa2c72
callq 0xd0b8
xorl %esi, %esi
testl %r14d, %r14d
sete %sil
movq %r12, %rdi
movq %r13, %rbx
movq %r13, %rdx
callq 0xbf0a
movq %rbp, %r13
movq %r12, %rdi
movq %rbp, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x92c16(%rip), %rsi     # 0xa2c73
callq 0x18b2e
movq %rax, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x100b0
movq (%rsp), %rax
subq 0x50(%rsp), %rax
imulq 0x60(%rsp), %rax
shlq $0x2, %rax
addq 0x48(%rsp), %rax
movq 0x8(%rsp), %rcx
subq 0x68(%rsp), %rcx
imulq 0x78(%rsp), %rcx
movq %r14, %rdi
addq $0x10, %rdi
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r14, %rdi
movq %r13, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x92e12(%rip), %rsi     # 0xa2ed7
callq 0x18a16
movq %rax, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x100ef
movq %r14, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
movq %r14, %rdi
leaq 0xa8270(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %r12, %rdi
callq 0xbf62
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x10122
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x8(%rsp), %rax
incq %rax
cmpq $0x3, %rax
jne 0xffdc
movq (%rsp), %rax
incq %rax
movq %rax, (%rsp)
cmpq $0xe, %rax
jne 0xffd5
leaq 0x30(%rsp), %rdi
callq 0x18c0e
movq 0x58(%rsp), %rbx
movq 0x70(%rsp), %r15
leaq 0x188(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x92b10(%rip), %rsi     # 0xa2c80
leaq 0x92b17(%rip), %rdx     # 0xa2c8e
leaq 0x178(%rsp), %rdi
callq 0xd0b8
imulq %r15, %rbx
xorl %esi, %esi
testq %rbx, %rbx
setle %sil
leaq 0x308(%rsp), %rdi
leaq 0x178(%rsp), %rdx
callq 0xbf0a
leaq 0x308(%rsp), %rdi
callq 0xbf62
movq 0x178(%rsp), %rdi
cmpq %r14, %rdi
je 0x101d0
movq 0x188(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x30(%rsp), %rdi
callq 0x18c0e
leaq 0x30(%rsp), %rdi
callq 0xe542
leaq 0x88(%rsp), %rdi
callq 0xd16c
leaq 0xf0(%rsp), %rdi
callq 0x1cd2c
leaq 0x140(%rsp), %rdi
callq 0x1cc90
addq $0x498, %rsp            # imm = 0x498
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x104af
jmp 0x104af
jmp 0x104af
jmp 0x104af
jmp 0x103b3
jmp 0x103b3
jmp 0x103b3
jmp 0x10442
jmp 0x10442
jmp 0x10442
jmp 0x103b8
jmp 0x103b8
jmp 0x102c2
jmp 0x102d7
movq %rax, %rbx
movq 0x178(%rsp), %rdi
cmpq %r14, %rdi
je 0x103fa
movq 0x188(%rsp), %rsi
jmp 0x103f2
jmp 0x103b3
jmp 0x103c2
jmp 0x103c2
jmp 0x10442
jmp 0x102fd
jmp 0x10312
jmp 0x10327
jmp 0x1033c
jmp 0x10351
jmp 0x10449
jmp 0x10449
jmp 0x10449
jmp 0x103c9
jmp 0x103c9
jmp 0x102c2
jmp 0x102d7
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x103de
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x103de
jmp 0x102fd
jmp 0x10312
jmp 0x10327
jmp 0x103b8
jmp 0x1033c
jmp 0x10351
jmp 0x10366
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x1045e
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x1045e
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x1045e
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x1041b
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
jmp 0x1041b
movq %rax, %rbx
jmp 0x10494
jmp 0x10375
movq %rax, %rbx
jmp 0x10385
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x10494
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21f0
jmp 0x10494
movq %rax, %rbx
jmp 0x103fa
movq %rax, %rbx
jmp 0x10487
jmp 0x103ce
movq %rax, %rbx
jmp 0x103de
jmp 0x1040b
movq %rax, %rbx
jmp 0x1041b
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x103fa
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x30(%rsp), %rdi
callq 0xe542
jmp 0x1047a
jmp 0x104af
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x10487
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x21f0
jmp 0x10487
movq %rax, %rbx
jmp 0x1047a
jmp 0x1044e
movq %rax, %rbx
jmp 0x1045e
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
callq 0xbf62
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x1047a
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x88(%rsp), %rdi
callq 0xd16c
leaq 0xf0(%rsp), %rdi
callq 0x1cd2c
leaq 0x140(%rsp), %rdi
callq 0x1cc90
movq %rbx, %rdi
callq 0x2300
jmp 0x104af
jmp 0x104af
jmp 0x104af
movq %rax, %rdi
callq 0xc036