// File: 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
movq %rsp, %rbp
subq $0x14b0, %rsp           # imm = 0x14B0
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdx
leaq 0x2329a6(%rip), %rsi    # 0x292258
leaq -0x60(%rbp), %rdi
movq %rdi, -0x1150(%rbp)
callq 0x87fc0
callq 0x7f630
movq -0x1150(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x88060
jmp 0x5f8dc
leaq -0xb0(%rbp), %rdi
callq 0x7f870
leaq -0x60(%rbp), %rdi
callq 0x7f870
testb $0x1, -0x9(%rbp)
je 0x5ff4a
callq 0x7f730
testq %rax, %rax
sete %al
movb %al, -0x1159(%rbp)
leaq -0x271(%rbp), %rdi
movq %rdi, -0x1158(%rbp)
callq 0x33b0
movq -0x1158(%rbp), %rdx
leaq 0x181ef5(%rip), %rsi    # 0x1e1822
leaq -0x270(%rbp), %rdi
callq 0x10a90
jmp 0x5f93b
movb -0x1159(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rdx
callq 0x10f80
jmp 0x5f95c
leaq 0x17ce82(%rip), %rsi    # 0x1dc7e5
leaq -0x250(%rbp), %rdi
callq 0x34320
movq %rax, -0x1168(%rbp)
jmp 0x5f978
movq -0x1168(%rbp), %rdi
leaq 0x1878f5(%rip), %rsi    # 0x1e727b
callq 0x7f760
movq %rax, -0x1170(%rbp)
jmp 0x5f994
movq -0x1170(%rbp), %rdi
leaq 0x180e0a(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1178(%rbp)
jmp 0x5f9b0
callq 0x7f730
movq -0x1178(%rbp), %rdi
movq %rax, -0x280(%rbp)
leaq -0x280(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1180(%rbp)
jmp 0x5f9d8
movq -0x1180(%rbp), %rdi
leaq 0x17cdff(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1188(%rbp)
jmp 0x5f9f4
movq -0x1188(%rbp), %rdi
leaq 0x17ea32(%rip), %rsi    # 0x1de434
callq 0x34320
movq %rax, -0x1190(%rbp)
jmp 0x5fa10
movq -0x1190(%rbp), %rdi
leaq 0x180d8e(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1198(%rbp)
jmp 0x5fa2c
movq -0x1198(%rbp), %rdi
movl $0x0, -0x284(%rbp)
leaq -0x284(%rbp), %rsi
callq 0x343a0
movq %rax, -0x11a0(%rbp)
jmp 0x5fa52
movq -0x11a0(%rbp), %rdi
leaq 0x196a1b(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x5fa67
leaq -0x250(%rbp), %rdi
callq 0x10ff0
jmp 0x5fa75
leaq -0x270(%rbp), %rdi
callq 0x3100
leaq -0x271(%rbp), %rdi
callq 0x3290
callq 0x880e0
testq %rax, %rax
sete %al
movb %al, -0x11a9(%rbp)
leaq -0x439(%rbp), %rdi
movq %rdi, -0x11a8(%rbp)
callq 0x33b0
movq -0x11a8(%rbp), %rdx
leaq 0x185b57(%rip), %rsi    # 0x1e5616
leaq -0x438(%rbp), %rdi
callq 0x10a90
jmp 0x5facd
movb -0x11a9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x418(%rbp), %rdi
leaq -0x438(%rbp), %rdx
callq 0x10f80
jmp 0x5faee
leaq 0x17ccf0(%rip), %rsi    # 0x1dc7e5
leaq -0x418(%rbp), %rdi
callq 0x34320
movq %rax, -0x11b8(%rbp)
jmp 0x5fb0a
movq -0x11b8(%rbp), %rdi
leaq 0x185b1d(%rip), %rsi    # 0x1e5635
callq 0x85670
movq %rax, -0x11c0(%rbp)
jmp 0x5fb26
movq -0x11c0(%rbp), %rdi
leaq 0x180c78(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x11c8(%rbp)
jmp 0x5fb42
callq 0x880e0
movq %rax, -0x11d0(%rbp)
jmp 0x5fb50
movq -0x11c8(%rbp), %rdi
movq -0x11d0(%rbp), %rax
movq %rax, -0x448(%rbp)
leaq -0x448(%rbp), %rsi
callq 0x355c0
movq %rax, -0x11d8(%rbp)
jmp 0x5fb7a
movq -0x11d8(%rbp), %rdi
leaq 0x17cc5d(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x11e0(%rbp)
jmp 0x5fb96
movq -0x11e0(%rbp), %rdi
leaq 0x17e890(%rip), %rsi    # 0x1de434
callq 0x34320
movq %rax, -0x11e8(%rbp)
jmp 0x5fbb2
movq -0x11e8(%rbp), %rdi
leaq 0x180bec(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x11f0(%rbp)
jmp 0x5fbce
movq -0x11f0(%rbp), %rdi
movl $0x0, -0x44c(%rbp)
leaq -0x44c(%rbp), %rsi
callq 0x343a0
movq %rax, -0x11f8(%rbp)
jmp 0x5fbf4
movq -0x11f8(%rbp), %rdi
leaq 0x196879(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x5fc09
leaq -0x418(%rbp), %rdi
callq 0x10ff0
jmp 0x5fc17
leaq -0x438(%rbp), %rdi
callq 0x3100
leaq -0x439(%rbp), %rdi
callq 0x3290
leaq 0x232722(%rip), %rax    # 0x292358
movq (%rax), %rax
movq %rax, -0x1210(%rbp)
leaq 0x232611(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, %rcx
movq -0x1210(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x1201(%rbp)
leaq -0x601(%rbp), %rdi
movq %rdi, -0x1200(%rbp)
callq 0x33b0
movq -0x1200(%rbp), %rdx
leaq 0x181c26(%rip), %rsi    # 0x1e18a9
leaq -0x600(%rbp), %rdi
callq 0x10a90
jmp 0x5fc91
movb -0x1201(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x5e0(%rbp), %rdi
leaq -0x600(%rbp), %rdx
callq 0x10f80
jmp 0x5fcb2
leaq 0x17cb2c(%rip), %rsi    # 0x1dc7e5
leaq -0x5e0(%rbp), %rdi
callq 0x34320
movq %rax, -0x1218(%rbp)
jmp 0x5fcce
movq -0x1218(%rbp), %rdi
leaq 0x181c02(%rip), %rsi    # 0x1e18de
callq 0x7f8f0
movq %rax, -0x1220(%rbp)
jmp 0x5fcea
movq -0x1220(%rbp), %rdi
leaq 0x180ab4(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1228(%rbp)
jmp 0x5fd06
movq -0x1228(%rbp), %rdi
leaq 0x232644(%rip), %rsi    # 0x292358
callq 0x355c0
movq %rax, -0x1230(%rbp)
jmp 0x5fd22
movq -0x1230(%rbp), %rdi
leaq 0x17cab5(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1238(%rbp)
jmp 0x5fd3e
movq -0x1238(%rbp), %rdi
leaq 0x185958(%rip), %rsi    # 0x1e56a4
callq 0x34ba0
movq %rax, -0x1240(%rbp)
jmp 0x5fd5a
movq -0x1240(%rbp), %rdi
leaq 0x180a44(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1248(%rbp)
jmp 0x5fd76
leaq 0x2324db(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x1250(%rbp)
jmp 0x5fd8b
movq -0x1248(%rbp), %rdi
movq -0x1250(%rbp), %rax
movq %rax, -0x610(%rbp)
leaq -0x610(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1258(%rbp)
jmp 0x5fdb5
movq -0x1258(%rbp), %rdi
leaq 0x1966b8(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x5fdca
leaq -0x5e0(%rbp), %rdi
callq 0x10ff0
jmp 0x5fdd8
leaq -0x600(%rbp), %rdi
callq 0x3100
leaq -0x601(%rbp), %rdi
callq 0x3290
jmp 0x605eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x7f870
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x5fe6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x5fe5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x10ff0
jmp 0x5fe5d
jmp 0x5fe5f
leaq -0x270(%rbp), %rdi
callq 0x3100
leaq -0x271(%rbp), %rdi
callq 0x3290
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x5fed2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x5fec6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x10ff0
jmp 0x5fec4
jmp 0x5fec6
leaq -0x438(%rbp), %rdi
callq 0x3100
leaq -0x439(%rbp), %rdi
callq 0x3290
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x5ff39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x5ff2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0x10ff0
jmp 0x5ff2b
jmp 0x5ff2d
leaq -0x600(%rbp), %rdi
callq 0x3100
leaq -0x601(%rbp), %rdi
callq 0x3290
jmp 0x60d44
callq 0x7f730
movq %rax, -0x1270(%rbp)
leaq 0x2322fb(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, %rcx
movq -0x1270(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x1261(%rbp)
leaq -0x7c1(%rbp), %rdi
movq %rdi, -0x1260(%rbp)
callq 0x33b0
movq -0x1260(%rbp), %rdx
leaq 0x1856b6(%rip), %rsi    # 0x1e564f
leaq -0x7c0(%rbp), %rdi
callq 0x10a90
jmp 0x5ffa7
movb -0x1261(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x7a0(%rbp), %rdi
leaq -0x7c0(%rbp), %rdx
callq 0x10f80
jmp 0x5ffc8
leaq 0x17c816(%rip), %rsi    # 0x1dc7e5
leaq -0x7a0(%rbp), %rdi
callq 0x34320
movq %rax, -0x1278(%rbp)
jmp 0x5ffe4
movq -0x1278(%rbp), %rdi
leaq 0x187289(%rip), %rsi    # 0x1e727b
callq 0x7f760
movq %rax, -0x1280(%rbp)
jmp 0x60000
movq -0x1280(%rbp), %rdi
leaq 0x18079e(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1288(%rbp)
jmp 0x6001c
callq 0x7f730
movq -0x1288(%rbp), %rdi
movq %rax, -0x7d0(%rbp)
leaq -0x7d0(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1290(%rbp)
jmp 0x60044
movq -0x1290(%rbp), %rdi
leaq 0x17c793(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1298(%rbp)
jmp 0x60060
movq -0x1298(%rbp), %rdi
leaq 0x185636(%rip), %rsi    # 0x1e56a4
callq 0x34ba0
movq %rax, -0x12a0(%rbp)
jmp 0x6007c
movq -0x12a0(%rbp), %rdi
leaq 0x180722(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x12a8(%rbp)
jmp 0x60098
leaq 0x2321b9(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x12b0(%rbp)
jmp 0x600ad
movq -0x12a8(%rbp), %rdi
movq -0x12b0(%rbp), %rax
movq %rax, -0x7d8(%rbp)
leaq -0x7d8(%rbp), %rsi
callq 0x355c0
movq %rax, -0x12b8(%rbp)
jmp 0x600d7
movq -0x12b8(%rbp), %rdi
leaq 0x196396(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x600ec
leaq -0x7a0(%rbp), %rdi
callq 0x10ff0
jmp 0x600fa
leaq -0x7c0(%rbp), %rdi
callq 0x3100
leaq -0x7c1(%rbp), %rdi
callq 0x3290
callq 0x880e0
movq %rax, -0x12d0(%rbp)
leaq 0x232133(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, %rcx
movq -0x12d0(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x12c1(%rbp)
leaq -0x989(%rbp), %rdi
movq %rdi, -0x12c0(%rbp)
callq 0x33b0
movq -0x12c0(%rbp), %rdx
leaq 0x185526(%rip), %rsi    # 0x1e5687
leaq -0x988(%rbp), %rdi
callq 0x10a90
jmp 0x6016f
movb -0x12c1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x968(%rbp), %rdi
leaq -0x988(%rbp), %rdx
callq 0x10f80
jmp 0x60190
leaq 0x17c64e(%rip), %rsi    # 0x1dc7e5
leaq -0x968(%rbp), %rdi
callq 0x34320
movq %rax, -0x12d8(%rbp)
jmp 0x601ac
movq -0x12d8(%rbp), %rdi
leaq 0x18547b(%rip), %rsi    # 0x1e5635
callq 0x85670
movq %rax, -0x12e0(%rbp)
jmp 0x601c8
movq -0x12e0(%rbp), %rdi
leaq 0x1805d6(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x12e8(%rbp)
jmp 0x601e4
callq 0x880e0
movq %rax, -0x12f0(%rbp)
jmp 0x601f2
movq -0x12e8(%rbp), %rdi
movq -0x12f0(%rbp), %rax
movq %rax, -0x998(%rbp)
leaq -0x998(%rbp), %rsi
callq 0x355c0
movq %rax, -0x12f8(%rbp)
jmp 0x6021c
movq -0x12f8(%rbp), %rdi
leaq 0x17c5bb(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1300(%rbp)
jmp 0x60238
movq -0x1300(%rbp), %rdi
leaq 0x18545e(%rip), %rsi    # 0x1e56a4
callq 0x34ba0
movq %rax, -0x1308(%rbp)
jmp 0x60254
movq -0x1308(%rbp), %rdi
leaq 0x18054a(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1310(%rbp)
jmp 0x60270
leaq 0x231fe1(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x1318(%rbp)
jmp 0x60285
movq -0x1310(%rbp), %rdi
movq -0x1318(%rbp), %rax
movq %rax, -0x9a0(%rbp)
leaq -0x9a0(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1320(%rbp)
jmp 0x602af
movq -0x1320(%rbp), %rdi
leaq 0x1961be(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x602c4
leaq -0x968(%rbp), %rdi
callq 0x10ff0
jmp 0x602d2
leaq -0x988(%rbp), %rdi
callq 0x3100
leaq -0x989(%rbp), %rdi
callq 0x3290
leaq 0x232067(%rip), %rax    # 0x292358
movq (%rax), %rax
movq %rax, -0x1338(%rbp)
leaq 0x231f56(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, %rcx
movq -0x1338(%rbp), %rax
addq %rcx, %rcx
subq %rcx, %rax
sete %al
movb %al, -0x1329(%rbp)
leaq -0xb51(%rbp), %rdi
movq %rdi, -0x1328(%rbp)
callq 0x33b0
movq -0x1328(%rbp), %rdx
leaq 0x185379(%rip), %rsi    # 0x1e56ba
leaq -0xb50(%rbp), %rdi
callq 0x10a90
jmp 0x6034f
movb -0x1329(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xb30(%rbp), %rdi
leaq -0xb50(%rbp), %rdx
callq 0x10f80
jmp 0x60370
leaq 0x17c46e(%rip), %rsi    # 0x1dc7e5
leaq -0xb30(%rbp), %rdi
callq 0x34320
movq %rax, -0x1340(%rbp)
jmp 0x6038c
movq -0x1340(%rbp), %rdi
leaq 0x181544(%rip), %rsi    # 0x1e18de
callq 0x7f8f0
movq %rax, -0x1348(%rbp)
jmp 0x603a8
movq -0x1348(%rbp), %rdi
leaq 0x1803f6(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1350(%rbp)
jmp 0x603c4
movq -0x1350(%rbp), %rdi
leaq 0x231f86(%rip), %rsi    # 0x292358
callq 0x355c0
movq %rax, -0x1358(%rbp)
jmp 0x603e0
movq -0x1358(%rbp), %rdi
leaq 0x17c3f7(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1360(%rbp)
jmp 0x603fc
movq -0x1360(%rbp), %rdi
leaq 0x1852cf(%rip), %rsi    # 0x1e56d9
callq 0x85670
movq %rax, -0x1368(%rbp)
jmp 0x60418
movq -0x1368(%rbp), %rdi
leaq 0x180386(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1370(%rbp)
jmp 0x60434
leaq 0x231e1d(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x1378(%rbp)
jmp 0x60449
movq -0x1370(%rbp), %rdi
movq -0x1378(%rbp), %rax
addq %rax, %rax
movq %rax, -0xb60(%rbp)
leaq -0xb60(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1380(%rbp)
jmp 0x60476
movq -0x1380(%rbp), %rdi
leaq 0x195ff7(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x6048b
leaq -0xb30(%rbp), %rdi
callq 0x10ff0
jmp 0x60499
leaq -0xb50(%rbp), %rdi
callq 0x3100
leaq -0xb51(%rbp), %rdi
callq 0x3290
jmp 0x605eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x6050c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60500
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x7a0(%rbp), %rdi
callq 0x10ff0
jmp 0x604fe
jmp 0x60500
leaq -0x7c0(%rbp), %rdi
callq 0x3100
leaq -0x7c1(%rbp), %rdi
callq 0x3290
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60573
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60567
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x968(%rbp), %rdi
callq 0x10ff0
jmp 0x60565
jmp 0x60567
leaq -0x988(%rbp), %rdi
callq 0x3100
leaq -0x989(%rbp), %rdi
callq 0x3290
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x605da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x605ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0xb30(%rbp), %rdi
callq 0x10ff0
jmp 0x605cc
jmp 0x605ce
leaq -0xb50(%rbp), %rdi
callq 0x3100
leaq -0xb51(%rbp), %rdi
callq 0x3290
jmp 0x60d44
leaq 0x231c66(%rip), %rsi    # 0x292258
leaq -0xbb0(%rbp), %rdi
callq 0x7f7e0
callq 0x7f630
leaq 0x231c7e(%rip), %rsi    # 0x292288
leaq -0xc00(%rbp), %rdi
callq 0x7f7e0
jmp 0x60618
leaq -0xbb0(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
callq 0x88100
jmp 0x6062d
leaq -0xc00(%rbp), %rdi
callq 0x7f870
leaq -0xbb0(%rbp), %rdi
callq 0x7f870
callq 0x7f730
movq %rax, -0x1398(%rbp)
leaq 0x231c30(%rip), %rdi    # 0x292288
callq 0x1a900
movq %rax, %rcx
movq -0x1398(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x1389(%rbp)
leaq -0xdb1(%rbp), %rdi
movq %rdi, -0x1388(%rbp)
callq 0x33b0
movq -0x1388(%rbp), %rdx
leaq 0x18505f(%rip), %rsi    # 0x1e56f3
leaq -0xdb0(%rbp), %rdi
callq 0x10a90
jmp 0x606a2
movb -0x1389(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xd90(%rbp), %rdi
leaq -0xdb0(%rbp), %rdx
callq 0x10f80
jmp 0x606c3
leaq 0x17c11b(%rip), %rsi    # 0x1dc7e5
leaq -0xd90(%rbp), %rdi
callq 0x34320
movq %rax, -0x13a0(%rbp)
jmp 0x606df
movq -0x13a0(%rbp), %rdi
leaq 0x186b8e(%rip), %rsi    # 0x1e727b
callq 0x7f760
movq %rax, -0x13a8(%rbp)
jmp 0x606fb
movq -0x13a8(%rbp), %rdi
leaq 0x1800a3(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x13b0(%rbp)
jmp 0x60717
callq 0x7f730
movq -0x13b0(%rbp), %rdi
movq %rax, -0xdc0(%rbp)
leaq -0xdc0(%rbp), %rsi
callq 0x355c0
movq %rax, -0x13b8(%rbp)
jmp 0x6073f
movq -0x13b8(%rbp), %rdi
leaq 0x17c098(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x13c0(%rbp)
jmp 0x6075b
movq -0x13c0(%rbp), %rdi
leaq 0x185056(%rip), %rsi    # 0x1e57bf
callq 0x86430
movq %rax, -0x13c8(%rbp)
jmp 0x60777
movq -0x13c8(%rbp), %rdi
leaq 0x180027(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x13d0(%rbp)
jmp 0x60793
leaq 0x231aee(%rip), %rdi    # 0x292288
callq 0x1a900
movq %rax, -0x13d8(%rbp)
jmp 0x607a8
movq -0x13d0(%rbp), %rdi
movq -0x13d8(%rbp), %rax
movq %rax, -0xdc8(%rbp)
leaq -0xdc8(%rbp), %rsi
callq 0x355c0
movq %rax, -0x13e0(%rbp)
jmp 0x607d2
movq -0x13e0(%rbp), %rdi
leaq 0x195c9b(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x607e7
leaq -0xd90(%rbp), %rdi
callq 0x10ff0
jmp 0x607f5
leaq -0xdb0(%rbp), %rdi
callq 0x3100
leaq -0xdb1(%rbp), %rdi
callq 0x3290
leaq 0x231b3c(%rip), %rax    # 0x292350
movq (%rax), %rax
movq %rax, -0x13f8(%rbp)
leaq 0x231a63(%rip), %rdi    # 0x292288
callq 0x1a900
movq %rax, %rcx
movq -0x13f8(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x13e9(%rbp)
leaq -0xf79(%rbp), %rdi
movq %rdi, -0x13e8(%rbp)
callq 0x33b0
movq -0x13e8(%rbp), %rdx
leaq 0x184ecd(%rip), %rsi    # 0x1e572e
leaq -0xf78(%rbp), %rdi
callq 0x10a90
jmp 0x6086f
movb -0x13e9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xf58(%rbp), %rdi
leaq -0xf78(%rbp), %rdx
callq 0x10f80
jmp 0x60890
leaq 0x17bf4e(%rip), %rsi    # 0x1dc7e5
leaq -0xf58(%rbp), %rdi
callq 0x34320
movq %rax, -0x1400(%rbp)
jmp 0x608ac
movq -0x1400(%rbp), %rdi
leaq 0x184eaf(%rip), %rsi    # 0x1e5769
callq 0x7f760
movq %rax, -0x1408(%rbp)
jmp 0x608c8
movq -0x1408(%rbp), %rdi
leaq 0x17fed6(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1410(%rbp)
jmp 0x608e4
movq -0x1410(%rbp), %rdi
leaq 0x231a5e(%rip), %rsi    # 0x292350
callq 0x355c0
movq %rax, -0x1418(%rbp)
jmp 0x60900
movq -0x1418(%rbp), %rdi
leaq 0x17bed7(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1420(%rbp)
jmp 0x6091c
movq -0x1420(%rbp), %rdi
leaq 0x184e95(%rip), %rsi    # 0x1e57bf
callq 0x86430
movq %rax, -0x1428(%rbp)
jmp 0x60938
movq -0x1428(%rbp), %rdi
leaq 0x17fe66(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1430(%rbp)
jmp 0x60954
leaq 0x23192d(%rip), %rdi    # 0x292288
callq 0x1a900
movq %rax, -0x1438(%rbp)
jmp 0x60969
movq -0x1430(%rbp), %rdi
movq -0x1438(%rbp), %rax
movq %rax, -0xf88(%rbp)
leaq -0xf88(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1440(%rbp)
jmp 0x60993
movq -0x1440(%rbp), %rdi
leaq 0x195ada(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x609a8
leaq -0xf58(%rbp), %rdi
callq 0x10ff0
jmp 0x609b6
leaq -0xf78(%rbp), %rdi
callq 0x3100
leaq -0xf79(%rbp), %rdi
callq 0x3290
leaq 0x231983(%rip), %rax    # 0x292358
movq (%rax), %rax
movq %rax, -0x1458(%rbp)
leaq 0x231872(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x1460(%rbp)
leaq 0x23188f(%rip), %rdi    # 0x292288
callq 0x1a900
movq -0x1460(%rbp), %rcx
movq %rax, %rdx
movq -0x1458(%rbp), %rax
addq %rdx, %rcx
subq %rcx, %rax
sete %al
movb %al, -0x1449(%rbp)
leaq -0x1139(%rbp), %rdi
movq %rdi, -0x1448(%rbp)
callq 0x33b0
movq -0x1448(%rbp), %rdx
leaq 0x184d49(%rip), %rsi    # 0x1e5788
leaq -0x1138(%rbp), %rdi
callq 0x10a90
jmp 0x60a4d
movb -0x1449(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x1118(%rbp), %rdi
leaq -0x1138(%rbp), %rdx
callq 0x10f80
jmp 0x60a6e
leaq 0x17bd70(%rip), %rsi    # 0x1dc7e5
leaq -0x1118(%rbp), %rdi
callq 0x34320
movq %rax, -0x1468(%rbp)
jmp 0x60a8a
movq -0x1468(%rbp), %rdi
leaq 0x180e46(%rip), %rsi    # 0x1e18de
callq 0x7f8f0
movq %rax, -0x1470(%rbp)
jmp 0x60aa6
movq -0x1470(%rbp), %rdi
leaq 0x17fcf8(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1478(%rbp)
jmp 0x60ac2
movq -0x1478(%rbp), %rdi
leaq 0x231888(%rip), %rsi    # 0x292358
callq 0x355c0
movq %rax, -0x1480(%rbp)
jmp 0x60ade
movq -0x1480(%rbp), %rdi
leaq 0x17bcf9(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1488(%rbp)
jmp 0x60afa
movq -0x1488(%rbp), %rdi
leaq 0x184c9f(%rip), %rsi    # 0x1e57a7
callq 0x88150
movq %rax, -0x1490(%rbp)
jmp 0x60b16
movq -0x1490(%rbp), %rdi
leaq 0x17fc88(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1498(%rbp)
jmp 0x60b32
leaq 0x23171f(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x14a0(%rbp)
jmp 0x60b47
leaq 0x23173a(%rip), %rdi    # 0x292288
callq 0x1a900
movq %rax, -0x14a8(%rbp)
jmp 0x60b5c
movq -0x1498(%rbp), %rdi
movq -0x14a8(%rbp), %rcx
movq -0x14a0(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x1148(%rbp)
leaq -0x1148(%rbp), %rsi
callq 0x355c0
movq %rax, -0x14b0(%rbp)
jmp 0x60b90
movq -0x14b0(%rbp), %rdi
leaq 0x1958dd(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x60ba5
leaq -0x1118(%rbp), %rdi
callq 0x10ff0
jmp 0x60bb3
leaq -0x1138(%rbp), %rdi
callq 0x3100
leaq -0x1139(%rbp), %rdi
callq 0x3290
addq $0x14b0, %rsp           # imm = 0x14B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60c06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0xc00(%rbp), %rdi
callq 0x7f870
leaq -0xbb0(%rbp), %rdi
callq 0x7f870
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60c6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60c61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0xd90(%rbp), %rdi
callq 0x10ff0
jmp 0x60c5f
jmp 0x60c61
leaq -0xdb0(%rbp), %rdi
callq 0x3100
leaq -0xdb1(%rbp), %rdi
callq 0x3290
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60cd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60cc8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0xf58(%rbp), %rdi
callq 0x10ff0
jmp 0x60cc6
jmp 0x60cc8
leaq -0xf78(%rbp), %rdi
callq 0x3100
leaq -0xf79(%rbp), %rdi
callq 0x3290
jmp 0x60d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60d38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
jmp 0x60d2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb8(%rbp)
movl %eax, -0xbc(%rbp)
leaq -0x1118(%rbp), %rdi
callq 0x10ff0
jmp 0x60d2a
jmp 0x60d2c
leaq -0x1138(%rbp), %rdi
callq 0x3100
leaq -0x1139(%rbp), %rdi
callq 0x3290
movq -0xb8(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0
nopl (%rax,%rax)