// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<double>::save(char const*, int, unsigned int) const
const CImg<T>& save(const char *const filename, const int number=-1, const unsigned int digits=6) const {
      if (!filename)
        throw CImgArgumentException(_cimg_instance
                                    "save(): Specified filename is (null).",
                                    cimg_instance);
      // Do not test for empty instances, since .cimg format is able to manage empty instances.
      const bool is_stdout = *filename=='-' && (!filename[1] || filename[1]=='.');
      const char *const ext = cimg::split_filename(filename);
      char nfilename[1024] = { 0 };
      const char *const fn = is_stdout?filename:(number>=0)?cimg::number_filename(filename,number,digits,nfilename):
        filename;

#ifdef cimg_save_plugin
      cimg_save_plugin(fn);
#endif
#ifdef cimg_save_plugin1
      cimg_save_plugin1(fn);
#endif
#ifdef cimg_save_plugin2
      cimg_save_plugin2(fn);
#endif
#ifdef cimg_save_plugin3
      cimg_save_plugin3(fn);
#endif
#ifdef cimg_save_plugin4
      cimg_save_plugin4(fn);
#endif
#ifdef cimg_save_plugin5
      cimg_save_plugin5(fn);
#endif
#ifdef cimg_save_plugin6
      cimg_save_plugin6(fn);
#endif
#ifdef cimg_save_plugin7
      cimg_save_plugin7(fn);
#endif
#ifdef cimg_save_plugin8
      cimg_save_plugin8(fn);
#endif
      // Ascii formats
      if (!cimg::strcasecmp(ext,"asc")) return save_ascii(fn);
      else if (!cimg::strcasecmp(ext,"dlm") ||
               !cimg::strcasecmp(ext,"txt")) return save_dlm(fn);
      else if (!cimg::strcasecmp(ext,"cpp") ||
               !cimg::strcasecmp(ext,"hpp") ||
               !cimg::strcasecmp(ext,"h") ||
               !cimg::strcasecmp(ext,"c")) return save_cpp(fn);

      // 2d binary formats
      else if (!cimg::strcasecmp(ext,"bmp")) return save_bmp(fn);
      else if (!cimg::strcasecmp(ext,"jpg") ||
               !cimg::strcasecmp(ext,"jpeg") ||
               !cimg::strcasecmp(ext,"jpe") ||
               !cimg::strcasecmp(ext,"jfif") ||
               !cimg::strcasecmp(ext,"jif")) return save_jpeg(fn);
      else if (!cimg::strcasecmp(ext,"rgb")) return save_rgb(fn);
      else if (!cimg::strcasecmp(ext,"rgba")) return save_rgba(fn);
      else if (!cimg::strcasecmp(ext,"png")) return save_png(fn);
      else if (!cimg::strcasecmp(ext,"pgm") ||
               !cimg::strcasecmp(ext,"ppm") ||
               !cimg::strcasecmp(ext,"pnm")) return save_pnm(fn);
      else if (!cimg::strcasecmp(ext,"pnk")) return save_pnk(fn);
      else if (!cimg::strcasecmp(ext,"pfm")) return save_pfm(fn);
      else if (!cimg::strcasecmp(ext,"exr")) return save_exr(fn);
      else if (!cimg::strcasecmp(ext,"tif") ||
               !cimg::strcasecmp(ext,"tiff")) return save_tiff(fn);

      // 3d binary formats
      else if (!cimg::strcasecmp(ext,"cimgz")) return save_cimg(fn,true);
      else if (!cimg::strcasecmp(ext,"cimg") || !*ext) return save_cimg(fn,false);
      else if (!cimg::strcasecmp(ext,"dcm")) return save_medcon_external(fn);
      else if (!cimg::strcasecmp(ext,"hdr") ||
               !cimg::strcasecmp(ext,"nii")) return save_analyze(fn);
      else if (!cimg::strcasecmp(ext,"inr")) return save_inr(fn);
      else if (!cimg::strcasecmp(ext,"mnc")) return save_minc2(fn);
      else if (!cimg::strcasecmp(ext,"pan")) return save_pandore(fn);
      else if (!cimg::strcasecmp(ext,"raw")) return save_raw(fn);

      // Archive files
      else if (!cimg::strcasecmp(ext,"gz")) return save_gzip_external(fn);

      // Image sequences
      else if (!cimg::strcasecmp(ext,"yuv")) return save_yuv(fn,true);
      else if (!cimg::strcasecmp(ext,"avi") ||
               !cimg::strcasecmp(ext,"mov") ||
               !cimg::strcasecmp(ext,"asf") ||
               !cimg::strcasecmp(ext,"divx") ||
               !cimg::strcasecmp(ext,"flv") ||
               !cimg::strcasecmp(ext,"mpg") ||
               !cimg::strcasecmp(ext,"m1v") ||
               !cimg::strcasecmp(ext,"m2v") ||
               !cimg::strcasecmp(ext,"m4v") ||
               !cimg::strcasecmp(ext,"mjp") ||
               !cimg::strcasecmp(ext,"mp4") ||
               !cimg::strcasecmp(ext,"mkv") ||
               !cimg::strcasecmp(ext,"mpe") ||
               !cimg::strcasecmp(ext,"movie") ||
               !cimg::strcasecmp(ext,"ogm") ||
               !cimg::strcasecmp(ext,"ogg") ||
               !cimg::strcasecmp(ext,"ogv") ||
               !cimg::strcasecmp(ext,"qt") ||
               !cimg::strcasecmp(ext,"rm") ||
               !cimg::strcasecmp(ext,"vob") ||
               !cimg::strcasecmp(ext,"wmv") ||
               !cimg::strcasecmp(ext,"xvid") ||
               !cimg::strcasecmp(ext,"mpeg")) return save_video(fn);
      return save_other(fn);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
movq %rdi, %rbx
testq %rsi, %rsi
je 0x6b93
movl %ecx, %ebp
movl %edx, %r12d
movq %rsi, %r14
movb $0x1, %r13b
cmpb $0x2d, (%rsi)
jne 0x64fb
movb 0x1(%r14), %al
testb %al, %al
setne %cl
cmpb $0x2e, %al
setne %r13b
andb %cl, %r13b
movq %r14, %rdi
xorl %esi, %esi
callq 0x2cc28
movq %rax, %r15
movq %rsp, %rdi
movl $0x400, %edx            # imm = 0x400
xorl %esi, %esi
callq 0x4280
testl %r12d, %r12d
js 0x6534
testb %r13b, %r13b
je 0x6534
movq %rsp, %rcx
movq %r14, %rdi
movl %r12d, %esi
movl %ebp, %edx
callq 0x44ed0
movq %rax, %r14
leaq 0x6ec0a(%rip), %rsi     # 0x75145
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a91
leaq 0x6ebf7(%rip), %rsi     # 0x75149
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a84
leaq 0x6ebe4(%rip), %rsi     # 0x7514d
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a84
leaq 0x71150(%rip), %rsi     # 0x776d0
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a9e
leaq 0x7113d(%rip), %rsi     # 0x776d4
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a9e
leaq 0x4f49c(%rip), %rsi     # 0x55a4a
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a9e
leaq 0x6f6fc(%rip), %rsi     # 0x75cc1
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6a9e
leaq 0x6eb75(%rip), %rsi     # 0x75151
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6acb
leaq 0x4f529(%rip), %rsi     # 0x55b1c
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6abb
leaq 0x6eb4b(%rip), %rsi     # 0x75155
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6abb
leaq 0x6eb39(%rip), %rsi     # 0x7515a
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6abb
leaq 0x6eb26(%rip), %rsi     # 0x7515e
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6abb
leaq 0x6eb14(%rip), %rsi     # 0x75163
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6abb
leaq 0x71072(%rip), %rsi     # 0x776d8
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6ad8
leaq 0x7105f(%rip), %rsi     # 0x776dc
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6ae5
leaq 0x6fa70(%rip), %rsi     # 0x76104
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b01
leaq 0x6eabc(%rip), %rsi     # 0x75167
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6af2
leaq 0x708fb(%rip), %rsi     # 0x76fbd
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6af2
leaq 0x70d85(%rip), %rsi     # 0x7745e
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6af2
leaq 0x6ea7f(%rip), %rsi     # 0x7516f
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b10
leaq 0x6ea6c(%rip), %rsi     # 0x75173
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b1d
leaq 0x6ea62(%rip), %rsi     # 0x75180
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b44
leaq 0x6ea42(%rip), %rsi     # 0x75177
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b2d
leaq 0x6ea2f(%rip), %rsi     # 0x7517b
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b2d
leaq 0x6ea67(%rip), %rsi     # 0x751ca
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b5e
leaq 0x723bb(%rip), %rsi     # 0x78b35
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b54
cmpb $0x0, (%r15)
je 0x6b54
leaq 0x6ea15(%rip), %rsi     # 0x751b0
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b83
leaq 0x6fa45(%rip), %rsi     # 0x761f7
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b71
leaq 0x6e9f1(%rip), %rsi     # 0x751ba
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6b71
leaq 0x6e9e2(%rip), %rsi     # 0x751c2
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c00
leaq 0x6e9c7(%rip), %rsi     # 0x751be
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c12
leaq 0x6e9b8(%rip), %rsi     # 0x751c6
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c24
leaq 0x6f825(%rip), %rsi     # 0x7604a
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c36
leaq 0x6ebf1(%rip), %rsi     # 0x7542d
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c60
leaq 0x70e8e(%rip), %rsi     # 0x776e1
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c70
leaq 0x6e966(%rip), %rsi     # 0x751d0
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e953(%rip), %rsi     # 0x751d4
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e940(%rip), %rsi     # 0x751d8
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e92d(%rip), %rsi     # 0x751dc
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e91b(%rip), %rsi     # 0x751e1
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e908(%rip), %rsi     # 0x751e5
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e8f5(%rip), %rsi     # 0x751e9
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e8e2(%rip), %rsi     # 0x751ed
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e8cf(%rip), %rsi     # 0x751f1
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e8bc(%rip), %rsi     # 0x751f5
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e8a9(%rip), %rsi     # 0x751f9
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e896(%rip), %rsi     # 0x751fd
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e883(%rip), %rsi     # 0x75201
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e870(%rip), %rsi     # 0x75205
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e85f(%rip), %rsi     # 0x7520b
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e84c(%rip), %rsi     # 0x7520f
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e839(%rip), %rsi     # 0x75213
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e826(%rip), %rsi     # 0x75217
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e812(%rip), %rsi     # 0x7521a
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e7fe(%rip), %rsi     # 0x7521d
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e7eb(%rip), %rsi     # 0x75221
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x6e7d8(%rip), %rsi     # 0x75225
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
leaq 0x7060d(%rip), %rsi     # 0x77071
movq %r15, %rdi
callq 0x2ccbe
testl %eax, %eax
je 0x6c48
pushq $0x64
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4600e
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44f90
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44f86
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44f9a
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x64
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44fae
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44fa4
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44fba
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44fc4
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x44fda
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x44fce
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44fe6
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x44ff0
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x4515e
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x45046
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
jmp 0x6b67
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x45224
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x455b8
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x45284
jmp 0x6aa9
movl $0x4008, %edi           # imm = 0x4008
callq 0x4210
movq %rax, %r14
movl (%rbx), %edx
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %r8d
movl 0xc(%rbx), %r9d
leaq 0x4dc34(%rip), %rax     # 0x547e8
leaq 0x4f007(%rip), %r10     # 0x55bc2
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
subq $0x8, %rsp
leaq 0x6e4d1(%rip), %r11     # 0x7509f
leaq 0x70aa7(%rip), %rsi     # 0x7767c
movq %r14, %rdi
xorl %eax, %eax
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0x9d52
addq $0x20, %rsp
leaq 0x8906f(%rip), %rsi     # 0x8fc60
movq 0x893e0(%rip), %rdx     # 0x8ffd8
movq %r14, %rdi
callq 0x4910
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x45a92
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x45aa0
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x45b66
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x45b72
jmp 0x6aa9
pushq $0x19
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x45f5a
jmp 0x6aa9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x45b7e
jmp 0x6aa9
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x45ef8
jmp 0x6aa9
movq %rax, %rbx
movq %r14, %rdi
callq 0x4390
movq %rbx, %rdi
callq 0x4950