// File: manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<double>& cimg_library::CImg<double>::draw_line<double>(int, int, int, int, double const*, float, unsigned int, bool)
CImg<T>& draw_line(const int x0, const int y0,
                       const int x1, const int y1,
                       const tc *const color, const float opacity=1,
                       const unsigned int pattern=~0U, const bool init_hatch=true) {
      if (is_empty()) return *this;
      if (!color)
        throw CImgArgumentException(_cimg_instance
                                    "draw_line(): Specified color is (null).",
                                    cimg_instance);
      static unsigned int hatch = ~0U - (~0U>>1);
      if (init_hatch) hatch = ~0U - (~0U>>1);
      const bool xdir = x0<x1, ydir = y0<y1;
      int
        nx0 = x0, nx1 = x1, ny0 = y0, ny1 = y1,
        &xleft = xdir?nx0:nx1, &yleft = xdir?ny0:ny1,
        &xright = xdir?nx1:nx0, &yright = xdir?ny1:ny0,
        &xup = ydir?nx0:nx1, &yup = ydir?ny0:ny1,
        &xdown = ydir?nx1:nx0, &ydown = ydir?ny1:ny0;
      if (xright<0 || xleft>=width()) return *this;
      if (xleft<0) { yleft-=(int)((float)xleft*((float)yright - yleft)/((float)xright - xleft)); xleft = 0; }
      if (xright>=width()) {
        yright-=(int)(((float)xright - width())*((float)yright - yleft)/((float)xright - xleft));
        xright = width() - 1;
      }
      if (ydown<0 || yup>=height()) return *this;
      if (yup<0) { xup-=(int)((float)yup*((float)xdown - xup)/((float)ydown - yup)); yup = 0; }
      if (ydown>=height()) {
        xdown-=(int)(((float)ydown - height())*((float)xdown - xup)/((float)ydown - yup));
        ydown = height() - 1;
      }
      T *ptrd0 = data(nx0,ny0);
      int dx = xright - xleft, dy = ydown - yup;
      const bool steep = dy>dx;
      if (steep) cimg::swap(nx0,ny0,nx1,ny1,dx,dy);
      const long
        offx = (nx0<nx1?1:-1)*(steep?width():1),
        offy = (ny0<ny1?1:-1)*(steep?1:width());
      const unsigned long wh = (unsigned long)_width*_height;
      if (opacity>=1) {
        if (~pattern) for (int error = dx>>1, x = 0; x<=dx; ++x) {
          if (pattern&hatch) {
            T *ptrd = ptrd0; const tc* col = color;
            cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=wh; }
          }
          hatch>>=1; if (!hatch) hatch = ~0U - (~0U>>1);
          ptrd0+=offx;
          if ((error-=dy)<0) { ptrd0+=offy; error+=dx; }
        } else for (int error = dx>>1, x = 0; x<=dx; ++x) {
          T *ptrd = ptrd0; const tc* col = color; cimg_forC(*this,c) { *ptrd = (T)*(col++); ptrd+=wh; }
          ptrd0+=offx;
          if ((error-=dy)<0) { ptrd0+=offy; error+=dx; }
        }
      }

// Assembly:
subq $0x208, %rsp            # imm = 0x208
movb 0x218(%rsp), %al
movl 0x210(%rsp), %r10d
movq %rdi, 0x1f8(%rsp)
movl %esi, 0x1f4(%rsp)
movl %edx, 0x1f0(%rsp)
movl %ecx, 0x1ec(%rsp)
movl %r8d, 0x1e8(%rsp)
movq %r9, 0x1e0(%rsp)
movss %xmm0, 0x1dc(%rsp)
andb $0x1, %al
movb %al, 0x1db(%rsp)
movq 0x1f8(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x10320
testb $0x1, %al
jne 0xf450
jmp 0xf465
movq 0xb8(%rsp), %rax
movq %rax, 0x200(%rsp)
jmp 0x10300
cmpq $0x0, 0x1e0(%rsp)
jne 0xf590
movl $0x4008, %edi           # imm = 0x4008
callq 0x5240
movq %rax, %rcx
movq 0xb8(%rsp), %rax
movq %rcx, 0x88(%rsp)
movl (%rax), %ecx
movl %ecx, 0x90(%rsp)
movl 0x4(%rax), %ecx
movl %ecx, 0x94(%rsp)
movl 0x8(%rax), %ecx
movl %ecx, 0x98(%rsp)
movl 0xc(%rax), %ecx
movl %ecx, 0x9c(%rsp)
movq 0x18(%rax), %rcx
movq %rcx, 0xa0(%rsp)
movb 0x10(%rax), %dl
leaq 0xd9504(%rip), %rcx     # 0xe89d2
leaq 0xba60c(%rip), %rax     # 0xc9ae1
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, 0xa8(%rsp)
callq 0x118f0
movq %rax, 0xb0(%rsp)
jmp 0xf4f3
movl 0x9c(%rsp), %r9d
movl 0x98(%rsp), %r8d
movl 0x94(%rsp), %ecx
movl 0x90(%rsp), %edx
movq 0x88(%rsp), %rdi
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %r10
movq 0xb0(%rsp), %r11
movq %rsp, %rax
movq %r11, 0x10(%rax)
movq %r10, 0x8(%rax)
movq %rsi, (%rax)
leaq 0xd8f92(%rip), %rsi     # 0xe84d8
xorl %eax, %eax
callq 0x12220
jmp 0xf54f
movq 0x88(%rsp), %rdi
leaq 0xf0602(%rip), %rsi     # 0xffb60
leaq 0x2efb(%rip), %rdx      # 0x12460
callq 0x5920
movq 0x88(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1d0(%rsp)
movl %eax, 0x1cc(%rsp)
callq 0x53a0
jmp 0x10310
testb $0x1, 0x1db(%rsp)
je 0xf5a4
movl $0x80000000, 0xf0fe4(%rip) # imm = 0x80000000
movl 0x1f4(%rsp), %eax
cmpl 0x1ec(%rsp), %eax
setl %al
andb $0x1, %al
movb %al, 0x1cb(%rsp)
movl 0x1f0(%rsp), %eax
cmpl 0x1e8(%rsp), %eax
setl %al
andb $0x1, %al
movb %al, 0x1ca(%rsp)
movl 0x1f4(%rsp), %eax
movl %eax, 0x1c4(%rsp)
movl 0x1ec(%rsp), %eax
movl %eax, 0x1c0(%rsp)
movl 0x1f0(%rsp), %eax
movl %eax, 0x1bc(%rsp)
movl 0x1e8(%rsp), %eax
movl %eax, 0x1b8(%rsp)
testb $0x1, 0x1cb(%rsp)
je 0xf62c
leaq 0x1c4(%rsp), %rax
movq %rax, 0x80(%rsp)
jmp 0xf63e
leaq 0x1c0(%rsp), %rax
movq %rax, 0x80(%rsp)
jmp 0xf63e
movq 0x80(%rsp), %rax
movq %rax, 0x1b0(%rsp)
testb $0x1, 0x1cb(%rsp)
je 0xf667
leaq 0x1bc(%rsp), %rax
movq %rax, 0x78(%rsp)
jmp 0xf676
leaq 0x1b8(%rsp), %rax
movq %rax, 0x78(%rsp)
jmp 0xf676
movq 0x78(%rsp), %rax
movq %rax, 0x1a8(%rsp)
testb $0x1, 0x1cb(%rsp)
je 0xf69c
leaq 0x1c0(%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0xf6ab
leaq 0x1c4(%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0xf6ab
movq 0x70(%rsp), %rax
movq %rax, 0x1a0(%rsp)
testb $0x1, 0x1cb(%rsp)
je 0xf6d1
leaq 0x1b8(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0xf6e0
leaq 0x1bc(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0xf6e0
movq 0x68(%rsp), %rax
movq %rax, 0x198(%rsp)
testb $0x1, 0x1ca(%rsp)
je 0xf706
leaq 0x1c4(%rsp), %rax
movq %rax, 0x60(%rsp)
jmp 0xf715
leaq 0x1c0(%rsp), %rax
movq %rax, 0x60(%rsp)
jmp 0xf715
movq 0x60(%rsp), %rax
movq %rax, 0x190(%rsp)
testb $0x1, 0x1ca(%rsp)
je 0xf73b
leaq 0x1bc(%rsp), %rax
movq %rax, 0x58(%rsp)
jmp 0xf74a
leaq 0x1b8(%rsp), %rax
movq %rax, 0x58(%rsp)
jmp 0xf74a
movq 0x58(%rsp), %rax
movq %rax, 0x188(%rsp)
testb $0x1, 0x1ca(%rsp)
je 0xf770
leaq 0x1c0(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0xf77f
leaq 0x1c4(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0xf77f
movq 0x50(%rsp), %rax
movq %rax, 0x180(%rsp)
testb $0x1, 0x1ca(%rsp)
je 0xf7a5
leaq 0x1b8(%rsp), %rax
movq %rax, 0x48(%rsp)
jmp 0xf7b4
leaq 0x1bc(%rsp), %rax
movq %rax, 0x48(%rsp)
jmp 0xf7b4
movq 0x48(%rsp), %rax
movq %rax, 0x178(%rsp)
movq 0x1a0(%rsp), %rax
cmpl $0x0, (%rax)
jl 0xf7f3
movq 0xb8(%rsp), %rdi
movq 0x1b0(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x44(%rsp)
callq 0x89c0
movl %eax, %ecx
movl 0x44(%rsp), %eax
cmpl %ecx, %eax
jl 0xf808
movq 0xb8(%rsp), %rax
movq %rax, 0x200(%rsp)
jmp 0x10300
movq 0x1b0(%rsp), %rax
cmpl $0x0, (%rax)
jge 0xf881
movq 0x1b0(%rsp), %rax
cvtsi2ssl (%rax), %xmm0
movq 0x198(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x1a8(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
mulss %xmm1, %xmm0
movq 0x1a0(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x1b0(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
divss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movq 0x1a8(%rsp), %rax
movl (%rax), %ecx
subl %edx, %ecx
movl %ecx, (%rax)
movq 0x1b0(%rsp), %rax
movl $0x0, (%rax)
movq 0xb8(%rsp), %rdi
movq 0x1a0(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x40(%rsp)
callq 0x89c0
movl %eax, %ecx
movl 0x40(%rsp), %eax
cmpl %ecx, %eax
jl 0xf945
movq 0xb8(%rsp), %rdi
movq 0x1a0(%rsp), %rax
cvtsi2ssl (%rax), %xmm0
movss %xmm0, 0x3c(%rsp)
callq 0x89c0
movss 0x3c(%rsp), %xmm0
movq 0xb8(%rsp), %rdi
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
movq 0x198(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x1a8(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
mulss %xmm1, %xmm0
movq 0x1a0(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x1b0(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
divss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movq 0x198(%rsp), %rax
movl (%rax), %ecx
subl %edx, %ecx
movl %ecx, (%rax)
callq 0x89c0
movl %eax, %ecx
subl $0x1, %ecx
movq 0x1a0(%rsp), %rax
movl %ecx, (%rax)
movq 0x178(%rsp), %rax
cmpl $0x0, (%rax)
jl 0xf977
movq 0xb8(%rsp), %rdi
movq 0x188(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x38(%rsp)
callq 0x89d0
movl %eax, %ecx
movl 0x38(%rsp), %eax
cmpl %ecx, %eax
jl 0xf98c
movq 0xb8(%rsp), %rax
movq %rax, 0x200(%rsp)
jmp 0x10300
movq 0x188(%rsp), %rax
cmpl $0x0, (%rax)
jge 0xfa05
movq 0x188(%rsp), %rax
cvtsi2ssl (%rax), %xmm0
movq 0x180(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x190(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
mulss %xmm1, %xmm0
movq 0x178(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x188(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
divss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movq 0x190(%rsp), %rax
movl (%rax), %ecx
subl %edx, %ecx
movl %ecx, (%rax)
movq 0x188(%rsp), %rax
movl $0x0, (%rax)
movq 0xb8(%rsp), %rdi
movq 0x178(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x34(%rsp)
callq 0x89d0
movl %eax, %ecx
movl 0x34(%rsp), %eax
cmpl %ecx, %eax
jl 0xfac9
movq 0xb8(%rsp), %rdi
movq 0x178(%rsp), %rax
cvtsi2ssl (%rax), %xmm0
movss %xmm0, 0x30(%rsp)
callq 0x89d0
movss 0x30(%rsp), %xmm0
movq 0xb8(%rsp), %rdi
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
movq 0x180(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x190(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
mulss %xmm1, %xmm0
movq 0x178(%rsp), %rax
cvtsi2ssl (%rax), %xmm1
movq 0x188(%rsp), %rax
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm1
divss %xmm1, %xmm0
cvttss2si %xmm0, %edx
movq 0x180(%rsp), %rax
movl (%rax), %ecx
subl %edx, %ecx
movl %ecx, (%rax)
callq 0x89d0
movl %eax, %ecx
subl $0x1, %ecx
movq 0x178(%rsp), %rax
movl %ecx, (%rax)
movq 0xb8(%rsp), %rdi
movl 0x1c4(%rsp), %esi
movl 0x1bc(%rsp), %edx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x5e180
movq %rax, 0x170(%rsp)
movq 0x1a0(%rsp), %rax
movl (%rax), %eax
movq 0x1b0(%rsp), %rcx
subl (%rcx), %eax
movl %eax, 0x16c(%rsp)
movq 0x178(%rsp), %rax
movl (%rax), %eax
movq 0x188(%rsp), %rcx
subl (%rcx), %eax
movl %eax, 0x168(%rsp)
movl 0x168(%rsp), %eax
cmpl 0x16c(%rsp), %eax
setg %al
andb $0x1, %al
movb %al, 0x167(%rsp)
testb $0x1, 0x167(%rsp)
je 0xfb81
leaq 0x1c4(%rsp), %rdi
leaq 0x1bc(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
leaq 0x1b8(%rsp), %rcx
leaq 0x16c(%rsp), %r8
leaq 0x168(%rsp), %r9
callq 0x32750
movl 0x1c4(%rsp), %edx
movl 0x1c0(%rsp), %esi
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0x1, %ecx
cmpl %esi, %edx
cmovll %ecx, %eax
movl %eax, 0x2c(%rsp)
testb $0x1, 0x167(%rsp)
je 0xfbbf
movq 0xb8(%rsp), %rdi
callq 0x89c0
movl %eax, 0x28(%rsp)
jmp 0xfbca
movl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0xfbca
movl 0x2c(%rsp), %eax
movl 0x28(%rsp), %ecx
imull %ecx, %eax
cltq
movq %rax, 0x158(%rsp)
movl 0x1bc(%rsp), %edx
movl 0x1b8(%rsp), %esi
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0x1, %ecx
cmpl %esi, %edx
cmovll %ecx, %eax
movl %eax, 0x24(%rsp)
testb $0x1, 0x167(%rsp)
je 0xfc15
movl $0x1, %eax
movl %eax, 0x20(%rsp)
jmp 0xfc26
movq 0xb8(%rsp), %rdi
callq 0x89c0
movl %eax, 0x20(%rsp)
movq 0xb8(%rsp), %rcx
movl 0x24(%rsp), %eax
movl 0x20(%rsp), %edx
imull %edx, %eax
cltq
movq %rax, 0x150(%rsp)
movl (%rcx), %eax
movl 0x4(%rcx), %ecx
imulq %rcx, %rax
movq %rax, 0x148(%rsp)
movss 0x1dc(%rsp), %xmm0
movss 0xb84bb(%rip), %xmm1    # 0xc8120
ucomiss %xmm1, %xmm0
jb 0xff50
movl 0x210(%rsp), %eax
xorl $-0x1, %eax
cmpl $0x0, %eax
je 0xfe04
movl 0x16c(%rsp), %eax
sarl %eax
movl %eax, 0x144(%rsp)
movl $0x0, 0x140(%rsp)
movl 0x140(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jg 0xfdff
movl 0x210(%rsp), %eax
andl 0xf08cb(%rip), %eax     # 0x100588
cmpl $0x0, %eax
je 0xfd5d
movq 0x170(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, 0x130(%rsp)
movl $0x0, 0x12c(%rsp)
movq 0xb8(%rsp), %rcx
movl 0x12c(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0xfd5b
movq 0x130(%rsp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, 0x130(%rsp)
movsd (%rax), %xmm0
movq 0x138(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x148(%rsp), %rax
shlq $0x3, %rax
addq 0x138(%rsp), %rax
movq %rax, 0x138(%rsp)
movl 0x12c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x12c(%rsp)
jmp 0xfcf1
jmp 0xfd5d
movl 0xf0825(%rip), %eax     # 0x100588
shrl %eax
movl %eax, 0xf081d(%rip)     # 0x100588
cmpl $0x0, 0xf0816(%rip)     # 0x100588
jne 0xfd7e
movl $0x80000000, 0xf080a(%rip) # imm = 0x80000000
movq 0x158(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x168(%rsp), %ecx
movl 0x144(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x144(%rsp)
cmpl $0x0, %eax
jge 0xfde7
movq 0x150(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x16c(%rsp), %eax
addl 0x144(%rsp), %eax
movl %eax, 0x144(%rsp)
jmp 0xfde9
movl 0x140(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x140(%rsp)
jmp 0xfc9c
jmp 0xff4b
movl 0x16c(%rsp), %eax
sarl %eax
movl %eax, 0x128(%rsp)
movl $0x0, 0x124(%rsp)
movl 0x124(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jg 0xff49
movq 0x170(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, 0x110(%rsp)
movl $0x0, 0x10c(%rsp)
movq 0xb8(%rsp), %rcx
movl 0x10c(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0xfec8
movq 0x110(%rsp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, 0x110(%rsp)
movsd (%rax), %xmm0
movq 0x118(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x148(%rsp), %rax
shlq $0x3, %rax
addq 0x118(%rsp), %rax
movq %rax, 0x118(%rsp)
movl 0x10c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10c(%rsp)
jmp 0xfe5e
movq 0x158(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x168(%rsp), %ecx
movl 0x128(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x128(%rsp)
cmpl $0x0, %eax
jge 0xff31
movq 0x150(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x16c(%rsp), %eax
addl 0x128(%rsp), %eax
movl %eax, 0x128(%rsp)
jmp 0xff33
movl 0x124(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x124(%rsp)
jmp 0xfe1f
jmp 0xff4b
jmp 0x102f0
movss 0x1dc(%rsp), %xmm0
callq 0x1f3d0
movss %xmm0, 0x108(%rsp)
movl $0x0, 0x100(%rsp)
leaq 0x1dc(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x1f3f0
movaps %xmm0, %xmm1
movss 0xb818e(%rip), %xmm0    # 0xc8120
subss %xmm1, %xmm0
movss %xmm0, 0x104(%rsp)
movl 0x210(%rsp), %eax
xorl $-0x1, %eax
cmpl $0x0, %eax
je 0x1016e
movl 0x16c(%rsp), %eax
sarl %eax
movl %eax, 0xfc(%rsp)
movl $0x0, 0xf8(%rsp)
movl 0xf8(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jg 0x10169
movl 0x210(%rsp), %eax
andl 0xf059a(%rip), %eax     # 0x100588
cmpl $0x0, %eax
je 0x100c7
movq 0x170(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, 0xe8(%rsp)
movl $0x0, 0xe4(%rsp)
movq 0xb8(%rsp), %rcx
movl 0xe4(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x100c5
movss 0x108(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0xe8(%rsp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, 0xe8(%rsp)
movsd (%rax), %xmm2
movq 0xf0(%rsp), %rax
movsd (%rax), %xmm1
movss 0x104(%rsp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0xf0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x148(%rsp), %rax
shlq $0x3, %rax
addq 0xf0(%rsp), %rax
movq %rax, 0xf0(%rsp)
movl 0xe4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xe4(%rsp)
jmp 0x10022
jmp 0x100c7
movl 0xf04bb(%rip), %eax     # 0x100588
shrl %eax
movl %eax, 0xf04b3(%rip)     # 0x100588
cmpl $0x0, 0xf04ac(%rip)     # 0x100588
jne 0x100e8
movl $0x80000000, 0xf04a0(%rip) # imm = 0x80000000
movq 0x158(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x168(%rsp), %ecx
movl 0xfc(%rsp), %eax
subl %ecx, %eax
movl %eax, 0xfc(%rsp)
cmpl $0x0, %eax
jge 0x10151
movq 0x150(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x16c(%rsp), %eax
addl 0xfc(%rsp), %eax
movl %eax, 0xfc(%rsp)
jmp 0x10153
movl 0xf8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xf8(%rsp)
jmp 0xffcd
jmp 0x102ee
movl 0x16c(%rsp), %eax
sarl %eax
movl %eax, 0xe0(%rsp)
movl $0x0, 0xdc(%rsp)
movl 0xdc(%rsp), %eax
cmpl 0x16c(%rsp), %eax
jg 0x102ec
movq 0x170(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, 0xc8(%rsp)
movl $0x0, 0xc4(%rsp)
movq 0xb8(%rsp), %rcx
movl 0xc4(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x1026b
movss 0x108(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0xc8(%rsp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, 0xc8(%rsp)
movsd (%rax), %xmm2
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm1
movss 0x104(%rsp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0xd0(%rsp), %rax
movsd %xmm0, (%rax)
movq 0x148(%rsp), %rax
shlq $0x3, %rax
addq 0xd0(%rsp), %rax
movq %rax, 0xd0(%rsp)
movl 0xc4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc4(%rsp)
jmp 0x101c8
movq 0x158(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x168(%rsp), %ecx
movl 0xe0(%rsp), %eax
subl %ecx, %eax
movl %eax, 0xe0(%rsp)
cmpl $0x0, %eax
jge 0x102d4
movq 0x150(%rsp), %rax
shlq $0x3, %rax
addq 0x170(%rsp), %rax
movq %rax, 0x170(%rsp)
movl 0x16c(%rsp), %eax
addl 0xe0(%rsp), %eax
movl %eax, 0xe0(%rsp)
jmp 0x102d6
movl 0xdc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xdc(%rsp)
jmp 0x10189
jmp 0x102ee
jmp 0x102f0
movq 0xb8(%rsp), %rax
movq %rax, 0x200(%rsp)
movq 0x200(%rsp), %rax
addq $0x208, %rsp            # imm = 0x208
retq
movq 0x1d0(%rsp), %rdi
callq 0x5970
nopl (%rax)