// File: dsharlet[P]array/test/shape.cpp
// Function: nda::test_shape_transpose_body()
TEST(shape_transpose) {
  dense_shape<3> s(3, 5, 8);
  shape<dim<>, dim<>, dense_dim<>> transposed_120 = transpose<1, 2, 0>(s);
  ASSERT_EQ(transposed_120.dim<0>().extent(), 5);
  ASSERT_EQ(transposed_120.dim<1>().extent(), 8);
  ASSERT_EQ(transposed_120.dim<2>().extent(), 3);

  shape<dim<>, dense_dim<>, dim<>> transposed_10 = transpose<1, 0>(s);
  ASSERT_EQ(transposed_10.dim<0>().extent(), 5);
  ASSERT_EQ(transposed_10.dim<1>().extent(), 3);
  ASSERT_EQ(transposed_10.dim<2>().extent(), 8);

  dense_shape<2> reordered = reorder<2, 0>(transposed_120);
  ASSERT_EQ(reordered.dim<0>().extent(), 3);
  ASSERT_EQ(reordered.dim<1>().extent(), 5);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1380, %rsp           # imm = 0x1380
leaq -0x148(%rbp), %rdi
movq %rdi, -0x1078(%rbp)
movl $0x3, %esi
movl $0x5, %edx
movl $0x8, %ecx
callq 0x34640
movq -0x1078(%rbp), %rsi
leaq -0x190(%rbp), %rdi
movq %rdi, -0x1070(%rbp)
callq 0x18b360
movq -0x1070(%rbp), %rdi
callq 0x18b390
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq (%rax), %rax
subq $0x5, %rax
sete %al
movb %al, -0x1061(%rbp)
leaq -0x341(%rbp), %rdi
movq %rdi, -0x1060(%rbp)
callq 0x33b0
movq -0x1060(%rbp), %rdx
leaq 0x77632(%rip), %rsi     # 0x1fbc80
leaq -0x340(%rbp), %rdi
callq 0x10a90
jmp 0x18465c
movb -0x1061(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x320(%rbp), %rdi
leaq -0x340(%rbp), %rdx
callq 0x10f80
jmp 0x18467d
leaq 0x58161(%rip), %rsi     # 0x1dc7e5
leaq -0x320(%rbp), %rdi
callq 0x34320
movq %rax, -0x1080(%rbp)
jmp 0x184699
movq -0x1080(%rbp), %rdi
leaq 0x775ff(%rip), %rsi     # 0x1fbca6
callq 0x59840
movq %rax, -0x1088(%rbp)
jmp 0x1846b5
movq -0x1088(%rbp), %rdi
leaq 0x5c0e9(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1090(%rbp)
jmp 0x1846d1
leaq -0x190(%rbp), %rdi
callq 0x18b390
movq %rax, -0x1098(%rbp)
jmp 0x1846e6
movq -0x1098(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10a0(%rbp)
movq -0x1090(%rbp), %rdi
movq -0x10a0(%rbp), %rax
movq %rax, -0x360(%rbp)
leaq -0x360(%rbp), %rsi
callq 0x34510
movq %rax, -0x10a8(%rbp)
jmp 0x18473b
movq -0x10a8(%rbp), %rdi
leaq 0x5809c(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x10b0(%rbp)
jmp 0x184757
movq -0x10b0(%rbp), %rdi
leaq 0x59ff8(%rip), %rsi     # 0x1de75d
callq 0x34320
movq %rax, -0x10b8(%rbp)
jmp 0x184773
movq -0x10b8(%rbp), %rdi
leaq 0x5c02b(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x10c0(%rbp)
jmp 0x18478f
movq -0x10c0(%rbp), %rdi
movl $0x5, -0x364(%rbp)
leaq -0x364(%rbp), %rsi
callq 0x343a0
movq %rax, -0x10c8(%rbp)
jmp 0x1847b5
movq -0x10c8(%rbp), %rdi
leaq 0x71cb8(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1847ca
leaq -0x320(%rbp), %rdi
callq 0x10ff0
jmp 0x1847d8
leaq -0x340(%rbp), %rdi
callq 0x3100
leaq -0x341(%rbp), %rdi
callq 0x3290
leaq -0x190(%rbp), %rdi
callq 0x18b3b0
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq (%rax), %rax
subq $0x8, %rax
sete %al
movb %al, -0x10d1(%rbp)
leaq -0x519(%rbp), %rdi
movq %rdi, -0x10d0(%rbp)
callq 0x33b0
movq -0x10d0(%rbp), %rdx
leaq 0x77480(%rip), %rsi     # 0x1fbcc7
leaq -0x518(%rbp), %rdi
callq 0x10a90
jmp 0x184855
movb -0x10d1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x4f8(%rbp), %rdi
leaq -0x518(%rbp), %rdx
callq 0x10f80
jmp 0x184876
leaq 0x57f68(%rip), %rsi     # 0x1dc7e5
leaq -0x4f8(%rbp), %rdi
callq 0x34320
movq %rax, -0x10e0(%rbp)
jmp 0x184892
movq -0x10e0(%rbp), %rdi
leaq 0x7744d(%rip), %rsi     # 0x1fbced
callq 0x59840
movq %rax, -0x10e8(%rbp)
jmp 0x1848ae
movq -0x10e8(%rbp), %rdi
leaq 0x5bef0(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x10f0(%rbp)
jmp 0x1848ca
leaq -0x190(%rbp), %rdi
callq 0x18b3b0
movq %rax, -0x10f8(%rbp)
jmp 0x1848df
movq -0x10f8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1100(%rbp)
movq -0x10f0(%rbp), %rdi
movq -0x1100(%rbp), %rax
movq %rax, -0x528(%rbp)
leaq -0x528(%rbp), %rsi
callq 0x34510
movq %rax, -0x1108(%rbp)
jmp 0x184934
movq -0x1108(%rbp), %rdi
leaq 0x57ea3(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x1110(%rbp)
jmp 0x184950
movq -0x1110(%rbp), %rdi
leaq 0x7738d(%rip), %rsi     # 0x1fbceb
callq 0x34320
movq %rax, -0x1118(%rbp)
jmp 0x18496c
movq -0x1118(%rbp), %rdi
leaq 0x5be32(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1120(%rbp)
jmp 0x184988
movq -0x1120(%rbp), %rdi
movl $0x8, -0x52c(%rbp)
leaq -0x52c(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1128(%rbp)
jmp 0x1849ae
movq -0x1128(%rbp), %rdi
leaq 0x71abf(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1849c3
leaq -0x4f8(%rbp), %rdi
callq 0x10ff0
jmp 0x1849d1
leaq -0x518(%rbp), %rdi
callq 0x3100
leaq -0x519(%rbp), %rdi
callq 0x3290
leaq -0x190(%rbp), %rdi
callq 0x18b3d0
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq (%rax), %rax
subq $0x3, %rax
sete %al
movb %al, -0x1131(%rbp)
leaq -0x6e1(%rbp), %rdi
movq %rdi, -0x1130(%rbp)
callq 0x33b0
movq -0x1130(%rbp), %rdx
leaq 0x772ce(%rip), %rsi     # 0x1fbd0e
leaq -0x6e0(%rbp), %rdi
callq 0x10a90
jmp 0x184a4e
movb -0x1131(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x6c0(%rbp), %rdi
leaq -0x6e0(%rbp), %rdx
callq 0x10f80
jmp 0x184a6f
leaq 0x57d6f(%rip), %rsi     # 0x1dc7e5
leaq -0x6c0(%rbp), %rdi
callq 0x34320
movq %rax, -0x1140(%rbp)
jmp 0x184a8b
movq -0x1140(%rbp), %rdi
leaq 0x7729b(%rip), %rsi     # 0x1fbd34
callq 0x59840
movq %rax, -0x1148(%rbp)
jmp 0x184aa7
movq -0x1148(%rbp), %rdi
leaq 0x5bcf7(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1150(%rbp)
jmp 0x184ac3
leaq -0x190(%rbp), %rdi
callq 0x18b3d0
movq %rax, -0x1158(%rbp)
jmp 0x184ad8
movq -0x1158(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1160(%rbp)
movq -0x1150(%rbp), %rdi
movq -0x1160(%rbp), %rax
movq %rax, -0x6f0(%rbp)
leaq -0x6f0(%rbp), %rsi
callq 0x34510
movq %rax, -0x1168(%rbp)
jmp 0x184b2d
movq -0x1168(%rbp), %rdi
leaq 0x57caa(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x1170(%rbp)
jmp 0x184b49
movq -0x1170(%rbp), %rdi
leaq 0x62703(%rip), %rsi     # 0x1e725a
callq 0x34320
movq %rax, -0x1178(%rbp)
jmp 0x184b65
movq -0x1178(%rbp), %rdi
leaq 0x5bc39(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1180(%rbp)
jmp 0x184b81
movq -0x1180(%rbp), %rdi
movl $0x3, -0x6f4(%rbp)
leaq -0x6f4(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1188(%rbp)
jmp 0x184ba7
movq -0x1188(%rbp), %rdi
leaq 0x718c6(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x184bbc
leaq -0x6c0(%rbp), %rdi
callq 0x10ff0
jmp 0x184bca
leaq -0x6e0(%rbp), %rdi
callq 0x3100
leaq -0x6e1(%rbp), %rdi
callq 0x3290
leaq -0x740(%rbp), %rdi
movq %rdi, -0x11a0(%rbp)
leaq -0x148(%rbp), %rsi
callq 0x18b3f0
movq -0x11a0(%rbp), %rdi
callq 0x18b420
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq (%rax), %rax
subq $0x5, %rax
sete %al
movb %al, -0x1191(%rbp)
leaq -0x8f1(%rbp), %rdi
movq %rdi, -0x1190(%rbp)
callq 0x33b0
movq -0x1190(%rbp), %rdx
leaq 0x77102(%rip), %rsi     # 0x1fbd55
leaq -0x8f0(%rbp), %rdi
callq 0x10a90
jmp 0x184c61
movb -0x1191(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x8d0(%rbp), %rdi
leaq -0x8f0(%rbp), %rdx
callq 0x10f80
jmp 0x184c82
leaq 0x57b5c(%rip), %rsi     # 0x1dc7e5
leaq -0x8d0(%rbp), %rdi
callq 0x34320
movq %rax, -0x11a8(%rbp)
jmp 0x184c9e
movq -0x11a8(%rbp), %rdi
leaq 0x770ce(%rip), %rsi     # 0x1fbd7a
callq 0x10c350
movq %rax, -0x11b0(%rbp)
jmp 0x184cba
movq -0x11b0(%rbp), %rdi
leaq 0x5bae4(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x11b8(%rbp)
jmp 0x184cd6
leaq -0x740(%rbp), %rdi
callq 0x18b420
movq %rax, -0x11c0(%rbp)
jmp 0x184ceb
movq -0x11c0(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x11c8(%rbp)
movq -0x11b8(%rbp), %rdi
movq -0x11c8(%rbp), %rax
movq %rax, -0x900(%rbp)
leaq -0x900(%rbp), %rsi
callq 0x34510
movq %rax, -0x11d0(%rbp)
jmp 0x184d40
movq -0x11d0(%rbp), %rdi
leaq 0x57a97(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x11d8(%rbp)
jmp 0x184d5c
movq -0x11d8(%rbp), %rdi
leaq 0x599f3(%rip), %rsi     # 0x1de75d
callq 0x34320
movq %rax, -0x11e0(%rbp)
jmp 0x184d78
movq -0x11e0(%rbp), %rdi
leaq 0x5ba26(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x11e8(%rbp)
jmp 0x184d94
movq -0x11e8(%rbp), %rdi
movl $0x5, -0x904(%rbp)
leaq -0x904(%rbp), %rsi
callq 0x343a0
movq %rax, -0x11f0(%rbp)
jmp 0x184dba
movq -0x11f0(%rbp), %rdi
leaq 0x716b3(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x184dcf
leaq -0x8d0(%rbp), %rdi
callq 0x10ff0
jmp 0x184ddd
leaq -0x8f0(%rbp), %rdi
callq 0x3100
leaq -0x8f1(%rbp), %rdi
callq 0x3290
leaq -0x740(%rbp), %rdi
callq 0x18b440
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq (%rax), %rax
subq $0x3, %rax
sete %al
movb %al, -0x11f9(%rbp)
leaq -0xab9(%rbp), %rdi
movq %rdi, -0x11f8(%rbp)
callq 0x33b0
movq -0x11f8(%rbp), %rdx
leaq 0x76f4e(%rip), %rsi     # 0x1fbd9a
leaq -0xab8(%rbp), %rdi
callq 0x10a90
jmp 0x184e5a
movb -0x11f9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xa98(%rbp), %rdi
leaq -0xab8(%rbp), %rdx
callq 0x10f80
jmp 0x184e7b
leaq 0x57963(%rip), %rsi     # 0x1dc7e5
leaq -0xa98(%rbp), %rdi
callq 0x34320
movq %rax, -0x1208(%rbp)
jmp 0x184e97
movq -0x1208(%rbp), %rdi
leaq 0x76f1a(%rip), %rsi     # 0x1fbdbf
callq 0x10c350
movq %rax, -0x1210(%rbp)
jmp 0x184eb3
movq -0x1210(%rbp), %rdi
leaq 0x5b8eb(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1218(%rbp)
jmp 0x184ecf
leaq -0x740(%rbp), %rdi
callq 0x18b440
movq %rax, -0x1220(%rbp)
jmp 0x184ee4
movq -0x1220(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1228(%rbp)
movq -0x1218(%rbp), %rdi
movq -0x1228(%rbp), %rax
movq %rax, -0xac8(%rbp)
leaq -0xac8(%rbp), %rsi
callq 0x34510
movq %rax, -0x1230(%rbp)
jmp 0x184f39
movq -0x1230(%rbp), %rdi
leaq 0x5789e(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x1238(%rbp)
jmp 0x184f55
movq -0x1238(%rbp), %rdi
leaq 0x622f7(%rip), %rsi     # 0x1e725a
callq 0x34320
movq %rax, -0x1240(%rbp)
jmp 0x184f71
movq -0x1240(%rbp), %rdi
leaq 0x5b82d(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1248(%rbp)
jmp 0x184f8d
movq -0x1248(%rbp), %rdi
movl $0x3, -0xacc(%rbp)
leaq -0xacc(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1250(%rbp)
jmp 0x184fb3
movq -0x1250(%rbp), %rdi
leaq 0x714ba(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x184fc8
leaq -0xa98(%rbp), %rdi
callq 0x10ff0
jmp 0x184fd6
leaq -0xab8(%rbp), %rdi
callq 0x3100
leaq -0xab9(%rbp), %rdi
callq 0x3290
leaq -0x740(%rbp), %rdi
callq 0x18b460
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
subq $0x8, %rax
sete %al
movb %al, -0x1259(%rbp)
leaq -0xc81(%rbp), %rdi
movq %rdi, -0x1258(%rbp)
callq 0x33b0
movq -0x1258(%rbp), %rdx
leaq 0x76d9a(%rip), %rsi     # 0x1fbddf
leaq -0xc80(%rbp), %rdi
callq 0x10a90
jmp 0x185053
movb -0x1259(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xc60(%rbp), %rdi
leaq -0xc80(%rbp), %rdx
callq 0x10f80
jmp 0x185074
leaq 0x5776a(%rip), %rsi     # 0x1dc7e5
leaq -0xc60(%rbp), %rdi
callq 0x34320
movq %rax, -0x1268(%rbp)
jmp 0x185090
movq -0x1268(%rbp), %rdi
leaq 0x76d66(%rip), %rsi     # 0x1fbe04
callq 0x10c350
movq %rax, -0x1270(%rbp)
jmp 0x1850ac
movq -0x1270(%rbp), %rdi
leaq 0x5b6f2(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1278(%rbp)
jmp 0x1850c8
leaq -0x740(%rbp), %rdi
callq 0x18b460
movq %rax, -0x1280(%rbp)
jmp 0x1850dd
movq -0x1280(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1288(%rbp)
movq -0x1278(%rbp), %rdi
movq -0x1288(%rbp), %rax
movq %rax, -0xc90(%rbp)
leaq -0xc90(%rbp), %rsi
callq 0x34510
movq %rax, -0x1290(%rbp)
jmp 0x185132
movq -0x1290(%rbp), %rdi
leaq 0x576a5(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x1298(%rbp)
jmp 0x18514e
movq -0x1298(%rbp), %rdi
leaq 0x76b8f(%rip), %rsi     # 0x1fbceb
callq 0x34320
movq %rax, -0x12a0(%rbp)
jmp 0x18516a
movq -0x12a0(%rbp), %rdi
leaq 0x5b634(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x12a8(%rbp)
jmp 0x185186
movq -0x12a8(%rbp), %rdi
movl $0x8, -0xc94(%rbp)
leaq -0xc94(%rbp), %rsi
callq 0x343a0
movq %rax, -0x12b0(%rbp)
jmp 0x1851ac
movq -0x12b0(%rbp), %rdi
leaq 0x712c1(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1851c1
leaq -0xc60(%rbp), %rdi
callq 0x10ff0
jmp 0x1851cf
leaq -0xc80(%rbp), %rdi
callq 0x3100
leaq -0xc81(%rbp), %rdi
callq 0x3290
leaq -0xcc8(%rbp), %rdi
movq %rdi, -0x12c8(%rbp)
leaq -0x190(%rbp), %rsi
callq 0x18b480
movq -0x12c8(%rbp), %rdi
callq 0x18b530
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
subq $0x3, %rax
sete %al
movb %al, -0x12b9(%rbp)
leaq -0xe79(%rbp), %rdi
movq %rdi, -0x12b8(%rbp)
callq 0x33b0
movq -0x12b8(%rbp), %rdx
leaq 0x76bcc(%rip), %rsi     # 0x1fbe24
leaq -0xe78(%rbp), %rdi
callq 0x10a90
jmp 0x185266
movb -0x12b9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0xe58(%rbp), %rdi
leaq -0xe78(%rbp), %rdx
callq 0x10f80
jmp 0x185287
leaq 0x57557(%rip), %rsi     # 0x1dc7e5
leaq -0xe58(%rbp), %rdi
callq 0x34320
movq %rax, -0x12d0(%rbp)
jmp 0x1852a3
movq -0x12d0(%rbp), %rdi
leaq 0x76b94(%rip), %rsi     # 0x1fbe45
callq 0x7f8f0
movq %rax, -0x12d8(%rbp)
jmp 0x1852bf
movq -0x12d8(%rbp), %rdi
leaq 0x5b4df(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x12e0(%rbp)
jmp 0x1852db
leaq -0xcc8(%rbp), %rdi
callq 0x18b530
movq %rax, -0x12e8(%rbp)
jmp 0x1852f0
movq -0x12e8(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x12f0(%rbp)
movq -0x12e0(%rbp), %rdi
movq -0x12f0(%rbp), %rax
movq %rax, -0xe88(%rbp)
leaq -0xe88(%rbp), %rsi
callq 0x34510
movq %rax, -0x12f8(%rbp)
jmp 0x185345
movq -0x12f8(%rbp), %rdi
leaq 0x57492(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x1300(%rbp)
jmp 0x185361
movq -0x1300(%rbp), %rdi
leaq 0x61eeb(%rip), %rsi     # 0x1e725a
callq 0x34320
movq %rax, -0x1308(%rbp)
jmp 0x18537d
movq -0x1308(%rbp), %rdi
leaq 0x5b421(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1310(%rbp)
jmp 0x185399
movq -0x1310(%rbp), %rdi
movl $0x3, -0xe8c(%rbp)
leaq -0xe8c(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1318(%rbp)
jmp 0x1853bf
movq -0x1318(%rbp), %rdi
leaq 0x710ae(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1853d4
leaq -0xe58(%rbp), %rdi
callq 0x10ff0
jmp 0x1853e2
leaq -0xe78(%rbp), %rdi
callq 0x3100
leaq -0xe79(%rbp), %rdi
callq 0x3290
leaq -0xcc8(%rbp), %rdi
callq 0x18b550
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
subq $0x5, %rax
sete %al
movb %al, -0x1321(%rbp)
leaq -0x1041(%rbp), %rdi
movq %rdi, -0x1320(%rbp)
callq 0x33b0
movq -0x1320(%rbp), %rdx
leaq 0x76a10(%rip), %rsi     # 0x1fbe61
leaq -0x1040(%rbp), %rdi
callq 0x10a90
jmp 0x18545f
movb -0x1321(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x1020(%rbp), %rdi
leaq -0x1040(%rbp), %rdx
callq 0x10f80
jmp 0x185480
leaq 0x5735e(%rip), %rsi     # 0x1dc7e5
leaq -0x1020(%rbp), %rdi
callq 0x34320
movq %rax, -0x1330(%rbp)
jmp 0x18549c
movq -0x1330(%rbp), %rdi
leaq 0x769d8(%rip), %rsi     # 0x1fbe82
callq 0x7f8f0
movq %rax, -0x1338(%rbp)
jmp 0x1854b8
movq -0x1338(%rbp), %rdi
leaq 0x5b2e6(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1340(%rbp)
jmp 0x1854d4
leaq -0xcc8(%rbp), %rdi
callq 0x18b550
movq %rax, -0x1348(%rbp)
jmp 0x1854e9
movq -0x1348(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x1350(%rbp)
movq -0x1340(%rbp), %rdi
movq -0x1350(%rbp), %rax
movq %rax, -0x1050(%rbp)
leaq -0x1050(%rbp), %rsi
callq 0x34510
movq %rax, -0x1358(%rbp)
jmp 0x18553e
movq -0x1358(%rbp), %rdi
leaq 0x57299(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x1360(%rbp)
jmp 0x18555a
movq -0x1360(%rbp), %rdi
leaq 0x591f5(%rip), %rsi     # 0x1de75d
callq 0x34320
movq %rax, -0x1368(%rbp)
jmp 0x185576
movq -0x1368(%rbp), %rdi
leaq 0x5b228(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x1370(%rbp)
jmp 0x185592
movq -0x1370(%rbp), %rdi
movl $0x5, -0x1054(%rbp)
leaq -0x1054(%rbp), %rsi
callq 0x343a0
movq %rax, -0x1378(%rbp)
jmp 0x1855b8
movq -0x1378(%rbp), %rdi
leaq 0x70eb5(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x1855cd
leaq -0x1020(%rbp), %rdi
callq 0x10ff0
jmp 0x1855db
leaq -0x1040(%rbp), %rdi
callq 0x3100
leaq -0x1041(%rbp), %rdi
callq 0x3290
addq $0x1380, %rsp           # imm = 0x1380
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185652
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185646
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x10ff0
jmp 0x185644
jmp 0x185646
leaq -0x340(%rbp), %rdi
callq 0x3100
leaq -0x341(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x1856b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x1856ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x10ff0
jmp 0x1856ab
jmp 0x1856ad
leaq -0x518(%rbp), %rdi
callq 0x3100
leaq -0x519(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185720
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185714
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x6c0(%rbp), %rdi
callq 0x10ff0
jmp 0x185712
jmp 0x185714
leaq -0x6e0(%rbp), %rdi
callq 0x3100
leaq -0x6e1(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185787
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x18577b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x8d0(%rbp), %rdi
callq 0x10ff0
jmp 0x185779
jmp 0x18577b
leaq -0x8f0(%rbp), %rdi
callq 0x3100
leaq -0x8f1(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x1857ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x1857e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0xa98(%rbp), %rdi
callq 0x10ff0
jmp 0x1857e0
jmp 0x1857e2
leaq -0xab8(%rbp), %rdi
callq 0x3100
leaq -0xab9(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185855
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185849
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0xc60(%rbp), %rdi
callq 0x10ff0
jmp 0x185847
jmp 0x185849
leaq -0xc80(%rbp), %rdi
callq 0x3100
leaq -0xc81(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x1858bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x1858b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0xe58(%rbp), %rdi
callq 0x10ff0
jmp 0x1858ae
jmp 0x1858b0
leaq -0xe78(%rbp), %rdi
callq 0x3100
leaq -0xe79(%rbp), %rdi
callq 0x3290
jmp 0x18592c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185920
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
jmp 0x185914
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x350(%rbp)
movl %eax, -0x354(%rbp)
leaq -0x1020(%rbp), %rdi
callq 0x10ff0
jmp 0x185912
jmp 0x185914
leaq -0x1040(%rbp), %rdi
callq 0x3100
leaq -0x1041(%rbp), %rdi
callq 0x3290
movq -0x350(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0