// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<double>::_save_pandore(_IO_FILE*, char const*, unsigned int) const
const CImg<T>& _save_pandore(std::FILE *const file, const char *const filename,
                                 const unsigned int colorspace) const {

#define __cimg_save_pandore_case(dtype) \
       dtype *buffer = new dtype[size()]; \
       const T *ptrs = _data; \
       cimg_foroff(*this,off) *(buffer++) = (dtype)(*(ptrs++)); \
       buffer-=size(); \
       cimg::fwrite(buffer,size(),nfile); \
       delete[] buffer

#define _cimg_save_pandore_case(sy,sz,sv,stype,id) \
      if (!saved && (sy?(sy==_height):true) && (sz?(sz==_depth):true) && \
          (sv?(sv==_spectrum):true) && !std::strcmp(stype,pixel_type())) { \
        unsigned int *iheader = (unsigned int*)(header+12); \
        nbdims = _save_pandore_header_length((*iheader=id),dims,colorspace); \
        cimg::fwrite(header,36,nfile); \
        if (sizeof(unsigned long)==4) { unsigned long ndims[5] = { 0 }; \
          for (int d = 0; d<5; ++d) ndims[d] = (unsigned long)dims[d]; cimg::fwrite(ndims,nbdims,nfile); } \
        else if (sizeof(unsigned int)==4) { unsigned int ndims[5] = { 0 }; \
          for (int d = 0; d<5; ++d) ndims[d] = (unsigned int)dims[d]; cimg::fwrite(ndims,nbdims,nfile); } \
        else if (sizeof(unsigned short)==4) { unsigned short ndims[5] = { 0 }; \
          for (int d = 0; d<5; ++d) ndims[d] = (unsigned short)dims[d]; cimg::fwrite(ndims,nbdims,nfile); } \
        else throw CImgIOException(_cimg_instance \
                                   "save_pandore(): Unsupported datatype for file '%s'.",\
                                   cimg_instance, \
                                   filename?filename:"(FILE*)"); \
        if (id==2 || id==5 || id==8 || id==16 || id==19 || id==22 || id==26 || id==30) { \
          __cimg_save_pandore_case(unsigned char); \
        } else if (id==3 || id==6 || id==9 || id==17 || id==20 || id==23 || id==27 || id==31) { \
          if (sizeof(unsigned long)==4) { __cimg_save_pandore_case(unsigned long); } \
          else if (sizeof(unsigned int)==4) { __cimg_save_pandore_case(unsigned int); } \
          else if (sizeof(unsigned short)==4) { __cimg_save_pandore_case(unsigned short); } \
          else throw CImgIOException(_cimg_instance \
                                     "save_pandore(): Unsupported datatype for file '%s'.",\
                                     cimg_instance, \
                                     filename?filename:"(FILE*)"); \
        } else if (id==4 || id==7 || id==10 || id==18 || id==21 || id==25 || id==29 || id==33) { \
          if (sizeof(double)==4) { __cimg_save_pandore_case(double); } \
          else if (sizeof(float)==4) { __cimg_save_pandore_case(float); } \
          else throw CImgIOException(_cimg_instance \
                                     "save_pandore(): Unsupported datatype for file '%s'.",\
                                     cimg_instance, \
                                     filename?filename:"(FILE*)"); \
        } \
        saved = true; \
      }

      if (!file && !filename)
        throw CImgArgumentException(_cimg_instance
                                    "save_pandore(): Specified filename is (null).",
                                    cimg_instance);
      if (is_empty()) { cimg::fempty(file,filename); return *this; }

      std::FILE *const nfile = file?file:cimg::fopen(filename,"wb");
      unsigned char header[36] = { 'P','A','N','D','O','R','E','0','4',0,0,0,
                                   0,0,0,0,'C','I','m','g',0,0,0,0,0,'N','o',' ','d','a','t','e',0,0,0,0 };
      unsigned int nbdims, dims[5] = { 0 };
      bool saved = false;
      _cimg_save_pandore_case(1,1,1,"unsigned char",2);
      _cimg_save_pandore_case(1,1,1,"char",3);
      _cimg_save_pandore_case(1,1,1,"short",3);
      _cimg_save_pandore_case(1,1,1,"unsigned short",3);
      _cimg_save_pandore_case(1,1,1,"unsigned int",3);
      _cimg_save_pandore_case(1,1,1,"int",3);
      _cimg_save_pandore_case(1,1,1,"unsigned long",4);
      _cimg_save_pandore_case(1,1,1,"long",3);
      _cimg_save_pandore_case(1,1,1,"float",4);
      _cimg_save_pandore_case(1,1,1,"double",4);

      _cimg_save_pandore_case(0,1,1,"unsigned char",5);
      _cimg_save_pandore_case(0,1,1,"char",6);
      _cimg_save_pandore_case(0,1,1,"short",6);
      _cimg_save_pandore_case(0,1,1,"unsigned short",6);
      _cimg_save_pandore_case(0,1,1,"unsigned int",6);
      _cimg_save_pandore_case(0,1,1,"int",6);
      _cimg_save_pandore_case(0,1,1,"unsigned long",7);
      _cimg_save_pandore_case(0,1,1,"long",6);
      _cimg_save_pandore_case(0,1,1,"float",7);
      _cimg_save_pandore_case(0,1,1,"double",7);

      _cimg_save_pandore_case(0,0,1,"unsigned char",8);
      _cimg_save_pandore_case(0,0,1,"char",9);
      _cimg_save_pandore_case(0,0,1,"short",9);
      _cimg_save_pandore_case(0,0,1,"unsigned short",9);
      _cimg_save_pandore_case(0,0,1,"unsigned int",9);
      _cimg_save_pandore_case(0,0,1,"int",9);
      _cimg_save_pandore_case(0,0,1,"unsigned long",10);
      _cimg_save_pandore_case(0,0,1,"long",9);
      _cimg_save_pandore_case(0,0,1,"float",10);
      _cimg_save_pandore_case(0,0,1,"double",10);

      _cimg_save_pandore_case(0,1,3,"unsigned char",16);
      _cimg_save_pandore_case(0,1,3,"char",17);
      _cimg_save_pandore_case(0,1,3,"short",17);
      _cimg_save_pandore_case(0,1,3,"unsigned short",17);
      _cimg_save_pandore_case(0,1,3,"unsigned int",17);
      _cimg_save_pandore_case(0,1,3,"int",17);
      _cimg_save_pandore_case(0,1,3,"unsigned long",18);
      _cimg_save_pandore_case(0,1,3,"long",17);
      _cimg_save_pandore_case(0,1,3,"float",18);
      _cimg_save_pandore_case(0,1,3,"double",18);

      _cimg_save_pandore_case(0,0,3,"unsigned char",19);
      _cimg_save_pandore_case(0,0,3,"char",20);
      _cimg_save_pandore_case(0,0,3,"short",20);
      _cimg_save_pandore_case(0,0,3,"unsigned short",20);
      _cimg_save_pandore_case(0,0,3,"unsigned int",20);
      _cimg_save_pandore_case(0,0,3,"int",20);
      _cimg_save_pandore_case(0,0,3,"unsigned long",21);
      _cimg_save_pandore_case(0,0,3,"long",20);
      _cimg_save_pandore_case(0,0,3,"float",21);
      _cimg_save_pandore_case(0,0,3,"double",21);

      _cimg_save_pandore_case(1,1,0,"unsigned char",22);
      _cimg_save_pandore_case(1,1,0,"char",23);
      _cimg_save_pandore_case(1,1,0,"short",23);
      _cimg_save_pandore_case(1,1,0,"unsigned short",23);
      _cimg_save_pandore_case(1,1,0,"unsigned int",23);
      _cimg_save_pandore_case(1,1,0,"int",23);
      _cimg_save_pandore_case(1,1,0,"unsigned long",25);
      _cimg_save_pandore_case(1,1,0,"long",23);
      _cimg_save_pandore_case(1,1,0,"float",25);
      _cimg_save_pandore_case(1,1,0,"double",25);

      _cimg_save_pandore_case(0,1,0,"unsigned char",26);
      _cimg_save_pandore_case(0,1,0,"char",27);
      _cimg_save_pandore_case(0,1,0,"short",27);
      _cimg_save_pandore_case(0,1,0,"unsigned short",27);
      _cimg_save_pandore_case(0,1,0,"unsigned int",27);
      _cimg_save_pandore_case(0,1,0,"int",27);
      _cimg_save_pandore_case(0,1,0,"unsigned long",29);
      _cimg_save_pandore_case(0,1,0,"long",27);
      _cimg_save_pandore_case(0,1,0,"float",29);
      _cimg_save_pandore_case(0,1,0,"double",29);

      _cimg_save_pandore_case(0,0,0,"unsigned char",30);
      _cimg_save_pandore_case(0,0,0,"char",31);
      _cimg_save_pandore_case(0,0,0,"short",31);
      _cimg_save_pandore_case(0,0,0,"unsigned short",31);
      _cimg_save_pandore_case(0,0,0,"unsigned int",31);
      _cimg_save_pandore_case(0,0,0,"int",31);
      _cimg_save_pandore_case(0,0,0,"unsigned long",33);
      _cimg_save_pandore_case(0,0,0,"long",31);
      _cimg_save_pandore_case(0,0,0,"float",33);
      _cimg_save_pandore_case(0,0,0,"double",33);

      if (!file) cimg::fclose(nfile);
      return *this;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
movq %rsi, %rax
orq %rdx, %rax
je 0x497d5
movl %ecx, %ebp
movq %rdx, %r12
movq %rsi, %r14
movq %rbx, %rdi
callq 0x8dc8
testb %al, %al
je 0x49045
movq %r14, %rdi
movq %r12, %rsi
callq 0x465c3
jmp 0x497c3
movl %ebp, 0x3c(%rsp)
movq %r14, %r15
testq %r14, %r14
jne 0x49063
leaq 0x2bf85(%rip), %rsi     # 0x74fdd
movq %r12, %rdi
callq 0x2dca5
movq %rax, %r15
movaps 0xc976(%rip), %xmm0     # 0x559e0
movaps %xmm0, 0x50(%rsp)
movaps 0xc95a(%rip), %xmm0     # 0x559d0
movaps %xmm0, 0x40(%rsp)
andl $0x0, 0x60(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
andl $0x0, 0x10(%rsp)
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %eax
movl %ecx, %edx
xorl $0x1, %edx
movl %eax, %edi
xorl $0x1, %edi
orl %edx, %edi
movl 0xc(%rbx), %esi
movl %esi, %edx
xorl $0x1, %edx
orl %edi, %edx
jne 0x490ef
leaq 0x40(%rsp), %rdi
movl $0x4, 0xc(%rdi)
movl $0x1, (%rsp)
movl (%rbx), %eax
movl %eax, 0x4(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x490f6
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x490dd
xorl %edx, %edx
jmp 0x49189
leaq 0x20(%rsp), %rdi
pushq $0x2
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rbp
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
movq %rbp, %rdi
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49165
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13,%rcx,4)
incq %rcx
addq $-0x4, %rbp
jmp 0x4914b
subq %rbp, %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x48243
movq %r13, %rdi
callq 0x4670
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %esi
movb $0x1, %dl
movl %edx, %edi
notb %dil
cmpl $0x1, %eax
sete %r8b
andb %dil, %r8b
cmpl $0x1, %esi
sete %dil
andb %r8b, %dil
cmpb $0x1, %dil
jne 0x491f1
leaq 0x40(%rsp), %rdi
movl $0x7, 0xc(%rdi)
movl $0x1, (%rsp)
movl %ecx, 0x4(%rsp)
movl (%rbx), %eax
movl %eax, 0x8(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x49252
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x491df
cmpl $0x1, %esi
setne %dil
orb %dl, %dil
jne 0x4937b
leaq 0x40(%rsp), %rdi
movl $0xa, 0xc(%rdi)
movl $0x1, (%rsp)
movl %eax, 0x4(%rsp)
movl %ecx, 0x8(%rsp)
movl (%rbx), %eax
movl %eax, 0xc(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x492e8
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x4923c
leaq 0x20(%rsp), %rdi
pushq $0x3
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rbp
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
movq %rbp, %rdi
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x492c1
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13,%rcx,4)
incq %rcx
addq $-0x4, %rbp
jmp 0x492a7
subq %rbp, %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x48243
movq %r13, %rdi
callq 0x4670
movl 0xc(%rbx), %esi
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %eax
jmp 0x49379
leaq 0x20(%rsp), %rdi
pushq $0x4
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rbp
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
movq %rbp, %rdi
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49357
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13,%rcx,4)
incq %rcx
addq $-0x4, %rbp
jmp 0x4933d
subq %rbp, %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x48243
movq %r13, %rdi
callq 0x4670
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %esi
movb $0x1, %dl
testb %dl, %dl
jne 0x493da
cmpl $0x1, %eax
jne 0x493da
cmpl $0x3, %esi
jne 0x493da
leaq 0x40(%rsp), %rdi
movl $0x12, 0xc(%rdi)
movl $0x3, (%rsp)
movl %ecx, 0x4(%rsp)
movl (%rbx), %eax
movl %eax, 0x8(%rsp)
movl 0x3c(%rsp), %eax
movl %eax, 0xc(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x49440
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x493c8
testb %dl, %dl
jne 0x4953f
cmpl $0x3, %esi
jne 0x4953f
leaq 0x40(%rsp), %rdi
movl $0x15, 0xc(%rdi)
movl $0x3, (%rsp)
movl %eax, 0x4(%rsp)
movl %ecx, 0x8(%rsp)
movl (%rbx), %eax
movl %eax, 0xc(%rsp)
movl 0x3c(%rsp), %eax
movl %eax, 0x10(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x494ab
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x4942e
leaq 0x20(%rsp), %rdi
pushq $0x4
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rdi
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49516
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13)
addq $0x4, %r13
incq %rcx
jmp 0x49492
leaq 0x20(%rsp), %rdi
pushq $0x5
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rdi
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49516
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13)
addq $0x4, %r13
incq %rcx
jmp 0x494fd
leaq (,%r12,4), %rax
subq %rax, %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x48243
movq %r13, %rdi
callq 0x4670
movl 0x4(%rbx), %ecx
movl 0x8(%rbx), %eax
movb $0x1, %dl
testb %dl, %dl
jne 0x49591
cmpl $0x1, %ecx
jne 0x49591
cmpl $0x1, %eax
jne 0x49591
leaq 0x40(%rsp), %rdi
movl $0x19, 0xc(%rdi)
movl 0xc(%rbx), %eax
movl %eax, (%rsp)
movl (%rbx), %eax
movl %eax, 0x4(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x495f5
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x4957f
testb %dl, %dl
jne 0x49664
cmpl $0x1, %eax
jne 0x49664
leaq 0x40(%rsp), %rdi
movl $0x1d, 0xc(%rdi)
movl 0xc(%rbx), %eax
movl %eax, (%rsp)
movq (%rbx), %xmm0
pshufd $0xe1, %xmm0, %xmm0     # xmm0 = xmm0[1,0,2,3]
movq %xmm0, 0x4(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
pxor %xmm0, %xmm0
movdqa %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x496bf
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x495df
leaq 0x20(%rsp), %rdi
pushq $0x2
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rdi
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49795
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13)
addq $0x4, %r13
incq %rcx
jmp 0x49647
testb %dl, %dl
jne 0x497b6
leaq 0x40(%rsp), %rdi
movl $0x21, 0xc(%rdi)
movl 0xc(%rbx), %ecx
movl %ecx, (%rsp)
movl %eax, 0x4(%rsp)
movq (%rbx), %xmm0
pshufd $0xe1, %xmm0, %xmm0     # xmm0 = xmm0[1,0,2,3]
movq %xmm0, 0x8(%rsp)
pushq $0x24
popq %rsi
movq %r15, %rdx
callq 0x46d25
pxor %xmm0, %xmm0
movdqa %xmm0, 0x20(%rsp)
andl $0x0, 0x30(%rsp)
xorl %eax, %eax
cmpq $0x5, %rax
je 0x4972a
movl (%rsp,%rax,4), %ecx
movl %ecx, 0x20(%rsp,%rax,4)
incq %rax
jmp 0x496ad
leaq 0x20(%rsp), %rdi
pushq $0x3
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rdi
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49795
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13)
addq $0x4, %r13
incq %rcx
jmp 0x49711
leaq 0x20(%rsp), %rdi
pushq $0x4
popq %rsi
movq %r15, %rdx
callq 0x49855
movl (%rbx), %eax
movl 0x4(%rbx), %ecx
imulq %rax, %rcx
movl 0x8(%rbx), %eax
movl 0xc(%rbx), %r12d
imulq %rax, %r12
imulq %rcx, %r12
leaq (,%r12,4), %rdi
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %r12
pushq $-0x1
popq %rax
cmovaq %rax, %rdi
callq 0x4040
movq %rax, %r13
movq 0x18(%rbx), %rax
xorl %ecx, %ecx
cmpq %rcx, %r12
je 0x49795
cvtsd2ss (%rax,%rcx,8), %xmm0
movss %xmm0, (%r13)
addq $0x4, %r13
incq %rcx
jmp 0x4977c
leaq (,%r12,4), %rax
subq %rax, %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x48243
movq %r13, %rdi
callq 0x4670
testq %r14, %r14
jne 0x497c3
movq %r15, %rdi
callq 0x2a2f8
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
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 0xaff2(%rip), %rax      # 0x547e8
leaq 0xc3c5(%rip), %r10      # 0x55bc2
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %r10
subq $0x8, %rsp
leaq 0x2b88f(%rip), %r11     # 0x7509f
leaq 0x2f201(%rip), %rsi     # 0x78a18
movq %r14, %rdi
xorl %eax, %eax
pushq %r11
pushq %r10
pushq 0x18(%rbx)
callq 0x9d52
addq $0x20, %rsp
leaq 0x4642d(%rip), %rsi     # 0x8fc60
movq 0x4679e(%rip), %rdx     # 0x8ffd8
movq %r14, %rdi
callq 0x4910
movq %rax, %rbx
movq %r14, %rdi
callq 0x4390
movq %rbx, %rdi
callq 0x4950