// File: manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImgList<double>::load_parrec(char const*)
CImgList<T>& load_parrec(const char *const filename) {
      if (!filename)
        throw CImgArgumentException(_cimglist_instance
                                    "load_parrec(): Specified filename is (null).",
                                    cimglist_instance);

      char body[1024] = { 0 }, filenamepar[1024] = { 0 }, filenamerec[1024] = { 0 };
      const char *const ext = cimg::split_filename(filename,body);
      if (!std::strcmp(ext,"par")) {
        std::strncpy(filenamepar,filename,sizeof(filenamepar)-1);
        cimg_snprintf(filenamerec,sizeof(filenamerec),"%s.rec",body);
      }
      if (!std::strcmp(ext,"PAR")) {
        std::strncpy(filenamepar,filename,sizeof(filenamepar)-1);
        cimg_snprintf(filenamerec,sizeof(filenamerec),"%s.REC",body);
      }
      if (!std::strcmp(ext,"rec")) {
        std::strncpy(filenamerec,filename,sizeof(filenamerec)-1);
        cimg_snprintf(filenamepar,sizeof(filenamepar),"%s.par",body);
      }
      if (!std::strcmp(ext,"REC")) {
        std::strncpy(filenamerec,filename,sizeof(filenamerec)-1);
        cimg_snprintf(filenamepar,sizeof(filenamepar),"%s.PAR",body);
      }
      std::FILE *file = cimg::fopen(filenamepar,"r");

      // Parse header file
      CImgList<floatT> st_slices;
      CImgList<uintT> st_global;
      int err;
      char line[256] = { 0 };
      do { err=std::fscanf(file,"%255[^\n]%*c",line); } while (err!=EOF && (*line=='#' || *line=='.'));
      do {
        unsigned int sn,size_x,size_y,pixsize;
        float rs,ri,ss;
        err = std::fscanf(file,"%u%*u%*u%*u%*u%*u%*u%u%*u%u%u%g%g%g%*[^\n]",&sn,&pixsize,&size_x,&size_y,&ri,&rs,&ss);
        if (err==7) {
          CImg<floatT>::vector((float)sn,(float)pixsize,(float)size_x,(float)size_y,ri,rs,ss,0).move_to(st_slices);
          unsigned int i; for (i = 0; i<st_global._width && sn<=st_global[i][2]; ++i) {}
          if (i==st_global._width) CImg<uintT>::vector(size_x,size_y,sn).move_to(st_global);
          else {
            CImg<uintT> &vec = st_global[i];
            if (size_x>vec[0]) vec[0] = size_x;
            if (size_y>vec[1]) vec[1] = size_y;
            vec[2] = sn;
          }
          st_slices[st_slices._width-1][7] = (float)i;
        }
      } while (err==7);

      // Read data
      std::FILE *file2 = cimg::fopen(filenamerec,"rb");
      cimglist_for(st_global,l) {
        const CImg<uintT>& vec = st_global[l];
        CImg<T>(vec[0],vec[1],vec[2]).move_to(*this);
      }

      cimglist_for(st_slices,l) {
        const CImg<floatT>& vec = st_slices[l];
        const unsigned int
          sn = (unsigned int)vec[0] - 1,
          pixsize = (unsigned int)vec[1],
          size_x = (unsigned int)vec[2],
          size_y = (unsigned int)vec[3],
          imn = (unsigned int)vec[7];
        const float ri = vec[4], rs = vec[5], ss = vec[6];
        switch (pixsize) {
        case 8 : {
          CImg<ucharT> buf(size_x,size_y);
          cimg::fread(buf._data,size_x*size_y,file2);
          if (cimg::endianness()) cimg::invert_endianness(buf._data,size_x*size_y);
          CImg<T>& img = (*this)[imn];
          cimg_forXY(img,x,y) img(x,y,sn) = (T)(( buf(x,y)*rs + ri )/(rs*ss));
        } break;
        case 16 : {
          CImg<ushortT> buf(size_x,size_y);
          cimg::fread(buf._data,size_x*size_y,file2);
          if (cimg::endianness()) cimg::invert_endianness(buf._data,size_x*size_y);
          CImg<T>& img = (*this)[imn];
          cimg_forXY(img,x,y) img(x,y,sn) = (T)(( buf(x,y)*rs + ri )/(rs*ss));
        } break;
        case 32 : {
          CImg<uintT> buf(size_x,size_y);
          cimg::fread(buf._data,size_x*size_y,file2);
          if (cimg::endianness()) cimg::invert_endianness(buf._data,size_x*size_y);
          CImg<T>& img = (*this)[imn];
          cimg_forXY(img,x,y) img(x,y,sn) = (T)(( buf(x,y)*rs + ri )/(rs*ss));
        } break;
        default :
          cimg::fclose(file);
          cimg::fclose(file2);
          throw CImgIOException(_cimglist_instance
                                "load_parrec(): Unsupported %d-bits pixel type for file '%s'.",
                                cimglist_instance,
                                pixsize,filename);
        }
      }
      cimg::fclose(file);
      cimg::fclose(file2);
      if (!_width)
        throw CImgIOException(_cimglist_instance
                              "load_parrec(): Failed to recognize valid PAR-REC data in file '%s'.",
                              cimglist_instance,
                              filename);
      return *this;
    }

// Assembly:
subq $0x1068, %rsp           # imm = 0x1068
movq %rdi, 0x1060(%rsp)
movq %rsi, 0x1058(%rsp)
movq 0x1060(%rsp), %rax
movq %rax, 0x180(%rsp)
cmpq $0x0, 0x1058(%rsp)
jne 0x7f871
movl $0x4008, %edi           # imm = 0x4008
callq 0x5240
movq %rax, %rcx
movq 0x180(%rsp), %rax
movq %rcx, 0x168(%rsp)
movq %rcx, 0x160(%rsp)
movl (%rax), %ecx
movl %ecx, 0x170(%rsp)
movl 0x4(%rax), %ecx
movl %ecx, 0x174(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x178(%rsp)
callq 0x7c860
movq 0x168(%rsp), %rdi
movl 0x170(%rsp), %edx
movl 0x174(%rsp), %ecx
movq 0x178(%rsp), %r8
movq %rax, %r9
leaq 0x6ac0c(%rip), %rsi     # 0xea433
xorl %eax, %eax
callq 0x12220
jmp 0x7f830
movq 0x160(%rsp), %rdi
leaq 0x80321(%rip), %rsi     # 0xffb60
leaq -0x6d3e6(%rip), %rdx    # 0x12460
callq 0x5920
movq 0x160(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
callq 0x53a0
jmp 0x80a68
leaq 0xc40(%rsp), %rdi
xorl %esi, %esi
movl $0x400, %edx            # imm = 0x400
callq 0x52a0
leaq 0x840(%rsp), %rdi
xorl %esi, %esi
movl $0x400, %edx            # imm = 0x400
callq 0x52a0
leaq 0x440(%rsp), %rdi
xorl %esi, %esi
movl $0x400, %edx            # imm = 0x400
callq 0x52a0
movq 0x1058(%rsp), %rdi
leaq 0xc40(%rsp), %rsi
callq 0x63280
movq %rax, 0x438(%rsp)
movq 0x438(%rsp), %rdi
leaq 0x6abbb(%rip), %rsi     # 0xea494
callq 0x5730
cmpl $0x0, %eax
jne 0x7f920
leaq 0x840(%rsp), %rdi
movq 0x1058(%rsp), %rsi
movl $0x3ff, %edx            # imm = 0x3FF
callq 0x5270
leaq 0x440(%rsp), %rdi
leaq 0xc40(%rsp), %rcx
movl $0x400, %esi            # imm = 0x400
leaq 0x6ab6a(%rip), %rdx     # 0xea483
movb $0x0, %al
callq 0x5890
movq 0x438(%rsp), %rdi
leaq 0x6ab6c(%rip), %rsi     # 0xea49b
callq 0x5730
cmpl $0x0, %eax
jne 0x7f976
leaq 0x840(%rsp), %rdi
movq 0x1058(%rsp), %rsi
movl $0x3ff, %edx            # imm = 0x3FF
callq 0x5270
leaq 0x440(%rsp), %rdi
leaq 0xc40(%rsp), %rcx
movl $0x400, %esi            # imm = 0x400
leaq 0x6ab1b(%rip), %rdx     # 0xea48a
movb $0x0, %al
callq 0x5890
movq 0x438(%rsp), %rdi
leaq 0x6ab01(%rip), %rsi     # 0xea486
callq 0x5730
cmpl $0x0, %eax
jne 0x7f9cc
leaq 0x440(%rsp), %rdi
movq 0x1058(%rsp), %rsi
movl $0x3ff, %edx            # imm = 0x3FF
callq 0x5270
leaq 0x840(%rsp), %rdi
leaq 0xc40(%rsp), %rcx
movl $0x400, %esi            # imm = 0x400
leaq 0x6aacc(%rip), %rdx     # 0xea491
movb $0x0, %al
callq 0x5890
movq 0x438(%rsp), %rdi
leaq 0x6aab2(%rip), %rsi     # 0xea48d
callq 0x5730
cmpl $0x0, %eax
jne 0x7fa22
leaq 0x440(%rsp), %rdi
movq 0x1058(%rsp), %rsi
movl $0x3ff, %edx            # imm = 0x3FF
callq 0x5270
leaq 0x840(%rsp), %rdi
leaq 0xc40(%rsp), %rcx
movl $0x400, %esi            # imm = 0x400
leaq 0x6aa7d(%rip), %rdx     # 0xea498
movb $0x0, %al
callq 0x5890
leaq 0x54c89(%rip), %rsi     # 0xd46b2
leaq 0x840(%rsp), %rdi
callq 0x654a0
movq %rax, 0x430(%rsp)
leaq 0x420(%rsp), %rdi
callq 0x80a80
leaq 0x410(%rsp), %rdi
callq 0x80aa0
jmp 0x7fa5a
leaq 0x300(%rsp), %rdi
xorl %esi, %esi
movl $0x100, %edx            # imm = 0x100
callq 0x52a0
movq 0x430(%rsp), %rdi
leaq 0x6aa22(%rip), %rsi     # 0xea49f
xorl %eax, %eax
leaq 0x300(%rsp), %rdx
callq 0x5a10
movl %eax, 0x15c(%rsp)
jmp 0x7fa95
movl 0x15c(%rsp), %eax
movl %eax, 0x40c(%rsp)
xorl %eax, %eax
cmpl $-0x1, 0x40c(%rsp)
movb %al, 0x15b(%rsp)
je 0x7faef
movsbl 0x300(%rsp), %ecx
movb $0x1, %al
cmpl $0x23, %ecx
movb %al, 0x15a(%rsp)
je 0x7fae1
movsbl 0x300(%rsp), %eax
cmpl $0x2e, %eax
sete %al
movb %al, 0x15a(%rsp)
movb 0x15a(%rsp), %al
movb %al, 0x15b(%rsp)
movb 0x15b(%rsp), %al
testb $0x1, %al
jne 0x7fa6e
jmp 0x7fb00
movq 0x430(%rsp), %rdi
movq %rsp, %rax
leaq 0x2e4(%rsp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x2ec(%rsp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x2e8(%rsp), %rcx
movq %rcx, (%rax)
leaq 0x6a976(%rip), %rsi     # 0xea4ab
xorl %eax, %eax
leaq 0x2fc(%rsp), %rdx
leaq 0x2f0(%rsp), %rcx
leaq 0x2f8(%rsp), %r8
leaq 0x2f4(%rsp), %r9
callq 0x5a10
movl %eax, 0x154(%rsp)
jmp 0x7fb65
movl 0x154(%rsp), %eax
movl %eax, 0x40c(%rsp)
cmpl $0x7, 0x40c(%rsp)
jne 0x7ff48
movl 0x2fc(%rsp), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x2bc(%rsp)
movl 0x2f0(%rsp), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x2b8(%rsp)
movl 0x2f8(%rsp), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x2b4(%rsp)
movl 0x2f4(%rsp), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x2b0(%rsp)
movl $0x0, 0x2ac(%rsp)
movq %rsp, %rax
leaq 0x2ac(%rsp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x2e4(%rsp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x2ec(%rsp), %rcx
movq %rcx, (%rax)
leaq 0x2c0(%rsp), %rdi
leaq 0x2bc(%rsp), %rsi
leaq 0x2b8(%rsp), %rdx
leaq 0x2b4(%rsp), %rcx
leaq 0x2b0(%rsp), %r8
leaq 0x2e8(%rsp), %r9
callq 0x80ac0
jmp 0x7fc3d
leaq 0x2c0(%rsp), %rdi
leaq 0x420(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x80c40
jmp 0x7fc59
leaq 0x2c0(%rsp), %rdi
callq 0x31710
movl $0x0, 0x2a8(%rsp)
movl 0x2a8(%rsp), %ecx
xorl %eax, %eax
cmpl 0x410(%rsp), %ecx
movb %al, 0x153(%rsp)
jae 0x7fce1
movl 0x2fc(%rsp), %eax
movl %eax, 0x144(%rsp)
leaq 0x410(%rsp), %rdi
callq 0x80cd0
movq %rax, 0x148(%rsp)
jmp 0x7fcaf
movq 0x148(%rsp), %rdi
movl 0x2a8(%rsp), %eax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x59fe0
movq %rax, %rcx
movl 0x144(%rsp), %eax
cmpl 0x8(%rcx), %eax
setbe %al
movb %al, 0x153(%rsp)
movb 0x153(%rsp), %al
testb $0x1, %al
jne 0x7fcee
jmp 0x7fd5e
jmp 0x7fcf0
movl 0x2a8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2a8(%rsp)
jmp 0x7fc71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
jmp 0x80a5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
jmp 0x80a4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
leaq 0x2c0(%rsp), %rdi
callq 0x31710
jmp 0x80a4e
movl 0x2a8(%rsp), %eax
cmpl 0x410(%rsp), %eax
jne 0x7fde9
leaq 0x288(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
leaq 0x2f4(%rsp), %rdx
leaq 0x2fc(%rsp), %rcx
callq 0x80ce0
jmp 0x7fd95
leaq 0x288(%rsp), %rdi
leaq 0x410(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x80da0
jmp 0x7fdb1
leaq 0x288(%rsp), %rdi
callq 0x31e50
jmp 0x7fedf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
leaq 0x288(%rsp), %rdi
callq 0x31e50
jmp 0x80a4e
leaq 0x410(%rsp), %rdi
callq 0x80cd0
movq %rax, 0x138(%rsp)
jmp 0x7fe00
movq 0x138(%rsp), %rax
movl 0x2a8(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x280(%rsp)
movl 0x2f8(%rsp), %eax
movl %eax, 0x134(%rsp)
movq 0x280(%rsp), %rdi
callq 0x59fe0
movq %rax, %rcx
movl 0x134(%rsp), %eax
cmpl (%rcx), %eax
jbe 0x7fe6b
movl 0x2f8(%rsp), %eax
movl %eax, 0x130(%rsp)
movq 0x280(%rsp), %rdi
callq 0x59fe0
movl 0x130(%rsp), %ecx
movl %ecx, (%rax)
movl 0x2f4(%rsp), %eax
movl %eax, 0x12c(%rsp)
movq 0x280(%rsp), %rdi
callq 0x59fe0
movq %rax, %rcx
movl 0x12c(%rsp), %eax
cmpl 0x4(%rcx), %eax
jbe 0x7feba
movl 0x2f4(%rsp), %eax
movl %eax, 0x128(%rsp)
movq 0x280(%rsp), %rdi
callq 0x59fe0
movl 0x128(%rsp), %ecx
movl %ecx, 0x4(%rax)
movl 0x2fc(%rsp), %eax
movl %eax, 0x124(%rsp)
movq 0x280(%rsp), %rdi
callq 0x59fe0
movl 0x124(%rsp), %ecx
movl %ecx, 0x8(%rax)
movl 0x2a8(%rsp), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x114(%rsp)
leaq 0x420(%rsp), %rdi
callq 0x80e30
movq %rax, 0x118(%rsp)
jmp 0x7ff0b
movq 0x118(%rsp), %rdi
movl 0x420(%rsp), %eax
decl %eax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x80e40
movq %rax, 0x108(%rsp)
jmp 0x7ff32
movq 0x108(%rsp), %rax
movss 0x114(%rsp), %xmm0
movss %xmm0, 0x1c(%rax)
jmp 0x7ff4a
cmpl $0x7, 0x40c(%rsp)
je 0x7fb00
leaq 0x691ff(%rip), %rsi     # 0xe915e
leaq 0x440(%rsp), %rdi
callq 0x654a0
movq %rax, 0x100(%rsp)
jmp 0x7ff76
movq 0x100(%rsp), %rax
movq %rax, 0x278(%rsp)
movl $0x0, 0x274(%rsp)
movl 0x274(%rsp), %eax
cmpl 0x410(%rsp), %eax
jge 0x800a0
leaq 0x410(%rsp), %rdi
callq 0x80cd0
movq %rax, 0xf8(%rsp)
jmp 0x7ffbc
movq 0xf8(%rsp), %rax
movslq 0x274(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x268(%rsp)
movq 0x268(%rsp), %rdi
callq 0x43eb0
movl (%rax), %eax
movl %eax, 0xf0(%rsp)
movq 0x268(%rsp), %rdi
callq 0x43eb0
movl 0x4(%rax), %eax
movl %eax, 0xf4(%rsp)
movq 0x268(%rsp), %rdi
callq 0x43eb0
movl 0xf0(%rsp), %esi
movl 0xf4(%rsp), %edx
movl 0x8(%rax), %ecx
leaq 0x248(%rsp), %rdi
movl $0x1, %r8d
callq 0xa580
jmp 0x8003b
movq 0x180(%rsp), %rsi
leaq 0x248(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7cfc0
jmp 0x80057
leaq 0x248(%rsp), %rdi
callq 0xa540
movl 0x274(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x274(%rsp)
jmp 0x7ff91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
leaq 0x248(%rsp), %rdi
callq 0xa540
jmp 0x80a4e
movl $0x0, 0x244(%rsp)
movl 0x244(%rsp), %eax
cmpl 0x420(%rsp), %eax
jge 0x8094e
leaq 0x420(%rsp), %rdi
callq 0x80e30
movq %rax, 0xe8(%rsp)
jmp 0x800d6
movq 0xe8(%rsp), %rax
movslq 0x244(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x238(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xe0(%rsp)
jmp 0x8010c
movq 0xe0(%rsp), %rax
cvttss2si (%rax), %rax
decl %eax
movl %eax, 0x234(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xd8(%rsp)
jmp 0x80139
movq 0xd8(%rsp), %rax
cvttss2si 0x4(%rax), %rax
movl %eax, 0x230(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xd0(%rsp)
jmp 0x80165
movq 0xd0(%rsp), %rax
cvttss2si 0x8(%rax), %rax
movl %eax, 0x22c(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xc8(%rsp)
jmp 0x80191
movq 0xc8(%rsp), %rax
cvttss2si 0xc(%rax), %rax
movl %eax, 0x228(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xc0(%rsp)
jmp 0x801bd
movq 0xc0(%rsp), %rax
cvttss2si 0x1c(%rax), %rax
movl %eax, 0x224(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xb8(%rsp)
jmp 0x801e9
movq 0xb8(%rsp), %rax
movss 0x10(%rax), %xmm0
movss %xmm0, 0x220(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xb0(%rsp)
jmp 0x80216
movq 0xb0(%rsp), %rax
movss 0x14(%rax), %xmm0
movss %xmm0, 0x21c(%rsp)
movq 0x238(%rsp), %rdi
callq 0x80e50
movq %rax, 0xa8(%rsp)
jmp 0x80243
movq 0xa8(%rsp), %rax
movss 0x18(%rax), %xmm0
movss %xmm0, 0x218(%rsp)
movl 0x230(%rsp), %eax
movl %eax, 0xa4(%rsp)
subl $0x8, %eax
je 0x80295
jmp 0x8026e
movl 0xa4(%rsp), %eax
subl $0x10, %eax
je 0x8048f
jmp 0x80280
movl 0xa4(%rsp), %eax
subl $0x20, %eax
je 0x8067b
jmp 0x80861
movl 0x22c(%rsp), %esi
movl 0x228(%rsp), %edx
leaq 0x1f8(%rsp), %rdi
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x15df0
jmp 0x802bb
movq 0x210(%rsp), %rdi
movl 0x22c(%rsp), %eax
movl 0x228(%rsp), %ecx
imull %ecx, %eax
movl %eax, %esi
movq 0x278(%rsp), %rdx
callq 0x754c0
jmp 0x802e5
callq 0x43af0
testb $0x1, %al
jne 0x802f0
jmp 0x8033a
movq 0x210(%rsp), %rdi
movl 0x22c(%rsp), %eax
movl 0x228(%rsp), %ecx
imull %ecx, %eax
movl %eax, %esi
callq 0x80e60
jmp 0x80312
jmp 0x8033a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0x15650
jmp 0x80a4e
movq 0x180(%rsp), %rdi
callq 0x7cf60
movl 0x224(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x1f0(%rsp)
movl $0x0, 0x1ec(%rsp)
movl 0x1ec(%rsp), %eax
movq 0x1f0(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x8047d
movl $0x0, 0x1e8(%rsp)
movl 0x1e8(%rsp), %eax
movq 0x1f0(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x80465
movl 0x1e8(%rsp), %esi
movl 0x1ec(%rsp), %edx
leaq 0x1f8(%rsp), %rdi
callq 0x80e80
movq %rax, 0x98(%rsp)
jmp 0x803c7
movq 0x98(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x21c(%rsp), %xmm1
movss 0x220(%rsp), %xmm2
mulss %xmm1, %xmm0
addss %xmm2, %xmm0
movss 0x218(%rsp), %xmm2
mulss %xmm2, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x88(%rsp)
movq 0x1f0(%rsp), %rdi
movl 0x1e8(%rsp), %esi
movl 0x1ec(%rsp), %edx
movl 0x234(%rsp), %ecx
callq 0x98f0
movq %rax, 0x90(%rsp)
jmp 0x8043a
movq 0x90(%rsp), %rax
movsd 0x88(%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x1e8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1e8(%rsp)
jmp 0x8038b
jmp 0x80467
movl 0x1ec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1ec(%rsp)
jmp 0x80368
leaq 0x1f8(%rsp), %rdi
callq 0x15650
jmp 0x80936
movl 0x22c(%rsp), %esi
movl 0x228(%rsp), %edx
leaq 0x1c8(%rsp), %rdi
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x80eb0
jmp 0x804b5
movq 0x1e0(%rsp), %rdi
movl 0x22c(%rsp), %eax
movl 0x228(%rsp), %ecx
imull %ecx, %eax
movl %eax, %esi
movq 0x278(%rsp), %rdx
callq 0x792c0
jmp 0x804df
callq 0x43af0
testb $0x1, %al
jne 0x804ea
jmp 0x80532
movq 0x1e0(%rsp), %rdi
movl 0x22c(%rsp), %eax
imull 0x228(%rsp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x794c0
jmp 0x80532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x79530
jmp 0x80a4e
movq 0x180(%rsp), %rdi
callq 0x7cf60
movl 0x224(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x1c0(%rsp)
movl $0x0, 0x1bc(%rsp)
movl 0x1bc(%rsp), %eax
movq 0x1c0(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x80669
movl $0x0, 0x1b8(%rsp)
movl 0x1b8(%rsp), %eax
movq 0x1c0(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x80651
movl 0x1b8(%rsp), %esi
movl 0x1bc(%rsp), %edx
leaq 0x1c8(%rsp), %rdi
callq 0x811c0
movq %rax, 0x80(%rsp)
jmp 0x805bf
movq 0x80(%rsp), %rax
movzwl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x21c(%rsp), %xmm1
movss 0x220(%rsp), %xmm2
mulss %xmm1, %xmm0
addss %xmm2, %xmm0
movss 0x218(%rsp), %xmm2
mulss %xmm2, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x70(%rsp)
movq 0x1c0(%rsp), %rdi
movl 0x1b8(%rsp), %esi
movl 0x1bc(%rsp), %edx
movl 0x234(%rsp), %ecx
callq 0x98f0
movq %rax, 0x78(%rsp)
jmp 0x8062c
movq 0x78(%rsp), %rax
movsd 0x70(%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x1b8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1b8(%rsp)
jmp 0x80583
jmp 0x80653
movl 0x1bc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1bc(%rsp)
jmp 0x80560
leaq 0x1c8(%rsp), %rdi
callq 0x79530
jmp 0x80936
movl 0x22c(%rsp), %esi
movl 0x228(%rsp), %edx
leaq 0x198(%rsp), %rdi
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x317a0
jmp 0x806a1
movq 0x1b0(%rsp), %rdi
movl 0x22c(%rsp), %eax
movl 0x228(%rsp), %ecx
imull %ecx, %eax
movl %eax, %esi
movq 0x278(%rsp), %rdx
callq 0x7eee0
jmp 0x806cb
callq 0x43af0
testb $0x1, %al
jne 0x806d6
jmp 0x8071e
movq 0x1b0(%rsp), %rdi
movl 0x22c(%rsp), %eax
imull 0x228(%rsp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x7f6b0
jmp 0x8071e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x31e50
jmp 0x80a4e
movq 0x180(%rsp), %rdi
callq 0x7cf60
movl 0x224(%rsp), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x190(%rsp)
movl $0x0, 0x18c(%rsp)
movl 0x18c(%rsp), %eax
movq 0x190(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x8084f
movl $0x0, 0x188(%rsp)
movl 0x188(%rsp), %eax
movq 0x190(%rsp), %rcx
cmpl (%rcx), %eax
jge 0x80837
movl 0x188(%rsp), %esi
movl 0x18c(%rsp), %edx
leaq 0x198(%rsp), %rdi
callq 0x811f0
movq %rax, 0x68(%rsp)
jmp 0x807a8
movq 0x68(%rsp), %rax
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss 0x21c(%rsp), %xmm1
movss 0x220(%rsp), %xmm2
mulss %xmm1, %xmm0
addss %xmm2, %xmm0
movss 0x218(%rsp), %xmm2
mulss %xmm2, %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x58(%rsp)
movq 0x190(%rsp), %rdi
movl 0x188(%rsp), %esi
movl 0x18c(%rsp), %edx
movl 0x234(%rsp), %ecx
callq 0x98f0
movq %rax, 0x60(%rsp)
jmp 0x80812
movq 0x60(%rsp), %rax
movsd 0x58(%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x188(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x188(%rsp)
jmp 0x8076f
jmp 0x80839
movl 0x18c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x18c(%rsp)
jmp 0x8074c
leaq 0x198(%rsp), %rdi
callq 0x31e50
jmp 0x80936
movq 0x430(%rsp), %rdi
callq 0x5c6f0
jmp 0x80870
movq 0x278(%rsp), %rdi
callq 0x5c6f0
jmp 0x8087f
movl $0x4008, %edi           # imm = 0x4008
callq 0x5240
movq %rax, %rcx
movq 0x180(%rsp), %rax
movq %rcx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movl (%rax), %ecx
movl %ecx, 0x48(%rsp)
movl 0x4(%rax), %ecx
movl %ecx, 0x4c(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x50(%rsp)
callq 0x7c860
movq 0x40(%rsp), %rdi
movl 0x48(%rsp), %edx
movl 0x4c(%rsp), %ecx
movq 0x50(%rsp), %r8
movq %rax, %r9
movl 0x230(%rsp), %esi
movq 0x1058(%rsp), %r10
movq %rsp, %rax
movq %r10, 0x8(%rax)
movl %esi, (%rax)
leaq 0x69be8(%rip), %rsi     # 0xea4d5
xorl %eax, %eax
callq 0x5c880
jmp 0x808f6
movq 0x38(%rsp), %rdi
leaq 0x7f36e(%rip), %rsi     # 0xffc70
leaq -0x23e49(%rip), %rdx    # 0x5cac0
callq 0x5920
jmp 0x80a75
movq 0x38(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
callq 0x53a0
jmp 0x80a4e
jmp 0x80938
movl 0x244(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x244(%rsp)
jmp 0x800ab
movq 0x430(%rsp), %rdi
callq 0x5c6f0
jmp 0x8095d
movq 0x278(%rsp), %rdi
callq 0x5c6f0
jmp 0x8096c
movq 0x180(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x80a24
movl $0x4008, %edi           # imm = 0x4008
callq 0x5240
movq %rax, %rcx
movq 0x180(%rsp), %rax
movq %rcx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movl (%rax), %ecx
movl %ecx, 0x28(%rsp)
movl 0x4(%rax), %ecx
movl %ecx, 0x2c(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
callq 0x7c860
movq 0x20(%rsp), %rdi
movl 0x28(%rsp), %edx
movl 0x2c(%rsp), %ecx
movq 0x30(%rsp), %r8
movq %rax, %r9
movq 0x1058(%rsp), %rsi
movq %rsp, %rax
movq %rsi, (%rax)
leaq 0x69b54(%rip), %rsi     # 0xea535
xorl %eax, %eax
callq 0x5c880
jmp 0x809ea
movq 0x18(%rsp), %rdi
leaq 0x7f27a(%rip), %rsi     # 0xffc70
leaq -0x23f3d(%rip), %rdx    # 0x5cac0
callq 0x5920
jmp 0x80a75
movq 0x18(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1050(%rsp)
movl %eax, 0x104c(%rsp)
callq 0x53a0
jmp 0x80a4e
leaq 0x410(%rsp), %rdi
callq 0x81220
leaq 0x420(%rsp), %rdi
callq 0x812a0
movq 0x180(%rsp), %rax
addq $0x1068, %rsp           # imm = 0x1068
retq
leaq 0x410(%rsp), %rdi
callq 0x81220
leaq 0x420(%rsp), %rdi
callq 0x812a0
movq 0x1050(%rsp), %rdi
callq 0x5970
nopw %cs:(%rax,%rax)
nop