// File: /workspace/github_c_makefile_star2_O1/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 0x2e286
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movl %eax, -0x38(%rsp)
movslq 0x34(%rdi), %rax
movq %rdi, -0x30(%rsp)
movslq 0x38(%rdi), %rdx
addq $-0x2, %rdx
movq %rax, -0x28(%rsp)
cmpl %edx, %eax
jge 0x2e26d
movq -0x30(%rsp), %rax
movslq 0x58(%rax), %rsi
movslq 0x5c(%rax), %rcx
movq %rcx, %rdi
imulq %rsi, %rdi
movq 0x48(%rax), %r10
movq 0xb0(%rax), %rax
movq %rax, -0x18(%rsp)
movq %rdi, -0x10(%rsp)
leal (%rdi,%rdi), %eax
movl %eax, -0x34(%rsp)
movq %rsi, %r14
negq %r14
movl %esi, %eax
negl %eax
movslq %eax, %r15
leaq (,%rsi,4), %r12
movq %rcx, -0x8(%rsp)
leal -0x2(%rcx), %ebp
movq -0x28(%rsp), %rcx
movq %rcx, %rax
negq %rax
movq %rax, -0x20(%rsp)
movss 0x5d8c(%rip), %xmm2     # 0x33354
xorps %xmm3, %xmm3
movss 0x5d8d(%rip), %xmm5     # 0x33360
movss 0x5d89(%rip), %xmm6     # 0x33364
movaps 0x5a2e(%rip), %xmm7     # 0x33010
movsd 0x5db5(%rip), %xmm8     # 0x333a0
movss 0x5d78(%rip), %xmm9     # 0x3336c
movss 0x5d73(%rip), %xmm10    # 0x33370
movss 0x5d4a(%rip), %xmm11    # 0x33350
movss 0x5d59(%rip), %xmm14    # 0x33368
movq -0x20(%rsp), %rax
leaq (%rcx,%rax), %rdi
incq %rdi
imulq -0x10(%rsp), %rdi
leaq (%r10,%rdi,4), %r8
movss (%r10,%rdi,4), %xmm4
movss 0x4(%r10,%rdi,4), %xmm12
subss %xmm4, %xmm12
movss (%r12,%r8), %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 0x5d42(%rip), %xmm0     # 0x333a8
ucomisd %xmm4, %xmm0
xorps %xmm4, %xmm4
ja 0x2d6c1
movd %xmm13, %eax
sarl %eax
movl $0x5f3759df, %r11d      # imm = 0x5F3759DF
subl %eax, %r11d
movd %r11d, %xmm0
movaps %xmm13, %xmm4
mulss 0x5cb8(%rip), %xmm4     # 0x33348
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
movl %ecx, %eax
subl -0x28(%rsp), %eax
imull -0x34(%rsp), %eax
cltq
movq -0x18(%rsp), %r9
leaq (%r9,%rax,4), %rax
movss %xmm4, (%rax)
movaps %xmm1, %xmm4
andps 0x5a8b(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm12
movaps %xmm12, %xmm13
addss %xmm4, %xmm13
jae 0x2d710
subss %xmm12, %xmm4
divss %xmm4, %xmm13
movaps %xmm13, %xmm12
movss 0x5c4e(%rip), %xmm4     # 0x3335c
jmp 0x2d722
subss %xmm4, %xmm12
divss %xmm13, %xmm12
movss 0x5c36(%rip), %xmm4     # 0x33358
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 0x2d77a
addss %xmm10, %xmm4
jmp 0x2d768
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d775
leaq (%r10,%rdi,4), %r11
addq $0x4, %r11
leaq 0x8(%rax), %rdi
movss %xmm4, 0x4(%rax)
cmpl $0x3, %esi
jl 0x2d8fe
addq %r12, %r8
addq $-0x4, %r8
movq %rdi, %rbx
movss 0x4(%r11), %xmm13
subss -0x4(%r11), %xmm13
mulss %xmm11, %xmm13
movss (%r11,%rsi,4), %xmm15
subss (%r11), %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 0x5bbf(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2d83e
movd %xmm4, %edi
sarl %edi
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %edi, %r9d
movd %r9d, %xmm0
movaps %xmm4, %xmm12
mulss 0x5b38(%rip), %xmm12    # 0x33348
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 0x5922(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2d879
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x5ae5(%rip), %xmm4     # 0x3335c
jmp 0x2d88b
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x5acd(%rip), %xmm4     # 0x33358
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 0x2d8de
addss %xmm10, %xmm4
jmp 0x2d8cc
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2d8d9
addq $0x4, %r11
movss %xmm4, 0xc(%rax)
leaq 0x8(%rbx), %rdi
movq %rbx, %rax
cmpq %r8, %r11
jb 0x2d7a0
jmp 0x2d901
movq %rax, %rbx
movss (%r11), %xmm13
movss (%r11,%rsi,4), %xmm15
subss %xmm13, %xmm15
subss -0x4(%r11), %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 0x5a68(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2d995
movd %xmm4, %eax
sarl %eax
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %eax, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x59e1(%rip), %xmm12    # 0x33348
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 0x57cb(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2d9d0
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x598e(%rip), %xmm4     # 0x3335c
jmp 0x2d9e2
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x5976(%rip), %xmm4     # 0x33358
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 0x2da35
addss %xmm10, %xmm4
jmp 0x2da23
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2da30
leaq 0x4(%r11), %rax
leaq 0x8(%rdi), %r8
movss %xmm4, 0xc(%rbx)
cmpl $0x3, -0x8(%rsp)
jl 0x2de6b
movl $0x1, %ebx
movss 0x8(%r11), %xmm13
subss 0x4(%r11), %xmm13
movss (%rax,%rsi,4), %xmm15
subss (%rax,%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 0x590b(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2daf4
movd %xmm4, %r9d
sarl %r9d
movl $0x5f3759df, %r13d      # imm = 0x5F3759DF
subl %r9d, %r13d
movd %r13d, %xmm0
movaps %xmm4, %xmm12
mulss 0x5882(%rip), %xmm12    # 0x33348
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, (%r8)
movaps %xmm15, %xmm4
andps 0x566c(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2db2f
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x582f(%rip), %xmm4     # 0x3335c
jmp 0x2db41
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x5817(%rip), %xmm4     # 0x33358
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 0x2db94
addss %xmm10, %xmm4
jmp 0x2db82
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2db8f
addq $0x8, %r11
leaq (%rax,%rsi,4), %rax
movss %xmm4, 0xc(%rdi)
addq $0x10, %rdi
addq $-0x4, %rax
cmpq %rax, %r11
jae 0x2dd10
movss 0x4(%r11), %xmm13
subss -0x4(%r11), %xmm13
mulss %xmm11, %xmm13
movss (%r11,%rsi,4), %xmm15
subss (%r11,%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 0x57a6(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2dc59
movd %xmm4, %r8d
sarl %r8d
movl $0x5f3759df, %r9d       # imm = 0x5F3759DF
subl %r8d, %r9d
movd %r9d, %xmm0
movaps %xmm4, %xmm12
mulss 0x571d(%rip), %xmm12    # 0x33348
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 0x5507(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2dc94
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x56ca(%rip), %xmm4     # 0x3335c
jmp 0x2dca6
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x56b2(%rip), %xmm4     # 0x33358
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 0x2dcf9
addss %xmm10, %xmm4
jmp 0x2dce7
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2dcf4
addq $0x4, %r11
movss %xmm4, 0x4(%rdi)
addq $0x8, %rdi
jmp 0x2dbae
movss (%r11), %xmm13
subss -0x4(%r11), %xmm13
movss (%r11,%rsi,4), %xmm15
subss (%r11,%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 0x5653(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2ddaa
movd %xmm4, %eax
sarl %eax
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %eax, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x55cc(%rip), %xmm12    # 0x33348
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 0x53b6(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2dde5
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x5579(%rip), %xmm4     # 0x3335c
jmp 0x2ddf7
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x5561(%rip), %xmm4     # 0x33358
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 0x2de4a
addss %xmm10, %xmm4
jmp 0x2de38
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2de45
movss %xmm4, 0x4(%rdi)
leal 0x1(%rbx), %r9d
leaq 0x4(%r11), %rax
leaq 0x8(%rdi), %r8
cmpl %ebp, %ebx
movl %r9d, %ebx
jne 0x2da57
movss 0x4(%r11), %xmm15
movss 0x8(%r11), %xmm13
subss %xmm15, %xmm13
subss (%rax,%r15,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 0x54fd(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2df00
movd %xmm4, %r9d
sarl %r9d
movl $0x5f3759df, %ebx       # imm = 0x5F3759DF
subl %r9d, %ebx
movd %ebx, %xmm0
movaps %xmm4, %xmm12
mulss 0x5476(%rip), %xmm12    # 0x33348
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, (%r8)
movaps %xmm15, %xmm4
andps 0x5260(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2df3b
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x5423(%rip), %xmm4     # 0x3335c
jmp 0x2df4d
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x540b(%rip), %xmm4     # 0x33358
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 0x2dfa0
addss %xmm10, %xmm4
jmp 0x2df8e
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2df9b
addq $0x8, %r11
movss %xmm4, 0xc(%rdi)
leaq (%rax,%rsi,4), %rdi
addq $-0x4, %rdi
leaq 0x8(%r8), %rbx
cmpq %rdi, %r11
jae 0x2e121
movq %rbx, %rax
movss (%r11), %xmm15
movss 0x4(%r11), %xmm13
subss -0x4(%r11), %xmm13
mulss %xmm11, %xmm13
subss (%r11,%r15,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 0x539d(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2e060
movd %xmm4, %r9d
sarl %r9d
movl $0x5f3759df, %ebx       # imm = 0x5F3759DF
subl %r9d, %ebx
movd %ebx, %xmm0
movaps %xmm4, %xmm12
mulss 0x5316(%rip), %xmm12    # 0x33348
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 0x5100(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2e09b
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x52c3(%rip), %xmm4     # 0x3335c
jmp 0x2e0ad
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x52ab(%rip), %xmm4     # 0x33358
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 0x2e100
addss %xmm10, %xmm4
jmp 0x2e0ee
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2e0fb
addq $0x4, %r11
movss %xmm4, 0xc(%r8)
leaq 0x8(%rax), %rbx
movq %rax, %r8
cmpq %rdi, %r11
jb 0x2dfc3
jmp 0x2e124
movq %r8, %rax
movss (%r11), %xmm15
movaps %xmm15, %xmm13
subss -0x4(%r11), %xmm13
subss (%r11,%r15,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 0x5246(%rip), %xmm1     # 0x333a8
ucomisd %xmm0, %xmm1
ja 0x2e1b7
movd %xmm4, %edi
sarl %edi
movl $0x5f3759df, %r8d       # imm = 0x5F3759DF
subl %edi, %r8d
movd %r8d, %xmm0
movaps %xmm4, %xmm12
mulss 0x51bf(%rip), %xmm12    # 0x33348
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 0x4fa9(%rip), %xmm4     # 0x33170
addss %xmm2, %xmm4
ucomiss %xmm3, %xmm13
movaps %xmm13, %xmm12
addss %xmm4, %xmm12
jae 0x2e1f2
subss %xmm13, %xmm4
divss %xmm4, %xmm12
movaps %xmm12, %xmm13
movss 0x516c(%rip), %xmm4     # 0x3335c
jmp 0x2e204
subss %xmm4, %xmm13
divss %xmm12, %xmm13
movss 0x5154(%rip), %xmm4     # 0x33358
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 0x2e257
addss %xmm10, %xmm4
jmp 0x2e245
addss %xmm9, %xmm4
ucomiss %xmm4, %xmm3
ja 0x2e252
incq %rcx
movss %xmm4, 0xc(%rax)
cmpq %rdx, %rcx
jne 0x2d60f
movq -0x30(%rsp), %rax
movl -0x38(%rsp), %ecx
movl %ecx, 0xb8(%rax)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq