// File: /workspace/github_cpp_makefile_star2_O2/lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: testExif()
void testExif() {
  std::cout << "testExif" << std::endl;

  {
    unsigned error;
    unsigned w = 32, h = 32;
    std::vector<unsigned char> image(w * h * 4);
    for(size_t i = 0; i + 4 <= image.size(); i += 4) {
      image[i] = image[i + 1] = image[i + 2] = image[i + 3] = i;
    }
    std::vector<unsigned char> png;
    lodepng::State state;
    std::string testexif = "MM  0123456789";
    lodepng_set_exif(&state.info_png, (const unsigned char*)testexif.c_str(), testexif.size());
    error = lodepng::encode(png, &image[0], w, h, state);
    ASSERT_NO_PNG_ERROR(error);

    lodepng::State state2;
    std::vector<unsigned char> image2;
    error = lodepng::decode(image2, w, h, state2, png);
    ASSERT_NO_PNG_ERROR(error);
    assertExifDataEqual(state, state2);
    ASSERT_EQUALS(32, w);
    ASSERT_EQUALS(32, h);
    ASSERT_EQUALS(image.size(), image2.size());
  }

  {
    // exif2c08.png PngSuite image
    std::string base64 = "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";
    std::vector<unsigned char> png;
    fromBase64(png, base64);
    lodepng::State state;
    std::vector<unsigned char> image;
    unsigned w, h;
    unsigned error = lodepng::decode(image, w, h, state, png);
    ASSERT_NO_PNG_ERROR(error);
    ASSERT_EQUALS(978, state.info_png.exif_size);
    ASSERT_EQUALS("072f0ad39affebf437689f935fab270c", md5sum(state.info_png.exif, state.info_png.exif_size));
  }
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x678, %rsp            # imm = 0x678
movq 0x65230(%rip), %rdi     # 0xa2fd8
leaq 0x24b27(%rip), %rsi     # 0x628d6
callq 0x21f0
movq %rax, %rdi
callq 0x2100
pushq $0x20
popq %rax
movl %eax, 0x54(%rsp)
movl %eax, 0x8(%rsp)
leaq 0x178(%rsp), %rdx
movb $0x0, (%rdx)
leaq 0xc0(%rsp), %rdi
leaq 0x3f8(%rsp), %rcx
movl $0x1000, %esi           # imm = 0x1000
callq 0x5ab3a
xorl %eax, %eax
leaq 0x4(%rax), %rcx
movq 0xc0(%rsp), %rdx
movq 0xc8(%rsp), %rsi
subq %rdx, %rsi
cmpq %rsi, %rcx
ja 0x3de36
movb %al, 0x3(%rdx,%rax)
movq 0xc0(%rsp), %rdx
movb %al, 0x2(%rdx,%rax)
movq 0xc0(%rsp), %rdx
movb %al, 0x1(%rdx,%rax)
movq 0xc0(%rsp), %rdx
movb %al, (%rdx,%rax)
movq %rcx, %rax
jmp 0x3ddee
xorps %xmm0, %xmm0
movaps %xmm0, 0x100(%rsp)
andq $0x0, 0x110(%rsp)
leaq 0x178(%rsp), %rdi
callq 0xb84c
leaq 0x24a81(%rip), %rsi     # 0x628df
leaq 0xa0(%rsp), %rdi
leaq 0x3f8(%rsp), %rdx
callq 0x20c0
leaq 0x248(%rsp), %rdi
movq 0xa0(%rsp), %rsi
movl 0xa8(%rsp), %edx
callq 0x5002
movq 0xc0(%rsp), %rsi
movl 0x54(%rsp), %edx
movl 0x8(%rsp), %ecx
leaq 0x100(%rsp), %rdi
leaq 0x178(%rsp), %r8
callq 0xbb76
movl %eax, %ebx
leaq 0x22320(%rip), %rsi     # 0x601dd
leaq 0x30(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x20c0
leaq 0x24a18(%rip), %rdx     # 0x628ee
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
leaq 0x236da(%rip), %rsi     # 0x615c6
leaq 0x78(%rsp), %rdi
leaq 0x138(%rsp), %rdx
callq 0x20c0
movq 0x80(%rsp), %r14
testq %r14, %r14
je 0x3df42
leaq 0x236b4(%rip), %rsi     # 0x615c6
leaq 0x158(%rsp), %rdi
leaq 0x9f(%rsp), %rdx
callq 0x20c0
leaq 0x25877(%rip), %rsi     # 0x637a5
leaq 0x58(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x5a8d9
jmp 0x3df5b
leaq 0x2367d(%rip), %rsi     # 0x615c6
leaq 0x58(%rsp), %rdi
leaq 0x158(%rsp), %rdx
callq 0x20c0
leaq 0x3f8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x5a61f
leaq 0x3f8(%rsp), %rsi
movl %ebx, %edi
callq 0x13352
leaq 0x3f8(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
testq %r14, %r14
je 0x3dfaa
leaq 0x158(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x3f8(%rsp), %rdi
callq 0xb84c
xorps %xmm0, %xmm0
leaq 0x120(%rsp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x54(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x3f8(%rsp), %rcx
leaq 0x100(%rsp), %r8
callq 0xb9ef
movl %eax, %ebx
leaq 0x221cd(%rip), %rsi     # 0x601dd
leaq 0x58(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x20c0
leaq 0x248cd(%rip), %rdx     # 0x628f3
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5a5df
leaq 0x2358a(%rip), %rsi     # 0x615c6
leaq 0xe0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x20c0
movq 0xe8(%rsp), %r14
testq %r14, %r14
je 0x3e092
leaq 0x23564(%rip), %rsi     # 0x615c6
leaq 0x138(%rsp), %rdi
leaq 0x9e(%rsp), %rdx
callq 0x20c0
leaq 0x25727(%rip), %rsi     # 0x637a5
leaq 0x78(%rsp), %rdi
leaq 0x138(%rsp), %rdx
callq 0x5a8d9
jmp 0x3e0ab
leaq 0x2352d(%rip), %rsi     # 0x615c6
leaq 0x78(%rsp), %rdi
leaq 0x138(%rsp), %rdx
callq 0x20c0
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x5a61f
leaq 0x10(%rsp), %rsi
movl %ebx, %edi
callq 0x13352
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
testq %r14, %r14
je 0x3e0f1
leaq 0x138(%rsp), %rdi
callq 0x2270
leaq 0xe0(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
leaq 0x178(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
callq 0x3d7c9
cmpl $0x20, 0x54(%rsp)
jne 0x3e3d2
cmpl $0x20, 0x8(%rsp)
jne 0x3e522
movq 0xc8(%rsp), %rax
subq 0xc0(%rsp), %rax
movq 0x128(%rsp), %rcx
subq 0x120(%rsp), %rcx
cmpq %rcx, %rax
jne 0x3e672
leaq 0x120(%rsp), %rdi
callq 0xea7c
leaq 0x3f8(%rsp), %rdi
callq 0xb874
leaq 0xa0(%rsp), %rdi
callq 0x2270
leaq 0x178(%rsp), %rdi
callq 0xb874
leaq 0x100(%rsp), %rdi
callq 0xea7c
leaq 0xc0(%rsp), %rdi
callq 0xea7c
leaq 0x2474c(%rip), %rsi     # 0x62907
leaq 0x3f8(%rsp), %rdi
leaq 0x178(%rsp), %rdx
callq 0x20c0
xorps %xmm0, %xmm0
leaq 0xc0(%rsp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x3f8(%rsp), %rsi
callq 0x5a9c5
leaq 0x178(%rsp), %rdi
callq 0xb84c
xorps %xmm0, %xmm0
leaq 0x100(%rsp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x120(%rsp), %rsi
leaq 0x54(%rsp), %rdx
leaq 0x178(%rsp), %rcx
leaq 0xc0(%rsp), %r8
callq 0xb9ef
movl %eax, %ebx
leaq 0x21fa2(%rip), %rsi     # 0x601dd
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20c0
leaq 0x25007(%rip), %rdx     # 0x63258
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
leaq 0x2335f(%rip), %rsi     # 0x615c6
leaq 0x78(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x20c0
movq 0x80(%rsp), %r14
testq %r14, %r14
je 0x3e2b7
leaq 0x2333c(%rip), %rsi     # 0x615c6
leaq 0xe0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x20c0
leaq 0x25502(%rip), %rsi     # 0x637a5
leaq 0x58(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x5a8d9
jmp 0x3e2d0
leaq 0x23308(%rip), %rsi     # 0x615c6
leaq 0x58(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x20c0
leaq 0xa0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x5a61f
leaq 0xa0(%rsp), %rsi
movl %ebx, %edi
callq 0x13352
leaq 0xa0(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
testq %r14, %r14
je 0x3e31f
leaq 0xe0(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
cmpl $0x3d2, 0x2e0(%rsp) # imm = 0x3D2
jne 0x3e7e2
movq 0x2d8(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
movl $0x3d2, %edx            # imm = 0x3D2
callq 0x13769
leaq 0x24f0c(%rip), %rdi     # 0x6327b
leaq 0xa0(%rsp), %rsi
callq 0x5afaf
movl %eax, %ebx
leaq 0xa0(%rsp), %rdi
callq 0x2270
testb %bl, %bl
jne 0x3e93e
leaq 0x100(%rsp), %rdi
callq 0xea7c
leaq 0x178(%rsp), %rdi
callq 0xb874
leaq 0xc0(%rsp), %rdi
callq 0xea7c
leaq 0x3f8(%rsp), %rdi
callq 0x2270
addq $0x678, %rsp            # imm = 0x678
popq %rbx
popq %r14
retq
leaq 0x21e04(%rip), %rsi     # 0x601dd
leaq 0xe0(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x20c0
leaq 0x24506(%rip), %rdx     # 0x628f8
leaq 0x78(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x5a5df
leaq 0x2539a(%rip), %rdx     # 0x637a5
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x5a5df
leaq 0x21e02(%rip), %rdx     # 0x60223
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5a5df
leaq 0x21dee(%rip), %rdx     # 0x60225
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
movq 0x64b8b(%rip), %rdi     # 0xa2fd8
leaq 0x10(%rsp), %rsi
callq 0x21d0
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0xe0(%rsp), %rdi
callq 0x2270
movq 0x64b45(%rip), %rdi     # 0xa2fd8
leaq 0x4aa73(%rip), %rsi     # 0x88f0d
callq 0x21f0
movq %rax, %rbx
leaq 0x58(%rsp), %rsi
movl $0x20, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x5aaac
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21d72(%rip), %rsi     # 0x6023d
movq %rax, %rdi
callq 0x21f0
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
leaq 0x54(%rsp), %rsi
callq 0x5a957
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21c2b(%rip), %rsi     # 0x60124
movq %rax, %rdi
callq 0x21f0
movq %rax, %rdi
callq 0x2100
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3e7dd
leaq 0x21cb4(%rip), %rsi     # 0x601dd
leaq 0xe0(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x20c0
leaq 0x243bb(%rip), %rdx     # 0x628fd
leaq 0x78(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x5a5df
leaq 0x2524a(%rip), %rdx     # 0x637a5
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x5a5df
leaq 0x21ce2(%rip), %rdx     # 0x60253
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5a5df
leaq 0x21c9e(%rip), %rdx     # 0x60225
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
movq 0x64a3b(%rip), %rdi     # 0xa2fd8
leaq 0x10(%rsp), %rsi
callq 0x21d0
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0xe0(%rsp), %rdi
callq 0x2270
movq 0x649f5(%rip), %rdi     # 0xa2fd8
leaq 0x4a923(%rip), %rsi     # 0x88f0d
callq 0x21f0
movq %rax, %rbx
leaq 0x58(%rsp), %rsi
movl $0x20, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x5aaac
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21c22(%rip), %rsi     # 0x6023d
movq %rax, %rdi
callq 0x21f0
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x5a957
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21adb(%rip), %rsi     # 0x60124
movq %rax, %rdi
callq 0x21f0
movq %rax, %rdi
callq 0x2100
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3e7dd
leaq 0x21b64(%rip), %rsi     # 0x601dd
leaq 0xe0(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x20c0
leaq 0x24270(%rip), %rdx     # 0x62902
leaq 0x78(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x5a5df
leaq 0x250fa(%rip), %rdx     # 0x637a5
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x5a5df
leaq 0x22d1d(%rip), %rdx     # 0x613de
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5a5df
leaq 0x21b4e(%rip), %rdx     # 0x60225
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
movq 0x648eb(%rip), %rdi     # 0xa2fd8
leaq 0x10(%rsp), %rsi
callq 0x21d0
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0xe0(%rsp), %rdi
callq 0x2270
movq 0x648a5(%rip), %rdi     # 0xa2fd8
leaq 0x4a7d3(%rip), %rsi     # 0x88f0d
callq 0x21f0
movq %rax, %rbx
movq 0xc8(%rsp), %rax
subq 0xc0(%rsp), %rax
leaq 0x58(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0x5a86b
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21ac5(%rip), %rsi     # 0x6023d
movq %rax, %rdi
callq 0x21f0
movq %rax, %rbx
movq 0x128(%rsp), %rax
subq 0x120(%rsp), %rax
leaq 0x78(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x30(%rsp), %rdi
callq 0x5a86b
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x2196b(%rip), %rsi     # 0x60124
movq %rax, %rdi
callq 0x21f0
movq %rax, %rdi
callq 0x2100
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
callq 0x13280
leaq 0x219f4(%rip), %rsi     # 0x601dd
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20c0
leaq 0x24a5e(%rip), %rdx     # 0x6325d
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x5a5df
leaq 0x24f90(%rip), %rdx     # 0x637a5
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5a5df
leaq 0x24a37(%rip), %rdx     # 0x63262
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
leaq 0x219e4(%rip), %rdx     # 0x60225
leaq 0xa0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5a5df
movq 0x6477e(%rip), %rdi     # 0xa2fd8
leaq 0xa0(%rsp), %rsi
callq 0x21d0
leaq 0xa0(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
movq 0x64735(%rip), %rdi     # 0xa2fd8
leaq 0x4a663(%rip), %rsi     # 0x88f0d
callq 0x21f0
movq %rax, %rbx
leaq 0x30(%rsp), %rsi
movl $0x3d2, (%rsi)          # imm = 0x3D2
leaq 0xa0(%rsp), %rdi
callq 0x5aaac
leaq 0xa0(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x2195c(%rip), %rsi     # 0x6023d
movq %rax, %rdi
callq 0x21f0
movq %rax, %rbx
leaq 0x2e0(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0x5a957
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21812(%rip), %rsi     # 0x60124
movq %rax, %rdi
callq 0x21f0
movq %rax, %rdi
callq 0x2100
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0xa0(%rsp), %rdi
callq 0x2270
callq 0x13280
leaq 0x21898(%rip), %rsi     # 0x601dd
leaq 0x78(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20c0
leaq 0x24941(%rip), %rdx     # 0x6329c
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x5a5df
leaq 0x24e34(%rip), %rdx     # 0x637a5
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5a5df
leaq 0x2491a(%rip), %rdx     # 0x632a1
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5a5df
leaq 0x21888(%rip), %rdx     # 0x60225
leaq 0xa0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x5a5df
movq 0x64622(%rip), %rdi     # 0xa2fd8
leaq 0xa0(%rsp), %rsi
callq 0x21d0
leaq 0xa0(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
movq 0x645d9(%rip), %rdi     # 0xa2fd8
leaq 0x4a507(%rip), %rsi     # 0x88f0d
callq 0x21f0
movq %rax, %rbx
leaq 0x24866(%rip), %rsi     # 0x6327b
leaq 0xa0(%rsp), %rdi
callq 0x5afb9
leaq 0xa0(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x21804(%rip), %rsi     # 0x6023d
movq %rax, %rdi
callq 0x21f0
movq %rax, %rbx
movq 0x2d8(%rsp), %rsi
movl 0x2e0(%rsp), %edx
leaq 0x30(%rsp), %rdi
callq 0x13769
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x5ad79
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x21d0
leaq 0x216a4(%rip), %rsi     # 0x60124
movq %rax, %rdi
callq 0x21f0
movq %rax, %rdi
callq 0x2100
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3e939
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3eac8
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3eb1d
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3eb32
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3eb47
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3eb59
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3eb6b
jmp 0x3eb1a
jmp 0x3eb2f
jmp 0x3eb44
jmp 0x3eb56
jmp 0x3eb68
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3ee71
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3ee71
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
jmp 0x3ee25
jmp 0x3ee25
jmp 0x3ef58
jmp 0x3ef58
jmp 0x3ef58
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3ebe7
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3ebf6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ec05
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ec14
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ec23
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ec32
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3ec41
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3ec50
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3ec5f
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3ec6e
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3ec7d
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3ec8c
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
jmp 0x3ec9b
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
jmp 0x3ecaa
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
jmp 0x3ecb9
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
jmp 0x3ecc8
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
jmp 0x3ecda
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2270
jmp 0x3ecec
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2270
jmp 0x3ed01
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2270
jmp 0x3ed16
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2270
jmp 0x3ee71
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2270
jmp 0x3ee71
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
jmp 0x3ee09
jmp 0x3ee0e
jmp 0x3ee16
jmp 0x3ee25
jmp 0x3ee25
jmp 0x3ef58
jmp 0x3ef58
jmp 0x3ef58
movq %rax, %rbx
jmp 0x3ee46
movq %rax, %rbx
jmp 0x3eed0
movq %rax, %rbx
jmp 0x3ef26
movq %rax, %rbx
jmp 0x3ee98
movq %rax, %rbx
jmp 0x3ee7e
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3ee71
movq %rax, %rbx
jmp 0x3ee41
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x2270
jmp 0x3ee37
jmp 0x3ee20
jmp 0x3edff
movq %rax, %rbx
jmp 0x3ef9c
jmp 0x3edf7
movq %rax, %rbx
jmp 0x3ef68
movq %rax, %rbx
jmp 0x3eecb
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2270
jmp 0x3eec1
movq %rax, %rbx
jmp 0x3ef21
movq %rax, %rbx
leaq 0x3f8(%rsp), %rdi
callq 0x2270
jmp 0x3ef17
movq %rax, %rbx
jmp 0x3ef82
movq %rax, %rbx
jmp 0x3efa9
jmp 0x3ee25
movq %rax, %rbx
jmp 0x3ee53
movq %rax, %rbx
jmp 0x3eedd
movq %rax, %rbx
jmp 0x3ef33
jmp 0x3ee25
movq %rax, %rbx
jmp 0x3ee8b
movq %rax, %rbx
jmp 0x3ee71
movq %rax, %rbx
jmp 0x3ee67
movq %rax, %rbx
jmp 0x3ee5d
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
testq %r14, %r14
je 0x3ee53
leaq 0xe0(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x100(%rsp), %rdi
callq 0xea7c
leaq 0x178(%rsp), %rdi
callq 0xb874
leaq 0xc0(%rsp), %rdi
callq 0xea7c
leaq 0x3f8(%rsp), %rdi
callq 0x2270
jmp 0x3efa9
jmp 0x3ef53
jmp 0x3ef58
movq %rax, %rbx
jmp 0x3eef4
movq %rax, %rbx
jmp 0x3eeea
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x2270
testq %r14, %r14
je 0x3eedd
leaq 0x138(%rsp), %rdi
callq 0x2270
leaq 0xe0(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
leaq 0x58(%rsp), %rdi
callq 0x2270
jmp 0x3ef5b
movq %rax, %rbx
jmp 0x3ef8f
jmp 0x3ef53
movq %rax, %rbx
jmp 0x3ef47
movq %rax, %rbx
jmp 0x3ef3d
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x2270
testq %r14, %r14
je 0x3ef33
leaq 0x158(%rsp), %rdi
callq 0x2270
leaq 0x78(%rsp), %rdi
callq 0x2270
leaq 0x10(%rsp), %rdi
callq 0x2270
leaq 0x30(%rsp), %rdi
callq 0x2270
jmp 0x3ef75
movq %rax, %rbx
jmp 0x3ef75
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xea7c
leaq 0x3f8(%rsp), %rdi
callq 0xb874
leaq 0xa0(%rsp), %rdi
callq 0x2270
leaq 0x178(%rsp), %rdi
callq 0xb874
leaq 0x100(%rsp), %rdi
callq 0xea7c
leaq 0xc0(%rsp), %rdi
callq 0xea7c
movq %rbx, %rdi
callq 0x2380
movq %rax, %rdi
callq 0xe6cc