// File: /workspace/github_c_makefile_star2_O3/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 0x16f1a(%rip), %xmm5    # 0x323b8
ucomisd %xmm4, %xmm5
ja 0x1b4fc
movd %xmm0, %r10d
sarl %r10d
movl $0x5f3759df, %r11d      # imm = 0x5F3759DF
subl %r10d, %r11d
movd %r11d, %xmm3
movss 0x16e96(%rip), %xmm4    # 0x32358
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x16e9f(%rip), %xmm6    # 0x32378
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 0x16c5e(%rip), %xmm1    # 0x32170
andps %xmm2, %xmm1
addss 0x16e47(%rip), %xmm1    # 0x32364
xorps %xmm3, %xmm3
ucomiss %xmm3, %xmm0
movaps %xmm1, %xmm3
addss %xmm0, %xmm3
jae 0x1b541
subss %xmm0, %xmm1
divss %xmm1, %xmm3
movss 0x16e30(%rip), %xmm1    # 0x3236c
movaps %xmm3, %xmm0
jmp 0x1b551
subss %xmm1, %xmm0
divss %xmm3, %xmm0
movss 0x16e17(%rip), %xmm1    # 0x32368
movss 0x16e17(%rip), %xmm3    # 0x32370
mulss %xmm0, %xmm3
mulss %xmm0, %xmm3
addss 0x16e0b(%rip), %xmm3    # 0x32374
mulss %xmm0, %xmm3
addss %xmm1, %xmm3
movaps 0x16a98(%rip), %xmm0    # 0x32010
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 0x16e12(%rip), %xmm0    # 0x323b0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x16dd3(%rip), %xmm0    # 0x3237c
jbe 0x1b5c4
movss 0x16dcd(%rip), %xmm2    # 0x32380
movss 0x16dc1(%rip), %xmm3    # 0x3237c
addss %xmm2, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1b5bb
ucomiss %xmm0, %xmm1
jbe 0x1b5dd
movss 0x16dab(%rip), %xmm1    # 0x3237c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1b5d4
leaq 0x8(%r8), %rbx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rsi)
leaq (%rdi,%rdx,8), %r10
leaq (%rsi,%rdx,8), %r11
cmpq $0x3, %r9
jl 0x1b7ca
leaq (%r8,%r9,8), %r14
addq $-0x8, %r14
movaps 0x16b66(%rip), %xmm2    # 0x32170
movss 0x16d52(%rip), %xmm3    # 0x32364
xorps %xmm4, %xmm4
movss 0x16d53(%rip), %xmm6    # 0x32370
movss 0x16d4f(%rip), %xmm7    # 0x32374
movaps 0x169e3(%rip), %xmm8    # 0x32010
movsd 0x16d7a(%rip), %xmm9    # 0x323b0
movss 0x16d3d(%rip), %xmm10   # 0x3237c
movss 0x16d38(%rip), %xmm11   # 0x32380
movss 0x16d27(%rip), %xmm14   # 0x32378
movsd 0x8(%rbx), %xmm15
subsd -0x8(%rbx), %xmm15
movsd (%rbx,%rax,8), %xmm0
subsd (%rbx), %xmm0
mulsd 0x16b71(%rip), %xmm15   # 0x321e0
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 0x16d15(%rip), %xmm1    # 0x323b8
ucomisd %xmm13, %xmm1
ja 0x1b705
movd %xmm5, %ebp
sarl %ebp
movl $0x5f3759df, %r15d      # imm = 0x5F3759DF
subl %ebp, %r15d
movd %r15d, %xmm12
movaps %xmm5, %xmm13
mulss 0x16c8d(%rip), %xmm13   # 0x32358
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 0x1b744
subss %xmm15, %xmm5
divss %xmm5, %xmm12
movaps %xmm12, %xmm15
movss 0x16c2a(%rip), %xmm5    # 0x3236c
jmp 0x1b756
subss %xmm5, %xmm15
divss %xmm12, %xmm15
movss 0x16c12(%rip), %xmm5    # 0x32368
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 0x1b7a7
addss %xmm11, %xmm0
jmp 0x1b795
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1b7a2
addq $0x8, %rbx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r11)
leaq (%r10,%rdx,8), %r10
leaq (%r11,%rdx,8), %r11
cmpq %r14, %rbx
jb 0x1b651
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 0x16bab(%rip), %xmm5    # 0x323b8
ucomisd %xmm4, %xmm5
ja 0x1b866
movd %xmm0, %ebx
sarl %ebx
movl $0x5f3759df, %ebp       # imm = 0x5F3759DF
subl %ebx, %ebp
movd %ebp, %xmm3
movss 0x16b2c(%rip), %xmm4    # 0x32358
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x16b35(%rip), %xmm6    # 0x32378
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 0x168f3(%rip), %xmm2    # 0x32170
andps %xmm1, %xmm2
addss 0x16adc(%rip), %xmm2    # 0x32364
xorps %xmm3, %xmm3
ucomiss %xmm3, %xmm0
movaps %xmm2, %xmm3
addss %xmm0, %xmm3
jae 0x1b8ac
subss %xmm0, %xmm2
divss %xmm2, %xmm3
movss 0x16ac5(%rip), %xmm2    # 0x3236c
movaps %xmm3, %xmm0
jmp 0x1b8bc
subss %xmm2, %xmm0
divss %xmm3, %xmm0
movss 0x16aac(%rip), %xmm2    # 0x32368
movss 0x16aac(%rip), %xmm3    # 0x32370
mulss %xmm0, %xmm3
mulss %xmm0, %xmm3
addss 0x16aa0(%rip), %xmm3    # 0x32374
mulss %xmm0, %xmm3
addss %xmm2, %xmm3
movaps 0x1672d(%rip), %xmm0    # 0x32010
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 0x16aa7(%rip), %xmm0    # 0x323b0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x16a68(%rip), %xmm0    # 0x3237c
movq %r9, -0x18(%rsp)
jbe 0x1b934
movss 0x16a5d(%rip), %xmm1    # 0x32380
movss 0x16a51(%rip), %xmm3    # 0x3237c
addss %xmm1, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1b92b
movq 0x38(%rsp), %r9
ucomiss %xmm0, %xmm2
jbe 0x1b952
movss 0x16a36(%rip), %xmm1    # 0x3237c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1b949
leaq (%r8,%rax,8), %r8
movq -0x18(%rsp), %r10
leaq (,%r10,8), %r10
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r11)
decq %r9
leaq (%rdi,%rcx,8), %rdi
leaq (%rsi,%rcx,8), %r11
movq %rax, %rsi
negq %rsi
cmpq $0x2, %r9
movq %r10, -0x10(%rsp)
jb 0x1be63
addq $-0x8, %r10
movq %r10, -0x8(%rsp)
movl $0x1, %r15d
movsd 0x1683d(%rip), %xmm1    # 0x321e0
movss 0x169b9(%rip), %xmm3    # 0x32364
xorps %xmm4, %xmm4
movss 0x169ba(%rip), %xmm6    # 0x32370
movss 0x169b6(%rip), %xmm7    # 0x32374
movaps 0x1664a(%rip), %xmm8    # 0x32010
movsd 0x169e1(%rip), %xmm9    # 0x323b0
movss 0x169a4(%rip), %xmm10   # 0x3237c
movss 0x1699f(%rip), %xmm11   # 0x32380
movss 0x1698e(%rip), %xmm14   # 0x32378
movsd 0x8(%r8), %xmm15
subsd (%r8), %xmm15
movsd (%r8,%rax,8), %xmm0
subsd (%r8,%rsi,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 0x1697f(%rip), %xmm2    # 0x323b8
ucomisd %xmm12, %xmm2
ja 0x1ba98
movd %xmm5, %r10d
sarl %r10d
movl $0x5f3759df, %ebp       # imm = 0x5F3759DF
subl %r10d, %ebp
movd %ebp, %xmm12
movaps %xmm5, %xmm13
mulss 0x168f6(%rip), %xmm13   # 0x32358
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 0x166c0(%rip), %xmm5    # 0x32170
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm13
addss %xmm15, %xmm13
jae 0x1badb
subss %xmm15, %xmm5
divss %xmm5, %xmm13
movaps %xmm13, %xmm15
movss 0x16893(%rip), %xmm5    # 0x3236c
jmp 0x1baed
subss %xmm5, %xmm15
divss %xmm13, %xmm15
movss 0x1687b(%rip), %xmm5    # 0x32368
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 0x1bb3e
addss %xmm11, %xmm0
jmp 0x1bb2c
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1bb39
leaq 0x8(%r8), %rbp
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r11)
leaq (%rdi,%rdx,8), %r13
leaq (%r11,%rdx,8), %r12
cmpq $0x3, -0x18(%rsp)
jl 0x1bce9
movq -0x8(%rsp), %r10
addq %r8, %r10
movsd 0x8(%rbp), %xmm15
subsd -0x8(%rbp), %xmm15
mulsd %xmm1, %xmm15
movsd (%rbp,%rax,8), %xmm0
subsd (%rbp,%rsi,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 0x167fd(%rip), %xmm12   # 0x323b8
ucomisd %xmm2, %xmm12
ja 0x1bc1d
movd %xmm5, %r14d
sarl %r14d
movl $0x5f3759df, %ebx       # imm = 0x5F3759DF
subl %r14d, %ebx
movd %ebx, %xmm2
movaps %xmm5, %xmm12
mulss 0x16775(%rip), %xmm12   # 0x32358
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, (%r13)
movaps %xmm0, %xmm5
andps 0x1653a(%rip), %xmm5    # 0x32170
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm13
addss %xmm15, %xmm13
jae 0x1bc61
subss %xmm15, %xmm5
divss %xmm5, %xmm13
movaps %xmm13, %xmm15
movss 0x1670d(%rip), %xmm5    # 0x3236c
jmp 0x1bc73
subss %xmm5, %xmm15
divss %xmm13, %xmm15
movss 0x166f5(%rip), %xmm5    # 0x32368
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 0x1bcc4
addss %xmm11, %xmm0
jmp 0x1bcb2
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1bcbf
addq $0x8, %rbp
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r12)
leaq (%r13,%rdx,8), %r13
leaq (%r12,%rdx,8), %r12
cmpq %r10, %rbp
jb 0x1bb6c
movsd (%rbp), %xmm15
subsd -0x8(%rbp), %xmm15
movsd (%rbp,%rax,8), %xmm0
subsd (%rbp,%rsi,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 0x16685(%rip), %xmm12   # 0x323b8
ucomisd %xmm2, %xmm12
ja 0x1bd95
movd %xmm5, %r10d
sarl %r10d
movl $0x5f3759df, %ebx       # imm = 0x5F3759DF
subl %r10d, %ebx
movd %ebx, %xmm2
movaps %xmm5, %xmm12
mulss 0x165fd(%rip), %xmm12   # 0x32358
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, (%r13)
movaps %xmm0, %xmm5
andps 0x163c2(%rip), %xmm5    # 0x32170
addss %xmm3, %xmm5
ucomiss %xmm4, %xmm15
movaps %xmm5, %xmm13
addss %xmm15, %xmm13
jae 0x1bdd9
subss %xmm15, %xmm5
divss %xmm5, %xmm13
movaps %xmm13, %xmm15
movss 0x16595(%rip), %xmm5    # 0x3236c
jmp 0x1bdeb
subss %xmm5, %xmm15
divss %xmm13, %xmm15
movss 0x1657d(%rip), %xmm5    # 0x32368
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 0x1be3c
addss %xmm11, %xmm0
jmp 0x1be2a
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1be37
leaq (%r8,%rax,8), %r8
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r12)
incq %r15
leaq (%rdi,%rcx,8), %rdi
leaq (%r11,%rcx,8), %r11
cmpq %r9, %r15
jne 0x1b9ea
movsd (%r8), %xmm1
movsd 0x8(%r8), %xmm2
subsd %xmm1, %xmm2
subsd (%r8,%rsi,8), %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 0x16513(%rip), %xmm5    # 0x323b8
ucomisd %xmm4, %xmm5
ja 0x1befe
movd %xmm0, %eax
sarl %eax
movl $0x5f3759df, %ecx       # imm = 0x5F3759DF
subl %eax, %ecx
movd %ecx, %xmm3
movss 0x16494(%rip), %xmm4    # 0x32358
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x1649d(%rip), %xmm6    # 0x32378
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, (%rdi)
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
movaps 0x1625c(%rip), %xmm2    # 0x32170
andps %xmm1, %xmm2
addss 0x16445(%rip), %xmm2    # 0x32364
xorps %xmm3, %xmm3
ucomiss %xmm3, %xmm0
movaps %xmm2, %xmm3
addss %xmm0, %xmm3
movq -0x18(%rsp), %r9
movq -0x10(%rsp), %r10
jae 0x1bf4d
subss %xmm0, %xmm2
divss %xmm2, %xmm3
movss 0x16424(%rip), %xmm2    # 0x3236c
movaps %xmm3, %xmm0
jmp 0x1bf5d
subss %xmm2, %xmm0
divss %xmm3, %xmm0
movss 0x1640b(%rip), %xmm2    # 0x32368
movss 0x1640b(%rip), %xmm3    # 0x32370
mulss %xmm0, %xmm3
mulss %xmm0, %xmm3
addss 0x163ff(%rip), %xmm3    # 0x32374
mulss %xmm0, %xmm3
addss %xmm2, %xmm3
movaps 0x1608c(%rip), %xmm0    # 0x32010
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 0x16406(%rip), %xmm0    # 0x323b0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x163c7(%rip), %xmm0    # 0x3237c
jbe 0x1bfd0
movss 0x163c1(%rip), %xmm1    # 0x32380
movss 0x163b5(%rip), %xmm3    # 0x3237c
addss %xmm1, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1bfc7
ucomiss %xmm0, %xmm2
jbe 0x1bfe9
movss 0x1639f(%rip), %xmm1    # 0x3237c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1bfe0
leaq 0x8(%r8), %rbx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%r11)
leaq (%rdi,%rdx,8), %rcx
leaq (%r11,%rdx,8), %rax
cmpq $0x3, %r9
jl 0x1c1e0
leaq (%r10,%r8), %rdi
addq $-0x8, %rdi
movaps 0x16159(%rip), %xmm2    # 0x32170
movss 0x16345(%rip), %xmm3    # 0x32364
xorps %xmm4, %xmm4
movss 0x16346(%rip), %xmm6    # 0x32370
movss 0x16342(%rip), %xmm7    # 0x32374
movaps 0x15fd6(%rip), %xmm8    # 0x32010
movsd 0x1636d(%rip), %xmm9    # 0x323b0
movss 0x16330(%rip), %xmm10   # 0x3237c
movss 0x1632b(%rip), %xmm11   # 0x32380
movss 0x1631a(%rip), %xmm14   # 0x32378
movsd (%rbx), %xmm5
movsd 0x8(%rbx), %xmm15
subsd -0x8(%rbx), %xmm15
subsd (%rbx,%rsi,8), %xmm5
mulsd 0x16164(%rip), %xmm15   # 0x321e0
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 0x16308(%rip), %xmm1    # 0x323b8
ucomisd %xmm13, %xmm1
ja 0x1c114
movd %xmm0, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm12
movaps %xmm0, %xmm13
mulss 0x1627e(%rip), %xmm13   # 0x32358
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, (%rcx)
movaps %xmm0, %xmm15
andps %xmm2, %xmm15
addss %xmm3, %xmm15
ucomiss %xmm4, %xmm5
movaps %xmm15, %xmm12
addss %xmm5, %xmm12
jae 0x1c15c
subss %xmm5, %xmm15
divss %xmm15, %xmm12
movaps %xmm12, %xmm5
movss 0x16212(%rip), %xmm15   # 0x3236c
jmp 0x1c16f
subss %xmm15, %xmm5
divss %xmm12, %xmm5
movss 0x161f9(%rip), %xmm15   # 0x32368
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 0x1c1be
addss %xmm11, %xmm0
jmp 0x1c1ac
addss %xmm10, %xmm0
ucomiss %xmm0, %xmm4
ja 0x1c1b9
addq $0x8, %rbx
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rax)
leaq (%rcx,%rdx,8), %rcx
leaq (%rax,%rdx,8), %rax
cmpq %rdi, %rbx
jb 0x1c05e
movsd (%rbx), %xmm2
movapd %xmm2, %xmm1
subsd -0x8(%rbx), %xmm1
subsd (%rbx,%rsi,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 0x16199(%rip), %xmm5    # 0x323b8
ucomisd %xmm3, %xmm5
ja 0x1c275
movd %xmm0, %edx
sarl %edx
movl $0x5f3759df, %esi       # imm = 0x5F3759DF
subl %edx, %esi
movd %esi, %xmm3
movss 0x1611a(%rip), %xmm4    # 0x32358
mulss %xmm0, %xmm4
movaps %xmm4, %xmm5
mulss %xmm3, %xmm5
mulss %xmm3, %xmm5
movss 0x16123(%rip), %xmm6    # 0x32378
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 0x15ee6(%rip), %xmm2    # 0x32170
andps %xmm0, %xmm2
addss 0x160cf(%rip), %xmm2    # 0x32364
movsd %xmm4, (%rcx)
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm3
jae 0x1c2ba
movaps %xmm2, %xmm1
addss %xmm3, %xmm1
subss %xmm3, %xmm2
divss %xmm2, %xmm1
movss 0x160b4(%rip), %xmm2    # 0x3236c
jmp 0x1c2d1
movaps %xmm3, %xmm1
subss %xmm2, %xmm1
addss %xmm3, %xmm2
divss %xmm2, %xmm1
movss 0x16097(%rip), %xmm2    # 0x32368
movss 0x16097(%rip), %xmm3    # 0x32370
mulss %xmm1, %xmm3
mulss %xmm1, %xmm3
addss 0x1608b(%rip), %xmm3    # 0x32374
mulss %xmm1, %xmm3
addss %xmm2, %xmm3
movaps 0x15d18(%rip), %xmm2    # 0x32010
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 0x16095(%rip), %xmm0    # 0x323b0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x16056(%rip), %xmm0    # 0x3237c
jbe 0x1c341
movss 0x16050(%rip), %xmm2    # 0x32380
movss 0x16044(%rip), %xmm3    # 0x3237c
addss %xmm2, %xmm0
ucomiss %xmm3, %xmm0
ja 0x1c338
ucomiss %xmm0, %xmm1
jbe 0x1c35a
movss 0x1602e(%rip), %xmm1    # 0x3237c
xorps %xmm2, %xmm2
addss %xmm1, %xmm0
ucomiss %xmm0, %xmm2
ja 0x1c351
cvtss2sd %xmm0, %xmm0
movsd %xmm0, (%rax)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq