// File: /workspace/github_cpp_makefile_star2_O1/dsharlet[P]array/test/auto_allocator.cpp
// Function: nda::test_auto_array_body()
TEST(auto_array) {
  dense3d_int_auto_array auto_array({4, 3, 2});
  ASSERT(is_auto_allocation(auto_array));
  for_all_indices(auto_array.shape(), [&](int x, int y, int c) { auto_array(x, y, c) = x; });

  dense3d_int_auto_array copy_array(auto_array);
  ASSERT(is_auto_allocation(copy_array));
  for_all_indices(
      copy_array.shape(), [&](int x, int y, int c) { ASSERT_EQ(copy_array(x, y, c), x); });

  dense3d_int_auto_array assign_array;
  assign_array = auto_array;
  ASSERT(is_auto_allocation(assign_array));
  for_all_indices(
      assign_array.shape(), [&](int x, int y, int c) { ASSERT_EQ(assign_array(x, y, c), x); });

  dense3d_int_auto_array move_array(std::move(auto_array));
  ASSERT(is_auto_allocation(move_array));
  for_all_indices(
      move_array.shape(), [&](int x, int y, int c) { ASSERT_EQ(move_array(x, y, c), x); });

  dense3d_int_auto_array move_assign;
  move_assign = std::move(assign_array);
  ASSERT(is_auto_allocation(move_assign));
  for_all_indices(
      move_assign.shape(), [&](int x, int y, int c) { ASSERT_EQ(move_assign(x, y, c), x); });
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe48, %rsp            # imm = 0xE48
movabsq $-0x8000000000000000, %r12 # imm = 0x8000000000000000
xorl %r14d, %r14d
leaq 0x318(%rsp), %rsi
movq %r14, (%rsi)
movl $0x4, %r15d
movq %r15, 0x8(%rsi)
movq %r12, 0x10(%rsi)
xorl %edi, %edi
callq 0xd09f
leaq 0x590(%rsp), %rbx
movb $0x0, 0x80(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x88(%rbx)
movups %xmm0, 0x98(%rbx)
movq $0x2, 0xa8(%rbx)
movq %r12, 0xb0(%rbx)
movq %r14, 0xb8(%rbx)
movq $0x3, 0xc0(%rbx)
movq %r12, 0xc8(%rbx)
movq %r14, 0xd0(%rbx)
movq %r15, 0xd8(%rbx)
movq %rbx, %rdi
callq 0x4e2d4
movq %rbx, %rdi
callq 0x4e40c
movq %rbx, %rdi
callq 0x4dc25
movl %eax, %ebx
leaq 0x328(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x608f7(%rip), %rsi     # 0xad1af
leaq 0x6090e(%rip), %rdx     # 0xad1cd
leaq 0x318(%rsp), %rdi
callq 0xd0b8
movzbl %bl, %esi
leaq 0xcb8(%rsp), %rdi
leaq 0x318(%rsp), %rdx
callq 0xbf0a
leaq 0xcb8(%rsp), %rdi
callq 0xbf62
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4c90e
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x638(%rsp), %rax
movq %rax, 0x20(%rsp)
testq %rax, %rax
je 0x4ca12
movq 0x630(%rsp), %rdx
addq %rdx, 0x20(%rsp)
movq 0x648(%rsp), %rax
movq 0x650(%rsp), %rcx
movq %rax, 0x8(%rsp)
movq %rcx, 0x10(%rsp)
leaq (%rcx,%rax), %rdi
movq 0x660(%rsp), %rax
movq 0x668(%rsp), %rsi
movq %rax, %rcx
shlq $0x20, %rcx
movq %rdx, 0x28(%rsp)
movq %rdx, 0x18(%rsp)
movabsq $0x100000000, %r11      # imm = 0x100000000
cmpq $0x0, 0x10(%rsp)
je 0x4c9fa
movslq 0x18(%rsp), %rbx
movq 0x660(%rsp), %r14
movq 0x648(%rsp), %r15
movq 0x658(%rsp), %r12
subq 0x28(%rsp), %rbx
imulq 0x640(%rsp), %rbx
shlq $0x2, %rbx
addq 0x628(%rsp), %rbx
movq 0x8(%rsp), %r13
testq %rsi, %rsi
je 0x4c9f2
movslq %r13d, %rdx
subq %r15, %rdx
imulq %r12, %rdx
leaq (%rbx,%rdx,4), %rbp
movl %eax, %edx
movq %rcx, %r8
movq %rsi, %r9
movq %r8, %r10
sarq $0x20, %r10
subq %r14, %r10
movl %edx, (%rbp,%r10,4)
addq %r11, %r8
incl %edx
decq %r9
jne 0x4c9d9
incq %r13
cmpq %rdi, %r13
jne 0x4c9be
movq 0x18(%rsp), %r8
incq %r8
movq %r8, 0x18(%rsp)
cmpq 0x20(%rsp), %r8
jne 0x4c97a
leaq 0x4a8(%rsp), %rdi
movb $0x0, 0x80(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x88(%rdi)
movups %xmm0, 0x98(%rdi)
movq $0x0, 0xa8(%rdi)
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq %rax, 0xb0(%rdi)
movups %xmm0, 0xb8(%rdi)
movq %rax, 0xc8(%rdi)
movups %xmm0, 0xd0(%rdi)
leaq 0x590(%rsp), %rsi
callq 0x4e72e
leaq 0x4a8(%rsp), %rdi
callq 0x4dc25
leaq 0x328(%rsp), %r14
movl %eax, %ebx
leaq 0x318(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x60735(%rip), %rsi     # 0xad1ce
leaq 0x6074c(%rip), %rdx     # 0xad1ec
callq 0xd0b8
movzbl %bl, %esi
leaq 0xb28(%rsp), %rdi
leaq 0x318(%rsp), %rdx
callq 0xbf0a
leaq 0xb28(%rsp), %rdi
callq 0xbf62
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4cae7
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x550(%rsp), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x4cdb4
movq 0x548(%rsp), %rcx
movq %rcx, 0x8(%rsp)
addq %rcx, 0x30(%rsp)
leaq 0x230(%rsp), %rbp
movq 0x568(%rsp), %rax
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x4cd9c
movq 0x560(%rsp), %rcx
movq %rcx, 0x10(%rsp)
addq %rcx, 0x28(%rsp)
movslq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x580(%rsp), %r12
testq %r12, %r12
je 0x4cd84
movq 0x578(%rsp), %r14
movslq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r14, %rbx
shlq $0x20, %rbx
movq %rbx, %r15
sarq $0x20, %r15
movq %r15, %rax
subq 0x578(%rsp), %rax
movq 0x18(%rsp), %rcx
subq 0x560(%rsp), %rcx
imulq 0x570(%rsp), %rcx
movq 0x20(%rsp), %rdx
subq 0x548(%rsp), %rdx
imulq 0x558(%rsp), %rdx
shlq $0x2, %rax
addq 0x540(%rsp), %rax
leaq (%rax,%rcx,4), %rax
movl (%rax,%rdx,4), %r13d
leaq 0x240(%rsp), %rax
movq %rax, 0x230(%rsp)
movq $0x18, 0x148(%rsp)
movq %rbp, %rdi
leaq 0x148(%rsp), %rsi
xorl %edx, %edx
callq 0x2310
movq %rax, 0x230(%rsp)
movq 0x148(%rsp), %rcx
movq %rcx, 0x240(%rsp)
movups 0x60bc7(%rip), %xmm0    # 0xad7d9
movups %xmm0, (%rax)
movabsq $0x78203d3d20296320, %rdx # imm = 0x78203D3D20296320
movq %rdx, 0x10(%rax)
movq %rcx, 0x238(%rsp)
movq 0x230(%rsp), %rax
movb $0x0, (%rax,%rcx)
xorl %esi, %esi
cmpl %r13d, %r14d
sete %sil
leaq 0x318(%rsp), %rdi
movq %rbp, %rdx
movq %rdi, %rbp
callq 0xbf0a
movq %rbp, %rdi
leaq 0x549f7(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x60b86(%rip), %rsi     # 0xad7f2
callq 0x19340
movq %rax, %rdi
leaq 0x586af(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4ccdf
subq 0x578(%rsp), %r15
shlq $0x2, %r15
addq 0x540(%rsp), %r15
movq 0x18(%rsp), %rax
subq 0x560(%rsp), %rax
imulq 0x570(%rsp), %rax
movq 0x20(%rsp), %rcx
subq 0x548(%rsp), %rcx
imulq 0x558(%rsp), %rcx
leaq (%r15,%rax,4), %rax
movq %r13, %rdi
addq $0x10, %rdi
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x5496b(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x60116(%rip), %rsi     # 0xace0e
callq 0x18a16
movq %rax, %rdi
leaq 0x58623(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4cd27
movq %r13, %rdi
addq $0x10, %rdi
movl %r14d, %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x6b638(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbp, %rdi
callq 0xbf62
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x4cd63
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x21f0
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %rbx
incl %r14d
decq %r12
leaq 0x230(%rsp), %rbp
jne 0x4cb73
movq 0x10(%rsp), %rcx
incq %rcx
movq %rcx, 0x10(%rsp)
cmpq 0x28(%rsp), %rcx
jne 0x4cb49
movq 0x8(%rsp), %rcx
incq %rcx
movq %rcx, 0x8(%rsp)
cmpq 0x30(%rsp), %rcx
jne 0x4cb17
leaq 0x230(%rsp), %rdi
movb $0x0, 0x80(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x88(%rdi)
movups %xmm0, 0x98(%rdi)
movq $0x0, 0xa8(%rdi)
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq %rax, 0xb0(%rdi)
movups %xmm0, 0xb8(%rdi)
movq %rax, 0xc8(%rdi)
movups %xmm0, 0xd0(%rdi)
callq 0x4e2d4
leaq 0x230(%rsp), %rdi
callq 0x4e40c
leaq 0x230(%rsp), %rdi
leaq 0x590(%rsp), %rsi
callq 0x4dcd0
leaq 0x328(%rsp), %r14
leaq 0x230(%rsp), %rdi
callq 0x4dc25
movl %eax, %ebx
leaq 0x318(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x60398(%rip), %rsi     # 0xad1ed
leaq 0x603b1(%rip), %rdx     # 0xad20d
callq 0xd0b8
movzbl %bl, %esi
leaq 0x998(%rsp), %rdi
leaq 0x318(%rsp), %rdx
callq 0xbf0a
leaq 0x998(%rsp), %rdi
callq 0xbf62
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4cea3
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x2d8(%rsp), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x4d164
movq 0x2d0(%rsp), %rcx
movq %rcx, 0x8(%rsp)
addq %rcx, 0x30(%rsp)
leaq 0x148(%rsp), %rbp
movq 0x2f0(%rsp), %rax
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x4d14c
movq 0x2e8(%rsp), %rcx
movq %rcx, 0x10(%rsp)
addq %rcx, 0x28(%rsp)
movslq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x308(%rsp), %r12
testq %r12, %r12
je 0x4d134
movq 0x300(%rsp), %r14
movslq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r14, %rbx
shlq $0x20, %rbx
movq %rbx, %r15
sarq $0x20, %r15
movq %r15, %rax
subq 0x300(%rsp), %rax
movq 0x18(%rsp), %rcx
subq 0x2e8(%rsp), %rcx
imulq 0x2f8(%rsp), %rcx
movq 0x20(%rsp), %rdx
subq 0x2d0(%rsp), %rdx
imulq 0x2e0(%rsp), %rdx
shlq $0x2, %rax
addq 0x2c8(%rsp), %rax
leaq (%rax,%rcx,4), %rax
movl (%rax,%rdx,4), %r13d
leaq 0x158(%rsp), %rax
movq %rax, 0x148(%rsp)
movq $0x1a, 0x60(%rsp)
movq %rbp, %rdi
leaq 0x60(%rsp), %rsi
xorl %edx, %edx
callq 0x2310
movq %rax, 0x148(%rsp)
movq 0x60(%rsp), %rcx
movq %rcx, 0x158(%rsp)
movups 0x60966(%rip), %xmm0    # 0xad92b
movups %xmm0, 0xa(%rax)
movups 0x60951(%rip), %xmm0    # 0xad921
movups %xmm0, (%rax)
movq %rcx, 0x150(%rsp)
movq 0x148(%rsp), %rax
movb $0x0, (%rax,%rcx)
xorl %esi, %esi
cmpl %r13d, %r14d
sete %sil
leaq 0x318(%rsp), %rdi
movq %rbp, %rdx
movq %rdi, %rbp
callq 0xbf0a
movq %rbp, %rdi
leaq 0x54647(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x60920(%rip), %rsi     # 0xad93c
callq 0x18c7e
movq %rax, %rdi
leaq 0x582ff(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4d08f
subq 0x300(%rsp), %r15
shlq $0x2, %r15
addq 0x2c8(%rsp), %r15
movq 0x18(%rsp), %rax
subq 0x2e8(%rsp), %rax
imulq 0x2f8(%rsp), %rax
movq 0x20(%rsp), %rcx
subq 0x2d0(%rsp), %rcx
imulq 0x2e0(%rsp), %rcx
leaq (%r15,%rax,4), %rax
movq %r13, %rdi
addq $0x10, %rdi
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x545bb(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x5fd66(%rip), %rsi     # 0xace0e
callq 0x18a16
movq %rax, %rdi
leaq 0x58273(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4d0d7
movq %r13, %rdi
addq $0x10, %rdi
movl %r14d, %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x6b288(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbp, %rdi
callq 0xbf62
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x4d113
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x21f0
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %rbx
incl %r14d
decq %r12
leaq 0x148(%rsp), %rbp
jne 0x4cf2f
movq 0x10(%rsp), %rcx
incq %rcx
movq %rcx, 0x10(%rsp)
cmpq 0x28(%rsp), %rcx
jne 0x4cf05
movq 0x8(%rsp), %rcx
incq %rcx
movq %rcx, 0x8(%rsp)
cmpq 0x30(%rsp), %rcx
jne 0x4ced3
leaq 0x148(%rsp), %rdi
leaq 0x590(%rsp), %rsi
callq 0x4dde0
leaq 0x148(%rsp), %rdi
callq 0x4dc25
leaq 0x328(%rsp), %r14
movl %eax, %ebx
leaq 0x318(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x6006c(%rip), %rsi     # 0xad20e
leaq 0x60083(%rip), %rdx     # 0xad22c
callq 0xd0b8
movzbl %bl, %esi
leaq 0x808(%rsp), %rdi
leaq 0x318(%rsp), %rdx
callq 0xbf0a
leaq 0x808(%rsp), %rdi
callq 0xbf62
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4d1f0
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x1f0(%rsp), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x4d493
movq 0x1e8(%rsp), %rcx
movq %rcx, 0x8(%rsp)
addq %rcx, 0x30(%rsp)
leaq 0x60(%rsp), %rbp
movq 0x208(%rsp), %rax
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x4d47b
movq 0x200(%rsp), %rcx
movq %rcx, 0x10(%rsp)
addq %rcx, 0x28(%rsp)
movslq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x220(%rsp), %r12
testq %r12, %r12
je 0x4d463
movq 0x218(%rsp), %r14
movslq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r14, %rbx
shlq $0x20, %rbx
movq %rbx, %r15
sarq $0x20, %r15
movq %r15, %rax
subq 0x218(%rsp), %rax
movq 0x18(%rsp), %rcx
subq 0x200(%rsp), %rcx
imulq 0x210(%rsp), %rcx
movq 0x20(%rsp), %rdx
subq 0x1e8(%rsp), %rdx
imulq 0x1f8(%rsp), %rdx
shlq $0x2, %rax
addq 0x1e0(%rsp), %rax
leaq (%rax,%rcx,4), %rax
movl (%rax,%rdx,4), %r13d
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq $0x18, 0x38(%rsp)
movq %rbp, %rdi
leaq 0x38(%rsp), %rsi
xorl %edx, %edx
callq 0x2310
movq %rax, 0x60(%rsp)
movq 0x38(%rsp), %rcx
movq %rcx, 0x70(%rsp)
movups 0x608b3(%rip), %xmm0    # 0xadbb6
movups %xmm0, (%rax)
movabsq $0x78203d3d20296320, %rdx # imm = 0x78203D3D20296320
movq %rdx, 0x10(%rax)
movq %rcx, 0x68(%rsp)
movq 0x60(%rsp), %rax
movb $0x0, (%rax,%rcx)
xorl %esi, %esi
cmpl %r13d, %r14d
sete %sil
leaq 0x318(%rsp), %rdi
movq %rbp, %rdx
movq %rdi, %rbp
callq 0xbf0a
movq %rbp, %rdi
leaq 0x5430c(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x60878(%rip), %rsi     # 0xadbcf
callq 0x19340
movq %rax, %rdi
leaq 0x57fc4(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4d3ca
subq 0x218(%rsp), %r15
shlq $0x2, %r15
addq 0x1e0(%rsp), %r15
movq 0x18(%rsp), %rax
subq 0x200(%rsp), %rax
imulq 0x210(%rsp), %rax
movq 0x20(%rsp), %rcx
subq 0x1e8(%rsp), %rcx
imulq 0x1f8(%rsp), %rcx
leaq (%r15,%rax,4), %rax
movq %r13, %rdi
addq $0x10, %rdi
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x54280(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x5fa2b(%rip), %rsi     # 0xace0e
callq 0x18a16
movq %rax, %rdi
leaq 0x57f38(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4d412
movq %r13, %rdi
addq $0x10, %rdi
movl %r14d, %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x6af4d(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbp, %rdi
callq 0xbf62
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x4d445
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21f0
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %rbx
incl %r14d
decq %r12
leaq 0x60(%rsp), %rbp
jne 0x4d279
movq 0x10(%rsp), %rcx
incq %rcx
movq %rcx, 0x10(%rsp)
cmpq 0x28(%rsp), %rcx
jne 0x4d24f
movq 0x8(%rsp), %rcx
incq %rcx
movq %rcx, 0x8(%rsp)
cmpq 0x30(%rsp), %rcx
jne 0x4d21d
leaq 0x60(%rsp), %rdi
movb $0x0, 0x80(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x88(%rdi)
movups %xmm0, 0x98(%rdi)
movq $0x0, 0xa8(%rdi)
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq %rax, 0xb0(%rdi)
movups %xmm0, 0xb8(%rdi)
movq %rax, 0xc8(%rdi)
movups %xmm0, 0xd0(%rdi)
callq 0x4e2d4
leaq 0x60(%rsp), %rdi
callq 0x4e40c
leaq 0x60(%rsp), %rdi
leaq 0x230(%rsp), %rsi
callq 0x4dfd8
leaq 0x328(%rsp), %r14
leaq 0x60(%rsp), %rdi
callq 0x4dc25
movl %eax, %ebx
leaq 0x318(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x5fd05(%rip), %rsi     # 0xad22d
leaq 0x5fd1d(%rip), %rdx     # 0xad24c
callq 0xd0b8
movzbl %bl, %esi
leaq 0x678(%rsp), %rdi
leaq 0x318(%rsp), %rdx
callq 0xbf0a
leaq 0x678(%rsp), %rdi
callq 0xbf62
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4d576
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x108(%rsp), %rax
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x4d816
movq 0x100(%rsp), %rcx
movq %rcx, 0x8(%rsp)
addq %rcx, 0x30(%rsp)
leaq 0x38(%rsp), %rbp
movq 0x120(%rsp), %rax
movq %rax, 0x28(%rsp)
testq %rax, %rax
je 0x4d7fe
movq 0x118(%rsp), %rcx
movq %rcx, 0x10(%rsp)
addq %rcx, 0x28(%rsp)
movslq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x138(%rsp), %r12
testq %r12, %r12
je 0x4d7e6
movq 0x130(%rsp), %r14
movslq 0x10(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r14, %rbx
shlq $0x20, %rbx
movq %rbx, %r15
sarq $0x20, %r15
movq %r15, %rax
subq 0x130(%rsp), %rax
movq 0x18(%rsp), %rcx
subq 0x118(%rsp), %rcx
imulq 0x128(%rsp), %rcx
movq 0x20(%rsp), %rdx
subq 0x100(%rsp), %rdx
imulq 0x110(%rsp), %rdx
shlq $0x2, %rax
addq 0xf8(%rsp), %rax
leaq (%rax,%rcx,4), %rax
movl (%rax,%rdx,4), %r13d
leaq 0x48(%rsp), %rax
movq %rax, 0x38(%rsp)
movq $0x19, 0x58(%rsp)
movq %rbp, %rdi
leaq 0x58(%rsp), %rsi
xorl %edx, %edx
callq 0x2310
movq %rax, 0x38(%rsp)
movq 0x58(%rsp), %rcx
movq %rcx, 0x48(%rsp)
movups 0x60779(%rip), %xmm0    # 0xade02
movups %xmm0, 0x9(%rax)
movups 0x60765(%rip), %xmm0    # 0xaddf9
movups %xmm0, (%rax)
movq %rcx, 0x40(%rsp)
movq 0x38(%rsp), %rax
movb $0x0, (%rax,%rcx)
xorl %esi, %esi
cmpl %r13d, %r14d
sete %sil
leaq 0x318(%rsp), %rdi
movq %rbp, %rdx
movq %rdi, %rbp
callq 0xbf0a
movq %rbp, %rdi
leaq 0x53f89(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x60739(%rip), %rsi     # 0xade13
callq 0x4a210
movq %rax, %rdi
leaq 0x57c41(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4d74d
subq 0x130(%rsp), %r15
shlq $0x2, %r15
addq 0xf8(%rsp), %r15
movq 0x18(%rsp), %rax
subq 0x118(%rsp), %rax
imulq 0x128(%rsp), %rax
movq 0x20(%rsp), %rcx
subq 0x100(%rsp), %rcx
imulq 0x110(%rsp), %rcx
leaq (%r15,%rax,4), %rax
movq %r13, %rdi
addq $0x10, %rdi
movl (%rax,%rcx,4), %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x53efd(%rip), %rsi     # 0xa1654
callq 0x18a16
movq %rax, %rdi
leaq 0x5f6a8(%rip), %rsi     # 0xace0e
callq 0x18a16
movq %rax, %rdi
leaq 0x57bb5(%rip), %rsi     # 0xa532a
callq 0x18a16
movq %rax, %r13
cmpb $0x1, 0x188(%rax)
jne 0x4d795
movq %r13, %rdi
addq $0x10, %rdi
movl %r14d, %esi
callq 0x22f0
movq %r13, %rdi
leaq 0x6abca(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbp, %rdi
callq 0xbf62
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x4d7c8
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x21f0
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %rbx
incl %r14d
decq %r12
leaq 0x38(%rsp), %rbp
jne 0x4d5ff
movq 0x10(%rsp), %rcx
incq %rcx
movq %rcx, 0x10(%rsp)
cmpq 0x28(%rsp), %rcx
jne 0x4d5d5
movq 0x8(%rsp), %rcx
incq %rcx
movq %rcx, 0x8(%rsp)
cmpq 0x30(%rsp), %rcx
jne 0x4d5a3
leaq 0x60(%rsp), %rdi
callq 0x4e5c0
leaq 0x148(%rsp), %rdi
callq 0x4e5c0
leaq 0x230(%rsp), %rdi
callq 0x4e5c0
leaq 0x4a8(%rsp), %rdi
callq 0x4e5c0
leaq 0x590(%rsp), %rdi
callq 0x4e5c0
addq $0xe48, %rsp            # imm = 0xE48
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4daca
jmp 0x4daca
jmp 0x4daca
jmp 0x4daca
jmp 0x4daca
jmp 0x4d969
jmp 0x4d96e
jmp 0x4d96e
jmp 0x4d976
jmp 0x4d976
jmp 0x4d97e
jmp 0x4d97e
jmp 0x4d8a6
jmp 0x4d8a6
movq %rax, %rbx
jmp 0x4dab1
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4d9cc
movq 0x328(%rsp), %rsi
jmp 0x4d9c4
jmp 0x4d969
jmp 0x4d96e
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4da0e
movq 0x328(%rsp), %rsi
jmp 0x4da06
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4da5c
movq 0x328(%rsp), %rsi
jmp 0x4da54
jmp 0x4d976
jmp 0x4d97e
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4daa4
movq 0x328(%rsp), %rsi
jmp 0x4da9c
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r14, %rdi
je 0x4dab1
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x21f0
jmp 0x4dab1
movq %rax, %rbx
jmp 0x4d9cc
movq %rax, %rbx
jmp 0x4da0e
movq %rax, %rbx
jmp 0x4da5c
movq %rax, %rbx
jmp 0x4daa4
movq %rax, %rbx
jmp 0x4d9b0
movq %rax, %rbx
jmp 0x4d9f2
movq %rax, %rbx
jmp 0x4da37
movq %rax, %rbx
jmp 0x4da7f
movq %rax, %rbx
leaq 0x318(%rsp), %rdi
callq 0xbf62
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x4d9cc
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x60(%rsp), %rdi
callq 0x4e5c0
jmp 0x4da0e
jmp 0x4daca
jmp 0x4daca
movq %rax, %rbx
leaq 0x318(%rsp), %rdi
callq 0xbf62
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x4da0e
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x148(%rsp), %rdi
callq 0x4e5c0
jmp 0x4da5c
jmp 0x4daca
jmp 0x4daca
movq %rax, %rbx
leaq 0x318(%rsp), %rdi
callq 0xbf62
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x4da5c
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x230(%rsp), %rdi
callq 0x4e5c0
jmp 0x4daa4
jmp 0x4daca
jmp 0x4daca
movq %rax, %rbx
leaq 0x318(%rsp), %rdi
callq 0xbf62
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x4daa4
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0x4a8(%rsp), %rdi
callq 0x4e5c0
leaq 0x590(%rsp), %rdi
callq 0x4e5c0
movq %rbx, %rdi
callq 0x2300
jmp 0x4daca
jmp 0x4daca
movq %rax, %rdi
callq 0xc036