// File: /workspace/github_cpp_makefile_star2_O3/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 0x1440f
movl %r9d, %ebp
movl %r8d, %r14d
movb 0x10(%rbx), %dl
testb %cl, %cl
je 0x1443f
testb %dl, %dl
jne 0x1448d
addq %r15, %rax
movq 0x18(%rbx), %r9
cmpq %r9, %rax
jb 0x1446e
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 0x1446e
leaq 0x192ca(%rip), %r10     # 0x2d6ba
leaq 0x19108(%rip), %r11     # 0x2d4ff
leaq 0x1a046(%rip), %rdi     # 0x2e444
xorl %eax, %eax
pushq %r10
pushq %r11
callq 0x9db1
addq $0x10, %rsp
jmp 0x1448d
testb %cl, %cl
jne 0x144b5
cmpb $0x0, 0x10(%rbx)
jne 0x1442b
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x1442b
callq 0x3380
movq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
jmp 0x144a3
testb %dl, %dl
je 0x14455
movq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
movl %r12d, %ecx
movl %r14d, %r8d
movl %ebp, %r9d
callq 0x14536
jmp 0x144a3
testq %r9, %r9
je 0x1447b
movq %r9, %rdi
callq 0x3380
movq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
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 0x1bf79(%rip), %rax     # 0x3044f
leaq 0x19022(%rip), %r10     # 0x2d4ff
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
subq $0x8, %rsp
leaq 0x191ca(%rip), %r11     # 0x2d6ba
leaq 0x19eca(%rip), %rsi     # 0x2e3c1
movq %r14, %rdi
xorl %eax, %eax
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0x6378
addq $0x20, %rsp
leaq 0x257a5(%rip), %rsi     # 0x39cb8
movq 0x25abe(%rip), %rdx     # 0x39fd8
movq %r14, %rdi
callq 0x34b0
movq %rax, %rbx
movq %r14, %rdi
callq 0x31e0
movq %rbx, %rdi
callq 0x34d0
nop