// File: dsharlet[P]array/test/array_ref.cpp
// Function: nda::test_reinterpret_body()
TEST(reinterpret) {
  float eight = 8.0f;
  int eight_int;
  ASSERT_EQ(sizeof(eight), sizeof(eight_int));
  std::memcpy(&eight_int, &eight, sizeof(eight));

  dense_array<int, 3> int_array({4, 5, 6}, eight_int);
  dense_array_ref<float, 3> float_array = reinterpret<float>(int_array);
  ASSERT_EQ(float_array.width(), 4);
  ASSERT_EQ(float_array.height(), 5);
  ASSERT_EQ(float_array.channels(), 6);
  ASSERT_EQ(float_array.rows(), 4);
  ASSERT_EQ(float_array.columns(), 5);
  for_all_indices(int_array.shape(), [&](int x, int y, int z) {
    ASSERT_EQ(int_array(x, y, z), eight_int);
    ASSERT_EQ(float_array(x, y, z), eight);
  });

  array_of_rank<int, 0> scalar_int({}, eight_int);
  array_ref_of_rank<float, 0> scalar = reinterpret<float>(scalar_int);
  ASSERT_EQ(scalar_int(), eight_int);
  ASSERT_EQ(scalar(), eight);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x12a0, %rsp           # imm = 0x12A0
movl $0x41000000, -0x4(%rbp) # imm = 0x41000000
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0xfa0(%rbp)
callq 0x33b0
movq -0xfa0(%rbp), %rdx
leaq 0x15a773(%rip), %rsi    # 0x1e7936
leaq -0x1b8(%rbp), %rdi
callq 0x10a90
jmp 0x8d1d1
leaq -0x198(%rbp), %rdi
movl $0x1, %esi
leaq -0x1b8(%rbp), %rdx
callq 0x10f80
jmp 0x8d1eb
leaq 0x14f5f3(%rip), %rsi    # 0x1dc7e5
leaq -0x198(%rbp), %rdi
callq 0x34320
movq %rax, -0xfa8(%rbp)
jmp 0x8d207
movq -0xfa8(%rbp), %rdi
leaq 0x15a744(%rip), %rsi    # 0x1e7959
callq 0x347a0
movq %rax, -0xfb0(%rbp)
jmp 0x8d223
movq -0xfb0(%rbp), %rdi
leaq 0x15357b(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0xfb8(%rbp)
jmp 0x8d23f
movq -0xfb8(%rbp), %rdi
movq $0x4, -0x1d8(%rbp)
leaq -0x1d8(%rbp), %rsi
callq 0x355c0
movq %rax, -0xfc0(%rbp)
jmp 0x8d266
movq -0xfc0(%rbp), %rdi
leaq 0x14f571(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0xfc8(%rbp)
jmp 0x8d282
movq -0xfc8(%rbp), %rdi
leaq 0x15a6b7(%rip), %rsi    # 0x1e7947
callq 0x36780
movq %rax, -0xfd0(%rbp)
jmp 0x8d29e
movq -0xfd0(%rbp), %rdi
leaq 0x153500(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0xfd8(%rbp)
jmp 0x8d2ba
movq -0xfd8(%rbp), %rdi
movq $0x4, -0x1e0(%rbp)
leaq -0x1e0(%rbp), %rsi
callq 0x355c0
movq %rax, -0xfe0(%rbp)
jmp 0x8d2e1
movq -0xfe0(%rbp), %rdi
leaq 0x16918c(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8d2f6
leaq -0x198(%rbp), %rdi
callq 0x10ff0
jmp 0x8d304
leaq -0x1b8(%rbp), %rdi
callq 0x3100
leaq -0x1b9(%rbp), %rdi
callq 0x3290
movl -0x4(%rbp), %eax
movl %eax, -0x8(%rbp)
leaq -0x290(%rbp), %rdi
movq %rdi, -0xff0(%rbp)
movl $0x4, %esi
movl $0x5, %edx
movl $0x6, %ecx
callq 0x34640
movq -0xff0(%rbp), %rsi
leaq -0x248(%rbp), %rdi
movq %rdi, -0xfe8(%rbp)
leaq -0x8(%rbp), %rdx
callq 0x34db0
movq -0xfe8(%rbp), %rsi
leaq -0x2e0(%rbp), %rdi
callq 0x96a40
jmp 0x8d377
leaq -0x2e0(%rbp), %rdi
callq 0x96a80
movq %rax, -0xff8(%rbp)
jmp 0x8d38c
movq -0xff8(%rbp), %rax
subq $0x4, %rax
sete %al
movb %al, -0x1001(%rbp)
leaq -0x491(%rbp), %rdi
movq %rdi, -0x1000(%rbp)
callq 0x33b0
movq -0x1000(%rbp), %rdx
leaq 0x15a5a6(%rip), %rsi    # 0x1e7967
leaq -0x490(%rbp), %rdi
callq 0x10a90
jmp 0x8d3cf
movb -0x1001(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x470(%rbp), %rdi
leaq -0x490(%rbp), %rdx
callq 0x10f80
jmp 0x8d3f0
leaq 0x14f3ee(%rip), %rsi    # 0x1dc7e5
leaq -0x470(%rbp), %rdi
callq 0x34320
movq %rax, -0x1010(%rbp)
jmp 0x8d40c
movq -0x1010(%rbp), %rdi
leaq 0x15a566(%rip), %rsi    # 0x1e7980
callq 0x35580
movq %rax, -0x1018(%rbp)
jmp 0x8d428
movq -0x1018(%rbp), %rdi
leaq 0x153376(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1020(%rbp)
jmp 0x8d444
leaq -0x2e0(%rbp), %rdi
callq 0x96a80
movq %rax, -0x1028(%rbp)
jmp 0x8d459
movq -0x1020(%rbp), %rdi
movq -0x1028(%rbp), %rax
movq %rax, -0x4a0(%rbp)
leaq -0x4a0(%rbp), %rsi
callq 0x34510
movq %rax, -0x1030(%rbp)
jmp 0x8d483
movq -0x1030(%rbp), %rdi
leaq 0x14f354(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1038(%rbp)
jmp 0x8d49f
movq -0x1038(%rbp), %rdi
leaq 0x154238(%rip), %rsi    # 0x1e16e5
callq 0x34320
movq %rax, -0x1040(%rbp)
jmp 0x8d4bb
movq -0x1040(%rbp), %rdi
leaq 0x1532e3(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1048(%rbp)
jmp 0x8d4d7
movq -0x1048(%rbp), %rdi
movl $0x4, -0x4a4(%rbp)
leaq -0x4a4(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1050(%rbp)
jmp 0x8d4fd
movq -0x1050(%rbp), %rdi
leaq 0x168f70(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8d512
leaq -0x470(%rbp), %rdi
callq 0x10ff0
jmp 0x8d520
leaq -0x490(%rbp), %rdi
callq 0x3100
leaq -0x491(%rbp), %rdi
callq 0x3290
leaq -0x2e0(%rbp), %rdi
callq 0x96aa0
movq %rax, -0x1058(%rbp)
jmp 0x8d54d
movq -0x1058(%rbp), %rax
subq $0x5, %rax
sete %al
movb %al, -0x1061(%rbp)
leaq -0x659(%rbp), %rdi
movq %rdi, -0x1060(%rbp)
callq 0x33b0
movq -0x1060(%rbp), %rdx
leaq 0x15a412(%rip), %rsi    # 0x1e7994
leaq -0x658(%rbp), %rdi
callq 0x10a90
jmp 0x8d590
movb -0x1061(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x638(%rbp), %rdi
leaq -0x658(%rbp), %rdx
callq 0x10f80
jmp 0x8d5b1
leaq 0x14f22d(%rip), %rsi    # 0x1dc7e5
leaq -0x638(%rbp), %rdi
callq 0x34320
movq %rax, -0x1070(%rbp)
jmp 0x8d5cd
movq -0x1070(%rbp), %rdi
leaq 0x15a3d3(%rip), %rsi    # 0x1e79ae
callq 0x96ac0
movq %rax, -0x1078(%rbp)
jmp 0x8d5e9
movq -0x1078(%rbp), %rdi
leaq 0x1531b5(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1080(%rbp)
jmp 0x8d605
leaq -0x2e0(%rbp), %rdi
callq 0x96aa0
movq %rax, -0x1088(%rbp)
jmp 0x8d61a
movq -0x1080(%rbp), %rdi
movq -0x1088(%rbp), %rax
movq %rax, -0x668(%rbp)
leaq -0x668(%rbp), %rsi
callq 0x34510
movq %rax, -0x1090(%rbp)
jmp 0x8d644
movq -0x1090(%rbp), %rdi
leaq 0x14f193(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1098(%rbp)
jmp 0x8d660
movq -0x1098(%rbp), %rdi
leaq 0x1510ef(%rip), %rsi    # 0x1de75d
callq 0x34320
movq %rax, -0x10a0(%rbp)
jmp 0x8d67c
movq -0x10a0(%rbp), %rdi
leaq 0x153122(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x10a8(%rbp)
jmp 0x8d698
movq -0x10a8(%rbp), %rdi
movl $0x5, -0x66c(%rbp)
leaq -0x66c(%rbp), %rsi
callq 0x343a0
movq %rax, -0x10b0(%rbp)
jmp 0x8d6be
movq -0x10b0(%rbp), %rdi
leaq 0x168daf(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8d6d3
leaq -0x638(%rbp), %rdi
callq 0x10ff0
jmp 0x8d6e1
leaq -0x658(%rbp), %rdi
callq 0x3100
leaq -0x659(%rbp), %rdi
callq 0x3290
leaq -0x2e0(%rbp), %rdi
callq 0x96b00
movq %rax, -0x10b8(%rbp)
jmp 0x8d70e
movq -0x10b8(%rbp), %rax
subq $0x6, %rax
sete %al
movb %al, -0x10c1(%rbp)
leaq -0x821(%rbp), %rdi
movq %rdi, -0x10c0(%rbp)
callq 0x33b0
movq -0x10c0(%rbp), %rdx
leaq 0x15a280(%rip), %rsi    # 0x1e79c3
leaq -0x820(%rbp), %rdi
callq 0x10a90
jmp 0x8d751
movb -0x10c1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x800(%rbp), %rdi
leaq -0x820(%rbp), %rdx
callq 0x10f80
jmp 0x8d772
leaq 0x14f06c(%rip), %rsi    # 0x1dc7e5
leaq -0x800(%rbp), %rdi
callq 0x34320
movq %rax, -0x10d0(%rbp)
jmp 0x8d78e
movq -0x10d0(%rbp), %rdi
leaq 0x15a243(%rip), %rsi    # 0x1e79df
callq 0x35a60
movq %rax, -0x10d8(%rbp)
jmp 0x8d7aa
movq -0x10d8(%rbp), %rdi
leaq 0x152ff4(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x10e0(%rbp)
jmp 0x8d7c6
leaq -0x2e0(%rbp), %rdi
callq 0x96b00
movq %rax, -0x10e8(%rbp)
jmp 0x8d7db
movq -0x10e0(%rbp), %rdi
movq -0x10e8(%rbp), %rax
movq %rax, -0x830(%rbp)
leaq -0x830(%rbp), %rsi
callq 0x34510
movq %rax, -0x10f0(%rbp)
jmp 0x8d805
movq -0x10f0(%rbp), %rdi
leaq 0x14efd2(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x10f8(%rbp)
jmp 0x8d821
movq -0x10f8(%rbp), %rdi
leaq 0x15a1ae(%rip), %rsi    # 0x1e79dd
callq 0x34320
movq %rax, -0x1100(%rbp)
jmp 0x8d83d
movq -0x1100(%rbp), %rdi
leaq 0x152f61(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1108(%rbp)
jmp 0x8d859
movq -0x1108(%rbp), %rdi
movl $0x6, -0x834(%rbp)
leaq -0x834(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1110(%rbp)
jmp 0x8d87f
movq -0x1110(%rbp), %rdi
leaq 0x168bee(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8d894
leaq -0x800(%rbp), %rdi
callq 0x10ff0
jmp 0x8d8a2
leaq -0x820(%rbp), %rdi
callq 0x3100
leaq -0x821(%rbp), %rdi
callq 0x3290
leaq -0x2e0(%rbp), %rdi
callq 0x96b20
movq %rax, -0x1118(%rbp)
jmp 0x8d8cf
movq -0x1118(%rbp), %rax
subq $0x4, %rax
sete %al
movb %al, -0x1121(%rbp)
leaq -0x9e9(%rbp), %rdi
movq %rdi, -0x1120(%rbp)
callq 0x33b0
movq -0x1120(%rbp), %rdx
leaq 0x15a0f2(%rip), %rsi    # 0x1e79f6
leaq -0x9e8(%rbp), %rdi
callq 0x10a90
jmp 0x8d912
movb -0x1121(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x9c8(%rbp), %rdi
leaq -0x9e8(%rbp), %rdx
callq 0x10f80
jmp 0x8d933
leaq 0x14eeab(%rip), %rsi    # 0x1dc7e5
leaq -0x9c8(%rbp), %rdi
callq 0x34320
movq %rax, -0x1130(%rbp)
jmp 0x8d94f
movq -0x1130(%rbp), %rdi
leaq 0x15a0b1(%rip), %rsi    # 0x1e7a0e
callq 0x34b60
movq %rax, -0x1138(%rbp)
jmp 0x8d96b
movq -0x1138(%rbp), %rdi
leaq 0x152e33(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1140(%rbp)
jmp 0x8d987
leaq -0x2e0(%rbp), %rdi
callq 0x96b20
movq %rax, -0x1148(%rbp)
jmp 0x8d99c
movq -0x1140(%rbp), %rdi
movq -0x1148(%rbp), %rax
movq %rax, -0x9f8(%rbp)
leaq -0x9f8(%rbp), %rsi
callq 0x34510
movq %rax, -0x1150(%rbp)
jmp 0x8d9c6
movq -0x1150(%rbp), %rdi
leaq 0x14ee11(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1158(%rbp)
jmp 0x8d9e2
movq -0x1158(%rbp), %rdi
leaq 0x153cf5(%rip), %rsi    # 0x1e16e5
callq 0x34320
movq %rax, -0x1160(%rbp)
jmp 0x8d9fe
movq -0x1160(%rbp), %rdi
leaq 0x152da0(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1168(%rbp)
jmp 0x8da1a
movq -0x1168(%rbp), %rdi
movl $0x4, -0x9fc(%rbp)
leaq -0x9fc(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1170(%rbp)
jmp 0x8da40
movq -0x1170(%rbp), %rdi
leaq 0x168a2d(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8da55
leaq -0x9c8(%rbp), %rdi
callq 0x10ff0
jmp 0x8da63
leaq -0x9e8(%rbp), %rdi
callq 0x3100
leaq -0x9e9(%rbp), %rdi
callq 0x3290
leaq -0x2e0(%rbp), %rdi
callq 0x96b40
movq %rax, -0x1178(%rbp)
jmp 0x8da90
movq -0x1178(%rbp), %rax
subq $0x5, %rax
sete %al
movb %al, -0x1181(%rbp)
leaq -0xbb1(%rbp), %rdi
movq %rdi, -0x1180(%rbp)
callq 0x33b0
movq -0x1180(%rbp), %rdx
leaq 0x159f5c(%rip), %rsi    # 0x1e7a21
leaq -0xbb0(%rbp), %rdi
callq 0x10a90
jmp 0x8dad3
movb -0x1181(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xb90(%rbp), %rdi
leaq -0xbb0(%rbp), %rdx
callq 0x10f80
jmp 0x8daf4
leaq 0x14ecea(%rip), %rsi    # 0x1dc7e5
leaq -0xb90(%rbp), %rdi
callq 0x34320
movq %rax, -0x1190(%rbp)
jmp 0x8db10
movq -0x1190(%rbp), %rdi
leaq 0x159f1e(%rip), %rsi    # 0x1e7a3c
callq 0x34ba0
movq %rax, -0x1198(%rbp)
jmp 0x8db2c
movq -0x1198(%rbp), %rdi
leaq 0x152c72(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x11a0(%rbp)
jmp 0x8db48
leaq -0x2e0(%rbp), %rdi
callq 0x96b40
movq %rax, -0x11a8(%rbp)
jmp 0x8db5d
movq -0x11a0(%rbp), %rdi
movq -0x11a8(%rbp), %rax
movq %rax, -0xbc0(%rbp)
leaq -0xbc0(%rbp), %rsi
callq 0x34510
movq %rax, -0x11b0(%rbp)
jmp 0x8db87
movq -0x11b0(%rbp), %rdi
leaq 0x14ec50(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x11b8(%rbp)
jmp 0x8dba3
movq -0x11b8(%rbp), %rdi
leaq 0x150bac(%rip), %rsi    # 0x1de75d
callq 0x34320
movq %rax, -0x11c0(%rbp)
jmp 0x8dbbf
movq -0x11c0(%rbp), %rdi
leaq 0x152bdf(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x11c8(%rbp)
jmp 0x8dbdb
movq -0x11c8(%rbp), %rdi
movl $0x5, -0xbc4(%rbp)
leaq -0xbc4(%rbp), %rsi
callq 0x343a0
movq %rax, -0x11d0(%rbp)
jmp 0x8dc01
movq -0x11d0(%rbp), %rdi
leaq 0x16886c(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8dc16
leaq -0xb90(%rbp), %rdi
callq 0x10ff0
jmp 0x8dc24
leaq -0xbb0(%rbp), %rdi
callq 0x3100
leaq -0xbb1(%rbp), %rdi
callq 0x3290
leaq -0x248(%rbp), %rdi
callq 0x35e20
movq %rax, -0x11d8(%rbp)
jmp 0x8dc51
movq -0x11d8(%rbp), %rdi
leaq -0x248(%rbp), %rax
movq %rax, -0xbe8(%rbp)
leaq -0x8(%rbp), %rax
movq %rax, -0xbe0(%rbp)
leaq -0x2e0(%rbp), %rax
movq %rax, -0xbd8(%rbp)
leaq -0x4(%rbp), %rax
movq %rax, -0xbd0(%rbp)
leaq -0xbe8(%rbp), %rsi
callq 0x8e3f0
jmp 0x8dc98
leaq -0xc11(%rbp), %rdi
callq 0x1d390
jmp 0x8dca6
leaq -0xc10(%rbp), %rdi
leaq -0xc11(%rbp), %rsi
leaq -0x8(%rbp), %rdx
callq 0x35710
jmp 0x8dcbf
leaq -0xc10(%rbp), %rdi
callq 0x96b60
movq %rax, -0x11e0(%rbp)
jmp 0x8dcd4
movq -0x11e0(%rbp), %rax
movq %rax, -0xc28(%rbp)
leaq -0xc10(%rbp), %rdi
callq 0x11650
movq %rax, -0x11e8(%rbp)
jmp 0x8dcf7
movq -0x11e8(%rbp), %rax
movl (%rax), %eax
movl -0x8(%rbp), %ecx
subl %ecx, %eax
sete %al
movb %al, -0x11f1(%rbp)
leaq -0xdd9(%rbp), %rdi
movq %rdi, -0x11f0(%rbp)
callq 0x33b0
movq -0x11f0(%rbp), %rdx
leaq 0x159d23(%rip), %rsi    # 0x1e7a52
leaq -0xdd8(%rbp), %rdi
callq 0x10a90
jmp 0x8dd3d
movb -0x11f1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xdb8(%rbp), %rdi
leaq -0xdd8(%rbp), %rdx
callq 0x10f80
jmp 0x8dd5e
leaq 0x14ea80(%rip), %rsi    # 0x1dc7e5
leaq -0xdb8(%rbp), %rdi
callq 0x34320
movq %rax, -0x1200(%rbp)
jmp 0x8dd7a
movq -0x1200(%rbp), %rdi
leaq 0x159ce4(%rip), %rsi    # 0x1e7a6c
callq 0x346f0
movq %rax, -0x1208(%rbp)
jmp 0x8dd96
movq -0x1208(%rbp), %rdi
leaq 0x152a08(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1210(%rbp)
jmp 0x8ddb2
leaq -0xc10(%rbp), %rdi
callq 0x11650
movq %rax, -0x1218(%rbp)
jmp 0x8ddc7
movq -0x1218(%rbp), %rsi
movq -0x1210(%rbp), %rdi
callq 0x343a0
movq %rax, -0x1220(%rbp)
jmp 0x8dde3
movq -0x1220(%rbp), %rdi
leaq 0x14e9f4(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1228(%rbp)
jmp 0x8ddff
movq -0x1228(%rbp), %rdi
leaq 0x159c55(%rip), %rsi    # 0x1e7a62
callq 0x344d0
movq %rax, -0x1230(%rbp)
jmp 0x8de1b
movq -0x1230(%rbp), %rdi
leaq 0x152983(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1238(%rbp)
jmp 0x8de37
movq -0x1238(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1240(%rbp)
jmp 0x8de50
movq -0x1240(%rbp), %rdi
leaq 0x16861d(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8de65
leaq -0xdb8(%rbp), %rdi
callq 0x10ff0
jmp 0x8de73
leaq -0xdd8(%rbp), %rdi
callq 0x3100
leaq -0xdd9(%rbp), %rdi
callq 0x3290
leaq -0xc28(%rbp), %rdi
callq 0x96b90
movq %rax, -0x1248(%rbp)
jmp 0x8dea0
movq -0x1248(%rbp), %rax
movss (%rax), %xmm0
movss -0x4(%rbp), %xmm1
cmpeqss %xmm1, %xmm0
movd %xmm0, %eax
andl $0x1, %eax
movb %al, -0x1251(%rbp)
leaq -0xf91(%rbp), %rdi
movq %rdi, -0x1250(%rbp)
callq 0x33b0
movq -0x1250(%rbp), %rdx
leaq 0x159b96(%rip), %rsi    # 0x1e7a79
leaq -0xf90(%rbp), %rdi
callq 0x10a90
jmp 0x8def1
movb -0x1251(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xf70(%rbp), %rdi
leaq -0xf90(%rbp), %rdx
callq 0x10f80
jmp 0x8df12
leaq 0x14e8cc(%rip), %rsi    # 0x1dc7e5
leaq -0xf70(%rbp), %rdi
callq 0x34320
movq %rax, -0x1260(%rbp)
jmp 0x8df2e
movq -0x1260(%rbp), %rdi
leaq 0x1506db(%rip), %rsi    # 0x1de617
callq 0x36600
movq %rax, -0x1268(%rbp)
jmp 0x8df4a
movq -0x1268(%rbp), %rdi
leaq 0x152854(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1270(%rbp)
jmp 0x8df66
leaq -0xc28(%rbp), %rdi
callq 0x96b90
movq %rax, -0x1278(%rbp)
jmp 0x8df7b
movq -0x1278(%rbp), %rsi
movq -0x1270(%rbp), %rdi
callq 0x96bd0
movq %rax, -0x1280(%rbp)
jmp 0x8df97
movq -0x1280(%rbp), %rdi
leaq 0x14e840(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x1288(%rbp)
jmp 0x8dfb3
movq -0x1288(%rbp), %rdi
leaq 0x159ac4(%rip), %rsi    # 0x1e7a85
callq 0x661c0
movq %rax, -0x1290(%rbp)
jmp 0x8dfcf
movq -0x1290(%rbp), %rdi
leaq 0x1527cf(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x1298(%rbp)
jmp 0x8dfeb
movq -0x1298(%rbp), %rdi
leaq -0x4(%rbp), %rsi
callq 0x96bd0
movq %rax, -0x12a0(%rbp)
jmp 0x8e004
movq -0x12a0(%rbp), %rdi
leaq 0x168469(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x8e019
leaq -0xf70(%rbp), %rdi
callq 0x10ff0
jmp 0x8e027
leaq -0xf90(%rbp), %rdi
callq 0x3100
leaq -0xf91(%rbp), %rdi
callq 0x3290
leaq -0xc10(%rbp), %rdi
callq 0x11610
leaq -0x248(%rbp), %rdi
callq 0x11110
addq $0x12a0, %rsp           # imm = 0x12A0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e0b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e0aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x10ff0
jmp 0x8e0a8
jmp 0x8e0aa
leaq -0x1b8(%rbp), %rdi
callq 0x3100
leaq -0x1b9(%rbp), %rdi
callq 0x3290
jmp 0x8e3d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e134
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e128
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x10ff0
jmp 0x8e126
jmp 0x8e128
leaq -0x490(%rbp), %rdi
callq 0x3100
leaq -0x491(%rbp), %rdi
callq 0x3290
jmp 0x8e3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e19b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e18f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x10ff0
jmp 0x8e18d
jmp 0x8e18f
leaq -0x658(%rbp), %rdi
callq 0x3100
leaq -0x659(%rbp), %rdi
callq 0x3290
jmp 0x8e3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e202
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e1f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x800(%rbp), %rdi
callq 0x10ff0
jmp 0x8e1f4
jmp 0x8e1f6
leaq -0x820(%rbp), %rdi
callq 0x3100
leaq -0x821(%rbp), %rdi
callq 0x3290
jmp 0x8e3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e269
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e25d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0x9c8(%rbp), %rdi
callq 0x10ff0
jmp 0x8e25b
jmp 0x8e25d
leaq -0x9e8(%rbp), %rdi
callq 0x3100
leaq -0x9e9(%rbp), %rdi
callq 0x3290
jmp 0x8e3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e2d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e2c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0xb90(%rbp), %rdi
callq 0x10ff0
jmp 0x8e2c2
jmp 0x8e2c4
leaq -0xbb0(%rbp), %rdi
callq 0x3100
leaq -0xbb1(%rbp), %rdi
callq 0x3290
jmp 0x8e3ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e3be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e34e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e342
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0xdb8(%rbp), %rdi
callq 0x10ff0
jmp 0x8e340
jmp 0x8e342
leaq -0xdd8(%rbp), %rdi
callq 0x3100
leaq -0xdd9(%rbp), %rdi
callq 0x3290
jmp 0x8e3be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e3b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
jmp 0x8e3a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c8(%rbp)
movl %eax, -0x1cc(%rbp)
leaq -0xf70(%rbp), %rdi
callq 0x10ff0
jmp 0x8e3a4
jmp 0x8e3a6
leaq -0xf90(%rbp), %rdi
callq 0x3100
leaq -0xf91(%rbp), %rdi
callq 0x3290
leaq -0xc10(%rbp), %rdi
callq 0x11610
leaq -0x248(%rbp), %rdi
callq 0x11110
movq -0x1c8(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0
nopw (%rax,%rax)