// File: /workspace/github_cpp_makefile_star2_O1/lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: testAutoColorModel(std::vector<unsigned char, std::allocator<unsigned char>> const&, unsigned int, LodePNGColorType, unsigned int, bool)
void testAutoColorModel(const std::vector<unsigned char>& colors, unsigned inbitdepth, LodePNGColorType colortype, unsigned bitdepth, bool key) {
  std::cout << "testAutoColorModel " << inbitdepth << " " << colortype << " " << bitdepth << " " << key << std::endl;
  size_t innum = colors.size() / 4 * inbitdepth / 8;
  size_t num = innum < 65536 ? 65536 : innum; // Make image bigger so the convert doesn't avoid palette due to small image.
  std::vector<unsigned char> colors2(num * 4 * (inbitdepth / 8));
  for(size_t i = 0; i < colors2.size(); i++) colors2[i] = colors[i % colors.size()];

  std::vector<unsigned char> png;
  lodepng::encode(png, colors2, num, 1, LCT_RGBA, inbitdepth);

  // now extract the color type it chose
  unsigned w, h;
  lodepng::State state;
  std::vector<unsigned char> decoded;
  lodepng::decode(decoded, w, h, state, png);
  ASSERT_EQUALS(num, w);
  ASSERT_EQUALS(1, h);
  ASSERT_EQUALS(colortype, state.info_png.color.colortype);
  ASSERT_EQUALS(bitdepth, state.info_png.color.bitdepth);
  ASSERT_EQUALS(key, state.info_png.color.key_defined);
  // also check that the PNG decoded correctly and has same colors as input
  if(inbitdepth == 8) { for(size_t i = 0; i < colors.size(); i++) ASSERT_EQUALS(colors[i], decoded[i]); }
  else { for(size_t i = 0; i < colors.size() / 2; i++) ASSERT_EQUALS(colors[i * 2], decoded[i]); }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x388, %rsp            # imm = 0x388
movl %esi, %ebp
movq %rdi, %rbx
movl %edx, 0xac(%rsp)
movl %ecx, 0xa8(%rsp)
movb %r8b, 0x7(%rsp)
movq 0x7b34f(%rip), %r15     # 0xb3fd8
leaq 0x3ee4e(%rip), %rsi     # 0x77ade
movl $0x13, %edx
movq %r15, %rdi
callq 0x2270
movl %ebp, %r14d
movq %r15, %rdi
movq %r14, %rsi
callq 0x2150
movq %rax, %r12
leaq 0x3e890(%rip), %r15     # 0x77545
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2270
movl 0xac(%rsp), %esi
movq %r12, %rdi
callq 0x2390
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2270
movl 0xa8(%rsp), %esi
movq %r12, %rdi
callq 0x2150
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2270
movzbl 0x7(%rsp), %esi
movq %r12, %rdi
callq 0x2360
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq 0x8(%rbx), %rax
subq (%rbx), %rax
shrq $0x2, %rax
imulq %r14, %rax
shrq $0x3, %rax
cmpq $0x10001, %rax          # imm = 0x10001
movl $0x10000, %ecx          # imm = 0x10000
cmovaeq %rax, %rcx
movq %rcx, 0xb8(%rsp)
movl %ebp, %esi
shrl %esi
andl $-0x4, %esi
imulq %rcx, %rsi
leaq 0x108(%rsp), %rdx
movb $0x0, (%rdx)
leaq 0xd8(%rsp), %r14
leaq 0x8(%rsp), %rcx
movq %r14, %rdi
callq 0x70602
movq (%r14), %rsi
cmpq %rsi, 0x8(%r14)
je 0x38dd3
xorl %ecx, %ecx
movq (%rbx), %rdi
movq 0x8(%rbx), %r8
subq %rdi, %r8
movq %rcx, %rax
xorl %edx, %edx
divq %r8
movb (%rdi,%rdx), %al
movb %al, (%rsi,%rcx)
incq %rcx
movq 0xd8(%rsp), %rsi
movq 0xe0(%rsp), %rax
subq %rsi, %rax
cmpq %rax, %rcx
jb 0x38da0
xorps %xmm0, %xmm0
leaq 0xf0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movl 0xb8(%rsp), %edx
leaq 0xd8(%rsp), %rsi
movl $0x1, %ecx
movl $0x6, %r8d
movl %ebp, %r9d
callq 0xd648
leaq 0x108(%rsp), %rdi
callq 0xd1a0
xorps %xmm0, %xmm0
leaq 0xc0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq 0xb4(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
leaq 0x108(%rsp), %rcx
leaq 0xf0(%rsp), %r8
callq 0xd522
movl 0xb4(%rsp), %eax
cmpq %rax, 0xb8(%rsp)
jne 0x39440
cmpl $0x1, 0xb0(%rsp)
jne 0x39654
movl 0xac(%rsp), %eax
cmpl 0x1e8(%rsp), %eax
jne 0x3986b
movl 0xa8(%rsp), %eax
cmpl 0x1ec(%rsp), %eax
jne 0x39a7f
movzbl 0x7(%rsp), %eax
cmpl %eax, 0x200(%rsp)
jne 0x39c93
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpl $0x8, %ebp
jne 0x38ef4
subq %rax, %rcx
je 0x38f2f
movq 0xc0(%rsp), %rdx
xorl %ebp, %ebp
cmpq $0x1, %rcx
movl $0x0, %esi
sbbq %rcx, %rsi
xorl %ecx, %ecx
movb (%rax,%rcx), %dil
cmpb (%rdx,%rcx), %dil
jne 0x38f84
incq %rcx
decq %rbp
cmpq %rbp, %rsi
jne 0x38ed9
jmp 0x38f2f
subq %rax, %rcx
cmpq $0x2, %rcx
jb 0x38f2f
shrq %rcx
movq 0xc0(%rsp), %rdx
cmpq $0x1, %rcx
adcq $0x0, %rcx
xorl %ebp, %ebp
xorl %r14d, %r14d
movb (%rax,%r14,2), %sil
cmpb (%rdx,%r14), %sil
jne 0x391dd
incq %r14
addq $-0x2, %rbp
cmpq %r14, %rcx
jne 0x38f15
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x38f41
callq 0x2200
leaq 0x108(%rsp), %rdi
callq 0xd1c8
movq 0xf0(%rsp), %rdi
testq %rdi, %rdi
je 0x38f60
callq 0x2200
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x38f72
callq 0x2200
addq $0x388, %rsp            # imm = 0x388
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3d1c6(%rip), %rsi     # 0x7615d
leaq 0x3d1c4(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3eb50(%rip), %rsi     # 0x77b29
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x4071b(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3eaf3(%rip), %rsi     # 0x77b2e
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3d139(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7af51(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x390a0
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x390af
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x390be
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x390cd
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x390df
callq 0x2200
movq 0x7aef2(%rip), %rdi     # 0xb3fd8
leaq 0x65da0(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
movq (%rbx), %rsi
subq %rbp, %rsi
leaq 0x8(%rsp), %rdi
callq 0x16452
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7aec0(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3d096(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
movq 0xc0(%rsp), %rsi
subq %rbp, %rsi
leaq 0x28(%rsp), %rdi
callq 0x16452
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3cf3f(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x391a8
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x391bc
callq 0x2200
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x7ade5(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2380
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3cf6d(%rip), %rsi     # 0x7615d
leaq 0x3cf6b(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3e908(%rip), %rsi     # 0x77b39
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x404c2(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3e89a(%rip), %rsi     # 0x77b2e
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3cee0(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7acf8(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x392f9
callq 0x2200
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3930d
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3931c
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x3932b
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x3933d
callq 0x2200
movq 0x7ac94(%rip), %rdi     # 0xb3fd8
leaq 0x65b42(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
movq (%rbx), %rsi
subq %rbp, %rsi
leaq 0x8(%rsp), %rdi
callq 0x16452
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7ac62(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3ce38(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
addq 0xc0(%rsp), %r14
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x16452
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3cce1(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3940b
callq 0x2200
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3941f
callq 0x2200
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x7ab82(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2380
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3cd0a(%rip), %rsi     # 0x7615d
leaq 0x3cd08(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3e65d(%rip), %rsi     # 0x77af2
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x4025f(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3ccac(%rip), %rsi     # 0x761a3
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3cc7d(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7aa95(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39557
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39566
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39575
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x39584
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x39596
callq 0x2200
movq 0x7aa3b(%rip), %rdi     # 0xb3fd8
leaq 0x658e9(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x7024a
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7aa07(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3cbdd(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x28(%rsp), %rdi
leaq 0xb4(%rsp), %rsi
callq 0x70339
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3ca89(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
jmp 0x39e9f
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3caf6(%rip), %rsi     # 0x7615d
leaq 0x3caf4(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3e44e(%rip), %rsi     # 0x77af7
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x4004b(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3cac8(%rip), %rsi     # 0x761d3
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3ca69(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a881(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3976b
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x3977a
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39789
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x39798
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x397aa
callq 0x2200
movq 0x7a827(%rip), %rdi     # 0xb3fd8
leaq 0x656d5(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x48(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x70594
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a7f0(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3c9c6(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x28(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x70339
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3c872(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
jmp 0x39e9f
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3c8df(%rip), %rsi     # 0x7615d
leaq 0x3c8dd(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3e23c(%rip), %rsi     # 0x77afc
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x3fe34(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3da5e(%rip), %rsi     # 0x77380
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3c852(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a66a(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39982
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39991
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x399a0
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x399af
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x399c1
callq 0x2200
movq 0x7a610(%rip), %rdi     # 0xb3fd8
leaq 0x654be(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x8(%rsp), %rdi
leaq 0xac(%rsp), %rsi
callq 0x70a42
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a5dc(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3c7b2(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x1e8(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x70a42
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3c65e(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
jmp 0x39e9f
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3c6cb(%rip), %rsi     # 0x7615d
leaq 0x3c6c9(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3e02d(%rip), %rsi     # 0x77b01
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x3fc20(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3dfd0(%rip), %rsi     # 0x77b06
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3c63e(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a456(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39b96
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39ba5
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39bb4
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x39bc3
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x39bd5
callq 0x2200
movq 0x7a3fc(%rip), %rdi     # 0xb3fd8
leaq 0x652aa(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x70339
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a3c8(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3c59e(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x1ec(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x70339
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3c44a(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
jmp 0x39e9f
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3c4b7(%rip), %rsi     # 0x7615d
leaq 0x3c4b5(%rip), %rdx     # 0x76162
leaq 0x88(%rsp), %rdi
callq 0x1517a
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x15390
leaq 0x3de3c(%rip), %rsi     # 0x77b24
leaq 0x68(%rsp), %rdi
callq 0x23d0
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x15390
leaq 0x3fa0c(%rip), %rsi     # 0x79725
leaq 0x48(%rsp), %rdi
callq 0x23d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x15390
leaq 0x3d6b6(%rip), %rsi     # 0x77400
leaq 0x28(%rsp), %rdi
callq 0x23d0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x15390
leaq 0x3c42a(%rip), %rsi     # 0x761a5
leaq 0x8(%rsp), %rdi
callq 0x23d0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a242(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39daa
callq 0x2200
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39db9
callq 0x2200
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39dc8
callq 0x2200
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x39dd7
callq 0x2200
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x39de9
callq 0x2200
movq 0x7a1e8(%rip), %rdi     # 0xb3fd8
leaq 0x65096(%rip), %rsi     # 0x9ee8d
movl $0x9, %edx
callq 0x2270
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rsi
callq 0x709d3
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a1b7(%rip), %rdi     # 0xb3fd8
callq 0x2270
movq %rax, %rbx
leaq 0x3c38d(%rip), %rsi     # 0x761bd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2270
leaq 0x200(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x70339
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2270
movq %rax, %rbx
leaq 0x3c239(%rip), %rsi     # 0x760a4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2270
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2210
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2160
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39eae
callq 0x2200
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39ebd
callq 0x2200
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x7a0e4(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2380
jmp 0x39ee6
jmp 0x39ee6
jmp 0x39ee6
jmp 0x39ee6
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39f0f
callq 0x2200
jmp 0x39f0f
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
jmp 0x39f0c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
jne 0x3a120
jmp 0x3a12c
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0x39f5e
jmp 0x39f76
jmp 0x39f73
jmp 0x3a129
jmp 0x3a129
jmp 0x3a129
jmp 0x3a129
jmp 0x3a129
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39f76
callq 0x2200
jmp 0x39f76
jmp 0x39f73
jmp 0x39f9b
jmp 0x39f9b
jmp 0x39f9b
jmp 0x39f9b
jmp 0x39f9b
jmp 0x39f73
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
jne 0x3a120
jmp 0x3a12c
jmp 0x3a129
jmp 0x39f9b
jmp 0x39f9b
jmp 0x39f9b
jmp 0x39f9b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39fd5
callq 0x2200
jmp 0x39fd5
jmp 0x3a129
jmp 0x39fd2
jmp 0x39fd2
jmp 0x39fd2
jmp 0x39fd2
jmp 0x39fd2
jmp 0x3a129
jmp 0x3a129
jmp 0x39fe8
jmp 0x39fd2
jmp 0x39fd2
jmp 0x39fd2
jmp 0x39fd2
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x3a031
callq 0x2200
jmp 0x3a031
jmp 0x3a00b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3a045
callq 0x2200
jmp 0x3a045
jmp 0x3a02e
jmp 0x3a02e
jmp 0x3a02e
jmp 0x3a02e
jmp 0x3a02e
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3a06e
callq 0x2200
jmp 0x3a06e
jmp 0x3a042
jmp 0x3a02e
jmp 0x3a02e
jmp 0x3a02e
jmp 0x3a02e
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x3a0b8
jmp 0x3a0e8
jmp 0x3a06b
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3a090
callq 0x2200
jmp 0x3a090
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0e5
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x3a0ae
callq 0x2200
jmp 0x3a0ae
jmp 0x3a08d
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0e5
jmp 0x3a0ab
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3a0d0
callq 0x2200
jmp 0x3a0d0
jmp 0x3a110
jmp 0x3a110
jmp 0x3a110
jmp 0x3a110
jmp 0x3a110
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x3a0e8
callq 0x2200
jmp 0x3a0e8
jmp 0x3a0cd
jmp 0x3a129
jmp 0x3a129
jmp 0x3a129
jmp 0x3a129
jmp 0x3a129
jmp 0x3a0e5
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x3a0fc
callq 0x2200
jmp 0x3a0fc
jmp 0x3a10b
jmp 0x3a129
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x3a113
callq 0x2200
jmp 0x3a113
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
jne 0x3a120
jmp 0x3a12c
movq %rax, %rbx
jmp 0x3a14b
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x3a12c
callq 0x2200
jmp 0x3a12c
jmp 0x3a129
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x3a13e
callq 0x2200
leaq 0x108(%rsp), %rdi
callq 0xd1c8
movq 0xf0(%rsp), %rdi
testq %rdi, %rdi
je 0x3a15d
callq 0x2200
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x3a16f
callq 0x2200
movq %rbx, %rdi
callq 0x23b0
movq %rax, %rdi
callq 0x14f59