// File: /workspace/github_c_makefile_star2_O3/zpole[P]IICV/vl/sift.c
// Function: update_gradient
static void
update_gradient (VlSiftFilt *f)
{
  int       s_min = f->s_min ;
  int       s_max = f->s_max ;
  int       w     = vl_sift_get_octave_width  (f) ;
  int       h     = vl_sift_get_octave_height (f) ;
  int const xo    = 1 ;
  int const yo    = w ;
  int const so    = h * w ;
  int y, s ;

  if (f->grad_o == f->o_cur) return ;

  for (s  = s_min + 1 ;
       s <= s_max - 2 ; ++ s) {

    vl_sift_pix *src, *end, *grad, gx, gy ;

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

    src  = vl_sift_get_octave (f,s) ;
    grad = f->grad + 2 * so * (s - s_min -1) ;

    /* 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 ;

    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 ;
    }

    /* 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 ;
  }
  f->grad_o = f->o_cur ;
}

// Assembly:
movl 0x3c(%rdi), %eax
cmpl %eax, 0xb8(%rdi)
je 0x2df60
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movl %eax, -0x28(%rsp)
movslq 0x34(%rdi), %rcx
movq %rdi, -0x20(%rsp)
movslq 0x38(%rdi), %rdx
addq $-0x2, %rdx
cmpl %edx, %ecx
jge 0x2df47
movq -0x20(%rsp), %rax
movslq 0x58(%rax), %rsi
movslq 0x5c(%rax), %rdi
movq %rdi, %r8
imulq %rsi, %r8
movq 0x48(%rax), %r10
movq 0xb0(%rax), %rax
movq %rax, -0x18(%rsp)
movq %r8, -0x10(%rsp)
leal (%r8,%r8), %eax
movl %eax, -0x24(%rsp)
movq %rsi, %r14
negq %r14
leaq (,%rsi,4), %r15
movq %rdi, -0x8(%rsp)
leal -0x2(%rdi), %ebp
movss 0x50d5(%rip), %xmm2     # 0x32364
xorps %xmm3, %xmm3
movss 0x50d6(%rip), %xmm5     # 0x32370
movss 0x50d2(%rip), %xmm6     # 0x32374
movaps 0x4d67(%rip), %xmm7     # 0x32010
movsd 0x50fe(%rip), %xmm8     # 0x323b0
movss 0x50c1(%rip), %xmm9     # 0x3237c
movss 0x50bc(%rip), %xmm10    # 0x32380
movss 0x5093(%rip), %xmm11    # 0x32360
movss 0x50a2(%rip), %xmm14    # 0x32378
movq %rcx, %r11
leaq 0x1(%r11), %r12
movq %r12, %rax
subq %rcx, %rax
imulq -0x10(%rsp), %rax
leaq (%r10,%rax,4), %rdi
movss (%r10,%rax,4), %xmm4
movss 0x4(%r10,%rax,4), %xmm12
subss %xmm4, %xmm12
movss (%r15,%rdi), %xmm1
subss %xmm4, %xmm1
movaps %xmm1, %xmm4
mulss %xmm1, %xmm4
movaps %xmm12, %xmm13
mulss %xmm12, %xmm13
addss %xmm4, %xmm13
xorps %xmm4, %xmm4
cvtss2sd %xmm13, %xmm4
movsd 0x508a(%rip), %xmm0     # 0x323b8
ucomisd %xmm4, %xmm0
xorps %xmm4, %xmm4
ja 0x2d389
movd %xmm13, %ebx
sarl %ebx
movl $0x5f3759df, %r13d      # imm = 0x5F3759DF
subl %ebx, %r13d
movd %r13d, %xmm0
movaps %xmm13, %xmm4
mulss 0x5000(%rip), %xmm4     # 0x32358
movaps %xmm4, %xmm15
mulss %xmm0, %xmm15
mulss %xmm0, %xmm15
addss %xmm14, %xmm15
mulss %xmm0, %xmm15
mulss %xmm15, %xmm4
mulss %xmm15, %xmm4
addss %xmm14, %xmm4
mulss %xmm15, %xmm4
mulss %xmm13, %xmm4
subl %ecx, %r11d
imull -0x24(%rsp), %r11d
movslq %r11d, %r11
movq -0x18(%rsp), %r8
leaq (%r8,%r11,4), %rbx
movss %xmm4, (%rbx)
movaps %xmm1, %xmm4
andps 0x4dc4(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm12
movaps %xmm12, %xmm13
addss %xmm4, %xmm13
jae 0x2d3d7
subss %xmm12, %xmm4
divss %xmm4, %xmm13
movaps %xmm13, %xmm12
movss 0x4f97(%rip), %xmm4     # 0x3236c
jmp 0x2d3e9
subss %xmm4, %xmm12
divss %xmm13, %xmm12
movss 0x4f7f(%rip), %xmm4     # 0x32368
movaps %xmm12, %xmm13
mulss %xmm5, %xmm13
mulss %xmm12, %xmm13
addss %xmm6, %xmm13
mulss %xmm12, %xmm13
addss %xmm4, %xmm13
cmpltss %xmm3, %xmm1
movaps %xmm1, %xmm4
andnps %xmm13, %xmm4
xorps %xmm7, %xmm13
andps %xmm1, %xmm13
orps %xmm4, %xmm13
xorps %xmm4, %xmm4
cvtss2sd %xmm13, %xmm4
addsd %xmm8, %xmm4
cvtsd2ss %xmm4, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2d441
addss %xmm10, %xmm4
jmp 0x2d42f
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d43c
leaq (%r10,%rax,4), %r13
addq $0x4, %r13
leaq 0x8(%rbx), %rax
movss %xmm4, 0x4(%rbx)
cmpl $0x3, %esi
jl 0x2d5c7
addq %r15, %rdi
addq $-0x4, %rdi
movq %rax, %r11
movss 0x4(%r13), %xmm13
subss -0x4(%r13), %xmm13
mulss %xmm11, %xmm13
movss (%r13,%rsi,4), %xmm15
subss (%r13), %xmm15
movaps %xmm15, %xmm12
mulss %xmm15, %xmm12
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm12, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x4f06(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2d507
movd %xmm4, %eax
sarl %eax
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %eax, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x4e7f(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%r11)
movaps %xmm15, %xmm4
andps 0x4c59(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2d542
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x4e2c(%rip), %xmm4     # 0x3236c
jmp 0x2d554
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x4e14(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2d5a7
addss %xmm10, %xmm4
jmp 0x2d595
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d5a2
addq $0x4, %r13
movss %xmm4, 0xc(%rbx)
leaq 0x8(%r11), %rax
movq %r11, %rbx
cmpq %rdi, %r13
jb 0x2d467
jmp 0x2d5ca
movq %rbx, %r11
movss (%r13), %xmm13
movss (%r13,%rsi,4), %xmm15
subss %xmm13, %xmm15
subss -0x4(%r13), %xmm13
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x4dad(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2d660
movd %xmm4, %edi
sarl %edi
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %edi, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x4d26(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rax)
movaps %xmm15, %xmm4
andps 0x4b00(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2d69b
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x4cd3(%rip), %xmm4     # 0x3236c
jmp 0x2d6ad
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x4cbb(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2d700
addss %xmm10, %xmm4
jmp 0x2d6ee
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d6fb
leaq 0x4(%r13), %rbx
leaq 0x8(%rax), %rdi
movss %xmm4, 0xc(%r11)
cmpl $0x3, -0x8(%rsp)
jl 0x2db3e
movl $0x1, %r11d
movss 0x8(%r13), %xmm13
subss 0x4(%r13), %xmm13
movss (%rbx,%rsi,4), %xmm15
subss (%rbx,%r14,4), %xmm15
mulss %xmm11, %xmm15
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x4c4e(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2d7c1
movd %xmm4, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm0
movaps %xmm4, %xmm12
mulss 0x4bc5(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rdi)
movaps %xmm15, %xmm4
andps 0x499f(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2d7fc
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x4b72(%rip), %xmm4     # 0x3236c
jmp 0x2d80e
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x4b5a(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2d861
addss %xmm10, %xmm4
jmp 0x2d84f
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d85c
addq $0x8, %r13
leaq (%rbx,%rsi,4), %rdi
movss %xmm4, 0xc(%rax)
addq $0x10, %rax
addq $-0x4, %rdi
cmpq %rdi, %r13
jae 0x2d9df
movss 0x4(%r13), %xmm13
subss -0x4(%r13), %xmm13
mulss %xmm11, %xmm13
movss (%r13,%rsi,4), %xmm15
subss (%r13,%r14,4), %xmm15
mulss %xmm11, %xmm15
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x4ae7(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2d928
movd %xmm4, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm0
movaps %xmm4, %xmm12
mulss 0x4a5e(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rax)
movaps %xmm15, %xmm4
andps 0x4838(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2d963
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x4a0b(%rip), %xmm4     # 0x3236c
jmp 0x2d975
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x49f3(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2d9c8
addss %xmm10, %xmm4
jmp 0x2d9b6
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d9c3
addq $0x4, %r13
movss %xmm4, 0x4(%rax)
addq $0x8, %rax
jmp 0x2d87b
movss (%r13), %xmm13
subss -0x4(%r13), %xmm13
movss (%r13,%rsi,4), %xmm15
subss (%r13,%r14,4), %xmm15
mulss %xmm11, %xmm15
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x4991(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2da7c
movd %xmm4, %edi
sarl %edi
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %edi, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x490a(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rax)
movaps %xmm15, %xmm4
andps 0x46e4(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2dab7
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x48b7(%rip), %xmm4     # 0x3236c
jmp 0x2dac9
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x489f(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2db1c
addss %xmm10, %xmm4
jmp 0x2db0a
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2db17
movss %xmm4, 0x4(%rax)
leal 0x1(%r11), %r8d
leaq 0x4(%r13), %rbx
leaq 0x8(%rax), %rdi
cmpl %ebp, %r11d
movl %r8d, %r11d
jne 0x2d724
movss 0x4(%r13), %xmm15
movss 0x8(%r13), %xmm13
subss %xmm15, %xmm13
subss (%rbx,%r14,4), %xmm15
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x483a(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2dbd5
movd %xmm4, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm0
movaps %xmm4, %xmm12
mulss 0x47b1(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rdi)
movaps %xmm15, %xmm4
andps 0x458b(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2dc10
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x475e(%rip), %xmm4     # 0x3236c
jmp 0x2dc22
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x4746(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2dc75
addss %xmm10, %xmm4
jmp 0x2dc63
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2dc70
addq $0x8, %r13
movss %xmm4, 0xc(%rax)
leaq (%rbx,%rsi,4), %r11
addq $-0x4, %r11
leaq 0x8(%rdi), %rbx
cmpq %r11, %r13
jae 0x2ddf9
movq %rbx, %rax
movss (%r13), %xmm15
movss 0x4(%r13), %xmm13
subss -0x4(%r13), %xmm13
mulss %xmm11, %xmm13
subss (%r13,%r14,4), %xmm15
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x46d6(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2dd39
movd %xmm4, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm0
movaps %xmm4, %xmm12
mulss 0x464d(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rax)
movaps %xmm15, %xmm4
andps 0x4427(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2dd74
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x45fa(%rip), %xmm4     # 0x3236c
jmp 0x2dd86
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x45e2(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2ddd9
addss %xmm10, %xmm4
jmp 0x2ddc7
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2ddd4
addq $0x4, %r13
movss %xmm4, 0xc(%rdi)
leaq 0x8(%rax), %rbx
movq %rax, %rdi
cmpq %r11, %r13
jb 0x2dc98
jmp 0x2ddfc
movq %rdi, %rax
movss (%r13), %xmm15
movaps %xmm15, %xmm13
subss -0x4(%r13), %xmm13
subss (%r13,%r14,4), %xmm15
movaps %xmm15, %xmm0
mulss %xmm15, %xmm0
movaps %xmm13, %xmm4
mulss %xmm13, %xmm4
addss %xmm0, %xmm4
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
xorps %xmm12, %xmm12
movsd 0x457c(%rip), %xmm1     # 0x323b8
ucomisd %xmm0, %xmm1
ja 0x2de91
movd %xmm4, %edi
sarl %edi
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %edi, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x44f5(%rip), %xmm12    # 0x32358
movaps %xmm12, %xmm1
mulss %xmm0, %xmm1
mulss %xmm0, %xmm1
addss %xmm14, %xmm1
mulss %xmm0, %xmm1
mulss %xmm1, %xmm12
mulss %xmm1, %xmm12
addss %xmm14, %xmm12
mulss %xmm1, %xmm12
mulss %xmm4, %xmm12
movss %xmm12, (%rbx)
movaps %xmm15, %xmm4
andps 0x42cf(%rip), %xmm4     # 0x32170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2decc
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x44a2(%rip), %xmm4     # 0x3236c
jmp 0x2dede
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x448a(%rip), %xmm4     # 0x32368
movaps %xmm13, %xmm0
mulss %xmm5, %xmm0
mulss %xmm13, %xmm0
addss %xmm6, %xmm0
mulss %xmm13, %xmm0
addss %xmm4, %xmm0
cmpltss %xmm3, %xmm15
movaps %xmm15, %xmm1
andnps %xmm0, %xmm1
xorps %xmm7, %xmm0
andps %xmm15, %xmm0
orps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm8, %xmm0
xorps %xmm4, %xmm4
cvtsd2ss %xmm0, %xmm4
ucomiss %xmm9, %xmm4
jbe 0x2df31
addss %xmm10, %xmm4
jmp 0x2df1f
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2df2c
movss %xmm4, 0xc(%rax)
movq %r12, %r11
cmpq %rdx, %r12
jne 0x2d2d9
movq -0x20(%rsp), %rax
movl -0x28(%rsp), %ecx
movl %ecx, 0xb8(%rax)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq