// File: /workspace/github_cpp_makefile_star2_O3/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<double>::CImg(cimg_library::CImg<double> const&)
CImg(const CImg<T>& img) {
      const unsigned long siz = img.size();
      if (img._data && siz) {
        _width = img._width; _height = img._height; _depth = img._depth; _spectrum = img._spectrum;
        _is_shared = img._is_shared;
        if (_is_shared) _data = const_cast<T*>(img._data);
        else {
          try { _data = new T[siz]; } catch (...) {
            _width = _height = _depth = _spectrum = 0; _data = 0;
            throw CImgInstanceException(_cimg_instance
                                        "CImg(): Failed to allocate memory (%s) for image (%u,%u,%u,%u).",
                                        cimg_instance,
                                        cimg::strbuffersize(sizeof(T)*img._width*img._height*img._depth*img._spectrum),
                                        img._width,img._height,img._depth,img._spectrum);

          }
          std::memcpy(_data,img._data,siz*sizeof(T));
        }
      } else { _width = _height = _depth = _spectrum = 0; _is_shared = false; _data = 0; }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %r15
movq 0x18(%rsi), %rax
testq %rax, %rax
je 0x8a96
movq %rsi, %rbx
movl (%rsi), %ecx
movl 0x4(%rsi), %edx
movq %rdx, %r8
imulq %rcx, %r8
movl 0x8(%rsi), %esi
movl 0xc(%rbx), %edi
movq %rsi, %r14
imulq %rdi, %r14
imulq %r8, %r14
testq %r14, %r14
je 0x8a96
movl %ecx, (%r15)
movl %edx, 0x4(%r15)
movl %esi, 0x8(%r15)
movl %edi, 0xc(%r15)
movb 0x10(%rbx), %cl
movb %cl, 0x10(%r15)
cmpb $0x1, %cl
jne 0x8ab9
movq %rax, 0x18(%r15)
jmp 0x8aaa
movq $0x0, 0x18(%r15)
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
movb $0x0, 0x10(%r15)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rax
shrq $0x3d, %rax
shlq $0x3, %r14
xorl %edi, %edi
negq %rax
sbbq %rdi, %rdi
orq %r14, %rdi
callq 0x4040
movq %rax, 0x18(%r15)
movq 0x18(%rbx), %rsi
movq %rax, %rdi
movq %r14, %rdx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4440
movq %rax, %rdi
callq 0x41d0
movq $0x0, 0x18(%r15)
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
movl $0x4008, %edi           # imm = 0x4008
callq 0x4210
movq %rax, %r14
movl (%r15), %ebp
movl 0x4(%r15), %eax
movl %eax, 0x4(%rsp)
movl 0x8(%r15), %r13d
movl 0xc(%r15), %eax
movl %eax, (%rsp)
movq 0x18(%r15), %rax
movq %rax, 0x10(%rsp)
movb 0x10(%r15), %r15b
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %edi
imulq %rax, %rdi
imulq %rcx, %rdi
shlq $0x3, %rdi
callq 0xbe84
movq %rax, %r10
leaq 0x65d02(%rip), %rax     # 0x6e868
leaq 0x670d5(%rip), %r11     # 0x6fc42
testb %r15b, %r15b
cmovneq %rax, %r11
movl (%rbx), %eax
movq %rax, 0x8(%rsp)
movl 0x4(%rbx), %r15d
movl 0x8(%rbx), %r12d
movl 0xc(%rbx), %ebx
leaq 0x855ed(%rip), %rsi     # 0x8e17a
movq %r14, %rdi
movl %ebp, %edx
movl 0x4(%rsp), %ecx
movl %r13d, %r8d
movl (%rsp), %r9d
xorl %eax, %eax
pushq %rbx
pushq %r12
pushq %r15
pushq 0x20(%rsp)
pushq %r10
leaq 0x8656e(%rip), %r10     # 0x8f11f
pushq %r10
pushq %r11
pushq 0x48(%rsp)
callq 0xbfac
addq $0x40, %rsp
leaq 0x9f06f(%rip), %rsi     # 0xa7c38
movq 0x9f400(%rip), %rdx     # 0xa7fd0
movq %r14, %rdi
callq 0x4910
movq %rax, %rbx
jmp 0x8be8
movq %rax, %rbx
movq %r14, %rdi
callq 0x43c0
callq 0x48d0
movq %rbx, %rdi
callq 0x4960
movq %rax, %rdi
callq 0xa02c
nop