// File: /workspace/github_cpp_makefile_star2_O3/dsharlet[P]array/test/array_lifetime.cpp
// Function: void nda::test_move_lifetime<std::allocator<nda::lifetime_counter>>(std::allocator<nda::lifetime_counter> const&, bool)
void test_move_lifetime(const Alloc& alloc, bool alloc_movable = true) {
  {
    lifetime_array<Alloc> source(lifetime_shape, alloc);
    lifetime_counter::reset();
    lifetime_array<Alloc> move(std::move(source));
  }
  // This should have moved the whole array, if the allocator is movable.
  if (alloc_movable) {
    ASSERT_EQ(lifetime_counter::constructs(), 0);
    ASSERT_EQ(lifetime_counter::moves(), 0);
    ASSERT_EQ(lifetime_counter::destructs, lifetime_shape.size());
  } else {
    ASSERT_EQ(lifetime_counter::constructs(), lifetime_shape.size());
    ASSERT_EQ(lifetime_counter::moves(), lifetime_shape.size());
    ASSERT_EQ(lifetime_counter::destructs, lifetime_shape.size() * 2);
  }
 
  {
    lifetime_array<Alloc> source(lifetime_shape);
    lifetime_counter::reset();
    lifetime_array<Alloc> dest(lifetime_subshape);
    move(source, dest);
  }
  ASSERT_EQ(lifetime_counter::constructs(), lifetime_subshape.size());
  ASSERT_EQ(lifetime_counter::move_assigns, lifetime_subshape.size());
  ASSERT_EQ(lifetime_counter::destructs, lifetime_shape.size() + lifetime_subshape.size());
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
movl %esi, %ebx
xorps %xmm0, %xmm0
leaq 0x90(%rsp), %r14
movups %xmm0, 0x8(%r14)
xorl %r12d, %r12d
movq %r12, 0x18(%r14)
movups 0xbe534(%rip), %xmm0    # 0xe71e8
movups %xmm0, 0x20(%r14)
movups 0xbe538(%rip), %xmm0    # 0xe71f8
movups %xmm0, 0x30(%r14)
movups 0xbe53c(%rip), %xmm0    # 0xe7208
movups %xmm0, 0x40(%r14)
movq %r14, %rdi
callq 0x3f64c
movq %r14, %rdi
callq 0x3f742
leaq 0xbe5d8(%rip), %r15     # 0xe72c0
movq %r12, (%r15)
leaq 0xbe5d6(%rip), %rax     # 0xe72c8
movq %r12, (%rax)
leaq 0xbe5d4(%rip), %rax     # 0xe72d0
movq %r12, (%rax)
leaq 0xbe5d2(%rip), %rax     # 0xe72d8
movq %r12, (%rax)
leaq 0xbe5d0(%rip), %rax     # 0xe72e0
movq %r12, (%rax)
leaq 0xbe5ce(%rip), %rbp     # 0xe72e8
movq %r12, (%rbp)
movq %rsp, %rdi
xorps %xmm1, %xmm1
movups %xmm1, 0x20(%rdi)
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq %rax, 0x30(%rdi)
movups %xmm1, 0x38(%rdi)
movq %rax, 0x48(%rdi)
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rdi)
movq %r12, 0x8(%r14)
movups 0x10(%r14), %xmm0
movups %xmm0, 0x10(%rdi)
movups %xmm1, 0x10(%r14)
movq %rax, 0x60(%rsp)
movaps %xmm1, 0x50(%rsp)
movups %xmm1, 0x68(%rsp)
movq %rax, 0x78(%rsp)
movq 0x48(%r14), %rcx
movq %rcx, 0x48(%rdi)
movups 0x38(%r14), %xmm0
movups %xmm0, 0x38(%rdi)
movq 0x30(%r14), %rcx
movq %rcx, 0x30(%rdi)
movups 0x20(%r14), %xmm0
movups %xmm0, 0x20(%rdi)
movq %rax, 0x48(%r14)
movups %xmm1, 0x38(%r14)
movq 0x60(%rsp), %rax
movq %rax, 0x30(%r14)
movaps 0x50(%rsp), %xmm0
movups %xmm0, 0x20(%r14)
callq 0x3f83e
leaq 0x90(%rsp), %rdi
callq 0x3f83e
testb %bl, %bl
je 0x2969b
movq (%r15), %r13
leaq 0xbe4fa(%rip), %rax     # 0xe72c8
movq (%rax), %rbx
leaq 0xbe4f8(%rip), %rax     # 0xe72d0
movq (%rax), %r12
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7f20e(%rip), %rsi     # 0xa7ff9
leaq 0x7f22a(%rip), %rdx     # 0xa801c
movq %rsp, %rdi
callq 0xd14c
addq %r13, %rbx
xorl %esi, %esi
addq %r12, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x7a867(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x84b49(%rip), %rsi     # 0xad97a
movq %rax, %rdi
callq 0x3f5a4
leaq 0x7e416(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28e77
movq (%r15), %rsi
leaq 0xbe46a(%rip), %rax     # 0xe72c8
addq (%rax), %rsi
leaq 0xbe468(%rip), %rax     # 0xe72d0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x7a806(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x7c092(%rip), %rsi     # 0xa4f1f
movq %rax, %rdi
callq 0x18fba
leaq 0x7e3ba(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28ebe
movq %rbx, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
leaq 0x913d4(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq %r15, %r13
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x28ef3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xbe3d6(%rip), %rax     # 0xe72d0
movq (%rax), %rbx
leaq 0xbe3dc(%rip), %rax     # 0xe72e0
movq (%rax), %r15
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x82e01(%rip), %rsi     # 0xabd15
leaq 0x82e18(%rip), %rdx     # 0xabd33
callq 0xd14c
xorl %esi, %esi
addq %rbx, %r15
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x7a744(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x82de0(%rip), %rsi     # 0xabd34
movq %rax, %rdi
callq 0x421f8
leaq 0x7e2f3(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28f97
leaq 0xbe352(%rip), %rax     # 0xe72d0
movq (%rax), %rsi
leaq 0xbe358(%rip), %rax     # 0xe72e0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x7a6e6(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x7bf72(%rip), %rsi     # 0xa4f1f
movq %rax, %rdi
callq 0x18fba
leaq 0x7e29a(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28fde
movq %rbx, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
leaq 0x912b4(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x29010
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq (%rbp), %rbx
movq 0xbe1ed(%rip), %r15     # 0xe7208
movq 0xbe1ce(%rip), %r12     # 0xe71f0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x7f051(%rip), %rsi     # 0xa8080
leaq 0x7f07e(%rip), %rdx     # 0xa80b4
callq 0xd14c
imulq %r15, %r12
xorl %eax, %eax
testq %r12, %r12
cmovgq %r12, %rax
xorl %esi, %esi
cmpq %rax, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
movq %r13, %r15
leaq 0x7a619(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x7f036(%rip), %rsi     # 0xa80b5
movq %rax, %rdi
callq 0x3f614
leaq 0x7e1c8(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x290b2
movq %rbx, %rdi
addq $0x10, %rdi
movq (%rbp), %rsi
callq 0x2110
leaq 0x7a5cb(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x82cdb(%rip), %rsi     # 0xabda3
movq %rax, %rdi
callq 0x19222
leaq 0x7e17f(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x2910f
movq 0xbe116(%rip), %rax     # 0xe7208
imulq 0xbe0f6(%rip), %rax     # 0xe71f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x91183(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x29141
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
xorps %xmm0, %xmm0
leaq 0x90(%rsp), %rbx
movups %xmm0, 0x8(%rbx)
xorl %r14d, %r14d
movq %r14, 0x18(%rbx)
movups 0xbe08a(%rip), %xmm0    # 0xe71e8
movups %xmm0, 0x20(%rbx)
movups 0xbe08f(%rip), %xmm0    # 0xe71f8
movups %xmm0, 0x30(%rbx)
movups 0xbe094(%rip), %xmm0    # 0xe7208
movups %xmm0, 0x40(%rbx)
movq %rbx, %rdi
callq 0x3f64c
movq %rbx, %rdi
callq 0x3f742
movq %r14, (%r15)
leaq 0xbe136(%rip), %rax     # 0xe72c8
movq %r14, (%rax)
leaq 0xbe134(%rip), %rax     # 0xe72d0
movq %r14, (%rax)
leaq 0xbe132(%rip), %rax     # 0xe72d8
movq %r14, (%rax)
leaq 0xbe130(%rip), %rax     # 0xe72e0
movq %r14, (%rax)
movq %r14, (%rbp)
movq %rsp, %rdi
movq %r14, 0x18(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
movups 0xbe04c(%rip), %xmm0    # 0xe7218
movups %xmm0, 0x20(%rdi)
movups 0xbe051(%rip), %xmm0    # 0xe7228
movups %xmm0, 0x30(%rdi)
movups 0xbe056(%rip), %xmm0    # 0xe7238
movups %xmm0, 0x40(%rdi)
callq 0x3f64c
movq %rsp, %rdi
callq 0x3f742
leaq 0xb0(%rsp), %rax
leaq 0x20(%rsp), %rcx
movq -0x8(%rax), %rdx
leaq 0x50(%rsp), %rdi
movq %rdx, (%rdi)
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movups %xmm0, 0x8(%rdi)
movups %xmm1, 0x18(%rdi)
movups %xmm2, 0x28(%rdi)
movq -0x8(%rcx), %rax
leaq 0x220(%rsp), %rsi
movq %rax, (%rsi)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups %xmm0, 0x8(%rsi)
movups %xmm1, 0x18(%rsi)
movups %xmm2, 0x28(%rsi)
callq 0x43d7f
movq %rsp, %rdi
callq 0x3f83e
leaq 0x90(%rsp), %rdi
callq 0x3f83e
movq %r15, %r14
movq (%r15), %r12
leaq 0xbe058(%rip), %rax     # 0xe72c8
movq (%rax), %rbx
leaq 0xbe056(%rip), %rax     # 0xe72d0
movq (%rax), %r13
movq 0xbdfb4(%rip), %r15     # 0xe7238
movq 0xbdf95(%rip), %rbp     # 0xe7220
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x82b57(%rip), %rsi     # 0xabdf2
leaq 0x82b8a(%rip), %rdx     # 0xabe2c
movq %rsp, %rdi
callq 0xd14c
imulq %r15, %rbp
xorl %eax, %eax
testq %rbp, %rbp
cmovgq %rbp, %rax
addq %r12, %rbx
addq %r13, %rbx
xorl %esi, %esi
cmpq %rax, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0xbe00b(%rip), %r13     # 0xe72e8
leaq 0x7a3a0(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x84682(%rip), %rsi     # 0xad97a
movq %rax, %rdi
callq 0x3f5a4
leaq 0x7df4f(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x2933e
movq (%r14), %rsi
leaq 0xbdfa3(%rip), %rax     # 0xe72c8
addq (%rax), %rsi
leaq 0xbdfa1(%rip), %rax     # 0xe72d0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x7a33f(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x82b6a(%rip), %rsi     # 0xabebe
movq %rax, %rdi
callq 0x42c5e
leaq 0x7def3(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x2939b
movq 0xbdeba(%rip), %rax     # 0xe7238
imulq 0xbde9a(%rip), %rax     # 0xe7220
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x90ef7(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x293d2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xbdf07(%rip), %rax     # 0xe72e0
movq (%rax), %rbx
movq 0xbde55(%rip), %r12     # 0xe7238
movq 0xbde36(%rip), %r15     # 0xe7220
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x82a31(%rip), %rsi     # 0xabe2d
leaq 0x82a64(%rip), %rdx     # 0xabe67
callq 0xd14c
imulq %r12, %r15
xorl %eax, %eax
testq %r15, %r15
cmovgq %r15, %rax
xorl %esi, %esi
cmpq %rax, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x7a24f(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x82a1f(%rip), %rsi     # 0xabe68
movq %rax, %rdi
callq 0x3f5a4
leaq 0x7ddfe(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29482
movq %rbx, %rdi
addq $0x10, %rdi
leaq 0xbde66(%rip), %rax     # 0xe72e0
movq (%rax), %rsi
callq 0x2110
leaq 0x7a1fb(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x82a26(%rip), %rsi     # 0xabebe
movq %rax, %rdi
callq 0x42c5e
leaq 0x7ddaf(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x294df
movq 0xbdd76(%rip), %rax     # 0xe7238
imulq 0xbdd56(%rip), %rax     # 0xe7220
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x90db3(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x29516
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq (%r13), %rbx
movq 0xbdce7(%rip), %r13     # 0xe7208
movq 0xbdcc8(%rip), %r15     # 0xe71f0
movq 0xbdd09(%rip), %rbp     # 0xe7238
movq 0xbdcea(%rip), %r12     # 0xe7220
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x8293f(%rip), %rsi     # 0xabe87
leaq 0x82987(%rip), %rdx     # 0xabed6
callq 0xd14c
imulq %rbp, %r12
xorl %eax, %eax
testq %r12, %r12
cmovleq %rax, %r12
imulq %r13, %r15
testq %r15, %r15
cmovleq %rax, %r15
addq %r12, %r15
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x7a0f5(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0xbdd45(%rip), %r15     # 0xe72e8
leaq 0x7eb0b(%rip), %rsi     # 0xa80b5
movq %rax, %rdi
callq 0x3f614
leaq 0x7dc9d(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x295dc
movq %rbx, %rdi
addq $0x10, %rdi
movq (%r15), %rsi
callq 0x2110
leaq 0x7a0a1(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x828b4(%rip), %rsi     # 0xabea6
movq %rax, %rdi
callq 0x43d48
leaq 0x7dc55(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29652
movq 0xbdbec(%rip), %rax     # 0xe7208
imulq 0xbdbcc(%rip), %rax     # 0xe71f0
xorl %ecx, %ecx
testq %rax, %rax
cmovleq %rcx, %rax
movq 0xbdc04(%rip), %rsi     # 0xe7238
imulq 0xbdbe4(%rip), %rsi     # 0xe7220
testq %rsi, %rsi
cmovleq %rcx, %rsi
addq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x90c40(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x29689
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r15), %r12
leaq 0xbdc23(%rip), %rax     # 0xe72c8
movq (%rax), %rbx
leaq 0xbdc21(%rip), %rax     # 0xe72d0
movq (%rax), %r13
movq 0xbdb4f(%rip), %r14     # 0xe7208
movq 0xbdb30(%rip), %rbp     # 0xe71f0
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x8267e(%rip), %rsi     # 0xabd4e
leaq 0x826ae(%rip), %rdx     # 0xabd85
movq %rsp, %rdi
callq 0xd14c
imulq %r14, %rbp
xorl %eax, %eax
testq %rbp, %rbp
cmovgq %rbp, %rax
addq %r12, %rbx
addq %r13, %rbx
xorl %esi, %esi
cmpq %rax, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0xbdbd6(%rip), %rbp     # 0xe72e8
leaq 0x79f6b(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x8424d(%rip), %rsi     # 0xad97a
movq %rax, %rdi
callq 0x3f5a4
leaq 0x7db1a(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29773
movq (%r15), %rsi
leaq 0xbdb6e(%rip), %rax     # 0xe72c8
addq (%rax), %rsi
leaq 0xbdb6c(%rip), %rax     # 0xe72d0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x79f0a(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x8261a(%rip), %rsi     # 0xabda3
movq %rax, %rdi
callq 0x19222
leaq 0x7dabe(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x297d0
movq 0xbda55(%rip), %rax     # 0xe7208
imulq 0xbda35(%rip), %rax     # 0xe71f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x90ac2(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x29807
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xbdac2(%rip), %rax     # 0xe72d0
movq (%rax), %r12
leaq 0xbdac8(%rip), %rax     # 0xe72e0
movq (%rax), %rbx
movq 0xbd9e6(%rip), %r14     # 0xe7208
movq 0xbd9c7(%rip), %r13     # 0xe71f0
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x8254b(%rip), %rsi     # 0xabd86
leaq 0x82576(%rip), %rdx     # 0xabdb8
callq 0xd14c
imulq %r14, %r13
xorl %eax, %eax
testq %r13, %r13
cmovgq %r13, %rax
addq %r12, %rbx
xorl %esi, %esi
cmpq %rax, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x79e0d(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x824a9(%rip), %rsi     # 0xabd34
movq %rax, %rdi
callq 0x421f8
leaq 0x7d9bc(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x298ce
leaq 0xbda1b(%rip), %rax     # 0xe72d0
movq (%rax), %rsi
leaq 0xbda21(%rip), %rax     # 0xe72e0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x79daf(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x824bf(%rip), %rsi     # 0xabda3
movq %rax, %rdi
callq 0x19222
leaq 0x7d963(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x2992b
movq 0xbd8fa(%rip), %rax     # 0xe7208
imulq 0xbd8da(%rip), %rax     # 0xe71f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x90967(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x29962
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq (%rbp), %rbx
movq 0xbd89b(%rip), %r14     # 0xe7208
movq 0xbd87c(%rip), %r12     # 0xe71f0
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x82433(%rip), %rsi     # 0xabdb9
leaq 0x82464(%rip), %rdx     # 0xabdf1
callq 0xd14c
imulq %r14, %r12
xorl %eax, %eax
testq %r12, %r12
cmovgq %r12, %rax
addq %rax, %rax
xorl %esi, %esi
cmpq %rax, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x79cc2(%rip), %rsi     # 0xa3684
leaq 0x90(%rsp), %rdi
callq 0x18fba
leaq 0x7e6df(%rip), %rsi     # 0xa80b5
movq %rax, %rdi
callq 0x3f614
leaq 0x7d871(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29a09
movq %rbx, %rdi
addq $0x10, %rdi
movq (%rbp), %rsi
callq 0x2110
leaq 0x79c74(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x823b9(%rip), %rsi     # 0xabdd8
movq %rax, %rdi
callq 0x421f8
leaq 0x7d828(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29a69
movq 0xbd7bf(%rip), %rax     # 0xe7208
imulq 0xbd79f(%rip), %rax     # 0xe71f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
addq %rsi, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x90829(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
jne 0x29134
jmp 0x29141
jmp 0x29ac7
jmp 0x29ac7
jmp 0x29ac7
jmp 0x29ac7
jmp 0x29ac7
jmp 0x29ac7
jmp 0x29b97
jmp 0x29ba9
jmp 0x29b24
jmp 0x29b39
jmp 0x29b4b
jmp 0x29b60
jmp 0x29ac7
jmp 0x29ac7
movq %rax, %rbx
jmp 0x29c13
jmp 0x29c1b
jmp 0x29c1b
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3f83e
jmp 0x29b7e
jmp 0x29c1b
jmp 0x29b76
jmp 0x29afb
jmp 0x29b76
jmp 0x29afb
jmp 0x29b76
movq %rax, %rbx
jmp 0x29bb9
jmp 0x29c1b
jmp 0x29c1b
jmp 0x29bd6
jmp 0x29be8
jmp 0x29bc4
jmp 0x29b24
jmp 0x29b39
jmp 0x29b4b
jmp 0x29b60
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bf8
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bb9
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bf8
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bb9
jmp 0x29b76
jmp 0x29b76
movq %rax, %rbx
jmp 0x29bf8
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x3f83e
jmp 0x29c13
jmp 0x29c1b
jmp 0x29bc4
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bf8
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
cmpq %r14, %rdi
jne 0x29c06
jmp 0x29c13
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bf8
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
jmp 0x29bf8
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x29c13
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq %rbx, %rdi
callq 0x2300
movq %rax, %rdi
callq 0xc0a9