// File: /workspace/github_c_makefile_star2_O0/zpole[P]IICV/vl/imopv_sse2.c
// Function: vl_imconvcol_vf_sse2
void
VL_XCAT3(_vl_imconvcol_v, SFX, _sse2)
(T* dst, vl_size dst_stride,
 T const* src,
 vl_size src_width, vl_size src_height, vl_size src_stride,
 T const* filt, vl_index filt_begin, vl_index filt_end,
 int step, unsigned int flags)
{
  vl_index x = 0 ;
  vl_index y ;
  vl_index dheight = (src_height - 1) / step + 1 ;
  vl_bool use_simd  = VALIGNED(src_stride) ;
  vl_bool transp    = flags & VL_TRANSPOSE ;
  vl_bool zeropad   = (flags & VL_PAD_MASK) == VL_PAD_BY_ZERO ;
  double totcol = 0 ;
  double simdcol = 0 ;

  /* let filt point to the last sample of the filter */
  filt += filt_end - filt_begin ;

  while (x < (signed)src_width) {
    /* Calculate dest[x,y] = sum_p image[x,p] filt[y - p]
     * where supp(filt) = [filt_begin, filt_end] = [fb,fe].
     *
     * CHUNK_A: y - fe <= p < 0
     *          completes VL_MAX(fe - y, 0) samples
     * CHUNK_B: VL_MAX(y - fe, 0) <= p < VL_MIN(y - fb, height - 1)
     *          completes fe - VL_MAX(fb, height - y) + 1 samples
     * CHUNK_C: completes all samples
     */

    T const *filti ;
    vl_index stop ;

    if ((x + VSIZE < (signed)src_width) &
        VALIGNED(src + x) & use_simd)
    {
      /* ----------------------------------------------  Vectorized */
      for (y = 0 ; y < (signed)src_height ; y += step)  {
        union {VTYPE v ; T x [VSIZE] ; } acc ;
        VTYPE v, c ;
        T const *srci ;
        acc.v = VSTZ () ;
        v = VSTZ() ;

        filti = filt ;
        stop = filt_end - y ;
        srci = src + x - stop * src_stride ;

        if (stop > 0) {
          if (zeropad) {
            v = VSTZ () ;
          } else {
            v = * (VTYPE*) (src + x) ;
          }
          while (filti > filt - stop) {
            c = VLD1 (filti--) ;
            acc.v = VADD (acc.v,  VMUL (v, c)) ;
            srci += src_stride ;
          }
        }

        stop = filt_end - VL_MAX(filt_begin, y - (signed)src_height + 1) + 1 ;
        while (filti > filt - stop) {
          v = * (VTYPE*) srci ;
          c = VLD1 (filti--) ;
          acc.v = VADD (acc.v, VMUL (v, c)) ;
          srci += src_stride ;
        }

        if (zeropad) v = VSTZ () ;

        stop = filt_end - filt_begin + 1;
        while (filti > filt - stop) {
          c = VLD1 (filti--) ;
          acc.v = VADD (acc.v, VMUL (v, c)) ;
        }

        if (transp) {
          *dst = acc.x[0] ; dst += dst_stride ;
          *dst = acc.x[1] ; dst += dst_stride ;
#if(VSIZE == 4)
          *dst = acc.x[2] ; dst += dst_stride ;
          *dst = acc.x[3] ; dst += dst_stride ;
#endif
          dst += 1 * 1 - VSIZE * dst_stride ;
        } else {
          *dst = acc.x[0] ; dst += 1 ;
          *dst = acc.x[1] ; dst += 1 ;
#if(VSIZE == 4)
          *dst = acc.x[2] ; dst += 1 ;
          *dst = acc.x[3] ; dst += 1 ;
#endif
          dst += 1 * dst_stride - VSIZE * 1 ;
        }
      } /* next y */
      if (transp) {
        dst += VSIZE * dst_stride - dheight * 1 ;
      } else {
        dst += VSIZE * 1 - dheight * dst_stride ;
      }
      x       += VSIZE ;
      simdcol += VSIZE ;
      totcol  += VSIZE ;
    } else {
      /* -------------------------------------------------  Vanilla */
      for (y = 0 ; y < (signed)src_height ; y += step) {
        T acc = 0 ;
        T v = 0, c ;
        T const* srci ;

        filti = filt ;
        stop = filt_end - y ;
        srci = src + x - stop * src_stride ;

        if (stop > 0) {
          if (zeropad) {
            v = 0 ;
          } else {
            v = *(src + x) ;
          }
          while (filti > filt - stop) {
            c = *filti-- ;
            acc += v * c ;
            srci += src_stride ;
          }
        }

        stop = filt_end - VL_MAX(filt_begin, y - (signed)src_height + 1) + 1 ;
        while (filti > filt - (signed)stop) {
          v = *srci ;
          c = *filti-- ;
          acc += v * c ;
          srci += src_stride ;
        }

        if (zeropad) v = 0 ;

        stop = filt_end - filt_begin + 1 ;
        while (filti > filt - stop) {
          c = *filti-- ;
          acc += v * c ;
        }

        if (transp) {
          *dst = acc ; dst += 1 ;
        } else {
          *dst = acc ; dst += dst_stride ;
        }
      } /* next y */
      if (transp) {
        dst += 1 * dst_stride - dheight * 1 ;
      } else {
        dst += 1 * 1 - dheight * dst_stride ;
      }
      x      += 1 ;
      totcol += 1 ;
    } /* next x */
  }
}

// Assembly:
subq $0x1d8, %rsp            # imm = 0x1D8
movl 0x200(%rsp), %eax
movl 0x1f8(%rsp), %eax
movq 0x1f0(%rsp), %rax
movq 0x1e8(%rsp), %rax
movq 0x1e0(%rsp), %rax
movq %rdi, 0x68(%rsp)
movq %rsi, 0x60(%rsp)
movq %rdx, 0x58(%rsp)
movq %rcx, 0x50(%rsp)
movq %r8, 0x48(%rsp)
movq %r9, 0x40(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x48(%rsp), %rax
subq $0x1, %rax
movslq 0x1f8(%rsp), %rcx
xorl %edx, %edx
divq %rcx
addq $0x1, %rax
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
andq $0xf, %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x24(%rsp)
movl 0x200(%rsp), %eax
andl $0x4, %eax
movl %eax, 0x20(%rsp)
movl 0x200(%rsp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x1c(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x10(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x8(%rsp)
movq 0x1f0(%rsp), %rax
subq 0x1e8(%rsp), %rax
shlq $0x2, %rax
addq 0x1e0(%rsp), %rax
movq %rax, 0x1e0(%rsp)
movq 0x38(%rsp), %rax
movq 0x50(%rsp), %rcx
movslq %ecx, %rcx
cmpq %rcx, %rax
jge 0x2b338
movq 0x38(%rsp), %rax
addq $0x4, %rax
movq 0x50(%rsp), %rcx
movslq %ecx, %rcx
cmpq %rcx, %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
movq 0x58(%rsp), %rcx
movq 0x38(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
andq $0xf, %rcx
cmpq $0x0, %rcx
setne %cl
xorb $-0x1, %cl
andb $0x1, %cl
movzbl %cl, %ecx
andl %ecx, %eax
andl 0x24(%rsp), %eax
cmpl $0x0, %eax
je 0x2afcf
movq $0x0, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x48(%rsp), %rcx
movslq %ecx, %rcx
cmpq %rcx, %rax
jge 0x2af47
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movaps 0xa0(%rsp), %xmm1
movaps %xmm1, -0x20(%rsp)
movaps %xmm0, 0x90(%rsp)
movaps 0x90(%rsp), %xmm0
movaps %xmm0, -0x30(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, (%rsp)
movq 0x1f0(%rsp), %rax
subq 0x30(%rsp), %rax
movq %rax, -0x8(%rsp)
movq 0x58(%rsp), %rax
movq 0x38(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq -0x8(%rsp), %rdx
imulq 0x40(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rsp)
cmpq $0x0, -0x8(%rsp)
jle 0x2ab98
cmpl $0x0, 0x1c(%rsp)
je 0x2aaa5
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
movaps 0x80(%rsp), %xmm0
movaps %xmm0, -0x30(%rsp)
jmp 0x2aab8
movq 0x58(%rsp), %rax
movq 0x38(%rsp), %rcx
movaps (%rax,%rcx,4), %xmm0
movaps %xmm0, -0x30(%rsp)
jmp 0x2aaba
movq (%rsp), %rax
movq 0x1e0(%rsp), %rcx
xorl %edx, %edx
subq -0x8(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2ab96
movq (%rsp), %rax
movq %rax, %rcx
addq $-0x4, %rcx
movq %rcx, (%rsp)
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x100(%rsp)
movaps 0x100(%rsp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, 0xf0(%rsp)
movaps 0xf0(%rsp), %xmm0
movaps %xmm0, -0x40(%rsp)
movaps -0x20(%rsp), %xmm1
movaps -0x30(%rsp), %xmm2
movaps -0x40(%rsp), %xmm0
movaps %xmm2, 0x1c0(%rsp)
movaps %xmm0, 0x1b0(%rsp)
movaps 0x1c0(%rsp), %xmm0
mulps 0x1b0(%rsp), %xmm0
movaps %xmm1, 0x160(%rsp)
movaps %xmm0, 0x150(%rsp)
movaps 0x160(%rsp), %xmm0
addps 0x150(%rsp), %xmm0
movaps %xmm0, -0x20(%rsp)
movq 0x40(%rsp), %rax
shlq $0x2, %rax
addq -0x48(%rsp), %rax
movq %rax, -0x48(%rsp)
jmp 0x2aaba
jmp 0x2ab98
movq 0x1f0(%rsp), %rax
movq %rax, -0x68(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x30(%rsp), %rcx
movq 0x48(%rsp), %rdx
movslq %edx, %rdx
subq %rdx, %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jle 0x2abd5
movq 0x1e8(%rsp), %rax
movq %rax, -0x70(%rsp)
jmp 0x2abee
movq 0x30(%rsp), %rax
movq 0x48(%rsp), %rcx
movslq %ecx, %rcx
subq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x70(%rsp)
movq -0x68(%rsp), %rax
movq -0x70(%rsp), %rcx
subq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rax
movq 0x1e0(%rsp), %rcx
xorl %edx, %edx
subq -0x8(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2aced
movq -0x48(%rsp), %rax
movaps (%rax), %xmm0
movaps %xmm0, -0x30(%rsp)
movq (%rsp), %rax
movq %rax, %rcx
addq $-0x4, %rcx
movq %rcx, (%rsp)
movq %rax, 0xe8(%rsp)
movq 0xe8(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0xe0(%rsp)
movaps 0xe0(%rsp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, 0xd0(%rsp)
movaps 0xd0(%rsp), %xmm0
movaps %xmm0, -0x40(%rsp)
movaps -0x20(%rsp), %xmm1
movaps -0x30(%rsp), %xmm2
movaps -0x40(%rsp), %xmm0
movaps %xmm2, 0x1a0(%rsp)
movaps %xmm0, 0x190(%rsp)
movaps 0x1a0(%rsp), %xmm0
mulps 0x190(%rsp), %xmm0
movaps %xmm1, 0x140(%rsp)
movaps %xmm0, 0x130(%rsp)
movaps 0x140(%rsp), %xmm0
addps 0x130(%rsp), %xmm0
movaps %xmm0, -0x20(%rsp)
movq 0x40(%rsp), %rax
shlq $0x2, %rax
addq -0x48(%rsp), %rax
movq %rax, -0x48(%rsp)
jmp 0x2ac04
cmpl $0x0, 0x1c(%rsp)
je 0x2ad06
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
movaps 0x70(%rsp), %xmm0
movaps %xmm0, -0x30(%rsp)
movq 0x1f0(%rsp), %rax
subq 0x1e8(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rax
movq 0x1e0(%rsp), %rcx
xorl %edx, %edx
subq -0x8(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2ade8
movq (%rsp), %rax
movq %rax, %rcx
addq $-0x4, %rcx
movq %rcx, (%rsp)
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0xc0(%rsp)
movaps 0xc0(%rsp), %xmm0
shufps $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
movaps %xmm0, 0xb0(%rsp)
movaps 0xb0(%rsp), %xmm0
movaps %xmm0, -0x40(%rsp)
movaps -0x20(%rsp), %xmm1
movaps -0x30(%rsp), %xmm2
movaps -0x40(%rsp), %xmm0
movaps %xmm2, 0x180(%rsp)
movaps %xmm0, 0x170(%rsp)
movaps 0x180(%rsp), %xmm0
mulps 0x170(%rsp), %xmm0
movaps %xmm1, 0x120(%rsp)
movaps %xmm0, 0x110(%rsp)
movaps 0x120(%rsp), %xmm0
addps 0x110(%rsp), %xmm0
movaps %xmm0, -0x20(%rsp)
jmp 0x2ad1f
cmpl $0x0, 0x20(%rsp)
je 0x2ae9f
movss -0x20(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x60(%rsp), %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movss -0x1c(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x60(%rsp), %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movss -0x18(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x60(%rsp), %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movss -0x14(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x60(%rsp), %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x60(%rsp), %rcx
shlq $0x2, %rcx
movl $0x1, %eax
subq %rcx, %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x2af2e
movss -0x20(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x68(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x68(%rsp)
movss -0x1c(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x68(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x68(%rsp)
movss -0x18(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x68(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x68(%rsp)
movss -0x14(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x68(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x68(%rsp)
movq 0x60(%rsp), %rax
shlq $0x0, %rax
subq $0x4, %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x2af30
movslq 0x1f8(%rsp), %rax
addq 0x30(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x2a9ea
cmpl $0x0, 0x20(%rsp)
je 0x2af73
movq 0x60(%rsp), %rax
shlq $0x2, %rax
movq 0x28(%rsp), %rcx
shlq $0x0, %rcx
subq %rcx, %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x2af94
movq 0x28(%rsp), %rcx
imulq 0x60(%rsp), %rcx
movl $0x4, %eax
subq %rcx, %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x38(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x38(%rsp)
movsd 0x2e16e(%rip), %xmm0    # 0x59118
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x2e15a(%rip), %xmm0    # 0x59118
addsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x2b333
movq $0x0, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq 0x48(%rsp), %rcx
movslq %ecx, %rcx
cmpq %rcx, %rax
jge 0x2b2c4
xorps %xmm0, %xmm0
movss %xmm0, -0x4c(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, -0x50(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, (%rsp)
movq 0x1f0(%rsp), %rax
subq 0x30(%rsp), %rax
movq %rax, -0x8(%rsp)
movq 0x58(%rsp), %rax
movq 0x38(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq -0x8(%rsp), %rdx
imulq 0x40(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rsp)
cmpq $0x0, -0x8(%rsp)
jle 0x2b0ef
cmpl $0x0, 0x1c(%rsp)
je 0x2b069
xorps %xmm0, %xmm0
movss %xmm0, -0x50(%rsp)
jmp 0x2b07e
movq 0x58(%rsp), %rax
movq 0x38(%rsp), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, -0x50(%rsp)
jmp 0x2b080
movq (%rsp), %rax
movq 0x1e0(%rsp), %rcx
xorl %edx, %edx
subq -0x8(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2b0ed
movq (%rsp), %rax
movq %rax, %rcx
addq $-0x4, %rcx
movq %rcx, (%rsp)
movss (%rax), %xmm0
movss %xmm0, -0x54(%rsp)
movss -0x50(%rsp), %xmm0
movss -0x54(%rsp), %xmm2
movss -0x4c(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4c(%rsp)
movq 0x40(%rsp), %rax
shlq $0x2, %rax
addq -0x60(%rsp), %rax
movq %rax, -0x60(%rsp)
jmp 0x2b080
jmp 0x2b0ef
movq 0x1f0(%rsp), %rax
movq %rax, -0x78(%rsp)
movq 0x1e8(%rsp), %rax
movq 0x30(%rsp), %rcx
movq 0x48(%rsp), %rdx
movslq %edx, %rdx
subq %rdx, %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jle 0x2b12c
movq 0x1e8(%rsp), %rax
movq %rax, -0x80(%rsp)
jmp 0x2b145
movq 0x30(%rsp), %rax
movq 0x48(%rsp), %rcx
movslq %ecx, %rcx
subq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x80(%rsp)
movq -0x78(%rsp), %rax
movq -0x80(%rsp), %rcx
subq %rcx, %rax
addq $0x1, %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rax
movq 0x1e0(%rsp), %rcx
movq -0x8(%rsp), %rdx
movslq %edx, %rsi
xorl %edx, %edx
subq %rsi, %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2b1e0
movq -0x60(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, -0x50(%rsp)
movq (%rsp), %rax
movq %rax, %rcx
addq $-0x4, %rcx
movq %rcx, (%rsp)
movss (%rax), %xmm0
movss %xmm0, -0x54(%rsp)
movss -0x50(%rsp), %xmm0
movss -0x54(%rsp), %xmm2
movss -0x4c(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4c(%rsp)
movq 0x40(%rsp), %rax
shlq $0x2, %rax
addq -0x60(%rsp), %rax
movq %rax, -0x60(%rsp)
jmp 0x2b15b
cmpl $0x0, 0x1c(%rsp)
je 0x2b1f0
xorps %xmm0, %xmm0
movss %xmm0, -0x50(%rsp)
movq 0x1f0(%rsp), %rax
subq 0x1e8(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rsp)
movq (%rsp), %rax
movq 0x1e0(%rsp), %rcx
xorl %edx, %edx
subq -0x8(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2b263
movq (%rsp), %rax
movq %rax, %rcx
addq $-0x4, %rcx
movq %rcx, (%rsp)
movss (%rax), %xmm0
movss %xmm0, -0x54(%rsp)
movss -0x50(%rsp), %xmm0
movss -0x54(%rsp), %xmm2
movss -0x4c(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4c(%rsp)
jmp 0x2b209
cmpl $0x0, 0x20(%rsp)
je 0x2b289
movss -0x4c(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x68(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x68(%rsp)
jmp 0x2b2ab
movss -0x4c(%rsp), %xmm0
movq 0x68(%rsp), %rax
movss %xmm0, (%rax)
movq 0x60(%rsp), %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x2b2ad
movslq 0x1f8(%rsp), %rax
addq 0x30(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x2afd8
cmpl $0x0, 0x20(%rsp)
je 0x2b2f0
movq 0x60(%rsp), %rax
shlq $0x0, %rax
movq 0x28(%rsp), %rcx
shlq $0x0, %rcx
subq %rcx, %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x2b311
movq 0x28(%rsp), %rcx
imulq 0x60(%rsp), %rcx
movl $0x1, %eax
subq %rcx, %rax
shlq $0x2, %rax
addq 0x68(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
movsd 0x2ddb1(%rip), %xmm0    # 0x590d8
addsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x2a97b
addq $0x1d8, %rsp            # imm = 0x1D8
retq