// File: /workspace/github_cpp_makefile_star2_O3/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x370, %rsp            # imm = 0x370
xorl %r15d, %r15d
leaq 0x120(%rsp), %r14
movq %r15, (%r14)
movl $0x64, %r12d
movq %r12, 0x8(%r14)
movabsq $-0x8000000000000000, %r13 # imm = 0x8000000000000000
movq %r13, 0x10(%r14)
xorl %edi, %edi
movq %r14, %rsi
callq 0xd133
leaq 0x328(%rsp), %rbx
xorps %xmm0, %xmm0
movups %xmm0, -0x18(%rbx)
movups %xmm0, -0x8(%rbx)
movq $0x3, 0x8(%rbx)
movq %r13, 0x10(%rbx)
movq %r15, 0x18(%rbx)
movq $0x50, 0x20(%rbx)
movq %r13, 0x28(%rbx)
movq %r15, 0x30(%rbx)
movq %r12, 0x38(%rbx)
leaq 0x308(%rsp), %r15
movq %r15, %rdi
callq 0xc30a
movq %r15, %rdi
callq 0xc412
movq 0x18(%r15), %rax
movq %rax, (%r14)
leaq 0x128(%rsp), %rax
movl $0x9, %ecx
movq %rax, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
leaq 0x30(%rsp), %rcx
movl $0x0, (%rcx)
leaq 0x2b8(%rsp), %rsi
movq %rcx, (%rsi)
movq %r14, 0x8(%rsi)
movq %rax, %rdi
callq 0x611a0
movq 0x320(%rsp), %rax
leaq 0x128(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl $0x1, (%rsp)
leaq 0x2b8(%rsp), %r14
leaq 0x120(%rsp), %rsi
movl $0x2, %edx
movl $0x1, %ecx
movl $0x60, %r8d
movl $0x4d, %r9d
movq %r14, %rdi
callq 0x6103d
movq 0x2f0(%rsp), %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x56802(%rip), %rsi     # 0xb3b45
leaq 0x56811(%rip), %rdx     # 0xb3b5b
leaq 0x30(%rsp), %rdi
callq 0xd14c
xorl %esi, %esi
cmpq $0x2, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf80
leaq 0x4630d(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x569c8(%rip), %rsi     # 0xb3d53
movq %rax, %rdi
callq 0x1a17e
leaq 0x49ebc(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d3c2
movq 0x2f0(%rsp), %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x462bb(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x4ea18(%rip), %rsi     # 0xabdf0
movq %rax, %rdi
callq 0x18fba
leaq 0x49e6f(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d40c
movq %r15, %rdi
addq $0x10, %rdi
movl $0x2, %esi
callq 0x22f0
leaq 0x5ce86(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d43f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x2d8(%rsp), %r15
leaq 0x30(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x56706(%rip), %rsi     # 0xb3b5c
leaq 0x56715(%rip), %rdx     # 0xb3b72
callq 0xd14c
xorl %esi, %esi
cmpq $0x1, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf80
leaq 0x461ff(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x56900(%rip), %rsi     # 0xb3d99
movq %rax, %rdi
callq 0x1a17e
leaq 0x49dae(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d4d0
movq 0x2d8(%rsp), %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x461ad(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x4d286(%rip), %rsi     # 0xaa76c
movq %rax, %rdi
callq 0x18fba
leaq 0x49d61(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d51a
movq %r15, %rdi
addq $0x10, %rdi
movl $0x1, %esi
callq 0x22f0
leaq 0x5cd78(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d54d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x2f0(%rsp), %r13
movq 0x2f8(%rsp), %r15
leaq 0x30(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x56607(%rip), %rsi     # 0xb3b73
leaq 0x56617(%rip), %rdx     # 0xb3b8a
callq 0xd14c
addq %r13, %r15
xorl %esi, %esi
cmpq $0x60, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf80
leaq 0x460e6(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x5682d(%rip), %rsi     # 0xb3ddf
movq %rax, %rdi
callq 0x1a17e
leaq 0x49c95(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d5f8
movq 0x2f0(%rsp), %rax
movq 0x2f8(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x46085(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x5657a(%rip), %rsi     # 0xb3b88
movq %rax, %rdi
callq 0x1917a
leaq 0x49c39(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d642
movq %r15, %rdi
addq $0x10, %rdi
movl $0x5f, %esi
callq 0x22f0
leaq 0x5cc50(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d675
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x2d8(%rsp), %r13
movq 0x2e0(%rsp), %r15
leaq 0x30(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x564f7(%rip), %rsi     # 0xb3b8b
leaq 0x56507(%rip), %rdx     # 0xb3ba2
callq 0xd14c
addq %r13, %r15
xorl %esi, %esi
cmpq $0x4d, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0xbf80
leaq 0x45fbe(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x5674b(%rip), %rsi     # 0xb3e25
movq %rax, %rdi
callq 0x1a17e
leaq 0x49b6d(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d720
movq 0x2d8(%rsp), %rax
movq 0x2e0(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45f5d(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x5646a(%rip), %rsi     # 0xb3ba0
movq %rax, %rdi
callq 0x1917a
leaq 0x49b11(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d76a
movq %r15, %rdi
addq $0x10, %rdi
movl $0x4c, %esi
callq 0x22f0
leaq 0x5cb28(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %r15
movq %r15, %rdi
callq 0xbfd8
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d7a0
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
xorps %xmm0, %xmm0
movaps %xmm0, 0x120(%rsp)
movq $0x0, 0x130(%rsp)
leaq 0x2c0(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r14, (%rsi)
movq %r15, 0x8(%rsi)
callq 0x61296
movq 0x320(%rsp), %rax
leaq 0x128(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl $0x0, (%rsp)
leaq 0x30(%rsp), %r14
leaq 0x120(%rsp), %rsi
movl $0x3, %edx
movl $0x2, %ecx
movl $0x5f, %r8d
movl $0x4c, %r9d
movq %r14, %rdi
callq 0x6103d
movq 0x68(%rsp), %r15
leaq 0x90(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x56369(%rip), %rsi     # 0xb3ba3
leaq 0x5637d(%rip), %rdx     # 0xb3bbe
leaq 0x80(%rsp), %rdi
callq 0xd14c
xorl %esi, %esi
testq %r15, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xbf80
leaq 0x45e11(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x56338(%rip), %rsi     # 0xb3bbf
movq %rax, %rdi
callq 0x19aca
leaq 0x499c0(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d8bb
movq 0x68(%rsp), %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45dc2(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x4764e(%rip), %rsi     # 0xa4f1f
movq %rax, %rdi
callq 0x18fba
leaq 0x49976(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d902
movq %r15, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
leaq 0x5c990(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d93b
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x50(%rsp), %r15
leaq 0x80(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x56284(%rip), %rsi     # 0xb3bd6
leaq 0x56298(%rip), %rdx     # 0xb3bf1
callq 0xd14c
xorl %esi, %esi
testq %r15, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xbf80
leaq 0x45d01(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x5625b(%rip), %rsi     # 0xb3bf2
movq %rax, %rdi
callq 0x19aca
leaq 0x498b0(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5d9cb
movq 0x50(%rsp), %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45cb2(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x4753e(%rip), %rsi     # 0xa4f1f
movq %rax, %rdi
callq 0x18fba
leaq 0x49866(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5da12
movq %r15, %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x22f0
leaq 0x5c880(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x5da4b
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x68(%rsp), %r13
movq 0x70(%rsp), %r15
leaq 0x80(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x561a2(%rip), %rsi     # 0xb3c09
leaq 0x561b7(%rip), %rdx     # 0xb3c25
callq 0xd14c
addq %r13, %r15
xorl %esi, %esi
cmpq $0x5c, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xbf80
leaq 0x45be8(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x56176(%rip), %rsi     # 0xb3c26
movq %rax, %rdi
callq 0x19aca
leaq 0x49797(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5daf0
movq 0x68(%rsp), %rax
movq 0x70(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45b8d(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x561d7(%rip), %rsi     # 0xb3cdd
movq %rax, %rdi
callq 0x1917a
leaq 0x49741(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5db3a
movq %r15, %rdi
addq $0x10, %rdi
movl $0x5b, %esi
callq 0x22f0
leaq 0x5c758(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x5db73
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x50(%rsp), %r13
movq 0x58(%rsp), %r15
leaq 0x80(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x560ae(%rip), %rsi     # 0xb3c3d
leaq 0x560c3(%rip), %rdx     # 0xb3c59
callq 0xd14c
addq %r13, %r15
xorl %esi, %esi
cmpq $0x4a, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0xbf80
leaq 0x45ac0(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x56082(%rip), %rsi     # 0xb3c5a
movq %rax, %rdi
callq 0x19aca
leaq 0x4966f(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5dc18
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45a65(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x56029(%rip), %rsi     # 0xb3c57
movq %rax, %rdi
callq 0x1917a
leaq 0x49619(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5dc62
movq %r15, %rdi
addq $0x10, %rdi
movl $0x49, %esi
callq 0x22f0
leaq 0x5c630(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %r15
movq %r15, %rdi
callq 0xbfd8
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x5dc9e
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x21f0
movq $0x0, 0x120(%rsp)
movq $0x2, 0x128(%rsp)
movq $0x3, 0x130(%rsp)
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rsi
movq %r14, (%rsi)
movq %r15, 0x8(%rsi)
callq 0x61296
movl $0x1, (%rsp)
leaq 0x80(%rsp), %r14
leaq 0x2b8(%rsp), %rsi
movl $0x4, %edx
movl $0x3, %ecx
movl $0x5c, %r8d
movl $0x49, %r9d
movq %r14, %rdi
callq 0x6103d
movq 0xb8(%rsp), %r15
leaq 0xe0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x55f46(%rip), %rsi     # 0xb3c71
leaq 0x55f56(%rip), %rdx     # 0xb3c88
leaq 0xd0(%rsp), %rdi
callq 0xd14c
xorl %esi, %esi
cmpq $0x4, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0xbf80
leaq 0x4591f(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x55f10(%rip), %rsi     # 0xb3c89
movq %rax, %rdi
callq 0x191ea
leaq 0x494ce(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5ddb0
movq 0xb8(%rsp), %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x458cd(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x4a0f6(%rip), %rsi     # 0xa7ebc
movq %rax, %rdi
callq 0x18fba
leaq 0x49481(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5ddfa
movq %r15, %rdi
addq $0x10, %rdi
movl $0x4, %esi
callq 0x22f0
leaq 0x5c498(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0xd0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5de33
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xa0(%rsp), %r15
leaq 0xd0(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x55e4f(%rip), %rsi     # 0xb3c9c
leaq 0x55e5f(%rip), %rdx     # 0xb3cb3
callq 0xd14c
xorl %esi, %esi
cmpq $0x3, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0xbf80
leaq 0x45805(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x55e21(%rip), %rsi     # 0xb3cb4
movq %rax, %rdi
callq 0x191ea
leaq 0x493b4(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5deca
movq 0xa0(%rsp), %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x457b3(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x4fa79(%rip), %rsi     # 0xad959
movq %rax, %rdi
callq 0x18fba
leaq 0x49367(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5df14
movq %r15, %rdi
addq $0x10, %rdi
movl $0x3, %esi
callq 0x22f0
leaq 0x5c37e(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0xd0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5df4d
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xb8(%rsp), %r12
movq 0xc0(%rsp), %r15
leaq 0xd0(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x55d58(%rip), %rsi     # 0xb3cc7
leaq 0x55d69(%rip), %rdx     # 0xb3cdf
callq 0xd14c
addq %r12, %r15
xorl %esi, %esi
cmpq $0x5c, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0xbf80
leaq 0x456e0(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x55d28(%rip), %rsi     # 0xb3ce0
movq %rax, %rdi
callq 0x191ea
leaq 0x4928f(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5dffe
movq 0xb8(%rsp), %rax
movq 0xc0(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x4567f(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x55cc9(%rip), %rsi     # 0xb3cdd
movq %rax, %rdi
callq 0x1917a
leaq 0x49233(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5e048
movq %r15, %rdi
addq $0x10, %rdi
movl $0x5b, %esi
callq 0x22f0
leaq 0x5c24a(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0xd0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5e081
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xa0(%rsp), %r12
movq 0xa8(%rsp), %r15
leaq 0xd0(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x55c50(%rip), %rsi     # 0xb3cf3
leaq 0x55c61(%rip), %rdx     # 0xb3d0b
callq 0xd14c
addq %r12, %r15
xorl %esi, %esi
cmpq $0x49, %r15
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0xbf80
leaq 0x455ac(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x55c20(%rip), %rsi     # 0xb3d0c
movq %rax, %rdi
callq 0x191ea
leaq 0x4915b(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5e132
movq 0xa0(%rsp), %rax
movq 0xa8(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %r15, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x4554b(%rip), %rsi     # 0xa3684
movq %r15, %rdi
callq 0x18fba
leaq 0x55bc1(%rip), %rsi     # 0xb3d09
movq %rax, %rdi
callq 0x1917a
leaq 0x490ff(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %r15
cmpb $0x1, 0x188(%rax)
jne 0x5e17c
movq %r15, %rdi
addq $0x10, %rdi
movl $0x48, %esi
callq 0x22f0
leaq 0x5c116(%rip), %rsi     # 0xba299
movq %r15, %rdi
callq 0x18fba
leaq 0x120(%rsp), %r12
movq %r12, %rdi
callq 0xbfd8
movq 0xd0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5e1b8
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x21f0
xorps %xmm0, %xmm0
movaps %xmm0, 0x120(%rsp)
movq $0x0, 0x130(%rsp)
leaq 0x88(%rsp), %r15
leaq 0xd0(%rsp), %rsi
movq %r14, (%rsi)
movq %r12, 0x8(%rsi)
movq %r15, %rdi
callq 0x61296
movq 0x320(%rsp), %rax
leaq 0x128(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl $0x1, (%rsp)
leaq 0xd0(%rsp), %rdi
leaq 0x120(%rsp), %rsi
movl $0x32, %edx
movl $0x28, %ecx
movl $0x69, %r8d
movl $0x46, %r9d
callq 0x6103d
movq 0x108(%rsp), %rbx
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x55ac7(%rip), %rsi     # 0xb3d1f
leaq 0x55ae5(%rip), %rdx     # 0xb3d44
leaq 0x10(%rsp), %rdi
callq 0xd14c
xorl %esi, %esi
cmpq $0x32, %rbx
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xbf80
leaq 0x453f8(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x55aa5(%rip), %rsi     # 0xb3d45
movq %rax, %rdi
callq 0x61168
leaq 0x48fa7(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e2d7
movq 0x108(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x453a6(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x606eb(%rip), %rsi     # 0xbe9d8
movq %rax, %rdi
callq 0x1917a
leaq 0x48f5a(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e321
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x32, %esi
callq 0x22f0
leaq 0x5bf71(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e354
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xf0(%rsp), %rbx
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x559fa(%rip), %rsi     # 0xb3d65
leaq 0x55a18(%rip), %rdx     # 0xb3d8a
callq 0xd14c
xorl %esi, %esi
cmpq $0x28, %rbx
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xbf80
leaq 0x452ea(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x559dd(%rip), %rsi     # 0xb3d8b
movq %rax, %rdi
callq 0x61168
leaq 0x48e99(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e3e5
movq 0xf0(%rsp), %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45298(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x5598d(%rip), %rsi     # 0xb3d88
movq %rax, %rdi
callq 0x1917a
leaq 0x48e4c(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e42f
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x28, %esi
callq 0x22f0
leaq 0x5be63(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e462
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x108(%rsp), %r13
movq 0x110(%rsp), %rbx
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x5592a(%rip), %rsi     # 0xb3dab
leaq 0x55948(%rip), %rdx     # 0xb3dd0
callq 0xd14c
addq %r13, %rbx
xorl %esi, %esi
cmpq $0x64, %rbx
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xbf80
leaq 0x451d1(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x5590a(%rip), %rsi     # 0xb3dd1
movq %rax, %rdi
callq 0x61168
leaq 0x48d80(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e50d
movq 0x108(%rsp), %rax
movq 0x110(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45170(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x558ab(%rip), %rsi     # 0xb3dce
movq %rax, %rdi
callq 0x1917a
leaq 0x48d24(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e557
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x63, %esi
callq 0x22f0
leaq 0x5bd3b(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e58a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0xf0(%rsp), %r13
movq 0xf8(%rsp), %rbx
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x55848(%rip), %rsi     # 0xb3df1
leaq 0x55866(%rip), %rdx     # 0xb3e16
callq 0xd14c
addq %r13, %rbx
xorl %esi, %esi
cmpq $0x46, %rbx
sete %sil
leaq 0x120(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0xbf80
leaq 0x450a9(%rip), %rsi     # 0xa3684
leaq 0x120(%rsp), %rdi
callq 0x18fba
leaq 0x55828(%rip), %rsi     # 0xb3e17
movq %rax, %rdi
callq 0x61168
leaq 0x48c58(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e635
movq 0xf0(%rsp), %rax
movq 0xf8(%rsp), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x21b0
leaq 0x45048(%rip), %rsi     # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x557c9(%rip), %rsi     # 0xb3e14
movq %rax, %rdi
callq 0x1917a
leaq 0x48bfc(%rip), %rsi     # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x5e67f
movq %rbx, %rdi
addq $0x10, %rdi
movl $0x45, %esi
callq 0x22f0
leaq 0x5bc13(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0x120(%rsp), %rbx
movq %rbx, %rdi
callq 0xbfd8
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e6b5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21f0
xorps %xmm0, %xmm0
movaps %xmm0, 0x120(%rsp)
movq $0x0, 0x130(%rsp)
leaq 0x10(%rsp), %rsi
movq %r14, (%rsi)
movq %rbx, 0x8(%rsi)
movq %r15, %rdi
callq 0x61296
leaq 0x308(%rsp), %rdi
callq 0xd206
addq $0x370, %rsp            # imm = 0x370
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x5e99a
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
jmp 0x5e733
movq %rax, %rbx
jmp 0x5e983
jmp 0x5e807
jmp 0x5e819
jmp 0x5e82b
jmp 0x5e83d
jmp 0x5e865
jmp 0x5e877
jmp 0x5e889
jmp 0x5e89b
jmp 0x5e8c9
jmp 0x5e8db
jmp 0x5e8ed
jmp 0x5e8ff
jmp 0x5e926
jmp 0x5e938
jmp 0x5e94a
jmp 0x5e95c
jmp 0x5e791
jmp 0x5e791
jmp 0x5e791
movq %rax, %rbx
jmp 0x5e84d
jmp 0x5e79f
jmp 0x5e79f
jmp 0x5e79f
movq %rax, %rbx
jmp 0x5e8ab
jmp 0x5e7ad
jmp 0x5e7ad
jmp 0x5e7ad
movq %rax, %rbx
jmp 0x5e90f
jmp 0x5e7bb
jmp 0x5e7bb
jmp 0x5e7bb
movq %rax, %rbx
jmp 0x5e96c
jmp 0x5e807
jmp 0x5e819
jmp 0x5e82b
jmp 0x5e83d
jmp 0x5e865
jmp 0x5e877
jmp 0x5e889
jmp 0x5e89b
jmp 0x5e8c9
jmp 0x5e8db
jmp 0x5e8ed
jmp 0x5e8ff
jmp 0x5e926
jmp 0x5e938
jmp 0x5e94a
jmp 0x5e95c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e84d
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e84d
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e84d
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e983
movq 0x20(%rsp), %rsi
jmp 0x5e97b
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e8ab
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e8ab
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e8ab
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0xd0(%rsp), %rdi
cmpq %r13, %rdi
je 0x5e983
movq 0xe0(%rsp), %rsi
jmp 0x5e97b
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e90f
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e90f
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e90f
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e983
movq 0x90(%rsp), %rsi
jmp 0x5e97b
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e96c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e96c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
jmp 0x5e96c
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbfd8
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x5e983
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x308(%rsp), %rdi
callq 0xd206
movq %rbx, %rdi
callq 0x2300
jmp 0x5e99a
movq %rax, %rdi
callq 0xc0a9