// File: dsharlet[P]array/test/array_ref.cpp
// Function: nda::test_array_ref_explicit_conversion_body()
TEST(array_ref_explicit_conversion) {
  array_ref_of_rank<int, 3> null_ref(nullptr, {10, 20, 30});
  array_of_rank<int, 3> non_ref({5, 10, 20});
  dense_array<int, 3> dense_non_ref({5, 10, 20});

  auto null_ref_embedded = convert_shape<shape_of_rank<4>>(null_ref);
  ASSERT_EQ(null_ref_embedded.rank(), 4);
  ASSERT_EQ(null_ref_embedded.w().min(), 0);
  ASSERT_EQ(null_ref_embedded.w().extent(), 1);

  auto dense_null_ref_embedded = convert_shape<dense_shape<5>>(non_ref);
  ASSERT_EQ(dense_null_ref_embedded.rank(), 5);
  ASSERT_EQ(dense_null_ref_embedded.w().min(), 0);
  ASSERT_EQ(dense_null_ref_embedded.w().extent(), 1);
  ASSERT_EQ(dense_null_ref_embedded.dim<4>().min(), 0);
  ASSERT_EQ(dense_null_ref_embedded.dim<4>().extent(), 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1570, %rsp           # imm = 0x1570
leaq -0x158(%rbp), %rdi
movq %rdi, -0x1208(%rbp)
movl $0xa, %esi
movl %esi, -0x11f4(%rbp)
movl $0x14, %edx
movl %edx, -0x11f0(%rbp)
movl $0x1e, %ecx
callq 0x34ec0
movq -0x1208(%rbp), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq -0x110(%rbp), %rdi
callq 0x97160
movl -0x11f4(%rbp), %edx
movl -0x11f0(%rbp), %ecx
leaq -0x208(%rbp), %rdi
movq %rdi, -0x1200(%rbp)
movl $0x5, %esi
movl %esi, -0x11f8(%rbp)
callq 0x34ec0
movq -0x1200(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x34f10
movl -0x11f8(%rbp), %esi
movl -0x11f4(%rbp), %edx
movl -0x11f0(%rbp), %ecx
leaq -0x2b8(%rbp), %rdi
callq 0x34640
jmp 0x9074d
leaq -0x270(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0x10d10
jmp 0x90762
leaq -0x330(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x974f0
jmp 0x90777
callq 0x97560
movq %rax, -0x1210(%rbp)
jmp 0x90785
movq -0x1210(%rbp), %rax
subq $0x4, %rax
sete %al
movb %al, -0x1219(%rbp)
leaq -0x4e1(%rbp), %rdi
movq %rdi, -0x1218(%rbp)
callq 0x33b0
movq -0x1218(%rbp), %rdx
leaq 0x157548(%rip), %rsi    # 0x1e7d02
leaq -0x4e0(%rbp), %rdi
callq 0x10a90
jmp 0x907c8
movb -0x1219(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x4c0(%rbp), %rdi
leaq -0x4e0(%rbp), %rdx
callq 0x10f80
jmp 0x907e9
leaq 0x14bff5(%rip), %rsi    # 0x1dc7e5
leaq -0x4c0(%rbp), %rdi
callq 0x34320
movq %rax, -0x1228(%rbp)
jmp 0x90805
movq -0x1228(%rbp), %rdi
leaq 0x157537(%rip), %rsi    # 0x1e7d4a
callq 0x86430
movq %rax, -0x1230(%rbp)
jmp 0x90821
movq -0x1230(%rbp), %rdi
leaq 0x14ff7d(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1238(%rbp)
jmp 0x9083d
callq 0x97560
movq %rax, -0x1240(%rbp)
jmp 0x9084b
movq -0x1238(%rbp), %rdi
movq -0x1240(%rbp), %rax
movq %rax, -0x4f0(%rbp)
leaq -0x4f0(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1248(%rbp)
jmp 0x90875
movq -0x1248(%rbp), %rdi
leaq 0x14bf62(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1250(%rbp)
jmp 0x90891
movq -0x1250(%rbp), %rdi
leaq 0x150e46(%rip), %rsi    # 0x1e16e5
callq 0x34320
movq %rax, -0x1258(%rbp)
jmp 0x908ad
movq -0x1258(%rbp), %rdi
leaq 0x14fef1(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1260(%rbp)
jmp 0x908c9
movq -0x1260(%rbp), %rdi
movl $0x4, -0x4f4(%rbp)
leaq -0x4f4(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1268(%rbp)
jmp 0x908ef
movq -0x1268(%rbp), %rdi
leaq 0x165b7e(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x90904
leaq -0x4c0(%rbp), %rdi
callq 0x10ff0
jmp 0x90912
leaq -0x4e0(%rbp), %rdi
callq 0x3100
leaq -0x4e1(%rbp), %rdi
callq 0x3290
leaq -0x330(%rbp), %rdi
callq 0x97570
movq %rax, -0x1270(%rbp)
jmp 0x9093f
movq -0x1270(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1278(%rbp)
movq -0x1278(%rbp), %rax
testq %rax, %rax
sete %al
movb %al, -0x1281(%rbp)
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0x1280(%rbp)
callq 0x33b0
movq -0x1280(%rbp), %rdx
leaq 0x1573cf(%rip), %rsi    # 0x1e7d69
leaq -0x6a8(%rbp), %rdi
callq 0x10a90
jmp 0x909a8
movb -0x1281(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x688(%rbp), %rdi
leaq -0x6a8(%rbp), %rdx
callq 0x10f80
jmp 0x909c9
leaq 0x14be15(%rip), %rsi    # 0x1dc7e5
leaq -0x688(%rbp), %rdi
callq 0x34320
movq %rax, -0x1290(%rbp)
jmp 0x909e5
movq -0x1290(%rbp), %rdi
leaq 0x15739d(%rip), %rsi    # 0x1e7d90
callq 0x7f8f0
movq %rax, -0x1298(%rbp)
jmp 0x90a01
movq -0x1298(%rbp), %rdi
leaq 0x14fd9d(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x12a0(%rbp)
jmp 0x90a1d
leaq -0x330(%rbp), %rdi
callq 0x97570
movq %rax, -0x12a8(%rbp)
jmp 0x90a32
movq -0x12a8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x12b0(%rbp)
movq -0x12a0(%rbp), %rdi
movq -0x12b0(%rbp), %rax
movq %rax, -0x6b8(%rbp)
leaq -0x6b8(%rbp), %rsi
callq 0x34510
movq %rax, -0x12b8(%rbp)
jmp 0x90a83
movq -0x12b8(%rbp), %rdi
leaq 0x14bd54(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x12c0(%rbp)
jmp 0x90a9f
movq -0x12c0(%rbp), %rdi
leaq 0x14d987(%rip), %rsi    # 0x1de434
callq 0x34320
movq %rax, -0x12c8(%rbp)
jmp 0x90abb
movq -0x12c8(%rbp), %rdi
leaq 0x14fce3(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x12d0(%rbp)
jmp 0x90ad7
movq -0x12d0(%rbp), %rdi
movl $0x0, -0x6bc(%rbp)
leaq -0x6bc(%rbp), %rsi
callq 0x343a0
movq %rax, -0x12d8(%rbp)
jmp 0x90afd
movq -0x12d8(%rbp), %rdi
leaq 0x165970(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x90b12
leaq -0x688(%rbp), %rdi
callq 0x10ff0
jmp 0x90b20
leaq -0x6a8(%rbp), %rdi
callq 0x3100
leaq -0x6a9(%rbp), %rdi
callq 0x3290
leaq -0x330(%rbp), %rdi
callq 0x97570
movq %rax, -0x12e0(%rbp)
jmp 0x90b4d
movq -0x12e0(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x12e8(%rbp)
movq -0x12e8(%rbp), %rax
subq $0x1, %rax
sete %al
movb %al, -0x12f1(%rbp)
leaq -0x871(%rbp), %rdi
movq %rdi, -0x12f0(%rbp)
callq 0x33b0
movq -0x12f0(%rbp), %rdx
leaq 0x15720b(%rip), %rsi    # 0x1e7db2
leaq -0x870(%rbp), %rdi
callq 0x10a90
jmp 0x90bb5
movb -0x12f1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x850(%rbp), %rdi
leaq -0x870(%rbp), %rdx
callq 0x10f80
jmp 0x90bd6
leaq 0x14bc08(%rip), %rsi    # 0x1dc7e5
leaq -0x850(%rbp), %rdi
callq 0x34320
movq %rax, -0x1300(%rbp)
jmp 0x90bf2
movq -0x1300(%rbp), %rdi
leaq 0x1571dc(%rip), %rsi    # 0x1e7ddc
callq 0x7f760
movq %rax, -0x1308(%rbp)
jmp 0x90c0e
movq -0x1308(%rbp), %rdi
leaq 0x14fb90(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1310(%rbp)
jmp 0x90c2a
leaq -0x330(%rbp), %rdi
callq 0x97570
movq %rax, -0x1318(%rbp)
jmp 0x90c3f
movq -0x1318(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1320(%rbp)
movq -0x1310(%rbp), %rdi
movq -0x1320(%rbp), %rax
movq %rax, -0x880(%rbp)
leaq -0x880(%rbp), %rsi
callq 0x34510
movq %rax, -0x1328(%rbp)
jmp 0x90c8e
movq -0x1328(%rbp), %rdi
leaq 0x14bb49(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1330(%rbp)
jmp 0x90caa
movq -0x1330(%rbp), %rdi
leaq 0x1533b5(%rip), %rsi    # 0x1e406d
callq 0x34320
movq %rax, -0x1338(%rbp)
jmp 0x90cc6
movq -0x1338(%rbp), %rdi
leaq 0x14fad8(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1340(%rbp)
jmp 0x90ce2
movq -0x1340(%rbp), %rdi
movl $0x1, -0x884(%rbp)
leaq -0x884(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1348(%rbp)
jmp 0x90d08
movq -0x1348(%rbp), %rdi
leaq 0x165765(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x90d1d
leaq -0x850(%rbp), %rdi
callq 0x10ff0
jmp 0x90d2b
leaq -0x870(%rbp), %rdi
callq 0x3100
leaq -0x871(%rbp), %rdi
callq 0x3290
leaq -0x908(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x97590
jmp 0x90d58
callq 0x975d0
movq %rax, -0x1350(%rbp)
jmp 0x90d66
movq -0x1350(%rbp), %rax
subq $0x5, %rax
sete %al
movb %al, -0x1359(%rbp)
leaq -0xab9(%rbp), %rdi
movq %rdi, -0x1358(%rbp)
callq 0x33b0
movq -0x1358(%rbp), %rdx
leaq 0x156f85(%rip), %rsi    # 0x1e7d20
leaq -0xab8(%rbp), %rdi
callq 0x10a90
jmp 0x90da9
movb -0x1359(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xa98(%rbp), %rdi
leaq -0xab8(%rbp), %rdx
callq 0x10f80
jmp 0x90dca
leaq 0x14ba14(%rip), %rsi    # 0x1dc7e5
leaq -0xa98(%rbp), %rdi
callq 0x34320
movq %rax, -0x1368(%rbp)
jmp 0x90de6
movq -0x1368(%rbp), %rdi
leaq 0x156f50(%rip), %rsi    # 0x1e7d44
callq 0x7f760
movq %rax, -0x1370(%rbp)
jmp 0x90e02
movq -0x1370(%rbp), %rdi
leaq 0x14f99c(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1378(%rbp)
jmp 0x90e1e
callq 0x975d0
movq %rax, -0x1380(%rbp)
jmp 0x90e2c
movq -0x1378(%rbp), %rdi
movq -0x1380(%rbp), %rax
movq %rax, -0xac8(%rbp)
leaq -0xac8(%rbp), %rsi
callq 0x355c0
movq %rax, -0x1388(%rbp)
jmp 0x90e56
movq -0x1388(%rbp), %rdi
leaq 0x14b981(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1390(%rbp)
jmp 0x90e72
movq -0x1390(%rbp), %rdi
leaq 0x14d8dd(%rip), %rsi    # 0x1de75d
callq 0x34320
movq %rax, -0x1398(%rbp)
jmp 0x90e8e
movq -0x1398(%rbp), %rdi
leaq 0x14f910(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x13a0(%rbp)
jmp 0x90eaa
movq -0x13a0(%rbp), %rdi
movl $0x5, -0xacc(%rbp)
leaq -0xacc(%rbp), %rsi
callq 0x343a0
movq %rax, -0x13a8(%rbp)
jmp 0x90ed0
movq -0x13a8(%rbp), %rdi
leaq 0x16559d(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x90ee5
leaq -0xa98(%rbp), %rdi
callq 0x10ff0
jmp 0x90ef3
leaq -0xab8(%rbp), %rdi
callq 0x3100
leaq -0xab9(%rbp), %rdi
callq 0x3290
leaq -0x908(%rbp), %rdi
callq 0x975e0
movq %rax, -0x13b0(%rbp)
jmp 0x90f20
movq -0x13b0(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x13b8(%rbp)
movq -0x13b8(%rbp), %rax
testq %rax, %rax
sete %al
movb %al, -0x13c1(%rbp)
leaq -0xc81(%rbp), %rdi
movq %rdi, -0x13c0(%rbp)
callq 0x33b0
movq -0x13c0(%rbp), %rdx
leaq 0x156de8(%rip), %rsi    # 0x1e7d63
leaq -0xc80(%rbp), %rdi
callq 0x10a90
jmp 0x90f89
movb -0x13c1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xc60(%rbp), %rdi
leaq -0xc80(%rbp), %rdx
callq 0x10f80
jmp 0x90faa
leaq 0x14b834(%rip), %rsi    # 0x1dc7e5
leaq -0xc60(%rbp), %rdi
callq 0x34320
movq %rax, -0x13d0(%rbp)
jmp 0x90fc6
movq -0x13d0(%rbp), %rdi
leaq 0x156db6(%rip), %rsi    # 0x1e7d8a
callq 0x85630
movq %rax, -0x13d8(%rbp)
jmp 0x90fe2
movq -0x13d8(%rbp), %rdi
leaq 0x14f7bc(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x13e0(%rbp)
jmp 0x90ffe
leaq -0x908(%rbp), %rdi
callq 0x975e0
movq %rax, -0x13e8(%rbp)
jmp 0x91013
movq -0x13e8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x13f0(%rbp)
movq -0x13e0(%rbp), %rdi
movq -0x13f0(%rbp), %rax
movq %rax, -0xc90(%rbp)
leaq -0xc90(%rbp), %rsi
callq 0x34510
movq %rax, -0x13f8(%rbp)
jmp 0x91064
movq -0x13f8(%rbp), %rdi
leaq 0x14b773(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1400(%rbp)
jmp 0x91080
movq -0x1400(%rbp), %rdi
leaq 0x14d3a6(%rip), %rsi    # 0x1de434
callq 0x34320
movq %rax, -0x1408(%rbp)
jmp 0x9109c
movq -0x1408(%rbp), %rdi
leaq 0x14f702(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1410(%rbp)
jmp 0x910b8
movq -0x1410(%rbp), %rdi
movl $0x0, -0xc94(%rbp)
leaq -0xc94(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1418(%rbp)
jmp 0x910de
movq -0x1418(%rbp), %rdi
leaq 0x16538f(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x910f3
leaq -0xc60(%rbp), %rdi
callq 0x10ff0
jmp 0x91101
leaq -0xc80(%rbp), %rdi
callq 0x3100
leaq -0xc81(%rbp), %rdi
callq 0x3290
leaq -0x908(%rbp), %rdi
callq 0x975e0
movq %rax, -0x1420(%rbp)
jmp 0x9112e
movq -0x1420(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1428(%rbp)
movq -0x1428(%rbp), %rax
subq $0x1, %rax
sete %al
movb %al, -0x1431(%rbp)
leaq -0xe49(%rbp), %rdi
movq %rdi, -0x1430(%rbp)
callq 0x33b0
movq -0x1430(%rbp), %rdx
leaq 0x156c24(%rip), %rsi    # 0x1e7dac
leaq -0xe48(%rbp), %rdi
callq 0x10a90
jmp 0x91196
movb -0x1431(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xe28(%rbp), %rdi
leaq -0xe48(%rbp), %rdx
callq 0x10f80
jmp 0x911b7
leaq 0x14b627(%rip), %rsi    # 0x1dc7e5
leaq -0xe28(%rbp), %rdi
callq 0x34320
movq %rax, -0x1440(%rbp)
jmp 0x911d3
movq -0x1440(%rbp), %rdi
leaq 0x156bf5(%rip), %rsi    # 0x1e7dd6
callq 0x7f8b0
movq %rax, -0x1448(%rbp)
jmp 0x911ef
movq -0x1448(%rbp), %rdi
leaq 0x14f5af(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1450(%rbp)
jmp 0x9120b
leaq -0x908(%rbp), %rdi
callq 0x975e0
movq %rax, -0x1458(%rbp)
jmp 0x91220
movq -0x1458(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1460(%rbp)
movq -0x1450(%rbp), %rdi
movq -0x1460(%rbp), %rax
movq %rax, -0xe58(%rbp)
leaq -0xe58(%rbp), %rsi
callq 0x34510
movq %rax, -0x1468(%rbp)
jmp 0x9126f
movq -0x1468(%rbp), %rdi
leaq 0x14b568(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1470(%rbp)
jmp 0x9128b
movq -0x1470(%rbp), %rdi
leaq 0x152dd4(%rip), %rsi    # 0x1e406d
callq 0x34320
movq %rax, -0x1478(%rbp)
jmp 0x912a7
movq -0x1478(%rbp), %rdi
leaq 0x14f4f7(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1480(%rbp)
jmp 0x912c3
movq -0x1480(%rbp), %rdi
movl $0x1, -0xe5c(%rbp)
leaq -0xe5c(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1488(%rbp)
jmp 0x912e9
movq -0x1488(%rbp), %rdi
leaq 0x165184(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x912fe
leaq -0xe28(%rbp), %rdi
callq 0x10ff0
jmp 0x9130c
leaq -0xe48(%rbp), %rdi
callq 0x3100
leaq -0xe49(%rbp), %rdi
callq 0x3290
leaq -0x908(%rbp), %rdi
callq 0x97600
movq %rax, -0x1490(%rbp)
jmp 0x91339
movq -0x1490(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1498(%rbp)
movq -0x1498(%rbp), %rax
testq %rax, %rax
sete %al
movb %al, -0x14a1(%rbp)
leaq -0x1011(%rbp), %rdi
movq %rdi, -0x14a0(%rbp)
callq 0x33b0
movq -0x14a0(%rbp), %rdx
leaq 0x156a67(%rip), %rsi    # 0x1e7dfb
leaq -0x1010(%rbp), %rdi
callq 0x10a90
jmp 0x913a2
movb -0x14a1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xff0(%rbp), %rdi
leaq -0x1010(%rbp), %rdx
callq 0x10f80
jmp 0x913c3
leaq 0x14b41b(%rip), %rsi    # 0x1dc7e5
leaq -0xff0(%rbp), %rdi
callq 0x34320
movq %rax, -0x14b0(%rbp)
jmp 0x913df
movq -0x14b0(%rbp), %rdi
leaq 0x156a3a(%rip), %rsi    # 0x1e7e27
callq 0x97620
movq %rax, -0x14b8(%rbp)
jmp 0x913fb
movq -0x14b8(%rbp), %rdi
leaq 0x14f3a3(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x14c0(%rbp)
jmp 0x91417
leaq -0x908(%rbp), %rdi
callq 0x97600
movq %rax, -0x14c8(%rbp)
jmp 0x9142c
movq -0x14c8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x14d0(%rbp)
movq -0x14c0(%rbp), %rdi
movq -0x14d0(%rbp), %rax
movq %rax, -0x1020(%rbp)
leaq -0x1020(%rbp), %rsi
callq 0x34510
movq %rax, -0x14d8(%rbp)
jmp 0x9147d
movq -0x14d8(%rbp), %rdi
leaq 0x14b35a(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x14e0(%rbp)
jmp 0x91499
movq -0x14e0(%rbp), %rdi
leaq 0x14cf8d(%rip), %rsi    # 0x1de434
callq 0x34320
movq %rax, -0x14e8(%rbp)
jmp 0x914b5
movq -0x14e8(%rbp), %rdi
leaq 0x14f2e9(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x14f0(%rbp)
jmp 0x914d1
movq -0x14f0(%rbp), %rdi
movl $0x0, -0x1024(%rbp)
leaq -0x1024(%rbp), %rsi
callq 0x343a0
movq %rax, -0x14f8(%rbp)
jmp 0x914f7
movq -0x14f8(%rbp), %rdi
leaq 0x164f76(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x9150c
leaq -0xff0(%rbp), %rdi
callq 0x10ff0
jmp 0x9151a
leaq -0x1010(%rbp), %rdi
callq 0x3100
leaq -0x1011(%rbp), %rdi
callq 0x3290
leaq -0x908(%rbp), %rdi
callq 0x97600
movq %rax, -0x1500(%rbp)
jmp 0x91547
movq -0x1500(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1508(%rbp)
movq -0x1508(%rbp), %rax
subq $0x1, %rax
sete %al
movb %al, -0x1511(%rbp)
leaq -0x11d9(%rbp), %rdi
movq %rdi, -0x1510(%rbp)
callq 0x33b0
movq -0x1510(%rbp), %rdx
leaq 0x1568a7(%rip), %rsi    # 0x1e7e4e
leaq -0x11d8(%rbp), %rdi
callq 0x10a90
jmp 0x915b5
movb -0x1511(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x11b8(%rbp), %rdi
leaq -0x11d8(%rbp), %rdx
callq 0x10f80
jmp 0x915d6
leaq 0x14b208(%rip), %rsi    # 0x1dc7e5
leaq -0x11b8(%rbp), %rdi
callq 0x34320
movq %rax, -0x1520(%rbp)
jmp 0x915f2
movq -0x1520(%rbp), %rdi
leaq 0x15687d(%rip), %rsi    # 0x1e7e7d
callq 0x97660
movq %rax, -0x1528(%rbp)
jmp 0x9160e
movq -0x1528(%rbp), %rdi
leaq 0x14f190(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1530(%rbp)
jmp 0x9162a
leaq -0x908(%rbp), %rdi
callq 0x97600
movq %rax, -0x1538(%rbp)
jmp 0x9163f
movq -0x1538(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1540(%rbp)
movq -0x1530(%rbp), %rdi
movq -0x1540(%rbp), %rax
movq %rax, -0x11e8(%rbp)
leaq -0x11e8(%rbp), %rsi
callq 0x34510
movq %rax, -0x1548(%rbp)
jmp 0x91694
movq -0x1548(%rbp), %rdi
leaq 0x14b143(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1550(%rbp)
jmp 0x916b0
movq -0x1550(%rbp), %rdi
leaq 0x1529af(%rip), %rsi    # 0x1e406d
callq 0x34320
movq %rax, -0x1558(%rbp)
jmp 0x916cc
movq -0x1558(%rbp), %rdi
leaq 0x14f0d2(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1560(%rbp)
jmp 0x916e8
movq -0x1560(%rbp), %rdi
movl $0x1, -0x11ec(%rbp)
leaq -0x11ec(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1568(%rbp)
jmp 0x9170e
movq -0x1568(%rbp), %rdi
leaq 0x164d5f(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x91723
leaq -0x11b8(%rbp), %rdi
callq 0x10ff0
jmp 0x91731
leaq -0x11d8(%rbp), %rdi
callq 0x3100
leaq -0x11d9(%rbp), %rdi
callq 0x3290
leaq -0x270(%rbp), %rdi
callq 0x11110
leaq -0x1c0(%rbp), %rdi
callq 0x35160
addq $0x1570, %rsp           # imm = 0x1570
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91ad4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x917ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x917e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0x4c0(%rbp), %rdi
callq 0x10ff0
jmp 0x917e0
jmp 0x917e2
leaq -0x4e0(%rbp), %rdi
callq 0x3100
leaq -0x4e1(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91855
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91849
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x10ff0
jmp 0x91847
jmp 0x91849
leaq -0x6a8(%rbp), %rdi
callq 0x3100
leaq -0x6a9(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x918bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x918b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0x850(%rbp), %rdi
callq 0x10ff0
jmp 0x918ae
jmp 0x918b0
leaq -0x870(%rbp), %rdi
callq 0x3100
leaq -0x871(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91917
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0xa98(%rbp), %rdi
callq 0x10ff0
jmp 0x91915
jmp 0x91917
leaq -0xab8(%rbp), %rdi
callq 0x3100
leaq -0xab9(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x9198a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x9197e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0xc60(%rbp), %rdi
callq 0x10ff0
jmp 0x9197c
jmp 0x9197e
leaq -0xc80(%rbp), %rdi
callq 0x3100
leaq -0xc81(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x919f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x919e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0xe28(%rbp), %rdi
callq 0x10ff0
jmp 0x919e3
jmp 0x919e5
leaq -0xe48(%rbp), %rdi
callq 0x3100
leaq -0xe49(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91a58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91a4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0xff0(%rbp), %rdi
callq 0x10ff0
jmp 0x91a4a
jmp 0x91a4c
leaq -0x1010(%rbp), %rdi
callq 0x3100
leaq -0x1011(%rbp), %rdi
callq 0x3290
jmp 0x91ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91abc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
jmp 0x91ab0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2c0(%rbp)
movl %eax, -0x2c4(%rbp)
leaq -0x11b8(%rbp), %rdi
callq 0x10ff0
jmp 0x91aae
jmp 0x91ab0
leaq -0x11d8(%rbp), %rdi
callq 0x3100
leaq -0x11d9(%rbp), %rdi
callq 0x3290
leaq -0x270(%rbp), %rdi
callq 0x11110
leaq -0x1c0(%rbp), %rdi
callq 0x35160
movq -0x2c0(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0
nopw %cs:(%rax,%rax)