// File: lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: testCompressStringZlib(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
void testCompressStringZlib(const std::string& text, bool compressible) {
  if(text.size() < 500) std::cout << "compress test with text: " << text << std::endl;
  else std::cout << "compress test with text length: " << text.size() << std::endl;

  std::vector<unsigned char> in(text.size());
  for(size_t i = 0; i < text.size(); i++) in[i] = (unsigned char)text[i];
  unsigned char* out = 0;
  size_t outsize = 0;
  unsigned error = 0;

  error = lodepng_zlib_compress(&out, &outsize, in.empty() ? 0 : &in[0], in.size(), &lodepng_default_compress_settings);
  ASSERT_NO_PNG_ERROR(error);
  if(compressible) assertTrue(outsize < in.size());

  unsigned char* out2 = 0;
  size_t outsize2 = 0;

  error = lodepng_zlib_decompress(&out2, &outsize2, out, outsize, &lodepng_default_decompress_settings);
  ASSERT_NO_PNG_ERROR(error);
  ASSERT_EQUALS(outsize2, in.size());
  for(size_t i = 0; i < in.size(); i++) ASSERT_EQUALS(in[i], out2[i]);

  free(out);
  free(out2);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5b0, %rsp            # imm = 0x5B0
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3190
cmpq $0x1f4, %rax            # imm = 0x1F4
jae 0x364f8
movq 0xc1b09(%rip), %rdi     # 0xf7fd8
leaq 0x7d382(%rip), %rsi     # 0xb3858
callq 0x3230
movq %rax, %rdi
movq -0x8(%rbp), %rsi
callq 0x3200
movq %rax, %rdi
movq 0xc1acf(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x36539
movq 0xc1ad9(%rip), %rdi     # 0xf7fd8
leaq 0x7d36c(%rip), %rsi     # 0xb3872
callq 0x3230
movq %rax, -0x430(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3190
movq -0x430(%rbp), %rdi
movq %rax, %rsi
callq 0x3090
movq %rax, %rdi
movq 0xc1a8c(%rip), %rsi     # 0xf7fc0
callq 0x3280
movq -0x8(%rbp), %rdi
callq 0x3190
movq %rax, -0x440(%rbp)
movb $0x0, -0x29(%rbp)
leaq -0x2a(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x1bfa0
movq -0x440(%rbp), %rsi
movq -0x438(%rbp), %rcx
leaq -0x28(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xaab60
jmp 0x3657a
leaq -0x2a(%rbp), %rdi
callq 0x1bff0
movq $0x0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x450(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3190
movq %rax, -0x448(%rbp)
jmp 0x365a8
movq -0x450(%rbp), %rax
movq -0x448(%rbp), %rcx
cmpq %rcx, %rax
jae 0x36645
movq -0x8(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x32a0
movq %rax, -0x458(%rbp)
jmp 0x365d5
movq -0x458(%rbp), %rax
movb (%rax), %al
movb %al, -0x461(%rbp)
movq -0x48(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x1a5f0
movq %rax, -0x460(%rbp)
jmp 0x365fa
movq -0x460(%rbp), %rax
movb -0x461(%rbp), %cl
movb %cl, (%rax)
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x3658b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2a(%rbp), %rdi
callq 0x1bff0
jmp 0x37608
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x375fb
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movl $0x0, -0x5c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1a3a0
movb %al, -0x462(%rbp)
jmp 0x3666d
movb -0x462(%rbp), %al
testb $0x1, %al
jne 0x36679
jmp 0x36684
xorl %eax, %eax
movq %rax, -0x470(%rbp)
jmp 0x366aa
xorl %eax, %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x1a5f0
movq %rax, -0x478(%rbp)
jmp 0x3669a
movq -0x478(%rbp), %rax
movq %rax, -0x470(%rbp)
jmp 0x366aa
movq -0x470(%rbp), %rax
movq %rax, -0x488(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1a400
movq %rax, -0x480(%rbp)
jmp 0x366ca
movq -0x480(%rbp), %rcx
movq -0x488(%rbp), %rdx
leaq 0x78b49(%rip), %r8      # 0xaf228
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x4890
movl %eax, -0x48c(%rbp)
jmp 0x366f4
movl -0x48c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x49c(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x3440
movq -0x498(%rbp), %rdx
leaq 0x7c9ee(%rip), %rsi     # 0xb3115
leaq -0xc0(%rbp), %rdi
callq 0x3340
jmp 0x36735
leaq 0x7d157(%rip), %rdx     # 0xb3893
leaq -0xa0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0xaa1b0
jmp 0x36751
leaq -0x109(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x3440
movq -0x4a8(%rbp), %rdx
movb $0x0, -0x10b(%rbp)
movb $0x0, -0x132(%rbp)
movb $0x0, -0x133(%rbp)
leaq 0x7dd7d(%rip), %rsi     # 0xb4504
leaq -0x108(%rbp), %rdi
callq 0x3340
jmp 0x36795
leaq -0x108(%rbp), %rdi
callq 0x33f0
movb %al, -0x4a9(%rbp)
jmp 0x367a9
movb -0x4a9(%rbp), %al
testb $0x1, %al
jne 0x367b5
jmp 0x367ed
leaq -0x10a(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x3440
movq -0x4b8(%rbp), %rdx
movb $0x1, -0x10b(%rbp)
leaq 0x7dd27(%rip), %rsi     # 0xb4504
leaq -0xe8(%rbp), %rdi
callq 0x3340
jmp 0x367eb
jmp 0x36848
leaq -0x131(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x3440
movq -0x4c0(%rbp), %rdx
movb $0x1, -0x132(%rbp)
leaq 0x7dcef(%rip), %rsi     # 0xb4504
leaq -0x130(%rbp), %rdi
callq 0x3340
jmp 0x36823
movb $0x1, -0x133(%rbp)
leaq 0x7feb2(%rip), %rsi     # 0xb66e3
leaq -0xe8(%rbp), %rdi
leaq -0x130(%rbp), %rdx
callq 0xaa6d0
jmp 0x36846
jmp 0x36848
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0xaa240
jmp 0x36861
movl -0x49c(%rbp), %edi
leaq -0x80(%rbp), %rsi
callq 0x28d30
jmp 0x36872
leaq -0x80(%rbp), %rdi
callq 0x34a8
jmp 0x3687d
leaq -0xe8(%rbp), %rdi
callq 0x34a8
jmp 0x3688b
testb $0x1, -0x133(%rbp)
jne 0x36896
jmp 0x368a6
leaq -0x130(%rbp), %rdi
callq 0x34a8
jmp 0x368a4
jmp 0x368a6
testb $0x1, -0x132(%rbp)
jne 0x368b1
jmp 0x368bd
leaq -0x131(%rbp), %rdi
callq 0x3290
testb $0x1, -0x10b(%rbp)
jne 0x368c8
jmp 0x368d4
leaq -0x10a(%rbp), %rdi
callq 0x3290
leaq -0x108(%rbp), %rdi
callq 0x34a8
jmp 0x368e2
leaq -0x109(%rbp), %rdi
callq 0x3290
leaq -0xa0(%rbp), %rdi
callq 0x34a8
jmp 0x368fc
leaq -0xc0(%rbp), %rdi
callq 0x34a8
jmp 0x3690a
leaq -0xc1(%rbp), %rdi
callq 0x3290
testb $0x1, -0x9(%rbp)
je 0x36b3e
movq -0x58(%rbp), %rax
movq %rax, -0x4d0(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1a400
movq %rax, -0x4c8(%rbp)
jmp 0x3693d
movq -0x4c8(%rbp), %rcx
movq -0x4d0(%rbp), %rax
subq %rcx, %rax
setb %al
movb %al, -0x4d9(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x3440
movq -0x4d8(%rbp), %rdx
leaq 0x7db8c(%rip), %rsi     # 0xb4504
leaq -0x158(%rbp), %rdi
callq 0x3340
jmp 0x36986
movb -0x4d9(%rbp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq -0x158(%rbp), %rsi
callq 0x28cc0
jmp 0x369a0
leaq -0x158(%rbp), %rdi
callq 0x34a8
jmp 0x369ae
leaq -0x159(%rbp), %rdi
callq 0x3290
jmp 0x36b3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36af2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36ae2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36ac6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36ab6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36a9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36a84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36a67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x34a8
jmp 0x36a55
jmp 0x36a57
leaq -0xe8(%rbp), %rdi
callq 0x34a8
jmp 0x36a65
jmp 0x36a67
testb $0x1, -0x133(%rbp)
jne 0x36a72
jmp 0x36a82
leaq -0x130(%rbp), %rdi
callq 0x34a8
jmp 0x36a80
jmp 0x36a82
jmp 0x36a84
testb $0x1, -0x132(%rbp)
jne 0x36a8f
jmp 0x36a9b
leaq -0x131(%rbp), %rdi
callq 0x3290
jmp 0x36a9d
testb $0x1, -0x10b(%rbp)
jne 0x36aa8
jmp 0x36ab4
leaq -0x10a(%rbp), %rdi
callq 0x3290
jmp 0x36ab6
leaq -0x108(%rbp), %rdi
callq 0x34a8
jmp 0x36ac4
jmp 0x36ac6
leaq -0x109(%rbp), %rdi
callq 0x3290
leaq -0xa0(%rbp), %rdi
callq 0x34a8
jmp 0x36ae0
jmp 0x36ae2
leaq -0xc0(%rbp), %rdi
callq 0x34a8
jmp 0x36af0
jmp 0x36af2
leaq -0xc1(%rbp), %rdi
callq 0x3290
jmp 0x375fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x36b2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x34a8
jmp 0x36b2b
jmp 0x36b2d
leaq -0x159(%rbp), %rdi
callq 0x3290
jmp 0x375fb
movq $0x0, -0x168(%rbp)
movq $0x0, -0x170(%rbp)
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x786f5(%rip), %r8      # 0xaf258
leaq -0x168(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x46d0
movl %eax, -0x4e0(%rbp)
jmp 0x36b7e
movl -0x4e0(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x4ec(%rbp)
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x3440
movq -0x4e8(%rbp), %rdx
leaq 0x7c564(%rip), %rsi     # 0xb3115
leaq -0x1d0(%rbp), %rdi
callq 0x3340
jmp 0x36bbf
leaq 0x7ccd2(%rip), %rdx     # 0xb3898
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0xaa1b0
jmp 0x36bdb
leaq -0x219(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x3440
movq -0x4f8(%rbp), %rdx
movb $0x0, -0x21b(%rbp)
movb $0x0, -0x242(%rbp)
movb $0x0, -0x243(%rbp)
leaq 0x7d8f3(%rip), %rsi     # 0xb4504
leaq -0x218(%rbp), %rdi
callq 0x3340
jmp 0x36c1f
leaq -0x218(%rbp), %rdi
callq 0x33f0
movb %al, -0x4f9(%rbp)
jmp 0x36c33
movb -0x4f9(%rbp), %al
testb $0x1, %al
jne 0x36c3f
jmp 0x36c77
leaq -0x21a(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x3440
movq -0x508(%rbp), %rdx
movb $0x1, -0x21b(%rbp)
leaq 0x7d89d(%rip), %rsi     # 0xb4504
leaq -0x1f8(%rbp), %rdi
callq 0x3340
jmp 0x36c75
jmp 0x36cd2
leaq -0x241(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0x3440
movq -0x510(%rbp), %rdx
movb $0x1, -0x242(%rbp)
leaq 0x7d865(%rip), %rsi     # 0xb4504
leaq -0x240(%rbp), %rdi
callq 0x3340
jmp 0x36cad
movb $0x1, -0x243(%rbp)
leaq 0x7fa28(%rip), %rsi     # 0xb66e3
leaq -0x1f8(%rbp), %rdi
leaq -0x240(%rbp), %rdx
callq 0xaa6d0
jmp 0x36cd0
jmp 0x36cd2
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
leaq -0x1f8(%rbp), %rdx
callq 0xaa240
jmp 0x36cee
movl -0x4ec(%rbp), %edi
leaq -0x190(%rbp), %rsi
callq 0x28d30
jmp 0x36d02
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x36d10
leaq -0x1f8(%rbp), %rdi
callq 0x34a8
jmp 0x36d1e
testb $0x1, -0x243(%rbp)
jne 0x36d29
jmp 0x36d39
leaq -0x240(%rbp), %rdi
callq 0x34a8
jmp 0x36d37
jmp 0x36d39
testb $0x1, -0x242(%rbp)
jne 0x36d44
jmp 0x36d50
leaq -0x241(%rbp), %rdi
callq 0x3290
testb $0x1, -0x21b(%rbp)
jne 0x36d5b
jmp 0x36d67
leaq -0x21a(%rbp), %rdi
callq 0x3290
leaq -0x218(%rbp), %rdi
callq 0x34a8
jmp 0x36d75
leaq -0x219(%rbp), %rdi
callq 0x3290
leaq -0x1b0(%rbp), %rdi
callq 0x34a8
jmp 0x36d8f
leaq -0x1d0(%rbp), %rdi
callq 0x34a8
jmp 0x36d9d
leaq -0x1d1(%rbp), %rdi
callq 0x3290
movq -0x170(%rbp), %rax
movq %rax, -0x520(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1a400
movq %rax, -0x518(%rbp)
jmp 0x36dc9
movq -0x520(%rbp), %rax
movq -0x518(%rbp), %rcx
cmpq %rcx, %rax
je 0x37233
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x3440
movq -0x528(%rbp), %rdx
leaq 0x7c314(%rip), %rsi     # 0xb3115
leaq -0x2e8(%rbp), %rdi
callq 0x3340
jmp 0x36e0f
leaq 0x7ca87(%rip), %rdx     # 0xb389d
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0xaa1b0
jmp 0x36e2b
leaq 0x7f8b1(%rip), %rdx     # 0xb66e3
leaq -0x2a8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0xaa1b0
jmp 0x36e47
leaq 0x7ca54(%rip), %rdx     # 0xb38a2
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xaa1b0
jmp 0x36e63
leaq 0x7c2f3(%rip), %rdx     # 0xb315d
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0xaa1b0
jmp 0x36e7f
movq 0xc1152(%rip), %rdi     # 0xf7fd8
leaq -0x268(%rbp), %rsi
callq 0x3200
jmp 0x36e94
leaq -0x268(%rbp), %rdi
callq 0x34a8
jmp 0x36ea2
leaq -0x288(%rbp), %rdi
callq 0x34a8
jmp 0x36eb0
leaq -0x2a8(%rbp), %rdi
callq 0x34a8
jmp 0x36ebe
leaq -0x2c8(%rbp), %rdi
callq 0x34a8
jmp 0x36ecc
leaq -0x2e8(%rbp), %rdi
callq 0x34a8
jmp 0x36eda
leaq -0x2e9(%rbp), %rdi
callq 0x3290
movq 0xc10eb(%rip), %rdi     # 0xf7fd8
leaq 0xa4f57(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x530(%rbp)
jmp 0x36f02
leaq -0x310(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xaa610
jmp 0x36f17
movq -0x530(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x3200
movq %rax, -0x538(%rbp)
jmp 0x36f33
movq -0x538(%rbp), %rdi
leaq 0x7c234(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x540(%rbp)
jmp 0x36f4f
leaq -0x28(%rbp), %rdi
callq 0x1a400
movq %rax, -0x548(%rbp)
jmp 0x36f61
movq -0x548(%rbp), %rax
movq %rax, -0x338(%rbp)
leaq -0x330(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0xaa610
jmp 0x36f84
movq -0x540(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x3200
movq %rax, -0x550(%rbp)
jmp 0x36fa0
movq -0x550(%rbp), %rdi
leaq 0x7c0ae(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x558(%rbp)
jmp 0x36fbc
movq -0x558(%rbp), %rdi
movq 0xc0ff6(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x36fd1
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x36fdf
leaq -0x310(%rbp), %rdi
callq 0x34a8
jmp 0x36fed
callq 0x28bd0
jmp 0x36ff4
jmp 0x37233
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3712f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x3711f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37103
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x370f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x370da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x370c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x370a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37094
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x34a8
jmp 0x37092
jmp 0x37094
leaq -0x1f8(%rbp), %rdi
callq 0x34a8
jmp 0x370a2
jmp 0x370a4
testb $0x1, -0x243(%rbp)
jne 0x370af
jmp 0x370bf
leaq -0x240(%rbp), %rdi
callq 0x34a8
jmp 0x370bd
jmp 0x370bf
jmp 0x370c1
testb $0x1, -0x242(%rbp)
jne 0x370cc
jmp 0x370d8
leaq -0x241(%rbp), %rdi
callq 0x3290
jmp 0x370da
testb $0x1, -0x21b(%rbp)
jne 0x370e5
jmp 0x370f1
leaq -0x21a(%rbp), %rdi
callq 0x3290
jmp 0x370f3
leaq -0x218(%rbp), %rdi
callq 0x34a8
jmp 0x37101
jmp 0x37103
leaq -0x219(%rbp), %rdi
callq 0x3290
leaq -0x1b0(%rbp), %rdi
callq 0x34a8
jmp 0x3711d
jmp 0x3711f
leaq -0x1d0(%rbp), %rdi
callq 0x34a8
jmp 0x3712d
jmp 0x3712f
leaq -0x1d1(%rbp), %rdi
callq 0x3290
jmp 0x375fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x371e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x371d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x371c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x371b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x371a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x34a8
jmp 0x371a3
jmp 0x371a5
leaq -0x288(%rbp), %rdi
callq 0x34a8
jmp 0x371b3
jmp 0x371b5
leaq -0x2a8(%rbp), %rdi
callq 0x34a8
jmp 0x371c3
jmp 0x371c5
leaq -0x2c8(%rbp), %rdi
callq 0x34a8
jmp 0x371d3
jmp 0x371d5
leaq -0x2e8(%rbp), %rdi
callq 0x34a8
jmp 0x371e3
jmp 0x371e5
leaq -0x2e9(%rbp), %rdi
callq 0x3290
jmp 0x375fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37220
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x34a8
jmp 0x3721e
jmp 0x37220
leaq -0x310(%rbp), %rdi
callq 0x34a8
jmp 0x3722e
jmp 0x375fb
movq $0x0, -0x340(%rbp)
movq -0x340(%rbp), %rax
movq %rax, -0x568(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1a400
movq %rax, -0x560(%rbp)
jmp 0x3725e
movq -0x568(%rbp), %rax
movq -0x560(%rbp), %rcx
cmpq %rcx, %rax
jae 0x375d4
movq -0x340(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x1a5f0
movq %rax, -0x570(%rbp)
jmp 0x3728e
movq -0x570(%rbp), %rax
movzbl (%rax), %eax
movq -0x168(%rbp), %rcx
movq -0x340(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0x375bb
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x3440
movq -0x578(%rbp), %rdx
leaq 0x7be42(%rip), %rsi     # 0xb3115
leaq -0x3e0(%rbp), %rdi
callq 0x3340
jmp 0x372e1
leaq 0x7c5c4(%rip), %rdx     # 0xb38ac
leaq -0x3c0(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0xaa1b0
jmp 0x372fd
leaq 0x7f3df(%rip), %rdx     # 0xb66e3
leaq -0x3a0(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0xaa1b0
jmp 0x37319
leaq 0x7c591(%rip), %rdx     # 0xb38b1
leaq -0x380(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0xaa1b0
jmp 0x37335
leaq 0x7be21(%rip), %rdx     # 0xb315d
leaq -0x360(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0xaa1b0
jmp 0x37351
movq 0xc0c80(%rip), %rdi     # 0xf7fd8
leaq -0x360(%rbp), %rsi
callq 0x3200
jmp 0x37366
leaq -0x360(%rbp), %rdi
callq 0x34a8
jmp 0x37374
leaq -0x380(%rbp), %rdi
callq 0x34a8
jmp 0x37382
leaq -0x3a0(%rbp), %rdi
callq 0x34a8
jmp 0x37390
leaq -0x3c0(%rbp), %rdi
callq 0x34a8
jmp 0x3739e
leaq -0x3e0(%rbp), %rdi
callq 0x34a8
jmp 0x373ac
leaq -0x3e1(%rbp), %rdi
callq 0x3290
movq 0xc0c19(%rip), %rdi     # 0xf7fd8
leaq 0xa4a85(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x580(%rbp)
jmp 0x373d4
movq -0x340(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x1a5f0
movq %rax, -0x588(%rbp)
jmp 0x373ed
movq -0x588(%rbp), %rsi
leaq -0x408(%rbp), %rdi
callq 0x28c00
jmp 0x37402
movq -0x580(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x3200
movq %rax, -0x590(%rbp)
jmp 0x3741e
movq -0x590(%rbp), %rdi
leaq 0x7bd49(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x598(%rbp)
jmp 0x3743a
movq -0x168(%rbp), %rsi
movq -0x340(%rbp), %rax
addq %rax, %rsi
leaq -0x428(%rbp), %rdi
callq 0x28c00
jmp 0x37459
movq -0x598(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x3200
movq %rax, -0x5a0(%rbp)
jmp 0x37475
movq -0x5a0(%rbp), %rdi
leaq 0x7bbd9(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x5a8(%rbp)
jmp 0x37491
movq -0x5a8(%rbp), %rdi
movq 0xc0b21(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x374a6
leaq -0x428(%rbp), %rdi
callq 0x34a8
jmp 0x374b4
leaq -0x408(%rbp), %rdi
callq 0x34a8
jmp 0x374c2
callq 0x28bd0
jmp 0x374c9
jmp 0x375bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37573
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37563
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37553
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37543
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x37533
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x34a8
jmp 0x37531
jmp 0x37533
leaq -0x380(%rbp), %rdi
callq 0x34a8
jmp 0x37541
jmp 0x37543
leaq -0x3a0(%rbp), %rdi
callq 0x34a8
jmp 0x37551
jmp 0x37553
leaq -0x3c0(%rbp), %rdi
callq 0x34a8
jmp 0x37561
jmp 0x37563
leaq -0x3e0(%rbp), %rdi
callq 0x34a8
jmp 0x37571
jmp 0x37573
leaq -0x3e1(%rbp), %rdi
callq 0x3290
jmp 0x375fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x375ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x34a8
jmp 0x375a9
jmp 0x375ab
leaq -0x408(%rbp), %rdi
callq 0x34a8
jmp 0x375b9
jmp 0x375fb
jmp 0x375bd
movq -0x340(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x340(%rbp)
jmp 0x3723e
movq -0x50(%rbp), %rdi
callq 0x32d0
movq -0x168(%rbp), %rdi
callq 0x32d0
leaq -0x28(%rbp), %rdi
callq 0x1a4c0
addq $0x5b0, %rsp            # imm = 0x5B0
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0x1a4c0
jmp 0x37606
jmp 0x37608
movq -0x38(%rbp), %rdi
callq 0x3430
movq %rax, %rdi
callq 0x1a490
nopl (%rax)