// File: 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:
subq $0xe8, %rsp
movl 0xf0(%rsp), %eax
movq %rdi, 0xd8(%rsp)
movl %esi, 0xd4(%rsp)
movl %edx, 0xd0(%rsp)
movl %ecx, 0xcc(%rsp)
movl %r8d, 0xc8(%rsp)
movl %r9d, 0xc4(%rsp)
movss %xmm0, 0xc0(%rsp)
movss %xmm1, 0xbc(%rsp)
movss %xmm2, 0xb8(%rsp)
movss %xmm3, 0xb4(%rsp)
movq 0xd8(%rsp), %rax
movq %rax, 0x58(%rsp)
cmpl $0x0, 0xd4(%rsp)
je 0x159b4
cmpl $0x0, 0xd0(%rsp)
je 0x159b4
cmpl $0x0, 0xcc(%rsp)
je 0x159b4
cmpl $0x0, 0xc8(%rsp)
jne 0x159cb
movq 0x58(%rsp), %rdi
callq 0x1c240
movq %rax, 0xe0(%rsp)
jmp 0x15d8a
cmpl $0x0, 0xd4(%rsp)
jge 0x15a03
movq 0x58(%rsp), %rdi
xorl %eax, %eax
subl 0xd4(%rsp), %eax
movl %eax, 0x50(%rsp)
callq 0x173f0
movl %eax, %ecx
movl 0x50(%rsp), %eax
imull %ecx, %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, 0x54(%rsp)
jmp 0x15a0e
movl 0xd4(%rsp), %eax
movl %eax, 0x54(%rsp)
movl 0x54(%rsp), %eax
movl %eax, 0xb0(%rsp)
cmpl $0x0, 0xd0(%rsp)
jge 0x15a51
movq 0x58(%rsp), %rdi
xorl %eax, %eax
subl 0xd0(%rsp), %eax
movl %eax, 0x48(%rsp)
callq 0x17400
movl %eax, %ecx
movl 0x48(%rsp), %eax
imull %ecx, %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, 0x4c(%rsp)
jmp 0x15a5c
movl 0xd0(%rsp), %eax
movl %eax, 0x4c(%rsp)
movl 0x4c(%rsp), %eax
movl %eax, 0xac(%rsp)
cmpl $0x0, 0xcc(%rsp)
jge 0x15a9f
movq 0x58(%rsp), %rdi
xorl %eax, %eax
subl 0xcc(%rsp), %eax
movl %eax, 0x40(%rsp)
callq 0x20220
movl %eax, %ecx
movl 0x40(%rsp), %eax
imull %ecx, %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, 0x44(%rsp)
jmp 0x15aaa
movl 0xcc(%rsp), %eax
movl %eax, 0x44(%rsp)
movl 0x44(%rsp), %eax
movl %eax, 0xa8(%rsp)
cmpl $0x0, 0xc8(%rsp)
jge 0x15aed
movq 0x58(%rsp), %rdi
xorl %eax, %eax
subl 0xc8(%rsp), %eax
movl %eax, 0x38(%rsp)
callq 0x20350
movl %eax, %ecx
movl 0x38(%rsp), %eax
imull %ecx, %eax
movl $0x64, %ecx
cltd
idivl %ecx
movl %eax, 0x3c(%rsp)
jmp 0x15af8
movl 0xc8(%rsp), %eax
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movl %eax, 0xa4(%rsp)
cmpl $0x0, 0xb0(%rsp)
je 0x15b1a
movl 0xb0(%rsp), %eax
movl %eax, 0x34(%rsp)
jmp 0x15b25
movl $0x1, %eax
movl %eax, 0x34(%rsp)
jmp 0x15b25
movl 0x34(%rsp), %eax
movl %eax, 0xa0(%rsp)
cmpl $0x0, 0xac(%rsp)
je 0x15b47
movl 0xac(%rsp), %eax
movl %eax, 0x30(%rsp)
jmp 0x15b52
movl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x15b52
movl 0x30(%rsp), %eax
movl %eax, 0x9c(%rsp)
cmpl $0x0, 0xa8(%rsp)
je 0x15b74
movl 0xa8(%rsp), %eax
movl %eax, 0x2c(%rsp)
jmp 0x15b7f
movl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x15b7f
movl 0x2c(%rsp), %eax
movl %eax, 0x98(%rsp)
cmpl $0x0, 0xa4(%rsp)
je 0x15ba1
movl 0xa4(%rsp), %eax
movl %eax, 0x28(%rsp)
jmp 0x15bac
movl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0x15bac
movq 0x58(%rsp), %rcx
movl 0x28(%rsp), %eax
movl %eax, 0x94(%rsp)
movl 0xa0(%rsp), %eax
cmpl (%rcx), %eax
jne 0x15c0c
movq 0x58(%rsp), %rcx
movl 0x9c(%rsp), %eax
cmpl 0x4(%rcx), %eax
jne 0x15c0c
movq 0x58(%rsp), %rcx
movl 0x98(%rsp), %eax
cmpl 0x8(%rcx), %eax
jne 0x15c0c
movq 0x58(%rsp), %rcx
movl 0x94(%rsp), %eax
cmpl 0xc(%rcx), %eax
jne 0x15c0c
movq 0x58(%rsp), %rax
movq %rax, 0xe0(%rsp)
jmp 0x15d8a
movq 0x58(%rsp), %rdi
callq 0x1f750
testb $0x1, %al
jne 0x15c1c
jmp 0x15c53
movq 0x58(%rsp), %rdi
movl 0xa0(%rsp), %esi
movl 0x9c(%rsp), %edx
movl 0x98(%rsp), %ecx
movl 0x94(%rsp), %r8d
xorl %r9d, %r9d
callq 0x1c150
movq %rax, 0xe0(%rsp)
jmp 0x15d8a
cmpl $-0x1, 0xc4(%rsp)
jne 0x15cd3
movq 0x58(%rsp), %rdi
movl 0xa0(%rsp), %eax
imull 0x9c(%rsp), %eax
imull 0x98(%rsp), %eax
imull 0x94(%rsp), %eax
movl %eax, %eax
movq %rax, 0x20(%rsp)
callq 0x1c2b0
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
jne 0x15cd3
movq 0x58(%rsp), %rax
movl 0xa0(%rsp), %ecx
movl %ecx, (%rax)
movl 0x9c(%rsp), %ecx
movl %ecx, 0x4(%rax)
movl 0x98(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0x94(%rsp), %ecx
movl %ecx, 0xc(%rax)
movq %rax, 0xe0(%rsp)
jmp 0x15d8a
movq 0x58(%rsp), %rsi
movl 0xa0(%rsp), %edx
movl 0x9c(%rsp), %ecx
movl 0x98(%rsp), %r8d
movl 0x94(%rsp), %r9d
movl 0xc4(%rsp), %edi
movl 0xf0(%rsp), %r10d
movss 0xc0(%rsp), %xmm0
movss 0xbc(%rsp), %xmm1
movss 0xb8(%rsp), %xmm2
movss 0xb4(%rsp), %xmm3
movq %rsp, %rax
movl %r10d, 0x8(%rax)
movl %edi, (%rax)
leaq 0x70(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x259a0
movq 0x10(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x17410
movq %rax, 0x18(%rsp)
jmp 0x15d57
movq 0x18(%rsp), %rax
movq %rax, 0xe0(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x15650
jmp 0x15d8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x68(%rsp)
movl %eax, 0x64(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x15650
jmp 0x15d9a
movq 0xe0(%rsp), %rax
addq $0xe8, %rsp
retq
movq 0x68(%rsp), %rdi
callq 0x5970
nopw %cs:(%rax,%rax)
nop