// File: lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: assertExifDataEqual(lodepng::State const&, lodepng::State const&)
void assertExifDataEqual(const lodepng::State& a, const lodepng::State& b) {
  ASSERT_EQUALS(a.info_png.exif_defined, b.info_png.exif_defined);
  if(!a.info_png.exif_defined) return;

  ASSERT_EQUALS(a.info_png.exif_size, b.info_png.exif_size);
  for(size_t i = 0; i < a.info_png.exif_size; i++) {
    ASSERT_EQUALS(a.info_png.exif[i], b.info_png.exif[i]);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x390, %rsp            # imm = 0x390
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl 0x158(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x158(%rcx), %eax
je 0x7438f
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x2e8(%rbp)
callq 0x3440
movq -0x2e8(%rbp), %rdx
leaq 0x3f067(%rip), %rsi     # 0xb3115
leaq -0xb0(%rbp), %rdi
callq 0x3340
jmp 0x740bc
leaq 0x41702(%rip), %rdx     # 0xb57c5
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xaa1b0
jmp 0x740d8
leaq 0x42604(%rip), %rdx     # 0xb66e3
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xaa1b0
jmp 0x740f1
leaq 0x416d2(%rip), %rdx     # 0xb57ca
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0xaa1b0
jmp 0x74107
leaq 0x3f04f(%rip), %rdx     # 0xb315d
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xaa1b0
jmp 0x7411d
movq 0x83eb4(%rip), %rdi     # 0xf7fd8
leaq -0x30(%rbp), %rsi
callq 0x3200
jmp 0x7412f
leaq -0x30(%rbp), %rdi
callq 0x34a8
jmp 0x7413a
leaq -0x50(%rbp), %rdi
callq 0x34a8
jmp 0x74145
leaq -0x70(%rbp), %rdi
callq 0x34a8
jmp 0x74150
leaq -0x90(%rbp), %rdi
callq 0x34a8
jmp 0x7415e
leaq -0xb0(%rbp), %rdi
callq 0x34a8
jmp 0x7416c
leaq -0xb1(%rbp), %rdi
callq 0x3290
movq 0x83e59(%rip), %rdi     # 0xf7fd8
leaq 0x67cc5(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x300(%rbp)
movq -0x8(%rbp), %rsi
addq $0x158, %rsi            # imm = 0x158
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
callq 0xaa7f0
movq -0x300(%rbp), %rdi
movq -0x2f8(%rbp), %rsi
callq 0x3200
movq %rax, -0x2f0(%rbp)
jmp 0x741cc
movq -0x2f0(%rbp), %rdi
leaq 0x3ef9b(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x308(%rbp)
jmp 0x741e8
movq -0x10(%rbp), %rsi
addq $0x158, %rsi            # imm = 0x158
leaq -0x108(%rbp), %rdi
callq 0xaa7f0
jmp 0x74201
movq -0x308(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x3200
movq %rax, -0x310(%rbp)
jmp 0x7421d
movq -0x310(%rbp), %rdi
leaq 0x3ee31(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x318(%rbp)
jmp 0x74239
movq -0x318(%rbp), %rdi
movq 0x83d79(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x7424e
leaq -0x108(%rbp), %rdi
callq 0x34a8
jmp 0x7425c
leaq -0xe8(%rbp), %rdi
callq 0x34a8
callq 0x28bd0
jmp 0x7438f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74335
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74325
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74315
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74308
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x742fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x34a8
jmp 0x742f9
jmp 0x742fb
leaq -0x50(%rbp), %rdi
callq 0x34a8
jmp 0x74306
jmp 0x74308
leaq -0x70(%rbp), %rdi
callq 0x34a8
jmp 0x74313
jmp 0x74315
leaq -0x90(%rbp), %rdi
callq 0x34a8
jmp 0x74323
jmp 0x74325
leaq -0xb0(%rbp), %rdi
callq 0x34a8
jmp 0x74333
jmp 0x74335
leaq -0xb1(%rbp), %rdi
callq 0x3290
jmp 0x74a90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x7437c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x34a8
jmp 0x7437a
jmp 0x7437c
leaq -0xe8(%rbp), %rdi
callq 0x34a8
jmp 0x7438a
jmp 0x74a90
movq -0x8(%rbp), %rax
cmpl $0x0, 0x158(%rax)
jne 0x743a1
jmp 0x74a87
movq -0x8(%rbp), %rax
movl 0x168(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x168(%rcx), %eax
je 0x746e1
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x320(%rbp)
callq 0x3440
movq -0x320(%rbp), %rdx
leaq 0x3ed39(%rip), %rsi     # 0xb3115
leaq -0x1a8(%rbp), %rdi
callq 0x3340
jmp 0x743ea
leaq 0x413f1(%rip), %rdx     # 0xb57e2
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xaa1b0
jmp 0x74406
leaq 0x422d6(%rip), %rdx     # 0xb66e3
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xaa1b0
jmp 0x74422
leaq 0x413be(%rip), %rdx     # 0xb57e7
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0xaa1b0
jmp 0x7443e
leaq 0x3ed18(%rip), %rdx     # 0xb315d
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0xaa1b0
jmp 0x7445a
movq 0x83b77(%rip), %rdi     # 0xf7fd8
leaq -0x128(%rbp), %rsi
callq 0x3200
jmp 0x7446f
leaq -0x128(%rbp), %rdi
callq 0x34a8
jmp 0x7447d
leaq -0x148(%rbp), %rdi
callq 0x34a8
jmp 0x7448b
leaq -0x168(%rbp), %rdi
callq 0x34a8
jmp 0x74499
leaq -0x188(%rbp), %rdi
callq 0x34a8
jmp 0x744a7
leaq -0x1a8(%rbp), %rdi
callq 0x34a8
jmp 0x744b5
leaq -0x1a9(%rbp), %rdi
callq 0x3290
movq 0x83b10(%rip), %rdi     # 0xf7fd8
leaq 0x6797c(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x338(%rbp)
movq -0x8(%rbp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq -0x1d0(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0xaa7f0
movq -0x338(%rbp), %rdi
movq -0x330(%rbp), %rsi
callq 0x3200
movq %rax, -0x328(%rbp)
jmp 0x74515
movq -0x328(%rbp), %rdi
leaq 0x3ec52(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x340(%rbp)
jmp 0x74531
movq -0x10(%rbp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq -0x1f0(%rbp), %rdi
callq 0xaa7f0
jmp 0x7454a
movq -0x340(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x3200
movq %rax, -0x348(%rbp)
jmp 0x74566
movq -0x348(%rbp), %rdi
leaq 0x3eae8(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x350(%rbp)
jmp 0x74582
movq -0x350(%rbp), %rdi
movq 0x83a30(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x74597
leaq -0x1f0(%rbp), %rdi
callq 0x34a8
jmp 0x745a5
leaq -0x1d0(%rbp), %rdi
callq 0x34a8
callq 0x28bd0
jmp 0x746e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74687
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74677
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74667
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74657
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x34a8
jmp 0x74645
jmp 0x74647
leaq -0x148(%rbp), %rdi
callq 0x34a8
jmp 0x74655
jmp 0x74657
leaq -0x168(%rbp), %rdi
callq 0x34a8
jmp 0x74665
jmp 0x74667
leaq -0x188(%rbp), %rdi
callq 0x34a8
jmp 0x74675
jmp 0x74677
leaq -0x1a8(%rbp), %rdi
callq 0x34a8
jmp 0x74685
jmp 0x74687
leaq -0x1a9(%rbp), %rdi
callq 0x3290
jmp 0x74a90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x746ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x34a8
jmp 0x746cc
jmp 0x746ce
leaq -0x1d0(%rbp), %rdi
callq 0x34a8
jmp 0x746dc
jmp 0x74a90
movq $0x0, -0x1f8(%rbp)
movq -0x1f8(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x168(%rcx), %ecx
cmpq %rcx, %rax
jae 0x74a87
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rax
movq -0x1f8(%rbp), %rcx
movzbl (%rax,%rcx), %eax
movq -0x10(%rbp), %rcx
movq 0x160(%rcx), %rcx
movq -0x1f8(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0x74a6e
leaq -0x299(%rbp), %rdi
movq %rdi, -0x358(%rbp)
callq 0x3440
movq -0x358(%rbp), %rdx
leaq 0x3e9ba(%rip), %rsi     # 0xb3115
leaq -0x298(%rbp), %rdi
callq 0x3340
jmp 0x74769
leaq 0x4108c(%rip), %rdx     # 0xb57fc
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0xaa1b0
jmp 0x74785
leaq 0x41f57(%rip), %rdx     # 0xb66e3
leaq -0x258(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0xaa1b0
jmp 0x747a1
leaq 0x41059(%rip), %rdx     # 0xb5801
leaq -0x238(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0xaa1b0
jmp 0x747bd
leaq 0x3e999(%rip), %rdx     # 0xb315d
leaq -0x218(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0xaa1b0
jmp 0x747d9
movq 0x837f8(%rip), %rdi     # 0xf7fd8
leaq -0x218(%rbp), %rsi
callq 0x3200
jmp 0x747ee
leaq -0x218(%rbp), %rdi
callq 0x34a8
jmp 0x747fc
leaq -0x238(%rbp), %rdi
callq 0x34a8
jmp 0x7480a
leaq -0x258(%rbp), %rdi
callq 0x34a8
jmp 0x74818
leaq -0x278(%rbp), %rdi
callq 0x34a8
jmp 0x74826
leaq -0x298(%rbp), %rdi
callq 0x34a8
jmp 0x74834
leaq -0x299(%rbp), %rdi
callq 0x3290
movq 0x83791(%rip), %rdi     # 0xf7fd8
leaq 0x675fd(%rip), %rsi     # 0xdbe4b
callq 0x3230
movq %rax, -0x370(%rbp)
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rsi
movq -0x1f8(%rbp), %rax
addq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x368(%rbp)
callq 0x28c00
movq -0x370(%rbp), %rdi
movq -0x368(%rbp), %rsi
callq 0x3200
movq %rax, -0x360(%rbp)
jmp 0x7489e
movq -0x360(%rbp), %rdi
leaq 0x3e8c9(%rip), %rsi     # 0xb3175
callq 0x3230
movq %rax, -0x378(%rbp)
jmp 0x748ba
movq -0x10(%rbp), %rax
movq 0x160(%rax), %rsi
movq -0x1f8(%rbp), %rax
addq %rax, %rsi
leaq -0x2e0(%rbp), %rdi
callq 0x28c00
jmp 0x748dd
movq -0x378(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x3200
movq %rax, -0x380(%rbp)
jmp 0x748f9
movq -0x380(%rbp), %rdi
leaq 0x3e755(%rip), %rsi     # 0xb305c
callq 0x3230
movq %rax, -0x388(%rbp)
jmp 0x74915
movq -0x388(%rbp), %rdi
movq 0x8369d(%rip), %rsi     # 0xf7fc0
callq 0x3280
jmp 0x7492a
leaq -0x2e0(%rbp), %rdi
callq 0x34a8
jmp 0x74938
leaq -0x2c0(%rbp), %rdi
callq 0x34a8
callq 0x28bd0
jmp 0x74a6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74a1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x749fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x749ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x749da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x34a8
jmp 0x749d8
jmp 0x749da
leaq -0x238(%rbp), %rdi
callq 0x34a8
jmp 0x749e8
jmp 0x749ea
leaq -0x258(%rbp), %rdi
callq 0x34a8
jmp 0x749f8
jmp 0x749fa
leaq -0x278(%rbp), %rdi
callq 0x34a8
jmp 0x74a08
jmp 0x74a0a
leaq -0x298(%rbp), %rdi
callq 0x34a8
jmp 0x74a18
jmp 0x74a1a
leaq -0x299(%rbp), %rdi
callq 0x3290
jmp 0x74a90
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x74a5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x34a8
jmp 0x74a5c
jmp 0x74a5e
leaq -0x2c0(%rbp), %rdi
callq 0x34a8
jmp 0x74a6c
jmp 0x74a90
jmp 0x74a70
movq -0x1f8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1f8(%rbp)
jmp 0x746ec
addq $0x390, %rsp            # imm = 0x390
popq %rbp
retq
movq -0xc0(%rbp), %rdi
callq 0x3430
movq %rax, %rdi
callq 0x1a490
nopw %cs:(%rax,%rax)