// File: /workspace/github_cpp_makefile_star2_O2/dsharlet[P]array/test/image.cpp
// Function: void nda::test_crop<nda::shape<nda::dim<-9l, -9l, 1l>, nda::dim<-9l, -9l, -9l>, nda::dim<-9l, -9l, -9l>>>()
void test_crop() {
  array<int, Shape> base({100, 80, 3});
  fill_pattern(base);

  auto crop_xy = crop(base, 2, 1, 96, 77, crop_origin::crop);
  ASSERT_EQ(crop_xy.x().min(), 2);
  ASSERT_EQ(crop_xy.y().min(), 1);
  ASSERT_EQ(crop_xy.x().max(), 95);
  ASSERT_EQ(crop_xy.y().max(), 76);
  check_pattern(crop_xy);

  auto crop_zero_xy = crop(base, 3, 2, 95, 76, crop_origin::zero);
  ASSERT_EQ(crop_zero_xy.x().min(), 0);
  ASSERT_EQ(crop_zero_xy.y().min(), 0);
  ASSERT_EQ(crop_zero_xy.x().max(), 91);
  ASSERT_EQ(crop_zero_xy.y().max(), 73);
  check_pattern(crop_zero_xy, std::make_tuple(3, 2, 0));

  auto crop2_xy = crop(crop_xy, 4, 3, 92, 73, crop_origin::crop);
  ASSERT_EQ(crop2_xy.x().min(), 4);
  ASSERT_EQ(crop2_xy.y().min(), 3);
  ASSERT_EQ(crop2_xy.x().max(), 91);
  ASSERT_EQ(crop2_xy.y().max(), 72);
  check_pattern(crop2_xy);

  auto out_of_bounds_crop_xy = crop(base, 50, 40, 105, 70, crop_origin::crop);
  ASSERT_EQ(out_of_bounds_crop_xy.x().min(), 50);
  ASSERT_EQ(out_of_bounds_crop_xy.y().min(), 40);
  ASSERT_EQ(out_of_bounds_crop_xy.x().max(), 99);
  ASSERT_EQ(out_of_bounds_crop_xy.y().max(), 69);
  check_pattern(crop2_xy);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x378, %rsp            # imm = 0x378
leaq 0x180(%rsp), %rbx
pushq $0x64
popq %rsi
pushq $0x50
popq %rdx
pushq $0x3
popq %rcx
movq %rbx, %rdi
callq 0x10810
leaq 0x310(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6750
movq %r14, %rdi
xorl %esi, %esi
callq 0x51520
movl $0x1, (%rsp)
leaq 0x130(%rsp), %rdi
leaq 0x310(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x60
popq %r8
pushq $0x4d
popq %r9
callq 0x5154e
movq 0x168(%rsp), %rbx
leaq 0x50c27(%rip), %rsi     # 0x9ecb6
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
cmpq $0x2, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x6894
leaq 0x3f580(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50de9(%rip), %rsi     # 0x9eec4
movq %rax, %rdi
callq 0x118c8
leaq 0x43508(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x168(%rsp), %rcx
leaq 0x90(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3f533(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x4825d(%rip), %rsi     # 0x96380
movq %rax, %rdi
callq 0x106fe
leaq 0x434c0(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x40(%rsp), %rsi
movl $0x2, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x5714e(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0xe0(%rsp), %rdi
callq 0x2090
movq 0x150(%rsp), %rbx
leaq 0x50b48(%rip), %rsi     # 0x9eccd
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
cmpq $0x1, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x6894
leaq 0x3f48a(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50d39(%rip), %rsi     # 0x9ef0a
movq %rax, %rdi
callq 0x118c8
leaq 0x43412(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x150(%rsp), %rcx
leaq 0x90(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3f43d(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x46ae3(%rip), %rsi     # 0x94cfc
movq %rax, %rdi
callq 0x106fe
leaq 0x433ca(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x40(%rsp), %rsi
movl $0x1, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x57058(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0xe0(%rsp), %rdi
callq 0x2090
movq 0x168(%rsp), %r14
movq 0x170(%rsp), %rbx
leaq 0x50a61(%rip), %rsi     # 0x9ece4
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x60, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x6894
leaq 0x3f389(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50c7e(%rip), %rsi     # 0x9ef50
movq %rax, %rdi
callq 0x118c8
leaq 0x43311(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x168(%rsp), %rcx
movq 0x170(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x90(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3f32e(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x509d1(%rip), %rsi     # 0x9ecf9
movq %rax, %rdi
callq 0x10896
leaq 0x432bb(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x40(%rsp), %rsi
movl $0x5f, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x56f49(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0xe0(%rsp), %rdi
callq 0x2090
movq 0x150(%rsp), %r14
movq 0x158(%rsp), %rbx
leaq 0x5096a(%rip), %rsi     # 0x9ecfc
leaq 0xe0(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x4d, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x6894
leaq 0x3f27a(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50bb5(%rip), %rsi     # 0x9ef96
movq %rax, %rdi
callq 0x118c8
leaq 0x43202(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x150(%rsp), %rcx
movq 0x158(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x90(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3f21f(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x508da(%rip), %rsi     # 0x9ed11
movq %rax, %rdi
callq 0x10896
leaq 0x431ac(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x40(%rsp), %rsi
movl $0x4c, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x56e3a(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0xe0(%rsp), %rdi
callq 0x2090
xorps %xmm0, %xmm0
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
andq $0x0, 0x10(%rsi)
leaq 0x130(%rsp), %rdi
callq 0x51592
andl $0x0, (%rsp)
leaq 0xe0(%rsp), %rdi
leaq 0x310(%rsp), %rsi
pushq $0x3
popq %rdx
pushq $0x2
popq %rcx
pushq $0x5f
popq %r8
pushq $0x4c
popq %r9
callq 0x5154e
movq 0x118(%rsp), %rbx
leaq 0x50834(%rip), %rsi     # 0x9ed14
leaq 0x90(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
testq %rbx, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x6894
leaq 0x3f130(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50805(%rip), %rsi     # 0x9ed30
movq %rax, %rdi
callq 0x11256
leaq 0x430b8(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x118(%rsp), %rcx
leaq 0x40(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3f0e6(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x40c80(%rip), %rsi     # 0x8f1f0
movq %rax, %rdi
callq 0x106fe
leaq 0x43073(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x20(%rsp), %rsi
andl $0x0, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x56d04(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x90(%rsp), %rdi
callq 0x2090
movq 0x100(%rsp), %rbx
leaq 0x50778(%rip), %rsi     # 0x9ed47
leaq 0x90(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
testq %rbx, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x6894
leaq 0x3f041(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50749(%rip), %rsi     # 0x9ed63
movq %rax, %rdi
callq 0x11256
leaq 0x42fc9(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x100(%rsp), %rcx
leaq 0x40(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3eff7(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x40b91(%rip), %rsi     # 0x8f1f0
movq %rax, %rdi
callq 0x106fe
leaq 0x42f84(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x20(%rsp), %rsi
andl $0x0, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x56c15(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x90(%rsp), %rdi
callq 0x2090
movq 0x118(%rsp), %r14
movq 0x120(%rsp), %rbx
leaq 0x506b4(%rip), %rsi     # 0x9ed7a
leaq 0x90(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x5c, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x6894
leaq 0x3ef46(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50682(%rip), %rsi     # 0x9ed97
movq %rax, %rdi
callq 0x11256
leaq 0x42ece(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x118(%rsp), %rcx
movq 0x120(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x40(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3eeee(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x506e6(%rip), %rsi     # 0x9ee4e
movq %rax, %rdi
callq 0x10896
leaq 0x42e7b(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x20(%rsp), %rsi
movl $0x5b, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x56b09(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x90(%rsp), %rdi
callq 0x2090
movq 0x100(%rsp), %r14
movq 0x108(%rsp), %rbx
leaq 0x505dc(%rip), %rsi     # 0x9edae
leaq 0x90(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x4a, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x6894
leaq 0x3ee3a(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x505aa(%rip), %rsi     # 0x9edcb
movq %rax, %rdi
callq 0x11256
leaq 0x42dc2(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x100(%rsp), %rcx
movq 0x108(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x40(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3ede2(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x50554(%rip), %rsi     # 0x9edc8
movq %rax, %rdi
callq 0x10896
leaq 0x42d6f(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x20(%rsp), %rsi
movl $0x49, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x569fd(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x90(%rsp), %rdi
callq 0x2090
leaq 0x180(%rsp), %rsi
andq $0x0, (%rsi)
movq $0x2, 0x8(%rsi)
movq $0x3, 0x10(%rsi)
leaq 0xe0(%rsp), %rdi
callq 0x51592
movl $0x1, (%rsp)
leaq 0x90(%rsp), %rdi
leaq 0x130(%rsp), %rsi
pushq $0x4
popq %rdx
pushq $0x3
popq %rcx
pushq $0x5c
popq %r8
pushq $0x49
popq %r9
callq 0x515b3
movq 0xc8(%rsp), %rbx
leaq 0x504b9(%rip), %rsi     # 0x9ede2
leaq 0x40(%rsp), %rdi
leaq 0x14(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
cmpq $0x4, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x6894
leaq 0x3ecec(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x5048b(%rip), %rsi     # 0x9edfa
movq %rax, %rdi
callq 0x109ce
leaq 0x42c74(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0xc8(%rsp), %rcx
leaq 0x20(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3eca2(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x439c0(%rip), %rsi     # 0x92374
movq %rax, %rdi
callq 0x106fe
leaq 0x42c2f(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x18(%rsp), %rsi
movl $0x4, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x568bd(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x40(%rsp), %rdi
callq 0x2090
movq 0xb0(%rsp), %rbx
leaq 0x503fa(%rip), %rsi     # 0x9ee0d
leaq 0x40(%rsp), %rdi
leaq 0x14(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
cmpq $0x3, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x6894
leaq 0x3ec02(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x503cc(%rip), %rsi     # 0x9ee25
movq %rax, %rdi
callq 0x109ce
leaq 0x42b8a(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0xb0(%rsp), %rcx
leaq 0x20(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3ebb8(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x4944b(%rip), %rsi     # 0x97ee9
movq %rax, %rdi
callq 0x106fe
leaq 0x42b45(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x18(%rsp), %rsi
movl $0x3, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x567d3(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x40(%rsp), %rdi
callq 0x2090
movq 0xc8(%rsp), %r14
movq 0xd0(%rsp), %rbx
leaq 0x50333(%rip), %rsi     # 0x9ee38
leaq 0x40(%rsp), %rdi
leaq 0x14(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x5c, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x6894
leaq 0x3eb0d(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50303(%rip), %rsi     # 0x9ee51
movq %rax, %rdi
callq 0x109ce
leaq 0x42a95(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0xc8(%rsp), %rcx
movq 0xd0(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x20(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3eab5(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x502ad(%rip), %rsi     # 0x9ee4e
movq %rax, %rdi
callq 0x10896
leaq 0x42a42(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x18(%rsp), %rsi
movl $0x5b, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x566d0(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x40(%rsp), %rdi
callq 0x2090
movq 0xb0(%rsp), %r14
movq 0xb8(%rsp), %rbx
leaq 0x5025c(%rip), %rsi     # 0x9ee64
leaq 0x40(%rsp), %rdi
leaq 0x14(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x49, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x6894
leaq 0x3ea0a(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x5022c(%rip), %rsi     # 0x9ee7d
movq %rax, %rdi
callq 0x109ce
leaq 0x42992(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0xb0(%rsp), %rcx
movq 0xb8(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x20(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3e9b2(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x501d6(%rip), %rsi     # 0x9ee7a
movq %rax, %rdi
callq 0x10896
leaq 0x4293f(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x18(%rsp), %rsi
movl $0x48, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x565cd(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x40(%rsp), %rdi
callq 0x2090
xorps %xmm0, %xmm0
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
andq $0x0, 0x10(%rsi)
leaq 0x90(%rsp), %rdi
callq 0x51592
movl $0x1, (%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x310(%rsp), %rsi
pushq $0x32
popq %rdx
pushq $0x28
popq %rcx
pushq $0x69
popq %r8
pushq $0x46
popq %r9
callq 0x5154e
movq 0x78(%rsp), %rbx
leaq 0x50149(%rip), %rsi     # 0x9ee90
leaq 0x20(%rsp), %rdi
leaq 0x13(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
cmpq $0x32, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x6894
leaq 0x3e8ce(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x50129(%rip), %rsi     # 0x9eeb6
movq %rax, %rdi
callq 0x516d4
leaq 0x42856(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x78(%rsp), %rcx
leaq 0x18(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3e887(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x5b334(%rip), %rsi     # 0xaa103
movq %rax, %rdi
callq 0x10896
leaq 0x42814(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x14(%rsp), %rsi
movl $0x32, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x564a2(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x20(%rsp), %rdi
callq 0x2090
movq 0x60(%rsp), %rbx
leaq 0x500ab(%rip), %rsi     # 0x9eed6
leaq 0x20(%rsp), %rdi
leaq 0x13(%rsp), %rdx
callq 0x66a0
xorl %esi, %esi
cmpq $0x28, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x6894
leaq 0x3e7ea(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x5008b(%rip), %rsi     # 0x9eefc
movq %rax, %rdi
callq 0x516d4
leaq 0x42772(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x60(%rsp), %rcx
leaq 0x18(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3e7a3(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x50046(%rip), %rsi     # 0x9eef9
movq %rax, %rdi
callq 0x10896
leaq 0x42730(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x14(%rsp), %rsi
movl $0x28, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x563be(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x20(%rsp), %rdi
callq 0x2090
movq 0x78(%rsp), %r14
movq 0x80(%rsp), %rbx
leaq 0x50005(%rip), %rsi     # 0x9ef1c
leaq 0x20(%rsp), %rdi
leaq 0x13(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x64, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x6894
leaq 0x3e6fb(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x4ffe2(%rip), %rsi     # 0x9ef42
movq %rax, %rdi
callq 0x516d4
leaq 0x42683(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x18(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3e6a6(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x4ff8f(%rip), %rsi     # 0x9ef3f
movq %rax, %rdi
callq 0x10896
leaq 0x42633(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x14(%rsp), %rsi
movl $0x63, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x562c1(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x20(%rsp), %rdi
callq 0x2090
movq 0x60(%rsp), %r14
movq 0x68(%rsp), %rbx
leaq 0x4ff51(%rip), %rsi     # 0x9ef62
leaq 0x20(%rsp), %rdi
leaq 0x13(%rsp), %rdx
callq 0x66a0
addq %r14, %rbx
xorl %esi, %esi
cmpq $0x46, %rbx
sete %sil
leaq 0x180(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x6894
leaq 0x3e601(%rip), %rsi     # 0x8d647
leaq 0x180(%rsp), %rdi
callq 0x106fe
leaq 0x4ff2e(%rip), %rsi     # 0x9ef88
movq %rax, %rdi
callq 0x516d4
leaq 0x42589(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x60(%rsp), %rcx
movq 0x68(%rsp), %rdx
addq %rdx, %rcx
decq %rcx
leaq 0x18(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x107ba
leaq 0x3e5af(%rip), %rsi     # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x4fede(%rip), %rsi     # 0x9ef85
movq %rax, %rdi
callq 0x10896
leaq 0x4253c(%rip), %rsi     # 0x915f2
movq %rax, %rdi
callq 0x106fe
leaq 0x14(%rsp), %rsi
movl $0x45, (%rsi)
movq %rax, %rdi
callq 0x10736
leaq 0x561ca(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x20(%rsp), %rdi
callq 0x2090
xorps %xmm0, %xmm0
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
andq $0x0, 0x10(%rsi)
leaq 0x90(%rsp), %rdi
callq 0x51592
leaq 0x310(%rsp), %rdi
callq 0x69c2
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r14
retq
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
jmp 0x4f15f
movq %rax, %rbx
jmp 0x4f376
jmp 0x4f233
jmp 0x4f181
jmp 0x4f245
jmp 0x4f181
jmp 0x4f257
jmp 0x4f181
jmp 0x4f269
movq %rax, %rbx
jmp 0x4f279
jmp 0x4f283
jmp 0x4f1a3
jmp 0x4f295
jmp 0x4f1a3
jmp 0x4f2a7
jmp 0x4f1a3
jmp 0x4f2b9
movq %rax, %rbx
jmp 0x4f2c9
jmp 0x4f2d3
jmp 0x4f1c5
jmp 0x4f2e5
jmp 0x4f1c5
jmp 0x4f2f7
jmp 0x4f1c5
jmp 0x4f309
movq %rax, %rbx
jmp 0x4f319
jmp 0x4f323
jmp 0x4f1e7
jmp 0x4f335
jmp 0x4f1e7
jmp 0x4f347
jmp 0x4f1e7
jmp 0x4f359
movq %rax, %rbx
jmp 0x4f369
jmp 0x4f233
jmp 0x4f245
jmp 0x4f257
jmp 0x4f269
jmp 0x4f283
jmp 0x4f295
jmp 0x4f2a7
jmp 0x4f2b9
jmp 0x4f2d3
jmp 0x4f2e5
jmp 0x4f2f7
jmp 0x4f309
jmp 0x4f323
jmp 0x4f335
jmp 0x4f347
jmp 0x4f359
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f279
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f279
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f279
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x20(%rsp), %rdi
jmp 0x4f371
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f2c9
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f2c9
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f2c9
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x40(%rsp), %rdi
jmp 0x4f371
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f319
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f319
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f319
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0x90(%rsp), %rdi
jmp 0x4f371
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f369
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f369
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
jmp 0x4f369
movq %rax, %rbx
leaq 0x180(%rsp), %rdi
callq 0x68d4
leaq 0xe0(%rsp), %rdi
callq 0x2090
leaq 0x310(%rsp), %rdi
callq 0x69c2
movq %rbx, %rdi
callq 0x22f0
movq %rax, %rdi
callq 0x6bba