// File: /workspace/github_c_makefile_star2_O1/zpole[P]IICV/vl/imopv.c
// Function: vl_imgradient_polar_d
VL_EXPORT void
VL_XCAT(vl_imgradient_polar_, SFX)
(T * gradientModulus, T * gradientAngle,
 vl_size gradientHorizontalStride, vl_size gradHeightStride,
 T const* image,
 vl_size imageWidth, vl_size imageHeight, vl_size imageStride)
{
  /* Shortcuts */
  vl_index const xo = 1 ;
  vl_index const yo = imageStride ;
  vl_size const w = imageWidth;
  vl_size const h = imageHeight;

  T const *src, *end;
  T *pgrad_angl, *pgrad_ampl;
  T gx, gy ;
  vl_size y;

#define SAVE_BACK                                                    \
*pgrad_ampl = vl_fast_sqrt_f (gx*gx + gy*gy) ;                       \
pgrad_ampl += gradientHorizontalStride ;                             \
*pgrad_angl = vl_mod_2pi_f   (vl_fast_atan2_f (gy, gx) + 2*VL_PI) ;  \
pgrad_angl += gradientHorizontalStride ;                             \
++src ;                                                              \

  src  = image ;
  pgrad_angl = gradientAngle ;
  pgrad_ampl = gradientModulus ;

  /* first pixel of the first row */
  gx = src[+xo] - src[0] ;
  gy = src[+yo] - src[0] ;
  SAVE_BACK ;

  /* middle pixels of the  first row */
  end = (src - 1) + w - 1 ;
  while (src < end) {
    gx = 0.5 * (src[+xo] - src[-xo]) ;
    gy =        src[+yo] - src[0] ;
    SAVE_BACK ;
  }

  /* last pixel of the first row */
  gx = src[0]   - src[-xo] ;
  gy = src[+yo] - src[0] ;
  SAVE_BACK ;

  gradientModulus += gradHeightStride;
  pgrad_ampl = gradientModulus;
  gradientAngle += gradHeightStride;
  pgrad_angl = gradientAngle;
  image += imageStride;
  src = image;

  for (y = 1 ; y < h -1 ; ++y) {

    /* first pixel of the middle rows */
    gx =        src[+xo] - src[0] ;
    gy = 0.5 * (src[+yo] - src[-yo]) ;
    SAVE_BACK ;

    /* middle pixels of the middle rows */
    end = (src - 1) + w - 1 ;
    while (src < end) {
      gx = 0.5 * (src[+xo] - src[-xo]) ;
      gy = 0.5 * (src[+yo] - src[-yo]) ;
      SAVE_BACK ;
    }

    /* last pixel of the middle row */
    gx =        src[0]   - src[-xo] ;
    gy = 0.5 * (src[+yo] - src[-yo]) ;
    SAVE_BACK ;

    gradientModulus += gradHeightStride;
    pgrad_ampl = gradientModulus;
    gradientAngle += gradHeightStride;
    pgrad_angl = gradientAngle;
    image += imageStride;
    src = image;
  }

  /* first pixel of the last row */
  gx = src[+xo] - src[0] ;
  gy = src[  0] - src[-yo] ;
  SAVE_BACK ;

  /* middle pixels of the last row */
  end = (src - 1) + w - 1 ;
  while (src < end) {
    gx = 0.5 * (src[+xo] - src[-xo]) ;
    gy =        src[0]   - src[-yo] ;
    SAVE_BACK ;
  }

  /* last pixel of the last row */
  gx = src[0]   - src[-xo] ;
  gy = src[0]   - src[-yo] ;
  SAVE_BACK ;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq 0x40(%rsp), %rax
movsd (%r8), %xmm0
movsd 0x8(%r8), %xmm1
subsd %xmm0, %xmm1
movsd (%r8,%rax,8), %xmm2
subsd %xmm0, %xmm2
movapd %xmm2, %xmm0
mulsd %xmm2, %xmm0
movapd %xmm1, %xmm3
mulsd %xmm1, %xmm3
addsd %xmm0, %xmm3
xorps %xmm0, %xmm0
cvtsd2ss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm4
xorps %xmm3, %xmm3
movsd 0x17d74(%rip), %xmm5    # 0x333a8
ucomisd %xmm4, %xmm5
ja 0x1b692
movd %xmm0, %r10d
sarl %r10d
movl $0x5f3759df, %r11d      # imm = 0x5F3759DF
subl %r10d, %r11d
movd %r11d, %xmm3
movss 0x17cf0(%rip), %xmm4    # 0x33348
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x17cf9(%rip), %xmm6    # 0x33368
addss %xmm6, %xmm5
mulss %xmm3, %xmm5
mulss %xmm5, %xmm4
mulss %xmm5, %xmm4
addss %xmm6, %xmm4
mulss %xmm5, %xmm4
mulss %xmm0, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
cvtsd2ss %xmm2, %xmm2
movsd %xmm3, (%rdi)
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movaps 0x17ac8(%rip), %xmm1    # 0x33170
andps %xmm2, %xmm1
addss 0x17ca1(%rip), %xmm1    # 0x33354
xorps %xmm3, %xmm3
ucomiss %xmm3, %xmm0
movaps %xmm1, %xmm3
addss %xmm0, %xmm3
jae 0x1b6d7
subss %xmm0, %xmm1
divss %xmm1, %xmm3
movss 0x17c8a(%rip), %xmm1    # 0x3335c
movaps %xmm3, %xmm0
jmp 0x1b6e7
subss %xmm1, %xmm0
divss %xmm3, %xmm0
movss 0x17c71(%rip), %xmm1    # 0x33358
movss 0x17c71(%rip), %xmm3    # 0x33360
mulss %xmm0, %xmm3
mulss %xmm0, %xmm3
addss 0x17c65(%rip), %xmm3    # 0x33364
mulss %xmm0, %xmm3
addss %xmm1, %xmm3
movaps 0x17902(%rip), %xmm0    # 0x33010
xorps %xmm3, %xmm0
xorps %xmm1, %xmm1
cmpltss %xmm1, %xmm2
movaps %xmm2, %xmm4
andnps %xmm3, %xmm4
andps %xmm0, %xmm2
orps %xmm4, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
addsd 0x17c6c(%rip), %xmm0    # 0x333a0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x17c2d(%rip), %xmm0    # 0x3336c
jbe 0x1b75a
movss 0x17c27(%rip), %xmm2    # 0x33370
movss 0x17c1b(%rip), %xmm3    # 0x3336c
addss %xmm2, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1b751
ucomiss %xmm0, %xmm1
jbe 0x1b773
movss 0x17c05(%rip), %xmm1    # 0x3336c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1b76a
leaq 0x8(%r8), %rbx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rsi)
leaq (%rdi,%rdx,8), %r10
leaq (%rsi,%rdx,8), %r11
cmpq $0x3, %r9
jl 0x1b960
leaq (%r8,%r9,8), %r14
addq $-0x8, %r14
movaps 0x179d0(%rip), %xmm2    # 0x33170
movss 0x17bac(%rip), %xmm3    # 0x33354
xorps %xmm4, %xmm4
movss 0x17bad(%rip), %xmm6    # 0x33360
movss 0x17ba9(%rip), %xmm7    # 0x33364
movaps 0x1784d(%rip), %xmm8    # 0x33010
movsd 0x17bd4(%rip), %xmm9    # 0x333a0
movss 0x17b97(%rip), %xmm10   # 0x3336c
movss 0x17b92(%rip), %xmm11   # 0x33370
movss 0x17b81(%rip), %xmm14   # 0x33368
movsd 0x8(%rbx), %xmm15
subsd -0x8(%rbx), %xmm15
movsd (%rbx,%rax,8), %xmm0
subsd (%rbx), %xmm0
mulsd 0x179cb(%rip), %xmm15   # 0x331d0
movapd %xmm0, %xmm5
mulsd %xmm0, %xmm5
movapd %xmm15, %xmm12
mulsd %xmm15, %xmm12
addsd %xmm5, %xmm12
xorps %xmm5, %xmm5
cvtsd2ss %xmm12, %xmm5
xorps %xmm13, %xmm13
cvtss2sd %xmm5, %xmm13
xorps %xmm12, %xmm12
movsd 0x17b6f(%rip), %xmm1    # 0x333a8
ucomisd %xmm13, %xmm1
ja 0x1b89b
movd %xmm5, %ebp
sarl %ebp
movl $0x5f3759df, %r15d      # imm = 0x5F3759DF
subl %ebp, %r15d
movd %r15d, %xmm12
movaps %xmm5, %xmm13
mulss 0x17ae7(%rip), %xmm13   # 0x33348
movaps %xmm13, %xmm1
mulss %xmm12, %xmm1
mulss %xmm12, %xmm1
addss %xmm14, %xmm1
mulss %xmm12, %xmm1
mulss %xmm1, %xmm13
mulss %xmm1, %xmm13
addss %xmm14, %xmm13
mulss %xmm1, %xmm13
mulss %xmm5, %xmm13
xorps %xmm12, %xmm12
cvtss2sd %xmm13, %xmm12
cvtsd2ss %xmm0, %xmm0
cvtsd2ss %xmm15, %xmm15
movsd %xmm12, (%r10)
movaps %xmm0, %xmm5
andps %xmm2, %xmm5
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm12
addss %xmm15, %xmm12
jae 0x1b8da
subss %xmm15, %xmm5
divss %xmm5, %xmm12
movaps %xmm12, %xmm15
movss 0x17a84(%rip), %xmm5    # 0x3335c
jmp 0x1b8ec
subss %xmm5, %xmm15
divss %xmm12, %xmm15
movss 0x17a6c(%rip), %xmm5    # 0x33358
movaps %xmm15, %xmm1
mulss %xmm6, %xmm1
mulss %xmm15, %xmm1
addss %xmm7, %xmm1
mulss %xmm15, %xmm1
addss %xmm5, %xmm1
cmpltss %xmm4, %xmm0
movaps %xmm0, %xmm5
andnps %xmm1, %xmm5
xorps %xmm8, %xmm1
andps %xmm0, %xmm1
orps %xmm5, %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
addsd %xmm9, %xmm0
cvtsd2ss %xmm0, %xmm0
ucomiss %xmm10, %xmm0
jbe 0x1b93d
addss %xmm11, %xmm0
jmp 0x1b92b
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1b938
addq $0x8, %rbx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r11)
leaq (%r10,%rdx,8), %r10
leaq (%r11,%rdx,8), %r11
cmpq %r14, %rbx
jb 0x1b7e7
movsd (%rbx), %xmm0
movapd %xmm0, %xmm2
subsd -0x8(%rbx), %xmm2
movsd (%rbx,%rax,8), %xmm1
subsd %xmm0, %xmm1
movapd %xmm1, %xmm0
mulsd %xmm1, %xmm0
movapd %xmm2, %xmm3
mulsd %xmm2, %xmm3
addsd %xmm0, %xmm3
xorps %xmm0, %xmm0
cvtsd2ss %xmm3, %xmm0
xorps %xmm4, %xmm4
cvtss2sd %xmm0, %xmm4
xorps %xmm3, %xmm3
movsd 0x17a05(%rip), %xmm5    # 0x333a8
ucomisd %xmm4, %xmm5
ja 0x1b9fc
movd %xmm0, %ebx
sarl %ebx
movl $0x5f3759df, %ebp       # imm = 0x5F3759DF
subl %ebx, %ebp
movd %ebp, %xmm3
movss 0x17986(%rip), %xmm4    # 0x33348
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x1798f(%rip), %xmm6    # 0x33368
addss %xmm6, %xmm5
mulss %xmm3, %xmm5
mulss %xmm5, %xmm4
mulss %xmm5, %xmm4
addss %xmm6, %xmm4
mulss %xmm5, %xmm4
mulss %xmm0, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
cvtsd2ss %xmm1, %xmm1
movsd %xmm3, (%r10)
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
movaps 0x1775d(%rip), %xmm2    # 0x33170
andps %xmm1, %xmm2
addss 0x17936(%rip), %xmm2    # 0x33354
xorps %xmm3, %xmm3
ucomiss %xmm3, %xmm0
movaps %xmm2, %xmm3
addss %xmm0, %xmm3
jae 0x1ba42
subss %xmm0, %xmm2
divss %xmm2, %xmm3
movss 0x1791f(%rip), %xmm2    # 0x3335c
movaps %xmm3, %xmm0
jmp 0x1ba52
subss %xmm2, %xmm0
divss %xmm3, %xmm0
movss 0x17906(%rip), %xmm2    # 0x33358
movss 0x17906(%rip), %xmm3    # 0x33360
mulss %xmm0, %xmm3
mulss %xmm0, %xmm3
addss 0x178fa(%rip), %xmm3    # 0x33364
mulss %xmm0, %xmm3
addss %xmm2, %xmm3
movaps 0x17597(%rip), %xmm0    # 0x33010
xorps %xmm3, %xmm0
xorps %xmm2, %xmm2
cmpltss %xmm2, %xmm1
movaps %xmm1, %xmm4
andnps %xmm3, %xmm4
andps %xmm0, %xmm1
orps %xmm4, %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
addsd 0x17901(%rip), %xmm0    # 0x333a0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x178c2(%rip), %xmm0    # 0x3336c
movq %r9, -0x10(%rsp)
jbe 0x1baca
movss 0x178b7(%rip), %xmm1    # 0x33370
movss 0x178ab(%rip), %xmm3    # 0x3336c
addss %xmm1, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1bac1
movq 0x38(%rsp), %r9
ucomiss %xmm0, %xmm2
jbe 0x1bae8
movss 0x17890(%rip), %xmm1    # 0x3336c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1badf
leaq (%r8,%rax,8), %r8
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r11)
decq %r9
leaq (%rdi,%rcx,8), %rdi
leaq (%rsi,%rcx,8), %rsi
cmpq $0x2, %r9
jb 0x1bff0
movq %rax, %r11
negq %r11
movq -0x10(%rsp), %r10
leaq -0x8(,%r10,8), %r10
movq %r10, -0x8(%rsp)
movl $0x1, %r14d
movsd 0x176a0(%rip), %xmm1    # 0x331d0
movss 0x1781c(%rip), %xmm3    # 0x33354
xorps %xmm4, %xmm4
movss 0x1781d(%rip), %xmm6    # 0x33360
movss 0x17819(%rip), %xmm7    # 0x33364
movaps 0x174bd(%rip), %xmm8    # 0x33010
movsd 0x17844(%rip), %xmm9    # 0x333a0
movss 0x17807(%rip), %xmm10   # 0x3336c
movss 0x17802(%rip), %xmm11   # 0x33370
movss 0x177f1(%rip), %xmm14   # 0x33368
movsd 0x8(%r8), %xmm15
subsd (%r8), %xmm15
movsd (%r8,%rax,8), %xmm0
subsd (%r8,%r11,8), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm5
mulsd %xmm0, %xmm5
movapd %xmm15, %xmm13
mulsd %xmm15, %xmm13
addsd %xmm5, %xmm13
xorps %xmm5, %xmm5
cvtsd2ss %xmm13, %xmm5
xorps %xmm12, %xmm12
cvtss2sd %xmm5, %xmm12
xorps %xmm13, %xmm13
movsd 0x177e2(%rip), %xmm2    # 0x333a8
ucomisd %xmm12, %xmm2
ja 0x1bc24
movd %xmm5, %ebp
sarl %ebp
movl $0x5f3759df, %r15d      # imm = 0x5F3759DF
subl %ebp, %r15d
movd %r15d, %xmm12
movaps %xmm5, %xmm13
mulss 0x1775a(%rip), %xmm13   # 0x33348
movaps %xmm13, %xmm2
mulss %xmm12, %xmm2
mulss %xmm12, %xmm2
addss %xmm14, %xmm2
mulss %xmm12, %xmm2
mulss %xmm2, %xmm13
mulss %xmm2, %xmm13
addss %xmm14, %xmm13
mulss %xmm2, %xmm13
mulss %xmm5, %xmm13
cvtss2sd %xmm13, %xmm13
cvtsd2ss %xmm0, %xmm0
cvtsd2ss %xmm15, %xmm15
movsd %xmm13, (%rdi)
movaps %xmm0, %xmm5
andps 0x17534(%rip), %xmm5    # 0x33170
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm13
addss %xmm15, %xmm13
jae 0x1bc67
subss %xmm15, %xmm5
divss %xmm5, %xmm13
movaps %xmm13, %xmm15
movss 0x176f7(%rip), %xmm5    # 0x3335c
jmp 0x1bc79
subss %xmm5, %xmm15
divss %xmm13, %xmm15
movss 0x176df(%rip), %xmm5    # 0x33358
movaps %xmm15, %xmm2
mulss %xmm6, %xmm2
mulss %xmm15, %xmm2
addss %xmm7, %xmm2
mulss %xmm15, %xmm2
addss %xmm5, %xmm2
cmpltss %xmm4, %xmm0
movaps %xmm0, %xmm5
andnps %xmm2, %xmm5
xorps %xmm8, %xmm2
andps %xmm0, %xmm2
orps %xmm5, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
addsd %xmm9, %xmm0
cvtsd2ss %xmm0, %xmm0
ucomiss %xmm10, %xmm0
jbe 0x1bcca
addss %xmm11, %xmm0
jmp 0x1bcb8
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1bcc5
leaq 0x8(%r8), %r13
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rsi)
leaq (%rdi,%rdx,8), %r12
leaq (%rsi,%rdx,8), %r15
cmpq $0x3, -0x10(%rsp)
jl 0x1be75
movq -0x8(%rsp), %r10
leaq (%r8,%r10), %rbp
movsd 0x8(%r13), %xmm15
subsd -0x8(%r13), %xmm15
mulsd %xmm1, %xmm15
movsd (%r13,%rax,8), %xmm0
subsd (%r13,%r11,8), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm2
mulsd %xmm0, %xmm2
movapd %xmm15, %xmm5
mulsd %xmm15, %xmm5
addsd %xmm2, %xmm5
cvtsd2ss %xmm5, %xmm5
xorps %xmm2, %xmm2
cvtss2sd %xmm5, %xmm2
xorps %xmm13, %xmm13
movsd 0x1765f(%rip), %xmm12   # 0x333a8
ucomisd %xmm2, %xmm12
ja 0x1bdab
movd %xmm5, %ebx
sarl %ebx
movl $0x5f3759df, %r10d      # imm = 0x5F3759DF
subl %ebx, %r10d
movd %r10d, %xmm2
movaps %xmm5, %xmm12
mulss 0x175d7(%rip), %xmm12   # 0x33348
movaps %xmm12, %xmm13
mulss %xmm2, %xmm13
mulss %xmm2, %xmm13
addss %xmm14, %xmm13
mulss %xmm2, %xmm13
mulss %xmm13, %xmm12
mulss %xmm13, %xmm12
addss %xmm14, %xmm12
mulss %xmm13, %xmm12
mulss %xmm5, %xmm12
xorps %xmm13, %xmm13
cvtss2sd %xmm12, %xmm13
cvtsd2ss %xmm0, %xmm0
cvtsd2ss %xmm15, %xmm15
movsd %xmm13, (%r12)
movaps %xmm0, %xmm5
andps 0x173ac(%rip), %xmm5    # 0x33170
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm13
addss %xmm15, %xmm13
jae 0x1bdef
subss %xmm15, %xmm5
divss %xmm5, %xmm13
movaps %xmm13, %xmm15
movss 0x1756f(%rip), %xmm5    # 0x3335c
jmp 0x1be01
subss %xmm5, %xmm15
divss %xmm13, %xmm15
movss 0x17557(%rip), %xmm5    # 0x33358
movaps %xmm15, %xmm2
mulss %xmm6, %xmm2
mulss %xmm15, %xmm2
addss %xmm7, %xmm2
mulss %xmm15, %xmm2
addss %xmm5, %xmm2
cmpltss %xmm4, %xmm0
movaps %xmm0, %xmm5
andnps %xmm2, %xmm5
xorps %xmm8, %xmm2
andps %xmm0, %xmm2
orps %xmm5, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
addsd %xmm9, %xmm0
cvtsd2ss %xmm0, %xmm0
ucomiss %xmm10, %xmm0
jbe 0x1be52
addss %xmm11, %xmm0
jmp 0x1be40
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1be4d
addq $0x8, %r13
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r15)
leaq (%r12,%rdx,8), %r12
leaq (%r15,%rdx,8), %r15
cmpq %rbp, %r13
jb 0x1bcf8
movsd (%r13), %xmm15
subsd -0x8(%r13), %xmm15
movsd (%r13,%rax,8), %xmm0
subsd (%r13,%r11,8), %xmm0
mulsd %xmm1, %xmm0
movapd %xmm0, %xmm2
mulsd %xmm0, %xmm2
movapd %xmm15, %xmm5
mulsd %xmm15, %xmm5
addsd %xmm2, %xmm5
cvtsd2ss %xmm5, %xmm5
xorps %xmm2, %xmm2
cvtss2sd %xmm5, %xmm2
xorps %xmm13, %xmm13
movsd 0x174e7(%rip), %xmm12   # 0x333a8
ucomisd %xmm2, %xmm12
ja 0x1bf23
movd %xmm5, %r10d
sarl %r10d
movl $0x5f3759df, %ebx       # imm = 0x5F3759DF
subl %r10d, %ebx
movd %ebx, %xmm2
movaps %xmm5, %xmm12
mulss 0x1745f(%rip), %xmm12   # 0x33348
movaps %xmm12, %xmm13
mulss %xmm2, %xmm13
mulss %xmm2, %xmm13
addss %xmm14, %xmm13
mulss %xmm2, %xmm13
mulss %xmm13, %xmm12
mulss %xmm13, %xmm12
addss %xmm14, %xmm12
mulss %xmm13, %xmm12
mulss %xmm5, %xmm12
xorps %xmm13, %xmm13
cvtss2sd %xmm12, %xmm13
cvtsd2ss %xmm0, %xmm0
cvtsd2ss %xmm15, %xmm15
movsd %xmm13, (%r12)
movaps %xmm0, %xmm5
andps 0x17234(%rip), %xmm5    # 0x33170
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm13
addss %xmm15, %xmm13
jae 0x1bf67
subss %xmm15, %xmm5
divss %xmm5, %xmm13
movaps %xmm13, %xmm15
movss 0x173f7(%rip), %xmm5    # 0x3335c
jmp 0x1bf79
subss %xmm5, %xmm15
divss %xmm13, %xmm15
movss 0x173df(%rip), %xmm5    # 0x33358
movaps %xmm15, %xmm2
mulss %xmm6, %xmm2
mulss %xmm15, %xmm2
addss %xmm7, %xmm2
mulss %xmm15, %xmm2
addss %xmm5, %xmm2
cmpltss %xmm4, %xmm0
movaps %xmm0, %xmm5
andnps %xmm2, %xmm5
xorps %xmm8, %xmm2
andps %xmm0, %xmm2
orps %xmm5, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
addsd %xmm9, %xmm0
cvtsd2ss %xmm0, %xmm0
ucomiss %xmm10, %xmm0
jbe 0x1bfca
addss %xmm11, %xmm0
jmp 0x1bfb8
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1bfc5
leaq (%r8,%rax,8), %r8
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r15)
incq %r14
leaq (%rdi,%rcx,8), %rdi
leaq (%rsi,%rcx,8), %rsi
cmpq %r9, %r14
jne 0x1bb77
movsd (%r8), %xmm2
movsd 0x8(%r8), %xmm1
subsd %xmm2, %xmm1
leaq (,%rax,8), %rcx
negq %rcx
subsd (%r8,%rcx), %xmm2
movapd %xmm2, %xmm0
mulsd %xmm2, %xmm0
movapd %xmm1, %xmm3
mulsd %xmm1, %xmm3
addsd %xmm0, %xmm3
xorps %xmm0, %xmm0
cvtsd2ss %xmm3, %xmm0
xorps %xmm4, %xmm4
cvtss2sd %xmm0, %xmm4
xorps %xmm3, %xmm3
movsd 0x1736b(%rip), %xmm5    # 0x333a8
ucomisd %xmm4, %xmm5
ja 0x1c099
movd %xmm0, %ecx
sarl %ecx
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %ecx, %r9d
movd %r9d, %xmm3
movss 0x172e9(%rip), %xmm4    # 0x33348
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x172f2(%rip), %xmm6    # 0x33368
addss %xmm6, %xmm5
mulss %xmm3, %xmm5
mulss %xmm5, %xmm4
mulss %xmm5, %xmm4
addss %xmm6, %xmm4
mulss %xmm5, %xmm4
mulss %xmm0, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
cvtsd2ss %xmm2, %xmm2
movsd %xmm3, (%rdi)
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movaps 0x170c1(%rip), %xmm1    # 0x33170
andps %xmm2, %xmm1
addss 0x1729a(%rip), %xmm1    # 0x33354
xorps %xmm3, %xmm3
ucomiss %xmm3, %xmm0
movaps %xmm1, %xmm3
addss %xmm0, %xmm3
jae 0x1c0de
subss %xmm0, %xmm1
divss %xmm1, %xmm3
movss 0x17283(%rip), %xmm1    # 0x3335c
movaps %xmm3, %xmm0
jmp 0x1c0ee
subss %xmm1, %xmm0
divss %xmm3, %xmm0
movss 0x1726a(%rip), %xmm1    # 0x33358
movq -0x10(%rsp), %r9
movss 0x17265(%rip), %xmm3    # 0x33360
mulss %xmm0, %xmm3
mulss %xmm0, %xmm3
addss 0x17259(%rip), %xmm3    # 0x33364
mulss %xmm0, %xmm3
addss %xmm1, %xmm3
movaps 0x16ef6(%rip), %xmm0    # 0x33010
xorps %xmm3, %xmm0
xorps %xmm1, %xmm1
cmpltss %xmm1, %xmm2
movaps %xmm2, %xmm4
andnps %xmm3, %xmm4
andps %xmm0, %xmm2
orps %xmm4, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
addsd 0x17260(%rip), %xmm0    # 0x333a0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x17221(%rip), %xmm0    # 0x3336c
jbe 0x1c166
movss 0x1721b(%rip), %xmm2    # 0x33370
movss 0x1720f(%rip), %xmm3    # 0x3336c
addss %xmm2, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1c15d
ucomiss %xmm0, %xmm1
jbe 0x1c17f
movss 0x171f9(%rip), %xmm1    # 0x3336c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1c176
leaq 0x8(%r8), %r10
negq %rax
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rsi)
leaq (%rdi,%rdx,8), %rdi
leaq (%rsi,%rdx,8), %rcx
cmpq $0x3, %r9
jl 0x1c37a
leaq (%r8,%r9,8), %rsi
addq $-0x8, %rsi
movaps 0x16fc1(%rip), %xmm2    # 0x33170
movss 0x1719d(%rip), %xmm3    # 0x33354
xorps %xmm4, %xmm4
movss 0x1719e(%rip), %xmm6    # 0x33360
movss 0x1719a(%rip), %xmm7    # 0x33364
movaps 0x16e3e(%rip), %xmm8    # 0x33010
movsd 0x171c5(%rip), %xmm9    # 0x333a0
movss 0x17188(%rip), %xmm10   # 0x3336c
movss 0x17183(%rip), %xmm11   # 0x33370
movss 0x17172(%rip), %xmm14   # 0x33368
movsd (%r10), %xmm5
movsd 0x8(%r10), %xmm15
subsd -0x8(%r10), %xmm15
subsd (%r10,%rax,8), %xmm5
mulsd 0x16fba(%rip), %xmm15   # 0x331d0
movapd %xmm5, %xmm0
mulsd %xmm5, %xmm0
movapd %xmm15, %xmm12
mulsd %xmm15, %xmm12
addsd %xmm0, %xmm12
xorps %xmm0, %xmm0
cvtsd2ss %xmm12, %xmm0
xorps %xmm13, %xmm13
cvtss2sd %xmm0, %xmm13
xorps %xmm12, %xmm12
movsd 0x1715e(%rip), %xmm1    # 0x333a8
ucomisd %xmm13, %xmm1
ja 0x1c2ae
movd %xmm0, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm12
movaps %xmm0, %xmm13
mulss 0x170d4(%rip), %xmm13   # 0x33348
movaps %xmm13, %xmm1
mulss %xmm12, %xmm1
mulss %xmm12, %xmm1
addss %xmm14, %xmm1
mulss %xmm12, %xmm1
mulss %xmm1, %xmm13
mulss %xmm1, %xmm13
addss %xmm14, %xmm13
mulss %xmm1, %xmm13
mulss %xmm0, %xmm13
xorps %xmm12, %xmm12
cvtss2sd %xmm13, %xmm12
xorps %xmm0, %xmm0
cvtsd2ss %xmm5, %xmm0
xorps %xmm5, %xmm5
cvtsd2ss %xmm15, %xmm5
movsd %xmm12, (%rdi)
movaps %xmm0, %xmm15
andps %xmm2, %xmm15
addss %xmm3, %xmm15
ucomiss %xmm4, %xmm5
movaps %xmm15, %xmm12
addss %xmm5, %xmm12
jae 0x1c2f6
subss %xmm5, %xmm15
divss %xmm15, %xmm12
movaps %xmm12, %xmm5
movss 0x17068(%rip), %xmm15   # 0x3335c
jmp 0x1c309
subss %xmm15, %xmm5
divss %xmm12, %xmm5
movss 0x1704f(%rip), %xmm15   # 0x33358
movaps %xmm5, %xmm1
mulss %xmm6, %xmm1
mulss %xmm5, %xmm1
addss %xmm7, %xmm1
mulss %xmm5, %xmm1
addss %xmm15, %xmm1
cmpltss %xmm4, %xmm0
movaps %xmm0, %xmm5
andnps %xmm1, %xmm5
xorps %xmm8, %xmm1
andps %xmm0, %xmm1
orps %xmm5, %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
addsd %xmm9, %xmm0
cvtsd2ss %xmm0, %xmm0
ucomiss %xmm10, %xmm0
jbe 0x1c358
addss %xmm11, %xmm0
jmp 0x1c346
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1c353
addq $0x8, %r10
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rcx)
leaq (%rdi,%rdx,8), %rdi
leaq (%rcx,%rdx,8), %rcx
cmpq %rsi, %r10
jb 0x1c1f6
movsd (%r10), %xmm2
movapd %xmm2, %xmm1
subsd -0x8(%r10), %xmm1
subsd (%r10,%rax,8), %xmm2
movapd %xmm2, %xmm0
mulsd %xmm2, %xmm0
movapd %xmm1, %xmm3
mulsd %xmm1, %xmm3
addsd %xmm0, %xmm3
xorps %xmm0, %xmm0
cvtsd2ss %xmm3, %xmm0
xorps %xmm3, %xmm3
cvtss2sd %xmm0, %xmm3
xorps %xmm4, %xmm4
movsd 0x16fec(%rip), %xmm5    # 0x333a8
ucomisd %xmm3, %xmm5
ja 0x1c412
movd %xmm0, %eax
sarl %eax
movl $0x5f3759df, %edx       # imm = 0x5F3759DF
subl %eax, %edx
movd %edx, %xmm3
movss 0x16f6d(%rip), %xmm4    # 0x33348
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x16f76(%rip), %xmm6    # 0x33368
addss %xmm6, %xmm5
mulss %xmm3, %xmm5
mulss %xmm5, %xmm4
mulss %xmm5, %xmm4
addss %xmm6, %xmm4
mulss %xmm5, %xmm4
mulss %xmm0, %xmm4
cvtss2sd %xmm4, %xmm4
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
xorps %xmm3, %xmm3
cvtsd2ss %xmm1, %xmm3
movaps 0x16d49(%rip), %xmm2    # 0x33170
andps %xmm0, %xmm2
addss 0x16f22(%rip), %xmm2    # 0x33354
movsd %xmm4, (%rdi)
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm3
jae 0x1c457
movaps %xmm2, %xmm1
addss %xmm3, %xmm1
subss %xmm3, %xmm2
divss %xmm2, %xmm1
movss 0x16f07(%rip), %xmm2    # 0x3335c
jmp 0x1c46e
movaps %xmm3, %xmm1
subss %xmm2, %xmm1
addss %xmm3, %xmm2
divss %xmm2, %xmm1
movss 0x16eea(%rip), %xmm2    # 0x33358
movss 0x16eea(%rip), %xmm3    # 0x33360
mulss %xmm1, %xmm3
mulss %xmm1, %xmm3
addss 0x16ede(%rip), %xmm3    # 0x33364
mulss %xmm1, %xmm3
addss %xmm2, %xmm3
movaps 0x16b7b(%rip), %xmm2    # 0x33010
xorps %xmm3, %xmm2
xorps %xmm1, %xmm1
cmpltss %xmm1, %xmm0
movaps %xmm0, %xmm4
andnps %xmm3, %xmm4
andps %xmm2, %xmm0
orps %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x16ee8(%rip), %xmm0    # 0x333a0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x16ea9(%rip), %xmm0    # 0x3336c
jbe 0x1c4de
movss 0x16ea3(%rip), %xmm2    # 0x33370
movss 0x16e97(%rip), %xmm3    # 0x3336c
addss %xmm2, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1c4d5
ucomiss %xmm0, %xmm1
jbe 0x1c4f7
movss 0x16e81(%rip), %xmm1    # 0x3336c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1c4ee
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rcx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq