// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<unsigned char>::get_projections2d(unsigned int, unsigned int, unsigned int) const
CImg<T> get_projections2d(const unsigned int x0, const unsigned int y0, const unsigned int z0) const {
      if (is_empty() || _depth<2) return +*this;
      const unsigned int
        _x0 = (x0>=_width)?_width - 1:x0,
        _y0 = (y0>=_height)?_height - 1:y0,
        _z0 = (z0>=_depth)?_depth - 1:z0;
      const CImg<T>
        img_xy = get_crop(0,0,_z0,0,_width-1,_height-1,_z0,_spectrum-1),
        img_zy = get_crop(_x0,0,0,0,_x0,_height-1,_depth-1,_spectrum-1).permute_axes("xzyc").
        resize(_depth,_height,1,-100,-1),
        img_xz = get_crop(0,_y0,0,0,_width-1,_y0,_depth-1,_spectrum-1).resize(_width,_depth,1,-100,-1);
      return CImg<T>(_width + _depth,_height + _depth,1,_spectrum,cimg::min(img_xy.min(),img_zy.min(),img_xz.min())).
        draw_image(0,0,img_xy).draw_image(img_xy._width,0,img_zy).
        draw_image(0,img_xy._height,img_xz);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movl %r8d, %r12d
movl %ecx, %ebp
movl %edx, %r15d
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, %rdi
callq 0xfd1c
testb %al, %al
jne 0x185ca
movl 0x8(%r14), %eax
cmpl $0x1, %eax
ja 0x185da
movq %rbx, %rdi
movq %r14, %rsi
callq 0x10924
jmp 0x18834
movl (%r14), %ecx
leal -0x1(%rcx), %edx
cmpl %r15d, %ecx
cmovbel %edx, %r15d
movl 0x4(%r14), %ecx
leal -0x1(%rcx), %esi
cmpl %ebp, %ecx
cmovbel %esi, %ebp
leal -0x1(%rax), %r8d
cmpl %r12d, %eax
cmoval %r12d, %r8d
movl 0xc(%r14), %eax
decl %eax
movl %eax, 0x18(%rsp)
movl %r8d, 0x10(%rsp)
movl %esi, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %edx, (%rsp)
leaq 0x68(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0xfda2
movl 0x4(%r14), %eax
movl 0x8(%r14), %ecx
decl %eax
decl %ecx
movl 0xc(%r14), %edx
decl %edx
movl %edx, 0x18(%rsp)
movl %ecx, 0x10(%rsp)
movl %eax, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %r15d, (%rsp)
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
movl %r15d, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xfda2
leaq 0x5bf9c(%rip), %rsi     # 0x7460f
leaq 0x28(%rsp), %rdi
callq 0x1a190
movl 0x4(%r14), %edx
movl 0x8(%r14), %esi
andl $0x0, (%rsp)
pushq $0x1
popq %rcx
pushq $-0x64
popq %r8
pushq $-0x1
popq %r9
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movq %rax, %rdi
callq 0xba08
leaq 0x88(%rsp), %rdi
movq %rax, %rsi
callq 0xc2e0
leaq 0x28(%rsp), %rdi
callq 0xb8ae
movl (%r14), %eax
movl 0x8(%r14), %ecx
decl %eax
decl %ecx
movl 0xc(%r14), %edx
decl %edx
movl %edx, 0x18(%rsp)
movl %ecx, 0x10(%rsp)
movl %ebp, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %eax, (%rsp)
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xfda2
movl (%r14), %esi
movl 0x8(%r14), %edx
andl $0x0, (%rsp)
leaq 0x48(%rsp), %rdi
pushq $0x1
popq %rcx
pushq $-0x64
popq %r8
pushq $-0x1
popq %r9
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
callq 0xba08
leaq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0xc2e0
leaq 0x48(%rsp), %rdi
callq 0xb8ae
movl 0x8(%r14), %r15d
movl 0xc(%r14), %ebp
movl (%r14), %r12d
addl %r15d, %r12d
addl 0x4(%r14), %r15d
leaq 0x68(%rsp), %rdi
callq 0x1a1e6
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0x1a1e6
movq %rax, %r13
leaq 0x28(%rsp), %rdi
callq 0x1a1e6
movzbl (%r14), %ecx
movzbl (%r13), %edx
cmpb %dl, %cl
cmovbl %ecx, %edx
movzbl (%rax), %eax
cmpb %al, %dl
cmovael %eax, %edx
movzbl %dl, %r9d
leaq 0x48(%rsp), %rdi
pushq $0x1
popq %rcx
movl %r12d, %esi
movl %r15d, %edx
movl %ebp, %r8d
callq 0x1121a
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rcx
movss 0x3ba64(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
callq 0xc48e
movl 0x68(%rsp), %esi
leaq 0x88(%rsp), %rcx
movss 0x3ba47(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %edx, %edx
callq 0xc48e
movl 0x6c(%rsp), %edx
leaq 0x28(%rsp), %rcx
movss 0x3ba2c(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
callq 0xc48e
movq %rbx, %rdi
movq %rax, %rsi
callq 0xc2e0
leaq 0x48(%rsp), %rdi
callq 0xb8ae
leaq 0x28(%rsp), %rdi
callq 0xb8ae
leaq 0x88(%rsp), %rdi
callq 0xb8ae
leaq 0x68(%rsp), %rdi
callq 0xb8ae
movq %rbx, %rax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x18883
movq %rax, %rbx
jmp 0x18890
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x1887e
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0x1888b
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xb8ae
jmp 0x18879
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xb8ae
leaq 0x88(%rsp), %rdi
callq 0xb8ae
leaq 0x68(%rsp), %rdi
callq 0xb8ae
movq %rbx, %rdi
callq 0x4950