// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
subq $0x20, %rsp
movl %r9d, %eax
movl %r8d, %r9d
movl %ecx, %r8d
movl %edx, %ecx
movl %esi, %edx
movq %rdi, %rbx
testl %esi, %esi
setne %sil
testl %ecx, %ecx
setne %dil
andb %sil, %dil
testl %r8d, %r8d
setne %sil
andb %dil, %sil
testl %r9d, %r9d
setne %dil
testb %dil, %sil
je 0xe4b6
testl %edx, %edx
jns 0xe3a9
imull (%rbx), %edx
negl %edx
movslq %edx, %rdx
imulq $0x51eb851f, %rdx, %rdx # imm = 0x51EB851F
movq %rdx, %rsi
shrq $0x3f, %rsi
sarq $0x25, %rdx
addl %esi, %edx
testl %ecx, %ecx
jns 0xe3ca
imull 0x4(%rbx), %ecx
negl %ecx
movslq %ecx, %rcx
imulq $0x51eb851f, %rcx, %rcx # imm = 0x51EB851F
movq %rcx, %rsi
shrq $0x3f, %rsi
sarq $0x25, %rcx
addl %esi, %ecx
testl %r8d, %r8d
jns 0xe3ef
imull 0x8(%rbx), %r8d
negl %r8d
movslq %r8d, %rsi
imulq $0x51eb851f, %rsi, %r8  # imm = 0x51EB851F
movq %r8, %rsi
shrq $0x3f, %rsi
sarq $0x25, %r8
addl %esi, %r8d
testl %r9d, %r9d
jns 0xe414
imull 0xc(%rbx), %r9d
negl %r9d
movslq %r9d, %rsi
imulq $0x51eb851f, %rsi, %r9  # imm = 0x51EB851F
movq %r9, %rsi
shrq $0x3f, %rsi
sarq $0x25, %r9
addl %esi, %r9d
cmpl $0x1, %edx
adcl $0x0, %edx
cmpl $0x1, %ecx
adcl $0x0, %ecx
movl 0x50(%rsp), %r10d
cmpl $0x1, %r8d
adcl $0x0, %r8d
cmpl $0x1, %r9d
adcl $0x0, %r9d
movl (%rbx), %edi
movl 0x4(%rbx), %esi
movl 0x8(%rbx), %r11d
movl 0xc(%rbx), %r14d
cmpl %edi, %edx
jne 0xe458
cmpl %esi, %ecx
jne 0xe458
cmpl %r11d, %r8d
jne 0xe458
cmpl %r14d, %r9d
je 0xe4dc
cmpq $0x0, 0x18(%rbx)
sete %bpl
testq %rdi, %rdi
sete %r15b
orb %bpl, %r15b
testl %esi, %esi
sete %bpl
testl %r11d, %r11d
sete %r12b
orb %bpl, %r12b
orb %r15b, %r12b
testl %r14d, %r14d
sete %bpl
orb %r12b, %bpl
cmpb $0x1, %bpl
jne 0xe4ec
movq %rbx, %rdi
movl %edx, %esi
movl %ecx, %edx
movl %r8d, %ecx
movl %r9d, %r8d
callq 0x10470
movq %rax, %rdi
xorl %esi, %esi
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x13aaa
cmpb $0x0, 0x10(%rbx)
jne 0xe4ca
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
je 0xe4ca
callq 0x4680
movq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
movq %rbx, %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
cmpl $-0x1, %eax
jne 0xe521
movl %ecx, %ebp
imull %edx, %ebp
movl %r8d, %r15d
imull %r9d, %r15d
imull %ebp, %r15d
imulq %rdi, %rsi
imulq %r14, %r11
imulq %rsi, %r11
cmpq %r15, %r11
jne 0xe521
movl %edx, (%rbx)
movl %ecx, 0x4(%rbx)
movl %r8d, 0x8(%rbx)
movl %r9d, 0xc(%rbx)
jmp 0xe4dc
movq %rsp, %r14
movq %r14, %rdi
movq %rbx, %rsi
pushq %r10
pushq %rax
callq 0x15aca
addq $0x10, %rsp
movq %r14, %rdi
movq %rbx, %rsi
callq 0xeea0
movq %rax, %rbx
cmpb $0x0, 0x10(%rsp)
jne 0xe4dc
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0xe4dc
callq 0x4680
jmp 0xe4dc
movq %rax, %rbx
cmpb $0x0, 0x10(%rsp)
jne 0xe575
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0xe575
callq 0x4680
movq %rbx, %rdi
callq 0x4950
nop