// File: /workspace/github_cpp_makefile_star2_O3/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 $0x3a8, %rsp            # imm = 0x3A8
movl %r8d, 0xcc(%rsp)
movl %ecx, %r12d
movl %edx, %r13d
movl %esi, %r15d
movq %rdi, %rbx
movl %edx, 0xbc(%rsp)
movl %ecx, 0xb8(%rsp)
movb %r8b, 0x4f(%rsp)
movq 0x7b41e(%rip), %rbp     # 0xb3fd8
leaq 0x3f13d(%rip), %rsi     # 0x77cfe
movl $0x13, %edx
movq %rbp, %rdi
callq 0x2280
movl %r15d, %esi
movq %rsi, 0xf0(%rsp)
movq %rbp, %rdi
callq 0x2160
movq %rax, %r14
leaq 0x3eb7a(%rip), %rbp     # 0x77765
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2280
movq %r14, %rdi
movl %r13d, %esi
callq 0x23a0
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x2280
movl %r12d, %esi
movq %r14, %rdi
callq 0x2160
movq %rax, %r14
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
movl %r15d, %ebp
callq 0x2280
movq %r14, %rdi
movl 0xcc(%rsp), %esi
callq 0x2370
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x8(%rbx), %rax
subq (%rbx), %rax
shrq $0x2, %rax
imulq 0xf0(%rsp), %rax
shrq $0x3, %rax
cmpq $0x10001, %rax          # imm = 0x10001
movl $0x10000, %r14d         # imm = 0x10000
cmovaeq %rax, %r14
movq %r14, 0xc0(%rsp)
movl %r15d, %esi
shrl %esi
andl $-0x4, %esi
imulq %r14, %rsi
leaq 0x128(%rsp), %rdx
movb $0x0, (%rdx)
leaq 0xf8(%rsp), %r15
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
callq 0x7076e
movq (%r15), %rsi
cmpq %rsi, 0x8(%r15)
je 0x38d15
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 0xf8(%rsp), %rsi
movq 0x100(%rsp), %rax
subq %rsi, %rax
cmpq %rax, %rcx
jb 0x38cda
movq 0xc0(%rsp), %r14
xorps %xmm0, %xmm0
leaq 0x110(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq 0xf8(%rsp), %rsi
movl %r14d, %edx
movl $0x1, %ecx
movl $0x6, %r8d
movl %ebp, %r9d
callq 0xd861
leaq 0x128(%rsp), %rdi
callq 0xd3c8
xorps %xmm0, %xmm0
leaq 0xd0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq 0xb4(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
leaq 0x128(%rsp), %rcx
leaq 0x110(%rsp), %r8
callq 0xd73b
movl 0xb4(%rsp), %eax
cmpq %rax, 0xc0(%rsp)
jne 0x39376
cmpl $0x1, 0xb0(%rsp)
jne 0x3958d
movl 0xbc(%rsp), %eax
cmpl 0x208(%rsp), %eax
jne 0x397a7
movl 0xb8(%rsp), %eax
cmpl 0x20c(%rsp), %eax
jne 0x399be
movzbl 0x4f(%rsp), %eax
cmpl %eax, 0x220(%rsp)
jne 0x39bd5
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpl $0x8, %ebp
jne 0x38e32
movq 0xd0(%rsp), %rdi
subq %rax, %rcx
je 0x38e43
xorl %ebp, %ebp
cmpq $0x1, %rcx
movl $0x0, %edx
sbbq %rcx, %rdx
xorl %ecx, %ecx
movb (%rax,%rcx), %sil
cmpb (%rdi,%rcx), %sil
jne 0x38eb4
incq %rcx
decq %rbp
cmpq %rbp, %rdx
jne 0x38e17
jmp 0x38e6c
subq %rax, %rcx
movq 0xd0(%rsp), %rdi
cmpq $0x2, %rcx
jae 0x38e4a
testq %rdi, %rdi
jne 0x38e6c
jmp 0x38e71
shrq %rcx
xorl %ebp, %ebp
xorl %r14d, %r14d
movb (%rax,%r14,2), %dl
cmpb (%rdi,%r14), %dl
jne 0x39110
incq %r14
addq $-0x2, %rbp
cmpq %r14, %rcx
jne 0x38e52
callq 0x2210
leaq 0x128(%rsp), %rdi
callq 0xd3f0
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x38e90
callq 0x2210
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x38ea2
callq 0x2210
addq $0x3a8, %rsp            # imm = 0x3A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3d4b6(%rip), %rsi     # 0x7637d
leaq 0x3d4b4(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3ee3d(%rip), %rsi     # 0x77d49
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x40a08(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3ede0(%rip), %rsi     # 0x77d4e
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3d426(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7b01e(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x38fd3
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x38fe2
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x38ff1
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x39000
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x39012
callq 0x2210
movq 0x7afbf(%rip), %rdi     # 0xb3fd8
leaq 0x6608d(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
movq (%rbx), %rsi
subq %rbp, %rsi
leaq 0x8(%rsp), %rdi
callq 0x16232
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7af8d(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3d383(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
movq 0xd0(%rsp), %rsi
subq %rbp, %rsi
leaq 0x28(%rsp), %rdi
callq 0x16232
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3d22c(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x390db
callq 0x2210
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x390ef
callq 0x2210
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x7aeb2(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2390
leaq 0xa0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x3d25a(%rip), %rsi     # 0x7637d
leaq 0x3d258(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3ebf2(%rip), %rsi     # 0x77d59
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x407ac(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3eb84(%rip), %rsi     # 0x77d4e
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3d1ca(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7adc2(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3922f
callq 0x2210
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x39243
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %r12, %rdi
je 0x39252
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x39261
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r15, %rdi
je 0x39273
callq 0x2210
movq 0x7ad5e(%rip), %rdi     # 0xb3fd8
leaq 0x65e2c(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
movq (%rbx), %rsi
subq %rbp, %rsi
leaq 0x8(%rsp), %rdi
callq 0x16232
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7ad2c(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3d122(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
addq 0xd0(%rsp), %r14
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x16232
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3cfcb(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x39341
callq 0x2210
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x39355
callq 0x2210
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x7ac4c(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2390
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3cff4(%rip), %rsi     # 0x7637d
leaq 0x3cff2(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3e944(%rip), %rsi     # 0x77d12
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x40546(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3cf93(%rip), %rsi     # 0x763c3
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3cf64(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7ab5c(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39490
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x3949f
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x394ae
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x394bd
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x394cf
callq 0x2210
movq 0x7ab02(%rip), %rdi     # 0xb3fd8
leaq 0x65bd0(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
leaq 0x8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x703b5
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7aace(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3cec4(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
leaq 0x28(%rsp), %rdi
leaq 0xb4(%rsp), %rsi
callq 0x704a4
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3cd70(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
jmp 0x39de4
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3cddd(%rip), %rsi     # 0x7637d
leaq 0x3cddb(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3e732(%rip), %rsi     # 0x77d17
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x4032f(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3cdac(%rip), %rsi     # 0x763f3
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3cd4d(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a945(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x396a7
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x396b6
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x396c5
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x396d4
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x396e6
callq 0x2210
movq 0x7a8eb(%rip), %rdi     # 0xb3fd8
leaq 0x659b9(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
leaq 0x50(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x706ff
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a8b4(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3ccaa(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
leaq 0x28(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x704a4
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3cb56(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
jmp 0x39de4
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3cbc3(%rip), %rsi     # 0x7637d
leaq 0x3cbc1(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3e51d(%rip), %rsi     # 0x77d1c
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x40115(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3dd3f(%rip), %rsi     # 0x775a0
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3cb33(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a72b(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x398c1
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x398d0
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x398df
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x398ee
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x39900
callq 0x2210
movq 0x7a6d1(%rip), %rdi     # 0xb3fd8
leaq 0x6579f(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
leaq 0x8(%rsp), %rdi
leaq 0xbc(%rsp), %rsi
callq 0x70cb5
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a69d(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3ca93(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
leaq 0x208(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x70cb5
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3c93f(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
jmp 0x39de4
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3c9ac(%rip), %rsi     # 0x7637d
leaq 0x3c9aa(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3e30b(%rip), %rsi     # 0x77d21
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x3fefe(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3e2ae(%rip), %rsi     # 0x77d26
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3c91c(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a514(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39ad8
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39ae7
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39af6
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x39b05
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x39b17
callq 0x2210
movq 0x7a4ba(%rip), %rdi     # 0xb3fd8
leaq 0x65588(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
leaq 0x8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x704a4
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a486(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3c87c(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
leaq 0x20c(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x704a4
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3c728(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
jmp 0x39de4
leaq 0xa0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x3c795(%rip), %rsi     # 0x7637d
leaq 0x3c793(%rip), %rdx     # 0x76382
leaq 0x90(%rsp), %rdi
callq 0x14f6e
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %rdi
callq 0x1518a
leaq 0x3e117(%rip), %rsi     # 0x77d44
leaq 0x70(%rsp), %rdi
callq 0x23e0
leaq 0x60(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1518a
leaq 0x3fce7(%rip), %rsi     # 0x79945
leaq 0x50(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x3d991(%rip), %rsi     # 0x77620
leaq 0x28(%rsp), %rdi
callq 0x23e0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x1518a
leaq 0x3c705(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a2fd(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39cef
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39cfe
callq 0x2210
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x39d0d
callq 0x2210
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x39d1c
callq 0x2210
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x39d2e
callq 0x2210
movq 0x7a2a3(%rip), %rdi     # 0xb3fd8
leaq 0x65371(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
callq 0x2280
leaq 0x8(%rsp), %rdi
leaq 0x4f(%rsp), %rsi
callq 0x70c46
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x7a272(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq %rax, %rbx
leaq 0x3c668(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
leaq 0x220(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x704a4
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x3c514(%rip), %rsi     # 0x762c4
movl $0x2, %edx
movq %rax, %rdi
callq 0x2280
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2220
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39df3
callq 0x2210
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39e02
callq 0x2210
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x7a19f(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2390
jmp 0x39e2b
jmp 0x39e2b
jmp 0x39e2b
jmp 0x39e2b
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39e54
callq 0x2210
jmp 0x39e54
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
jmp 0x39e51
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
jne 0x3a065
jmp 0x3a071
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
jne 0x39ea3
jmp 0x39ebb
jmp 0x39eb8
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a06e
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39ebb
callq 0x2210
jmp 0x39ebb
jmp 0x39eb8
jmp 0x39ee0
jmp 0x39ee0
jmp 0x39ee0
jmp 0x39ee0
jmp 0x39ee0
jmp 0x39eb8
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
jne 0x3a065
jmp 0x3a071
jmp 0x3a06e
jmp 0x39ee0
jmp 0x39ee0
jmp 0x39ee0
jmp 0x39ee0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x39f1a
callq 0x2210
jmp 0x39f1a
jmp 0x3a06e
jmp 0x39f17
jmp 0x39f17
jmp 0x39f17
jmp 0x39f17
jmp 0x39f17
jmp 0x3a06e
jmp 0x3a06e
jmp 0x39f2d
jmp 0x39f17
jmp 0x39f17
jmp 0x39f17
jmp 0x39f17
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39f76
callq 0x2210
jmp 0x39f76
jmp 0x39f50
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x39f8a
callq 0x2210
jmp 0x39f8a
jmp 0x39f73
jmp 0x39f73
jmp 0x39f73
jmp 0x39f73
jmp 0x39f73
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x39fb3
callq 0x2210
jmp 0x39fb3
jmp 0x39f87
jmp 0x39f73
jmp 0x39f73
jmp 0x39f73
jmp 0x39f73
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
jne 0x39ffd
jmp 0x3a02d
jmp 0x39fb0
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x39fd5
callq 0x2210
jmp 0x39fd5
jmp 0x3a02a
jmp 0x3a02a
jmp 0x3a02a
jmp 0x3a02a
jmp 0x3a02a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x39ff3
callq 0x2210
jmp 0x39ff3
jmp 0x39fd2
jmp 0x3a02a
jmp 0x3a02a
jmp 0x3a02a
jmp 0x3a02a
jmp 0x3a02a
jmp 0x39ff0
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r12, %rdi
je 0x3a015
callq 0x2210
jmp 0x3a015
jmp 0x3a055
jmp 0x3a055
jmp 0x3a055
jmp 0x3a055
jmp 0x3a055
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x3a02d
callq 0x2210
jmp 0x3a02d
jmp 0x3a012
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a06e
jmp 0x3a02a
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x3a041
callq 0x2210
jmp 0x3a041
jmp 0x3a050
jmp 0x3a06e
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x3a058
callq 0x2210
jmp 0x3a058
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r15, %rdi
jne 0x3a065
jmp 0x3a071
movq %rax, %rbx
jmp 0x3a090
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x3a071
callq 0x2210
jmp 0x3a071
jmp 0x3a06e
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x3a083
callq 0x2210
leaq 0x128(%rsp), %rdi
callq 0xd3f0
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0x3a0a2
callq 0x2210
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x3a0b4
callq 0x2210
movq %rbx, %rdi
callq 0x23c0
movq %rax, %rdi
callq 0x14d36