// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movl 0x158(%rdi), %eax
cmpl 0x158(%rsi), %eax
jne 0x4c375
testl %eax, %eax
je 0x4c0fe
movl 0x168(%r14), %eax
cmpl 0x168(%rbx), %eax
jne 0x4c590
testq %rax, %rax
je 0x4c0fe
movq 0x160(%r14), %rcx
movq 0x160(%rbx), %rdx
negq %rax
xorl %ebp, %ebp
xorl %esi, %esi
movb (%rcx,%rsi), %dil
cmpb (%rdx,%rsi), %dil
jne 0x4c110
incq %rsi
decq %rbp
cmpq %rbp, %rax
jne 0x4c0e9
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2a25a(%rip), %rsi     # 0x7637d
leaq 0x2a258(%rip), %rdx     # 0x76382
leaq 0x88(%rsp), %rdi
callq 0x14f6e
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x1518a
leaq 0x2c8fa(%rip), %rsi     # 0x78a5e
leaq 0x48(%rsp), %rdi
callq 0x23e0
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x1518a
leaq 0x2d7af(%rip), %rsi     # 0x79945
leaq 0x68(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x2c89c(%rip), %rsi     # 0x78a63
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 0x2a1cd(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x67dc5(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4c22c
callq 0x2210
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4c240
callq 0x2210
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x4c24f
callq 0x2210
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x4c25e
callq 0x2210
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x4c270
callq 0x2210
movq 0x67d61(%rip), %r15     # 0xb3fd8
leaq 0x52e2f(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
movq %r15, %rdi
callq 0x2280
movq 0x160(%r14), %rsi
subq %rbp, %rsi
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x16232
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r15, %rdi
callq 0x2280
movq %rax, %r14
leaq 0x2a122(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
movq 0x160(%rbx), %rsi
subq %rbp, %rsi
leaq 0x28(%rsp), %rdi
callq 0x16232
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r14, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x29fcc(%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 0x4c340
callq 0x2210
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4c354
callq 0x2210
movl $0x4, %edi
callq 0x2120
movl $0x1, (%rax)
movq 0x67c4d(%rip), %rsi     # 0xb3fb8
movq %rax, %rdi
xorl %edx, %edx
callq 0x2390
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x29ff5(%rip), %rsi     # 0x7637d
leaq 0x29ff3(%rip), %rdx     # 0x76382
leaq 0x88(%rsp), %rdi
callq 0x14f6e
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x1518a
leaq 0x2c65d(%rip), %rsi     # 0x78a27
leaq 0x48(%rsp), %rdi
callq 0x23e0
leaq 0x78(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x1518a
leaq 0x2d54a(%rip), %rsi     # 0x79945
leaq 0x68(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x2c600(%rip), %rsi     # 0x78a2c
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 0x29f68(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x67b60(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4c491
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x4c4a0
callq 0x2210
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4c4af
callq 0x2210
movl $0x158, %ebp            # imm = 0x158
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x4c4c3
callq 0x2210
addq %rbp, %r14
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x4c4d8
callq 0x2210
movq 0x67af9(%rip), %r15     # 0xb3fd8
leaq 0x52bc7(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
movq %r15, %rdi
callq 0x2280
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x704a4
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %r15, %rdi
callq 0x2280
movq %rax, %r14
leaq 0x29ebf(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
addq %rbp, %rbx
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x704a4
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r14, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x29d6d(%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 0x4c7a6
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x29dda(%rip), %rsi     # 0x7637d
leaq 0x29dd8(%rip), %rdx     # 0x76382
leaq 0x88(%rsp), %rdi
callq 0x14f6e
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x1518a
leaq 0x2c45f(%rip), %rsi     # 0x78a44
leaq 0x48(%rsp), %rdi
callq 0x23e0
leaq 0x78(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
leaq 0x68(%rsp), %rdi
callq 0x1518a
leaq 0x2d32f(%rip), %rsi     # 0x79945
leaq 0x68(%rsp), %rdi
callq 0x23e0
leaq 0x38(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x28(%rsp), %rdi
callq 0x1518a
leaq 0x2c402(%rip), %rsi     # 0x78a49
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 0x29d4d(%rip), %rsi     # 0x763c5
leaq 0x8(%rsp), %rdi
callq 0x23e0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x67945(%rip), %rdi     # 0xb3fd8
callq 0x2280
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4c6ac
callq 0x2210
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x4c6bb
callq 0x2210
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4c6ca
callq 0x2210
movl $0x168, %ebp            # imm = 0x168
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x4c6de
callq 0x2210
addq %rbp, %r14
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x4c6f3
callq 0x2210
movq 0x678de(%rip), %r15     # 0xb3fd8
leaq 0x529ac(%rip), %rsi     # 0x9f0ad
movl $0x9, %edx
movq %r15, %rdi
callq 0x2280
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x704a4
movq (%r12), %rsi
movq 0x8(%r12), %rdx
movq %r15, %rdi
callq 0x2280
movq %rax, %r14
leaq 0x29ca4(%rip), %rsi     # 0x763dd
movl $0x9, %edx
movq %rax, %rdi
callq 0x2280
addq %rbp, %rbx
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x704a4
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq %r14, %rdi
callq 0x2280
movq %rax, %rbx
leaq 0x29b52(%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 %r13, %rdi
jne 0x4c33b
jmp 0x4c340
jmp 0x4c7bd
jmp 0x4c826
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
jne 0x4c7ea
jmp 0x4c829
jmp 0x4c826
jmp 0x4c826
jmp 0x4c7f3
jmp 0x4c826
jmp 0x4c7f3
jmp 0x4c7f3
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4c829
callq 0x2210
jmp 0x4c829
jmp 0x4c826
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4c815
callq 0x2210
jmp 0x4c815
jmp 0x4c812
jmp 0x4c812
jmp 0x4c812
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0x4c865
callq 0x2210
jmp 0x4c865
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
jne 0x4c8ea
jmp 0x4c8f4
jmp 0x4c862
jmp 0x4c849
jmp 0x4c862
jmp 0x4c862
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x4c881
callq 0x2210
jmp 0x4c881
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4c89a
callq 0x2210
jmp 0x4c89a
jmp 0x4c897
jmp 0x4c87e
jmp 0x4c897
jmp 0x4c897
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x4c8b1
callq 0x2210
jmp 0x4c8b1
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
jne 0x4c8d3
jmp 0x4c8dd
jmp 0x4c8da
jmp 0x4c8ae
jmp 0x4c8da
jmp 0x4c8f1
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x4c8c9
callq 0x2210
jmp 0x4c8c9
jmp 0x4c8f1
jmp 0x4c8c6
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x4c8dd
callq 0x2210
jmp 0x4c8dd
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x4c8f4
callq 0x2210
jmp 0x4c8f4
movq %rax, %rbx
movq %rbx, %rdi
callq 0x23c0