// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<unsigned char>::get_split(char, int) const
CImgList<T> get_split(const char axis, const int nb=-1) const {
      CImgList<T> res;
      if (is_empty()) return res;
      const char _axis = cimg::uncase(axis);

      if (nb<0) { // Split by bloc size.
        const unsigned int dp = (unsigned int)(nb?-nb:1);
        switch (_axis) {
        case 'x': {
          if (_width>dp) {
            res.assign(_width/dp+(_width%dp?1:0),1,1);
            const unsigned int pe = _width - dp;
#ifdef cimg_use_openmp
#pragma omp parallel for if (res._width>=128 && _height*_depth*_spectrum>=128)
#endif
            for (unsigned int p = 0; p<pe; p+=dp)
              get_crop(p,0,0,0,p+dp-1,_height-1,_depth-1,_spectrum-1).move_to(res[p/dp]);
            get_crop((res._width-1)*dp,0,0,0,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res.back());
          } else res.assign(*this);
        } break;
        case 'y': {
          if (_height>dp) {
            res.assign(_height/dp+(_height%dp?1:0),1,1);
            const unsigned int pe = _height - dp;
#ifdef cimg_use_openmp
#pragma omp parallel for if (res._width>=128 && _width*_depth*_spectrum>=128)
#endif
            for (unsigned int p = 0; p<pe; p+=dp)
              get_crop(0,p,0,0,_width-1,p+dp-1,_depth-1,_spectrum-1).move_to(res[p/dp]);
            get_crop(0,(res._width-1)*dp,0,0,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res.back());
          } else res.assign(*this);
        } break;
        case 'z': {
          if (_depth>dp) {
            res.assign(_depth/dp+(_depth%dp?1:0),1,1);
            const unsigned int pe = _depth - dp;
#ifdef cimg_use_openmp
#pragma omp parallel for if (res._width>=128 && _width*_height*_spectrum>=128)
#endif
            for (unsigned int p = 0; p<pe; p+=dp)
              get_crop(0,0,p,0,_width-1,_height-1,p+dp-1,_spectrum-1).move_to(res[p/dp]);
            get_crop(0,0,(res._width-1)*dp,0,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res.back());
          } else res.assign(*this);
        } break;
        case 'c' : {
          if (_spectrum>dp) {
            res.assign(_spectrum/dp+(_spectrum%dp?1:0),1,1);
            const unsigned int pe = _spectrum - dp;
#ifdef cimg_use_openmp
#pragma omp parallel for if (res._width>=128 && _width*_height*_depth>=128)
#endif
            for (unsigned int p = 0; p<pe; p+=dp)
              get_crop(0,0,0,p,_width-1,_height-1,_depth-1,p+dp-1).move_to(res[p/dp]);
            get_crop(0,0,0,(res._width-1)*dp,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res.back());
          } else res.assign(*this);
        }
        }
      } else if (nb>0) { // Split by number of (non-homogeneous) blocs.
        const unsigned int siz = _axis=='x'?_width:_axis=='y'?_height:_axis=='z'?_depth:_axis=='c'?_spectrum:0;
        if ((unsigned int)nb>siz)
          throw CImgArgumentException(_cimg_instance
                                      "get_split(): Instance cannot be split along %c-axis into %u blocs.",
                                      cimg_instance,
                                      axis,nb);
        if (nb==1) res.assign(*this);
        else {
          int err = (int)siz;
          unsigned int _p = 0;
          switch (_axis) {
          case 'x' : {
            cimg_forX(*this,p) if ((err-=nb)<=0) {
              get_crop(_p,0,0,0,p,_height-1,_depth-1,_spectrum-1).move_to(res);
              err+=(int)siz;
              _p=p+1;
            }
          } break;
          case 'y' : {
            cimg_forY(*this,p) if ((err-=nb)<=0) {
              get_crop(0,_p,0,0,_width-1,p,_depth-1,_spectrum-1).move_to(res);
              err+=(int)siz;
              _p=p+1;
            }
          } break;
          case 'z' : {
            cimg_forZ(*this,p) if ((err-=nb)<=0) {
              get_crop(0,0,_p,0,_width-1,_height-1,p,_spectrum-1).move_to(res);
              err+=(int)siz;
              _p=p+1;
            }
          } break;
          case 'c' : {
            cimg_forC(*this,p) if ((err-=nb)<=0) {
              get_crop(0,0,0,_p,_width-1,_height-1,_depth-1,p).move_to(res);
              err+=(int)siz;
              _p=p+1;
            }
          }
          }
        }
      } else { // Split by egal values according to specified axis.
        T current = *_data;
        int i0 = 0;
        switch (_axis) {
        case 'x' : {
          cimg_forX(*this,i)
            if ((*this)(i)!=current) { get_columns(i0,i-1).move_to(res); i0 = i; current = (*this)(i); }
          get_columns(i0,width()-1).move_to(res);
        } break;
        case 'y' : {
          cimg_forY(*this,i)
            if ((*this)(0,i)!=current) { get_rows(i0,i-1).move_to(res); i0 = i; current = (*this)(0,i); }
          get_rows(i0,height()-1).move_to(res);
        } break;
        case 'z' : {
          cimg_forZ(*this,i)
            if ((*this)(0,0,i)!=current) { get_slices(i0,i-1).move_to(res); i0 = i; current = (*this)(0,0,i); }
          get_slices(i0,depth()-1).move_to(res);
        } break;
        case 'c' : {
          cimg_forC(*this,i)
            if ((*this)(0,0,0,i)!=current) { get_channels(i0,i-1).move_to(res); i0 = i; current = (*this)(0,0,0,i); }
          get_channels(i0,spectrum()-1).move_to(res);
        } break;
        default : {
          cimg_foroff(*this,i)
            if ((*this)[i]!=current) { CImg<T>(_data+i0,1,i-i0).move_to(res); i0 = i; current = (*this)[i]; }
          CImg<T>(_data+i0,1,size()-i0).move_to(res);
        }
        }
      }
      return res;
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %ecx, %r15d
movl %edx, %r12d
movq %rsi, %r14
xorps %xmm0, %xmm0
movq %rdi, 0x8(%rsp)
movups %xmm0, (%rdi)
movq %rsi, %rdi
callq 0xfd1c
testb %al, %al
jne 0xe755
leal -0x5b(%r12), %eax
leal 0x20(%r12), %ecx
cmpb $-0x1a, %al
movzbl %r12b, %eax
movzbl %cl, %edx
cmovbl %eax, %edx
movzbl %dl, %ecx
testl %r15d, %r15d
js 0xdc82
je 0xdd69
cmpb $0x63, %dl
je 0xddf2
cmpl $0x7a, %ecx
je 0xdde6
cmpl $0x79, %ecx
je 0xddec
xorl %esi, %esi
cmpl $0x78, %ecx
jne 0xddf6
movl (%r14), %esi
jmp 0xddf6
movl %r15d, %esi
negl %esi
cmpb $0x63, %dl
movl %esi, 0x4(%rsp)
je 0xe043
cmpl $0x7a, %ecx
je 0xded0
cmpl $0x79, %ecx
je 0xdf89
cmpl $0x78, %ecx
jne 0xe755
movl (%r14), %eax
cmpl %esi, %eax
jbe 0xe0fd
xorl %edx, %edx
divl %esi
xorl %r12d, %r12d
cmpl $0x1, %edx
sbbl $-0x1, %eax
pushq $0x1
popq %rcx
movq 0x8(%rsp), %rdi
movl %eax, %esi
movl %ecx, %edx
movl %ecx, %r8d
movl %ecx, %r9d
callq 0xfd3e
movl (%r14), %eax
addl %r15d, %eax
movl %eax, 0x14(%rsp)
movl %r15d, %ebp
notl %ebp
leaq 0x18(%rsp), %r13
cmpl 0x14(%rsp), %r12d
jae 0xe5ec
leal (%r12,%rbp), %eax
movl 0x4(%r14), %r10d
movl 0x8(%r14), %r11d
decl %r10d
decl %r11d
movl 0xc(%r14), %ebx
decl %ebx
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
movl %r12d, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x0
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movl %r12d, %eax
xorl %edx, %edx
divl 0x4(%rsp)
shlq $0x5, %rax
movq 0x8(%rsp), %rcx
addq 0x8(%rcx), %rax
movq %r13, %rdi
movq %rax, %rsi
callq 0xc498
subl %r15d, %r12d
movq %r13, %rdi
callq 0xb8ae
jmp 0xdcf2
movq 0x18(%r14), %rsi
movb (%rsi), %al
cmpb $0x63, %dl
je 0xe1e2
cmpl $0x7a, %ecx
je 0xe111
cmpl $0x79, %ecx
je 0xe184
cmpl $0x78, %ecx
jne 0xe265
xorl %ebx, %ebx
leaq 0x18(%rsp), %r15
pushq $-0x1
popq %rbp
xorl %edx, %edx
movq 0x8(%rsp), %r12
movslq (%r14), %rcx
cmpq %rcx, %rbx
jge 0xe30c
cmpb %al, (%rsi,%rbx)
je 0xdde1
leal -0x1(%rbx), %ecx
movq %r15, %rdi
movq %r14, %rsi
callq 0x10098
movq %r15, %rdi
movq %r12, %rsi
movl %ebp, %edx
callq 0xb9c8
movq %r15, %rdi
callq 0xb8ae
movq 0x18(%r14), %rsi
movb (%rsi,%rbx), %al
movl %ebx, %edx
incq %rbx
jmp 0xdda4
movl 0x8(%r14), %esi
jmp 0xddf6
movl 0x4(%r14), %esi
jmp 0xddf6
movl 0xc(%r14), %esi
cmpl %r15d, %esi
jb 0xe769
cmpl $0x1, %r15d
jne 0xde19
movq 0x8(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1006c
jmp 0xe755
cmpb $0x7a, %dl
je 0xe4e0
cmpl $0x78, %ecx
je 0xe3c3
cmpl $0x79, %ecx
je 0xe451
cmpl $0x63, %ecx
jne 0xe755
movl %r15d, %ecx
negl %ecx
xorl %r9d, %r9d
leaq 0x18(%rsp), %r13
movl %esi, %ebp
addl %ecx, %ebp
movl 0xc(%r14), %eax
movl %r9d, %ebx
cmpl %eax, %ebx
jge 0xe755
testl %ebp, %ebp
jle 0xde68
incl %ebx
subl %r15d, %ebp
jmp 0xde55
movl %ecx, 0x4(%rsp)
movl %esi, %r12d
movl (%r14), %eax
movl 0x4(%r14), %r10d
decl %eax
decl %r10d
movl 0x8(%r14), %r11d
decl %r11d
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq $0x0
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movq %r13, %rdi
movq 0x8(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xb9c8
movq %r13, %rdi
callq 0xb8ae
movl %r12d, %esi
addl %r12d, %ebp
incl %ebx
movl %ebx, %r9d
movl 0x4(%rsp), %ecx
jmp 0xde4c
movl 0x8(%r14), %eax
cmpl %esi, %eax
jbe 0xe0fd
xorl %edx, %edx
divl %esi
xorl %r12d, %r12d
cmpl $0x1, %edx
sbbl $-0x1, %eax
pushq $0x1
popq %rcx
movq 0x8(%rsp), %rdi
movl %eax, %esi
movl %ecx, %edx
movl %ecx, %r8d
movl %ecx, %r9d
callq 0xfd3e
movl 0x8(%r14), %eax
addl %r15d, %eax
movl %eax, 0x14(%rsp)
movl %r15d, %ebp
notl %ebp
leaq 0x18(%rsp), %r13
cmpl 0x14(%rsp), %r12d
jae 0xe573
movl (%r14), %eax
movl 0x4(%r14), %r10d
decl %eax
decl %r10d
leal (%r12,%rbp), %r11d
movl 0xc(%r14), %ebx
decl %ebx
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
movl %r12d, %r8d
xorl %r9d, %r9d
pushq $0x0
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movl %r12d, %eax
xorl %edx, %edx
divl 0x4(%rsp)
shlq $0x5, %rax
movq 0x8(%rsp), %rcx
addq 0x8(%rcx), %rax
movq %r13, %rdi
movq %rax, %rsi
callq 0xc498
subl %r15d, %r12d
movq %r13, %rdi
callq 0xb8ae
jmp 0xdf15
movl 0x4(%r14), %eax
cmpl %esi, %eax
jbe 0xe0fd
xorl %edx, %edx
divl %esi
xorl %r12d, %r12d
cmpl $0x1, %edx
sbbl $-0x1, %eax
pushq $0x1
popq %rcx
movq 0x8(%rsp), %rdi
movl %eax, %esi
movl %ecx, %edx
movl %ecx, %r8d
movl %ecx, %r9d
callq 0xfd3e
movl 0x4(%r14), %eax
addl %r15d, %eax
movl %eax, 0x14(%rsp)
movl %r15d, %ebp
notl %ebp
leaq 0x18(%rsp), %r13
cmpl 0x14(%rsp), %r12d
jae 0xe663
movl (%r14), %eax
movl 0x8(%r14), %r10d
decl %eax
leal (%r12,%rbp), %r11d
decl %r10d
movl 0xc(%r14), %ebx
decl %ebx
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r12d, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x0
pushq %rbx
pushq %r10
pushq %r11
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movl %r12d, %eax
xorl %edx, %edx
divl 0x4(%rsp)
shlq $0x5, %rax
movq 0x8(%rsp), %rcx
addq 0x8(%rcx), %rax
movq %r13, %rdi
movq %rax, %rsi
callq 0xc498
subl %r15d, %r12d
movq %r13, %rdi
callq 0xb8ae
jmp 0xdfce
movl 0xc(%r14), %eax
cmpl %esi, %eax
jbe 0xe0fd
xorl %edx, %edx
divl %esi
xorl %r12d, %r12d
cmpl $0x1, %edx
sbbl $-0x1, %eax
pushq $0x1
popq %rcx
movq 0x8(%rsp), %rdi
movl %eax, %esi
movl %ecx, %edx
movl %ecx, %r8d
movl %ecx, %r9d
callq 0xfd3e
movl 0xc(%r14), %eax
addl %r15d, %eax
movl %eax, 0x14(%rsp)
movl %r15d, %ebp
notl %ebp
leaq 0x18(%rsp), %r13
cmpl 0x14(%rsp), %r12d
jae 0xe6d7
movl (%r14), %eax
movl 0x4(%r14), %r10d
decl %eax
decl %r10d
movl 0x8(%r14), %r11d
decl %r11d
leal (%r12,%rbp), %ebx
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movl %r12d, %r9d
pushq $0x0
pushq %rbx
pushq %r11
pushq %r10
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movl %r12d, %eax
xorl %edx, %edx
divl 0x4(%rsp)
shlq $0x5, %rax
movq 0x8(%rsp), %rcx
addq 0x8(%rcx), %rax
movq %r13, %rdi
movq %rax, %rsi
callq 0xc498
subl %r15d, %r12d
movq %r13, %rdi
callq 0xb8ae
jmp 0xe088
movq 0x8(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x1006c
jmp 0xe755
xorl %r12d, %r12d
leaq 0x18(%rsp), %r15
pushq $-0x1
popq %rbp
xorl %edx, %edx
movslq 0x8(%r14), %rcx
cmpq %rcx, %r12
jge 0xe2e6
movl (%r14), %ecx
movl 0x4(%r14), %edi
imulq %r12, %rcx
imulq %rcx, %rdi
cmpb %al, (%rsi,%rdi)
je 0xe17f
leal -0x1(%r12), %ecx
movq %r15, %rdi
movq %r14, %rsi
callq 0x1012a
movq %r15, %rdi
movq 0x8(%rsp), %rsi
movl %ebp, %edx
callq 0xb9c8
movq %r15, %rdi
callq 0xb8ae
movq 0x18(%r14), %rsi
movl (%r14), %eax
movl 0x4(%r14), %ecx
imulq %r12, %rax
imulq %rax, %rcx
movb (%rsi,%rcx), %al
movl %r12d, %edx
incq %r12
jmp 0xe11e
xorl %edx, %edx
leaq 0x18(%rsp), %r15
pushq $-0x1
popq %rbp
xorl %ebx, %ebx
movq 0x8(%rsp), %r12
movl 0x4(%r14), %ecx
cmpl %ecx, %ebx
jge 0xe330
movl (%r14), %ecx
imull %ebx, %ecx
cmpb %al, (%rsi,%rcx)
je 0xe1de
leal -0x1(%rbx), %ecx
movq %r15, %rdi
movq %r14, %rsi
callq 0x100e0
movq %r15, %rdi
movq %r12, %rsi
movl %ebp, %edx
callq 0xb9c8
movq %r15, %rdi
callq 0xb8ae
movq 0x18(%r14), %rsi
movl (%r14), %eax
imull %ebx, %eax
movb (%rsi,%rax), %al
movl %ebx, %edx
incl %ebx
jmp 0xe195
xorl %r12d, %r12d
leaq 0x18(%rsp), %r15
pushq $-0x1
popq %rbp
xorl %edx, %edx
movslq 0xc(%r14), %rcx
cmpq %rcx, %r12
jge 0xe354
movl (%r14), %ecx
movl 0x4(%r14), %edi
movl 0x8(%r14), %r8d
imulq %rdi, %r8
imulq %r12, %rcx
imulq %r8, %rcx
cmpb %al, (%rsi,%rcx)
je 0xe260
leal -0x1(%r12), %ecx
movq %r15, %rdi
movq %r14, %rsi
callq 0x10170
movq %r15, %rdi
movq 0x8(%rsp), %rsi
movl %ebp, %edx
callq 0xb9c8
movq %r15, %rdi
callq 0xb8ae
movq 0x18(%r14), %rsi
movl (%r14), %eax
movl 0x4(%r14), %ecx
movl 0x8(%r14), %edx
imulq %rcx, %rdx
imulq %r12, %rax
imulq %rdx, %rax
movb (%rsi,%rax), %al
movl %r12d, %edx
incq %r12
jmp 0xe1ef
movl (%r14), %ecx
movl 0x4(%r14), %edx
imulq %rcx, %rdx
movl 0x8(%r14), %ecx
movl 0xc(%r14), %r13d
imulq %rcx, %r13
imulq %rdx, %r13
xorl %ecx, %ecx
leaq 0x18(%rsp), %r15
pushq $0x1
popq %rbp
pushq $-0x1
popq %r12
xorl %ebx, %ebx
movslq %ecx, %rdx
cmpq %rbx, %r13
je 0xe37a
cmpb %al, (%rsi,%rbx)
je 0xe2e1
addq %rdx, %rsi
movl %ebx, %ecx
subl %edx, %ecx
subq $0x8, %rsp
movq %r15, %rdi
movl %ebp, %edx
movl %ebp, %r8d
movl %ebp, %r9d
pushq $0x0
callq 0x101b6
popq %rax
popq %rcx
movq %r15, %rdi
movq 0x8(%rsp), %rsi
movl %r12d, %edx
callq 0xb9c8
movq %r15, %rdi
callq 0xb8ae
movq 0x18(%r14), %rsi
movb (%rsi,%rbx), %al
movl %ebx, %ecx
incq %rbx
jmp 0xe290
decl %ecx
leaq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x1012a
leaq 0x18(%rsp), %rdi
pushq $-0x1
popq %rdx
movq 0x8(%rsp), %rsi
callq 0xb9c8
jmp 0xe74b
decl %ecx
leaq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x10098
leaq 0x18(%rsp), %rdi
pushq $-0x1
popq %rdx
movq %r12, %rsi
callq 0xb9c8
jmp 0xe74b
decl %ecx
leaq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x100e0
leaq 0x18(%rsp), %rdi
pushq $-0x1
popq %rdx
movq %r12, %rsi
callq 0xb9c8
jmp 0xe74b
decl %ecx
leaq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x10170
leaq 0x18(%rsp), %rdi
pushq $-0x1
popq %rdx
movq 0x8(%rsp), %rsi
callq 0xb9c8
jmp 0xe74b
movl 0x4(%r14), %ecx
imull (%r14), %ecx
imull 0x8(%r14), %ecx
addq %rdx, %rsi
imull 0xc(%r14), %ecx
subl %edx, %ecx
subq $0x8, %rsp
leaq 0x20(%rsp), %rdi
pushq $0x1
popq %rdx
movl %edx, %r8d
movl %edx, %r9d
pushq $0x0
callq 0x101b6
popq %rax
popq %rcx
leaq 0x18(%rsp), %rdi
pushq $-0x1
popq %rdx
movq 0x8(%rsp), %rsi
callq 0xb9c8
jmp 0xe74b
movl %r15d, %ecx
negl %ecx
xorl %edx, %edx
leaq 0x18(%rsp), %r13
movl %esi, %ebp
addl %ecx, %ebp
movl (%r14), %eax
movl %edx, %ebx
cmpl %eax, %ebx
jge 0xe755
testl %ebp, %ebp
jle 0xe3eb
incl %ebx
subl %r15d, %ebp
jmp 0xe3d8
movl %ecx, 0x4(%rsp)
movl %esi, %r12d
movl 0x4(%r14), %eax
movl 0x8(%r14), %r10d
decl %eax
decl %r10d
movl 0xc(%r14), %r11d
decl %r11d
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x0
pushq %r11
pushq %r10
pushq %rax
pushq %rbx
callq 0xfda2
addq $0x30, %rsp
movq %r13, %rdi
movq 0x8(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xb9c8
movq %r13, %rdi
callq 0xb8ae
movl %r12d, %esi
addl %r12d, %ebp
incl %ebx
movl %ebx, %edx
movl 0x4(%rsp), %ecx
jmp 0xe3d1
movl %r15d, %edx
negl %edx
xorl %ecx, %ecx
leaq 0x18(%rsp), %r12
movl %esi, %r13d
addl %edx, %r13d
movl 0x4(%r14), %eax
movl %ecx, %ebx
cmpl %eax, %ebx
jge 0xe755
testl %r13d, %r13d
jle 0xe47d
incl %ebx
subl %r15d, %r13d
jmp 0xe469
movl %edx, 0x4(%rsp)
movl %esi, %ebp
movl (%r14), %eax
movl 0x8(%r14), %r10d
decl %eax
decl %r10d
movl 0xc(%r14), %r11d
decl %r11d
subq $0x8, %rsp
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq $0x0
pushq %r11
pushq %r10
pushq %rbx
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movq %r12, %rdi
movq 0x8(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xb9c8
movq %r12, %rdi
callq 0xb8ae
movl %ebp, %esi
addl %ebp, %r13d
incl %ebx
movl %ebx, %ecx
movl 0x4(%rsp), %edx
jmp 0xe460
movl %r15d, %ecx
negl %ecx
xorl %r8d, %r8d
leaq 0x18(%rsp), %r13
movl %esi, %ebp
addl %ecx, %ebp
movl 0x8(%r14), %eax
movl %r8d, %ebx
cmpl %eax, %ebx
jge 0xe755
testl %ebp, %ebp
jle 0xe50b
incl %ebx
subl %r15d, %ebp
jmp 0xe4f8
movl %ecx, 0x4(%rsp)
movl %esi, %r12d
movl (%r14), %eax
movl 0x4(%r14), %r10d
decl %eax
decl %r10d
movl 0xc(%r14), %r11d
decl %r11d
subq $0x8, %rsp
movq %r13, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
pushq $0x0
pushq %r11
pushq %rbx
pushq %r10
pushq %rax
callq 0xfda2
addq $0x30, %rsp
movq %r13, %rdi
movq 0x8(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xb9c8
movq %r13, %rdi
callq 0xb8ae
movl %r12d, %esi
addl %r12d, %ebp
incl %ebx
movl %ebx, %r8d
movl 0x4(%rsp), %ecx
jmp 0xe4ef
movq 0x8(%rsp), %rbx
movl (%rbx), %r8d
decl %r8d
imull 0x4(%rsp), %r8d
movl (%r14), %eax
movl 0x4(%r14), %ecx
decl %eax
decl %ecx
movl 0x8(%r14), %edx
decl %edx
movl 0xc(%r14), %esi
decl %esi
subq $0x30, %rsp
movl %esi, 0x18(%rsp)
movl %edx, 0x10(%rsp)
movl %ecx, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %eax, (%rsp)
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0xfda2
addq $0x30, %rsp
movq 0x8(%rbx), %rax
movl (%rbx), %ecx
shlq $0x5, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x20, %rsi
leaq 0x18(%rsp), %rdi
callq 0xc498
jmp 0xe74b
movq 0x8(%rsp), %rbx
movl (%rbx), %edx
decl %edx
imull 0x4(%rsp), %edx
movl (%r14), %eax
movl 0x4(%r14), %ecx
decl %eax
decl %ecx
movl 0x8(%r14), %esi
decl %esi
movl 0xc(%r14), %edi
decl %edi
subq $0x30, %rsp
movl %edi, 0x18(%rsp)
movl %esi, 0x10(%rsp)
movl %ecx, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %eax, (%rsp)
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xfda2
addq $0x30, %rsp
movq 0x8(%rbx), %rax
movl (%rbx), %ecx
shlq $0x5, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x20, %rsi
leaq 0x18(%rsp), %rdi
callq 0xc498
jmp 0xe74b
movq 0x8(%rsp), %rbx
movl (%rbx), %ecx
decl %ecx
imull 0x4(%rsp), %ecx
movl (%r14), %eax
movl 0x4(%r14), %edx
decl %eax
decl %edx
movl 0x8(%r14), %esi
decl %esi
movl 0xc(%r14), %edi
decl %edi
subq $0x30, %rsp
movl %edi, 0x18(%rsp)
movl %esi, 0x10(%rsp)
movl %edx, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %eax, (%rsp)
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xfda2
addq $0x30, %rsp
movq 0x8(%rbx), %rax
movl (%rbx), %ecx
shlq $0x5, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x20, %rsi
leaq 0x18(%rsp), %rdi
callq 0xc498
jmp 0xe74b
movq 0x8(%rsp), %rbx
movl (%rbx), %r9d
decl %r9d
imull 0x4(%rsp), %r9d
movl (%r14), %eax
movl 0x4(%r14), %ecx
decl %eax
decl %ecx
movl 0x8(%r14), %edx
decl %edx
movl 0xc(%r14), %esi
decl %esi
subq $0x30, %rsp
movl %esi, 0x18(%rsp)
movl %edx, 0x10(%rsp)
movl %ecx, 0x8(%rsp)
andl $0x0, 0x20(%rsp)
movl %eax, (%rsp)
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xfda2
addq $0x30, %rsp
movq 0x8(%rbx), %rax
movl (%rbx), %ecx
shlq $0x5, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x20, %rsi
leaq 0x18(%rsp), %rdi
callq 0xc498
leaq 0x18(%rsp), %rdi
callq 0xb8ae
movq 0x8(%rsp), %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4008, %edi           # imm = 0x4008
callq 0x4210
movq %rax, %r13
movl (%r14), %edx
movl 0x4(%r14), %ecx
movl 0x8(%r14), %r8d
movl 0xc(%r14), %r9d
leaq 0x4605c(%rip), %rax     # 0x547e8
cmpb $0x0, 0x10(%r14)
leaq 0x4742a(%rip), %r10     # 0x55bc2
cmovneq %rax, %r10
movsbl %r12b, %r11d
subq $0x8, %rsp
leaq 0x51fdc(%rip), %rbx     # 0x60787
leaq 0x659b6(%rip), %rsi     # 0x74168
movq %r13, %rdi
xorl %eax, %eax
pushq %r15
pushq %r11
pushq %rbx
pushq %r10
pushq 0x18(%r14)
callq 0x9d52
addq $0x30, %rsp
leaq 0x8148e(%rip), %rsi     # 0x8fc60
movq 0x817ff(%rip), %rdx     # 0x8ffd8
movq %r13, %rdi
callq 0x4910
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe846
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe855
movq %rax, %r14
movq %r13, %rdi
callq 0x4390
jmp 0xe858
jmp 0xe855
jmp 0xe855
jmp 0xe855
jmp 0xe846
jmp 0xe855
jmp 0xe846
jmp 0xe855
jmp 0xe846
jmp 0xe855
jmp 0xe846
jmp 0xe855
jmp 0xe846
jmp 0xe846
jmp 0xe855
jmp 0xe846
jmp 0xe855
jmp 0xe846
jmp 0xe855
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0xb8ae
jmp 0xe858
movq %rax, %r14
movq 0x8(%rsp), %rdi
callq 0xcd26
movq %r14, %rdi
callq 0x4950