// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<unsigned char>::resize(int, int, int, int, int, unsigned int, float, float, float, float)
CImg<T>& resize(const int size_x, const int size_y=-100,
                    const int size_z=-100, const int size_c=-100,
                    const int interpolation_type=1, const unsigned int boundary_conditions=0,
                    const float centering_x = 0, const float centering_y = 0,
                    const float centering_z = 0, const float centering_c = 0) {
      if (!size_x || !size_y || !size_z || !size_c) return assign();
      const unsigned int
        _sx = (unsigned int)(size_x<0?-size_x*width()/100:size_x),
        _sy = (unsigned int)(size_y<0?-size_y*height()/100:size_y),
        _sz = (unsigned int)(size_z<0?-size_z*depth()/100:size_z),
        _sc = (unsigned int)(size_c<0?-size_c*spectrum()/100:size_c),
        sx = _sx?_sx:1, sy = _sy?_sy:1, sz = _sz?_sz:1, sc = _sc?_sc:1;
      if (sx==_width && sy==_height && sz==_depth && sc==_spectrum) return *this;
      if (is_empty()) return assign(sx,sy,sz,sc,(T)0);
      if (interpolation_type==-1 && sx*sy*sz*sc==size()) {
        _width = sx; _height = sy; _depth = sz; _spectrum = sc;
        return *this;
      }
      return get_resize(sx,sy,sz,sc,interpolation_type,boundary_conditions,
                        centering_x,centering_y,centering_z,centering_c).move_to(*this);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %ecx, %r15d
movq %rdi, %rbx
testl %esi, %esi
setne %al
testl %edx, %edx
setne %cl
andb %al, %cl
testl %r15d, %r15d
setne %al
andb %cl, %al
testl %r8d, %r8d
setne %cl
testb %cl, %al
je 0xbb28
movl %r9d, %r14d
movl %r8d, %ebp
movl %edx, %r12d
movl %esi, %r13d
movl 0x70(%rsp), %edi
pushq $0x64
popq %rcx
testl %esi, %esi
jns 0xba65
imull (%rbx), %r13d
negl %r13d
movl %r13d, %eax
cltd
idivl %ecx
movl %eax, %r13d
testl %r12d, %r12d
jns 0xba7b
imull 0x4(%rbx), %r12d
negl %r12d
movl %r12d, %eax
cltd
idivl %ecx
movl %eax, %r12d
testl %r15d, %r15d
jns 0xba91
imull 0x8(%rbx), %r15d
negl %r15d
movl %r15d, %eax
cltd
idivl %ecx
movl %eax, %r15d
movl 0xc(%rbx), %esi
testl %ebp, %ebp
jns 0xbaa4
imull %esi, %ebp
negl %ebp
movl %ebp, %eax
cltd
idivl %ecx
movl %eax, %ebp
cmpl $0x1, %r13d
adcl $0x0, %r13d
cmpl $0x1, %r12d
adcl $0x0, %r12d
cmpl $0x1, %r15d
adcl $0x0, %r15d
cmpl $0x1, %ebp
adcl $0x0, %ebp
cmpl (%rbx), %r13d
jne 0xbadb
cmpl 0x4(%rbx), %r12d
jne 0xbadb
cmpl 0x8(%rbx), %r15d
jne 0xbadb
cmpl %esi, %ebp
je 0xbbd2
movq %rdi, 0x10(%rsp)
movss %xmm0, (%rsp)
movss %xmm1, 0x4(%rsp)
movss %xmm2, 0x8(%rsp)
movss %xmm3, 0xc(%rsp)
movq %rbx, %rdi
callq 0xfd1c
testb %al, %al
je 0xbb3e
movq %rbx, %rdi
movl %r13d, %esi
movl %r12d, %edx
movl %r15d, %ecx
movl %ebp, %r8d
xorl %r9d, %r9d
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe93a
movq %rbx, %rdi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe9a4
cmpl $-0x1, %r14d
jne 0xbb80
movl %r12d, %eax
imull %r13d, %eax
movl %r15d, %ecx
imull %ebp, %ecx
imull %eax, %ecx
movl (%rbx), %eax
movl 0x4(%rbx), %edx
imulq %rax, %rdx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %esi
imulq %rax, %rsi
imulq %rdx, %rsi
cmpq %rcx, %rsi
jne 0xbb80
movl %r13d, (%rbx)
movl %r12d, 0x4(%rbx)
movl %r15d, 0x8(%rbx)
movl %ebp, 0xc(%rbx)
jmp 0xbbd2
leaq 0x18(%rsp), %rdi
movq %rbx, %rsi
movl %r13d, %edx
movl %r12d, %ecx
movl %r15d, %r8d
movl %ebp, %r9d
movss (%rsp), %xmm0
movss 0x4(%rsp), %xmm1
movss 0x8(%rsp), %xmm2
movss 0xc(%rsp), %xmm3
pushq 0x10(%rsp)
pushq %r14
callq 0x12060
popq %rax
popq %rcx
leaq 0x18(%rsp), %rdi
movq %rbx, %rsi
callq 0xc498
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xb8ae
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0xb8ae
movq %rbx, %rdi
callq 0x4950
nop