// File: /workspace/github_cpp_makefile_star2_O2/kallaballa[P]PixelStencil/./CImg.h
// Function: cimg_library::CImg<unsigned char>::assign(unsigned char const*, unsigned int, unsigned int, unsigned int, unsigned int, bool)
CImg<T>& assign(const T *const values, const unsigned int size_x, const unsigned int size_y,
                    const unsigned int size_z, const unsigned int size_c, const bool is_shared) {
      const unsigned long siz = (unsigned long)size_x*size_y*size_z*size_c;
      if (!values || !siz) {
        if (is_shared)
          throw CImgArgumentException(_cimg_instance
                                      "assign(): Invalid assignment request of shared instance from (null) or empty buffer.",
                                      cimg_instance);
        else return assign();
      }
      if (!is_shared) { if (_is_shared) assign(); assign(values,size_x,size_y,size_z,size_c); }
      else {
        if (!_is_shared) {
          if (values+siz<_data || values>=_data+size()) assign();
          else cimg::warn(_cimg_instance
                          "assign(): Shared image instance has overlapping memory.",
                          cimg_instance);
        }
        _width = size_x; _height = size_y; _depth = size_z; _spectrum = size_c; _is_shared = true;
        _data = const_cast<T*>(values);
      }
      return *this;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %r12d
movl %edx, %r13d
movq %rsi, %r15
movq %rdi, %rbx
movb 0x40(%rsp), %cl
movl %edx, %eax
movl %r12d, %edx
imulq %rax, %rdx
movl %r8d, %esi
movl %r9d, %eax
imulq %rsi, %rax
imulq %rdx, %rax
testq %r15, %r15
setne %dl
testq %rax, %rax
setne %sil
testb %sil, %dl
je 0xfa8f
movl %r9d, %ebp
movl %r8d, %r14d
movb 0x10(%rbx), %dl
testb %cl, %cl
je 0xfaa9
testb %dl, %dl
jne 0xfad6
addq %r15, %rax
movq 0x18(%rbx), %r9
cmpq %r9, %rax
jb 0xface
movl (%rbx), %esi
movl 0x4(%rbx), %edx
movq %rdx, %rax
imulq %rsi, %rax
movl 0x8(%rbx), %ecx
movl 0xc(%rbx), %r8d
movq %rcx, %rdi
imulq %r8, %rdi
imulq %rax, %rdi
addq %r9, %rdi
cmpq %r15, %rdi
jbe 0xface
leaq 0x12c18(%rip), %r10     # 0x2268a
leaq 0x12a56(%rip), %r11     # 0x224cf
leaq 0x13994(%rip), %rdi     # 0x23414
xorl %eax, %eax
pushq %r10
pushq %r11
callq 0x79dc
popq %rax
popq %rcx
jmp 0xfad6
testb %cl, %cl
jne 0xfafe
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x8386
testb %dl, %dl
je 0xfab5
movq %rbx, %rdi
callq 0x8386
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
movl %r12d, %ecx
movl %r14d, %r8d
movl %ebp, %r9d
callq 0xfb7e
jmp 0xfaec
movq %rbx, %rdi
callq 0x8386
movl %r13d, (%rbx)
movl %r12d, 0x4(%rbx)
movl %r14d, 0x8(%rbx)
movl %ebp, 0xc(%rbx)
movb $0x1, 0x10(%rbx)
movq %r15, 0x18(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4008, %edi           # imm = 0x4008
callq 0x3110
movq %rax, %r14
movl (%rbx), %edx
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %r8d
movl 0xc(%rbx), %r9d
leaq 0x15900(%rip), %rax     # 0x2541f
leaq 0x129a9(%rip), %r10     # 0x224cf
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
subq $0x8, %rsp
leaq 0x12b51(%rip), %r11     # 0x2268a
leaq 0x13851(%rip), %rsi     # 0x23391
movq %r14, %rdi
xorl %eax, %eax
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0x531a
addq $0x20, %rsp
leaq 0x2016c(%rip), %rsi     # 0x2fcc8
movq 0x20475(%rip), %rdx     # 0x2ffd8
movq %r14, %rdi
callq 0x34e0
movq %rax, %rbx
movq %r14, %rdi
callq 0x31d0
movq %rbx, %rdi
callq 0x3500