// File: /workspace/github_cpp_makefile_star2_O1/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 0xbcf35(%rip), %xmm0    # 0xe51e8
movups %xmm0, 0x20(%r14)
movups 0xbcf39(%rip), %xmm0    # 0xe51f8
movups %xmm0, 0x30(%r14)
movups 0xbcf3d(%rip), %xmm0    # 0xe5208
movups %xmm0, 0x40(%r14)
movq %r14, %rdi
callq 0x3eca2
movq %r14, %rdi
callq 0x3ed76
leaq 0xbcfd9(%rip), %r15     # 0xe52c0
movq %r12, (%r15)
leaq 0xbcfd7(%rip), %rax     # 0xe52c8
movq %r12, (%rax)
leaq 0xbcfd5(%rip), %rax     # 0xe52d0
movq %r12, (%rax)
leaq 0xbcfd3(%rip), %rax     # 0xe52d8
movq %r12, (%rax)
leaq 0xbcfd1(%rip), %rax     # 0xe52e0
movq %r12, (%rax)
leaq 0xbcfcf(%rip), %rbp     # 0xe52e8
movq %r12, (%rbp)
movq %rsp, %rdi
xorps %xmm1, %xmm1
movups %xmm1, 0x18(%rdi)
movq %r12, 0x28(%rdi)
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq %rax, 0x30(%rdi)
movups %xmm1, 0x38(%rdi)
movq %rax, 0x48(%rdi)
movups 0x8(%r14), %xmm0
movups %xmm0, 0x8(%rdi)
movups %xmm1, 0x8(%r14)
movq 0x18(%rdi), %rcx
movq 0x18(%r14), %rdx
movq %rdx, 0x18(%rdi)
movq %rcx, 0x18(%r14)
movq %rax, 0x60(%rsp)
movq 0x20(%rdi), %rcx
movq %rcx, 0x50(%rsp)
movq 0x28(%rdi), %rcx
movq %rcx, 0x58(%rsp)
movups %xmm1, 0x68(%rsp)
movq %rax, 0x78(%rsp)
movups 0x38(%r14), %xmm0
movups %xmm0, 0x38(%rdi)
movq 0x48(%r14), %rcx
movq %rcx, 0x48(%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)
movq 0x50(%rsp), %rax
movq %rax, 0x20(%r14)
movq 0x58(%rsp), %rax
movq %rax, 0x28(%r14)
callq 0x3ee72
leaq 0x90(%rsp), %rdi
callq 0x3ee72
testb %bl, %bl
je 0x28cb7
movq (%r15), %r13
leaq 0xbcede(%rip), %rax     # 0xe52c8
movq (%rax), %rbx
leaq 0xbcedc(%rip), %rax     # 0xe52d0
movq (%rax), %r12
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7dde2(%rip), %rsi     # 0xa61e9
leaq 0x7ddfe(%rip), %rdx     # 0xa620c
movq %rsp, %rdi
callq 0xd0b8
addq %r13, %rbx
xorl %esi, %esi
addq %r12, %rbx
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf0a
leaq 0x7921b(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x8371d(%rip), %rsi     # 0xabb6a
movq %rax, %rdi
callq 0x3ebfa
leaq 0x7cece(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28493
movq (%r15), %rsi
leaq 0xbce4e(%rip), %rax     # 0xe52c8
addq (%rax), %rsi
leaq 0xbce4c(%rip), %rax     # 0xe52d0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x791ba(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x7aa2e(%rip), %rsi     # 0xa2ed7
movq %rax, %rdi
callq 0x18a16
leaq 0x7ce72(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x284da
movq %rbx, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
leaq 0x8fe88(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq %r15, %r13
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2850f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xbcdba(%rip), %rax     # 0xe52d0
movq (%rax), %rbx
leaq 0xbcdc0(%rip), %rax     # 0xe52e0
movq (%rax), %r15
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x819d5(%rip), %rsi     # 0xa9f05
leaq 0x819ec(%rip), %rdx     # 0xa9f23
callq 0xd0b8
xorl %esi, %esi
addq %rbx, %r15
sete %sil
leaq 0x90(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf0a
leaq 0x790f8(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x819b4(%rip), %rsi     # 0xa9f24
movq %rax, %rdi
callq 0x41786
leaq 0x7cdab(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x285b3
leaq 0xbcd36(%rip), %rax     # 0xe52d0
movq (%rax), %rsi
leaq 0xbcd3c(%rip), %rax     # 0xe52e0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x7909a(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x7a90e(%rip), %rsi     # 0xa2ed7
movq %rax, %rdi
callq 0x18a16
leaq 0x7cd52(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x285fa
movq %rbx, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
leaq 0x8fd68(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2862c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq (%rbp), %rbx
movq 0xbcbd1(%rip), %r15     # 0xe5208
movq 0xbcbb2(%rip), %r12     # 0xe51f0
movq %rsp, %rdi
movq %r14, (%rdi)
leaq 0x7dc25(%rip), %rsi     # 0xa6270
leaq 0x7dc52(%rip), %rdx     # 0xa62a4
callq 0xd0b8
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 0xbf0a
movq %r13, %r15
leaq 0x78fcd(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x7dc0a(%rip), %rsi     # 0xa62a5
movq %rax, %rdi
callq 0x3ec6a
leaq 0x7cc80(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x286ce
movq %rbx, %rdi
addq $0x10, %rdi
movq (%rbp), %rsi
callq 0x2110
leaq 0x78f7f(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x818af(%rip), %rsi     # 0xa9f93
movq %rax, %rdi
callq 0x18c7e
leaq 0x7cc37(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x2872b
movq 0xbcafa(%rip), %rax     # 0xe5208
imulq 0xbcada(%rip), %rax     # 0xe51f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8fc37(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2875d
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 0xbca6e(%rip), %xmm0    # 0xe51e8
movups %xmm0, 0x20(%rbx)
movups 0xbca73(%rip), %xmm0    # 0xe51f8
movups %xmm0, 0x30(%rbx)
movups 0xbca78(%rip), %xmm0    # 0xe5208
movups %xmm0, 0x40(%rbx)
movq %rbx, %rdi
callq 0x3eca2
movq %rbx, %rdi
callq 0x3ed76
movq %r14, (%r15)
leaq 0xbcb1a(%rip), %rax     # 0xe52c8
movq %r14, (%rax)
leaq 0xbcb18(%rip), %rax     # 0xe52d0
movq %r14, (%rax)
leaq 0xbcb16(%rip), %rax     # 0xe52d8
movq %r14, (%rax)
leaq 0xbcb14(%rip), %rax     # 0xe52e0
movq %r14, (%rax)
movq %r14, (%rbp)
movq %rsp, %rdi
movq %r14, 0x18(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
movups 0xbca30(%rip), %xmm0    # 0xe5218
movups %xmm0, 0x20(%rdi)
movups 0xbca35(%rip), %xmm0    # 0xe5228
movups %xmm0, 0x30(%rdi)
movups 0xbca3a(%rip), %xmm0    # 0xe5238
movups %xmm0, 0x40(%rdi)
callq 0x3eca2
movq %rsp, %rdi
callq 0x3ed76
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 0x4330d
movq %rsp, %rdi
callq 0x3ee72
leaq 0x90(%rsp), %rdi
callq 0x3ee72
movq %r15, %r14
movq (%r15), %r12
leaq 0xbca3c(%rip), %rax     # 0xe52c8
movq (%rax), %rbx
leaq 0xbca3a(%rip), %rax     # 0xe52d0
movq (%rax), %r13
movq 0xbc998(%rip), %r15     # 0xe5238
movq 0xbc979(%rip), %rbp     # 0xe5220
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x8172b(%rip), %rsi     # 0xa9fe2
leaq 0x8175e(%rip), %rdx     # 0xaa01c
movq %rsp, %rdi
callq 0xd0b8
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 0xbf0a
leaq 0xbc9ef(%rip), %r13     # 0xe52e8
leaq 0x78d54(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x83256(%rip), %rsi     # 0xabb6a
movq %rax, %rdi
callq 0x3ebfa
leaq 0x7ca07(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x2895a
movq (%r14), %rsi
leaq 0xbc987(%rip), %rax     # 0xe52c8
addq (%rax), %rsi
leaq 0xbc985(%rip), %rax     # 0xe52d0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x78cf3(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x8173e(%rip), %rsi     # 0xaa0ae
movq %rax, %rdi
callq 0x421ec
leaq 0x7c9ab(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x289b7
movq 0xbc89e(%rip), %rax     # 0xe5238
imulq 0xbc87e(%rip), %rax     # 0xe5220
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8f9ab(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x289ee
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xbc8eb(%rip), %rax     # 0xe52e0
movq (%rax), %rbx
movq 0xbc839(%rip), %r12     # 0xe5238
movq 0xbc81a(%rip), %r15     # 0xe5220
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x81605(%rip), %rsi     # 0xaa01d
leaq 0x81638(%rip), %rdx     # 0xaa057
callq 0xd0b8
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 0xbf0a
leaq 0x78c03(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x815f3(%rip), %rsi     # 0xaa058
movq %rax, %rdi
callq 0x3ebfa
leaq 0x7c8b6(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28a9e
movq %rbx, %rdi
addq $0x10, %rdi
leaq 0xbc84a(%rip), %rax     # 0xe52e0
movq (%rax), %rsi
callq 0x2110
leaq 0x78baf(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x815fa(%rip), %rsi     # 0xaa0ae
movq %rax, %rdi
callq 0x421ec
leaq 0x7c867(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28afb
movq 0xbc75a(%rip), %rax     # 0xe5238
imulq 0xbc73a(%rip), %rax     # 0xe5220
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8f867(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x28b32
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq (%r13), %rbx
movq 0xbc6cb(%rip), %r13     # 0xe5208
movq 0xbc6ac(%rip), %r15     # 0xe51f0
movq 0xbc6ed(%rip), %rbp     # 0xe5238
movq 0xbc6ce(%rip), %r12     # 0xe5220
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x81513(%rip), %rsi     # 0xaa077
leaq 0x8155b(%rip), %rdx     # 0xaa0c6
callq 0xd0b8
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 0xbf0a
leaq 0x78aa9(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0xbc729(%rip), %r15     # 0xe52e8
leaq 0x7d6df(%rip), %rsi     # 0xa62a5
movq %rax, %rdi
callq 0x3ec6a
leaq 0x7c755(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28bf8
movq %rbx, %rdi
addq $0x10, %rdi
movq (%r15), %rsi
callq 0x2110
leaq 0x78a55(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x81488(%rip), %rsi     # 0xaa096
movq %rax, %rdi
callq 0x432d6
leaq 0x7c70d(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28c6e
movq 0xbc5d0(%rip), %rax     # 0xe5208
imulq 0xbc5b0(%rip), %rax     # 0xe51f0
xorl %ecx, %ecx
testq %rax, %rax
cmovleq %rcx, %rax
movq 0xbc5e8(%rip), %rsi     # 0xe5238
imulq 0xbc5c8(%rip), %rsi     # 0xe5220
testq %rsi, %rsi
cmovleq %rcx, %rsi
addq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8f6f4(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x28ca5
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 0xbc607(%rip), %rax     # 0xe52c8
movq (%rax), %rbx
leaq 0xbc605(%rip), %rax     # 0xe52d0
movq (%rax), %r13
movq 0xbc533(%rip), %r14     # 0xe5208
movq 0xbc514(%rip), %rbp     # 0xe51f0
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x81252(%rip), %rsi     # 0xa9f3e
leaq 0x81282(%rip), %rdx     # 0xa9f75
movq %rsp, %rdi
callq 0xd0b8
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 0xbf0a
leaq 0xbc5ba(%rip), %rbp     # 0xe52e8
leaq 0x7891f(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x82e21(%rip), %rsi     # 0xabb6a
movq %rax, %rdi
callq 0x3ebfa
leaq 0x7c5d2(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28d8f
movq (%r15), %rsi
leaq 0xbc552(%rip), %rax     # 0xe52c8
addq (%rax), %rsi
leaq 0xbc550(%rip), %rax     # 0xe52d0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x788be(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x811ee(%rip), %rsi     # 0xa9f93
movq %rax, %rdi
callq 0x18c7e
leaq 0x7c576(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28dec
movq 0xbc439(%rip), %rax     # 0xe5208
imulq 0xbc419(%rip), %rax     # 0xe51f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8f576(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x28e23
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xbc4a6(%rip), %rax     # 0xe52d0
movq (%rax), %r12
leaq 0xbc4ac(%rip), %rax     # 0xe52e0
movq (%rax), %rbx
movq 0xbc3ca(%rip), %r14     # 0xe5208
movq 0xbc3ab(%rip), %r13     # 0xe51f0
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x8111f(%rip), %rsi     # 0xa9f76
leaq 0x8114a(%rip), %rdx     # 0xa9fa8
callq 0xd0b8
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 0xbf0a
leaq 0x787c1(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x8107d(%rip), %rsi     # 0xa9f24
movq %rax, %rdi
callq 0x41786
leaq 0x7c474(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28eea
leaq 0xbc3ff(%rip), %rax     # 0xe52d0
movq (%rax), %rsi
leaq 0xbc405(%rip), %rax     # 0xe52e0
addq (%rax), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x78763(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x81093(%rip), %rsi     # 0xa9f93
movq %rax, %rdi
callq 0x18c7e
leaq 0x7c41b(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x28f47
movq 0xbc2de(%rip), %rax     # 0xe5208
imulq 0xbc2be(%rip), %rax     # 0xe51f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8f41b(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x28f7e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq (%rbp), %rbx
movq 0xbc27f(%rip), %r14     # 0xe5208
movq 0xbc260(%rip), %r12     # 0xe51f0
movq %rsp, %rdi
leaq 0x10(%rsp), %rax
movq %rax, (%rdi)
leaq 0x81007(%rip), %rsi     # 0xa9fa9
leaq 0x81038(%rip), %rdx     # 0xa9fe1
callq 0xd0b8
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 0xbf0a
leaq 0x78676(%rip), %rsi     # 0xa1654
leaq 0x90(%rsp), %rdi
callq 0x18a16
leaq 0x7d2b3(%rip), %rsi     # 0xa62a5
movq %rax, %rdi
callq 0x3ec6a
leaq 0x7c329(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29025
movq %rbx, %rdi
addq $0x10, %rdi
movq (%rbp), %rsi
callq 0x2110
leaq 0x78628(%rip), %rsi     # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x80f8d(%rip), %rsi     # 0xa9fc8
movq %rax, %rdi
callq 0x41786
leaq 0x7c2e0(%rip), %rsi     # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x29085
movq 0xbc1a3(%rip), %rax     # 0xe5208
imulq 0xbc183(%rip), %rax     # 0xe51f0
xorl %esi, %esi
testq %rax, %rax
cmovgq %rax, %rsi
addq %rsi, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x8f2dd(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
jne 0x28750
jmp 0x2875d
jmp 0x290e3
jmp 0x290e3
jmp 0x290e3
jmp 0x290e3
jmp 0x290e3
jmp 0x290e3
jmp 0x291b3
jmp 0x291c5
jmp 0x29140
jmp 0x29155
jmp 0x29167
jmp 0x2917c
jmp 0x290e3
jmp 0x290e3
movq %rax, %rbx
jmp 0x2922f
jmp 0x29237
jmp 0x29237
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3ee72
jmp 0x2919a
jmp 0x29237
jmp 0x29192
jmp 0x29117
jmp 0x29192
jmp 0x29117
jmp 0x29192
movq %rax, %rbx
jmp 0x291d5
jmp 0x29237
jmp 0x29237
jmp 0x291f2
jmp 0x29204
jmp 0x291e0
jmp 0x29140
jmp 0x29155
jmp 0x29167
jmp 0x2917c
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x29214
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x291d5
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x29214
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x291d5
jmp 0x29192
jmp 0x29192
movq %rax, %rbx
jmp 0x29214
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x3ee72
jmp 0x2922f
jmp 0x29237
jmp 0x291e0
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x29214
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
cmpq %r14, %rdi
jne 0x29222
jmp 0x2922f
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x29214
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
jmp 0x29214
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2922f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq %rbx, %rdi
callq 0x2300
movq %rax, %rdi
callq 0xc036