// File: /workspace/github_cpp_makefile_star2_O1/lvandeve[P]lodepng/lodepng.cpp
// Function: lodepng_info_copy(LodePNGInfo*, LodePNGInfo const*)
unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source) {
  lodepng_info_cleanup(dest);
  lodepng_memcpy(dest, source, sizeof(LodePNGInfo));
  lodepng_color_mode_init(&dest->color);
  CERROR_TRY_RETURN(lodepng_color_mode_copy(&dest->color, &source->color));

#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS
  CERROR_TRY_RETURN(LodePNGText_copy(dest, source));
  CERROR_TRY_RETURN(LodePNGIText_copy(dest, source));
  if(source->iccp_defined) {
    dest->iccp_defined = 0; /*the memcpy above set this to 1 while it shouldn't*/
    CERROR_TRY_RETURN(lodepng_set_icc(dest, source->iccp_name, source->iccp_profile, source->iccp_profile_size));
  }
  if(source->exif_defined) {
    dest->exif_defined = 0; /*the memcpy above set this to 1 while it shouldn't*/
    CERROR_TRY_RETURN(lodepng_set_exif(dest, source->exif, source->exif_size));
  }

  LodePNGUnknownChunks_init(dest);
  CERROR_TRY_RETURN(LodePNGUnknownChunks_copy(dest, source));
#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x5b91
movl $0x1a8, %edx            # imm = 0x1A8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x21d0
leaq 0x10(%r14), %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%r14)
movabsq $0x800000006, %rax      # imm = 0x800000006
movq %rax, 0x10(%r14)
movups %xmm0, 0x18(%r14)
leaq 0x10(%rbx), %rsi
callq 0x52e4
movl %eax, %ebp
testl %eax, %eax
jne 0x5d6d
xorps %xmm0, %xmm0
movups %xmm0, 0x48(%r14)
movq $0x0, 0x58(%r14)
cmpq $0x0, 0x48(%rbx)
je 0x5ce4
xorl %r12d, %r12d
movq 0x50(%rbx), %rax
movq 0x58(%rbx), %rcx
movq (%rax,%r12,8), %rsi
movq (%rcx,%r12,8), %rdx
movq $-0x1, %rcx
cmpb $0x0, 0x1(%rdx,%rcx)
leaq 0x1(%rcx), %rcx
jne 0x5cc0
movq %r14, %rdi
callq 0x556c
testl %eax, %eax
cmovnel %eax, %r15d
jne 0x5ce7
incq %r12
cmpq 0x48(%rbx), %r12
jne 0x5ca9
xorl %r15d, %r15d
testl %r15d, %r15d
cmovnel %r15d, %ebp
jne 0x5d6d
xorps %xmm0, %xmm0
movups %xmm0, 0x70(%r14)
movups %xmm0, 0x60(%r14)
movq $0x0, 0x80(%r14)
cmpq $0x0, 0x60(%rbx)
je 0x5d61
xorl %r12d, %r12d
movq 0x68(%rbx), %rax
movq 0x70(%rbx), %rcx
movq (%rax,%r12,8), %rsi
movq (%rcx,%r12,8), %rdx
movq 0x78(%rbx), %rax
movq (%rax,%r12,8), %rcx
movq 0x80(%rbx), %rax
movq (%rax,%r12,8), %r8
movq $-0x1, %r9
cmpb $0x0, 0x1(%r8,%r9)
leaq 0x1(%r9), %r9
jne 0x5d3c
movq %r14, %rdi
callq 0x5766
testl %eax, %eax
cmovnel %eax, %r15d
jne 0x5d64
incq %r12
cmpq 0x60(%rbx), %r12
jne 0x5d12
xorl %r15d, %r15d
testl %r15d, %r15d
cmovnel %r15d, %ebp
je 0x5d7e
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x0, 0xfc(%rbx)
je 0x5db5
movl $0x0, 0xfc(%r14)
movq 0x100(%rbx), %rsi
movq 0x108(%rbx), %rdx
movl 0x110(%rbx), %ecx
movq %r14, %rdi
callq 0x58c7
testl %eax, %eax
cmovnel %eax, %ebp
jne 0x5d6d
cmpl $0x0, 0x88(%rbx)
je 0x5de5
movl $0x0, 0x88(%r14)
movq 0x90(%rbx), %rsi
movl 0x98(%rbx), %edx
movq %r14, %rdi
callq 0x5a2b
testl %eax, %eax
cmovnel %eax, %ebp
jne 0x5d6d
leaq 0x178(%r14), %r12
xorps %xmm0, %xmm0
movups %xmm0, 0x198(%r14)
movups %xmm0, 0x188(%r14)
movups %xmm0, 0x178(%r14)
xorl %r15d, %r15d
movq (%r12,%r15,8), %rdi
callq 0x2290
incq %r15
cmpq $0x3, %r15
jne 0x5e0a
xorl %r13d, %r13d
movq 0x190(%rbx,%r13,8), %rbp
movq %rbp, 0x190(%r14,%r13,8)
movq 0x190(%rbx,%r13,8), %r15
movq %r15, %rdi
callq 0x22a0
movq %rax, 0x178(%r14,%r13,8)
testq %rax, %rax
setne %al
testq %rbp, %rbp
sete %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x5e90
testq %r15, %r15
je 0x5e80
xorl %eax, %eax
movq 0x178(%rbx,%r13,8), %rcx
movb (%rcx,%rax), %cl
movq (%r12,%r13,8), %rdx
movb %cl, (%rdx,%rax)
incq %rax
cmpq 0x190(%rbx,%r13,8), %rax
jb 0x5e61
incq %r13
xorl %ebp, %ebp
cmpq $0x3, %r13
jne 0x5e1f
jmp 0x5d6d
movl $0x53, %ebp
jmp 0x5d6d