// File: /workspace/github_cpp_makefile_star2_O3/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImgList<double>::get_append(char, float) const
CImg<T> get_append(const char axis, const float align=0) const {
      if (is_empty()) return CImg<T>();
      if (_width==1) return +((*this)[0]);
      unsigned int dx = 0, dy = 0, dz = 0, dc = 0, pos = 0;
      CImg<T> res;
      switch (cimg::uncase(axis)) {
      case 'x' : { // Along the X-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx+=img._width;
            dy = cimg::max(dy,img._height);
            dz = cimg::max(dz,img._depth);
            dc = cimg::max(dc,img._spectrum);
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image(pos,
                                    (int)(align*(dy-img._height)),
                                    (int)(align*(dz-img._depth)),
                                    (int)(align*(dc-img._spectrum)),
                                    img);
            pos+=img._width;
          }
      } break;
      case 'y' : { // Along the Y-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx = cimg::max(dx,img._width);
            dy+=img._height;
            dz = cimg::max(dz,img._depth);
            dc = cimg::max(dc,img._spectrum);
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image((int)(align*(dx-img._width)),
                                    pos,
                                    (int)(align*(dz-img._depth)),
                                    (int)(align*(dc-img._spectrum)),
                                    img);
            pos+=img._height;
          }
      } break;
      case 'z' : { // Along the Z-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx = cimg::max(dx,img._width);
            dy = cimg::max(dy,img._height);
            dz+=img._depth;
            dc = cimg::max(dc,img._spectrum);
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image((int)(align*(dx-img._width)),
                                    (int)(align*(dy-img._height)),
                                    pos,
                                    (int)(align*(dc-img._spectrum)),
                                    img);
            pos+=img._depth;
          }
      } break;
      default : { // Along the C-axis.
        cimglist_for(*this,l) {
          const CImg<T>& img = (*this)[l];
          if (img) {
            dx = cimg::max(dx,img._width);
            dy = cimg::max(dy,img._height);
            dz = cimg::max(dz,img._depth);
            dc+=img._spectrum;
          }
        }
        res.assign(dx,dy,dz,dc,0);
        if (res) cimglist_for(*this,l) {
            const CImg<T>& img = (*this)[l];
            if (img) res.draw_image((int)(align*(dx-img._width)),
                                    (int)(align*(dy-img._height)),
                                    (int)(align*(dz-img._depth)),
                                    pos,
                                    img);
            pos+=img._spectrum;
          }
      }
      }
      return res;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movss %xmm0, 0x4(%rsp)
movq %rsi, %rax
movq %rdi, %rbx
movq 0x8(%rsi), %rsi
testq %rsi, %rsi
sete %cl
movq %rax, 0x8(%rsp)
movl (%rax), %eax
testl %eax, %eax
sete %dil
orb %cl, %dil
cmpb $0x1, %dil
jne 0xb0f2
movq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
jmp 0xb103
movl %eax, %edi
cmpl $0x1, %edi
jne 0xb10b
movq %rbx, %rdi
xorl %edx, %edx
callq 0x3716c
movq %rbx, %rax
jmp 0xb638
movq $0x0, 0x18(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movb $0x0, 0x10(%rbx)
leal -0x5b(%rdx), %eax
leal 0x20(%rdx), %ecx
cmpb $-0x1a, %al
movzbl %dl, %edx
movzbl %cl, %eax
cmovbl %edx, %eax
cmpb $0x78, %al
movq %rbx, 0x10(%rsp)
je 0xb1f3
movzbl %al, %eax
cmpl $0x79, %eax
je 0xb1a0
cmpl $0x7a, %eax
jne 0xb247
testl %edi, %edi
jle 0xb46a
shlq $0x5, %rdi
xorl %eax, %eax
xorl %r15d, %r15d
xorl %ecx, %ecx
xorl %r12d, %r12d
xorl %r9d, %r9d
cmpq $0x0, 0x18(%rsi,%rax)
je 0xb192
movl (%rsi,%rax), %edx
movl 0x4(%rsi,%rax), %r8d
cmpl %edx, %r9d
cmovbel %edx, %r9d
cmpl %r8d, %r12d
cmovbel %r8d, %r12d
addl 0x8(%rsi,%rax), %ecx
movl 0xc(%rsi,%rax), %edx
cmpl %edx, %r15d
cmovbel %edx, %r15d
addq $0x20, %rax
cmpq %rax, %rdi
jne 0xb165
jmp 0xb475
testl %edi, %edi
jle 0xb29c
shlq $0x5, %rdi
xorl %eax, %eax
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %edx, %edx
xorl %r8d, %r8d
cmpq $0x0, 0x18(%rsi,%rax)
je 0xb1e5
movl (%rsi,%rax), %ecx
cmpl %ecx, %r8d
cmovbel %ecx, %r8d
movl 0x8(%rsi,%rax), %ecx
addl 0x4(%rsi,%rax), %edx
cmpl %ecx, %r12d
cmovbel %ecx, %r12d
movl 0xc(%rsi,%rax), %ecx
cmpl %ecx, %r15d
cmovbel %ecx, %r15d
addq $0x20, %rax
cmpq %rax, %rdi
jne 0xb1b9
jmp 0xb2a7
testl %edi, %edi
jle 0xb383
shlq $0x5, %rdi
xorl %r9d, %r9d
xorl %ebp, %ebp
xorl %ecx, %ecx
xorl %r12d, %r12d
xorl %eax, %eax
cmpq $0x0, 0x18(%rsi,%r9)
je 0xb239
addl (%rsi,%r9), %eax
movl 0x4(%rsi,%r9), %edx
movl 0x8(%rsi,%r9), %r8d
cmpl %edx, %r12d
cmovbel %edx, %r12d
cmpl %r8d, %ecx
cmovbel %r8d, %ecx
movl 0xc(%rsi,%r9), %edx
cmpl %edx, %ebp
cmovbel %edx, %ebp
addq $0x20, %r9
cmpq %r9, %rdi
jne 0xb20b
jmp 0xb38c
testl %edi, %edi
jle 0xb551
shlq $0x5, %rdi
xorl %eax, %eax
xorl %r8d, %r8d
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %r9d, %r9d
cmpq $0x0, 0x18(%rsi,%rax)
je 0xb28e
movl (%rsi,%rax), %ecx
movl 0x4(%rsi,%rax), %edx
cmpl %ecx, %r9d
cmovbel %ecx, %r9d
cmpl %edx, %r12d
cmovbel %edx, %r12d
movl 0x8(%rsi,%rax), %ecx
cmpl %ecx, %r15d
cmovbel %ecx, %r15d
addl 0xc(%rsi,%rax), %r8d
addq $0x20, %rax
cmpq %rax, %rdi
jne 0xb261
jmp 0xb55d
xorl %r8d, %r8d
xorl %edx, %edx
xorl %r12d, %r12d
xorl %r15d, %r15d
movq %rbx, %rdi
movl %r8d, (%rsp)
movl %r8d, %esi
movl %r12d, %ecx
movl %r15d, %r8d
callq 0xbbfc
xorps %xmm0, %xmm0
movq %rax, %rdi
callq 0x37330
cmpq $0x0, 0x18(%rbx)
setne %cl
movq 0x8(%rsp), %rsi
movl (%rsi), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xb633
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r13d, %r13d
movq 0x8(%rsi), %rbp
cmpq $0x0, 0x18(%rbp,%rbx)
je 0xb366
movl (%rsp), %eax
subl (%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
movl %r12d, %eax
subl 0x8(%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movl %r15d, %eax
subl 0xc(%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
leaq (%rbx,%rbp), %r9
mulss %xmm1, %xmm0
cvttss2si %xmm0, %r8d
movq 0x10(%rsp), %rdi
movl %r13d, %edx
movss 0x62f56(%rip), %xmm0    # 0x6e2b0
callq 0x36c40
movq 0x8(%rsp), %rsi
movl (%rsi), %eax
addl 0x4(%rbp,%rbx), %r13d
incq %r14
movslq %eax, %rcx
addq $0x20, %rbx
cmpq %rcx, %r14
jl 0xb2ee
jmp 0xb633
xorl %eax, %eax
xorl %r12d, %r12d
xorl %ecx, %ecx
xorl %ebp, %ebp
movq %rbx, %rdi
movl %eax, %esi
movl %r12d, %edx
movl %ecx, (%rsp)
movl %ebp, %r8d
callq 0xbbfc
xorps %xmm0, %xmm0
movq %rax, %rdi
callq 0x37330
cmpq $0x0, 0x18(%rbx)
setne %cl
movq 0x8(%rsp), %rdi
movl (%rdi), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xb633
xorl %r14d, %r14d
xorl %r15d, %r15d
xorl %r13d, %r13d
movq 0x8(%rdi), %rsi
leaq (%rsi,%r14), %rbx
cmpq $0x0, 0x18(%rsi,%r14)
je 0xb44f
movl %r12d, %eax
subl 0x4(%rsi,%r14), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movl (%rsp), %eax
subl 0x8(%rsi,%r14), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movl %ebp, %eax
subl 0xc(%rsi,%r14), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %r8d
movq 0x10(%rsp), %rdi
movl %r13d, %esi
movq %rbx, %r9
movss 0x62e6d(%rip), %xmm0    # 0x6e2b0
callq 0x36c40
movq 0x8(%rsp), %rdi
movl (%rdi), %eax
addl (%rbx), %r13d
incq %r15
movslq %eax, %rcx
addq $0x20, %r14
cmpq %rcx, %r15
jl 0xb3d2
jmp 0xb633
xorl %r9d, %r9d
xorl %r12d, %r12d
xorl %ecx, %ecx
xorl %r15d, %r15d
movq %rbx, %rdi
movl %r9d, (%rsp)
movl %r9d, %esi
movl %r12d, %edx
movl %r15d, %r8d
callq 0xbbfc
xorps %xmm0, %xmm0
movq %rax, %rdi
callq 0x37330
cmpq $0x0, 0x18(%rbx)
setne %cl
movq 0x8(%rsp), %rsi
movl (%rsi), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xb633
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r13d, %r13d
movq 0x8(%rsi), %rbp
cmpq $0x0, 0x18(%rbp,%rbx)
je 0xb534
movl (%rsp), %eax
subl (%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
movl %r12d, %eax
subl 0x4(%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movl %r15d, %eax
subl 0xc(%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
leaq (%rbx,%rbp), %r9
mulss %xmm1, %xmm0
cvttss2si %xmm0, %r8d
movq 0x10(%rsp), %rdi
movl %r13d, %ecx
movss 0x62d88(%rip), %xmm0    # 0x6e2b0
callq 0x36c40
movq 0x8(%rsp), %rsi
movl (%rsi), %eax
addl 0x8(%rbp,%rbx), %r13d
incq %r14
movslq %eax, %rcx
addq $0x20, %rbx
cmpq %rcx, %r14
jl 0xb4bc
jmp 0xb633
xorl %r9d, %r9d
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %r8d, %r8d
movq %rbx, %rdi
movl %r9d, (%rsp)
movl %r9d, %esi
movl %r12d, %edx
movl %r15d, %ecx
callq 0xbbfc
xorps %xmm0, %xmm0
movq %rax, %rdi
callq 0x37330
cmpq $0x0, 0x18(%rbx)
setne %cl
movq 0x8(%rsp), %rsi
movl (%rsi), %eax
testl %eax, %eax
setg %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xb633
xorl %ebx, %ebx
xorl %r14d, %r14d
xorl %r13d, %r13d
movq 0x8(%rsi), %rbp
cmpq $0x0, 0x18(%rbp,%rbx)
je 0xb61b
movl (%rsp), %eax
subl (%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
movss 0x4(%rsp), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %esi
movl %r12d, %eax
subl 0x4(%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
mulss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movl %r15d, %eax
subl 0x8(%rbp,%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
leaq (%rbx,%rbp), %r9
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movq 0x10(%rsp), %rdi
movl %r13d, %r8d
movss 0x62ca1(%rip), %xmm0    # 0x6e2b0
callq 0x36c40
movq 0x8(%rsp), %rsi
movl (%rsi), %eax
addl 0xc(%rbp,%rbx), %r13d
incq %r14
movslq %eax, %rcx
addq $0x20, %rbx
cmpq %rcx, %r14
jl 0xb5a4
movq 0x10(%rsp), %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb64f
jmp 0xb64f
jmp 0xb64f
jmp 0xb64f
movq %rax, %rbx
movq 0x10(%rsp), %rax
cmpb $0x0, 0x10(%rax)
jne 0xb670
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
testq %rdi, %rdi
je 0xb670
callq 0x4690
movq %rbx, %rdi
callq 0x4960