// File: /workspace/github_c_makefile_star2_O0/zpole[P]IICV/vl/sift.c
// Function: vl_sift_keypoint_init
VL_EXPORT
void
vl_sift_keypoint_init (VlSiftFilt const *f,
                       VlSiftKeypoint *k,
                       double x,
                       double y,
                       double sigma)
{
  int    o, ix, iy, is ;
  double s, phi, xper ;

  phi = log2 ((sigma + VL_EPSILON_D) / f->sigma0) ;
  o   = (int)vl_floor_d (phi -  ((double) f->s_min + 0.5) / f->S) ;
  o   = VL_MIN (o, f->o_min + f->O - 1) ;
  o   = VL_MAX (o, f->o_min           ) ;
  s   = f->S * (phi - o) ;

  is  = (int)(s + 0.5) ;
  is  = VL_MIN(is, f->s_max - 2) ;
  is  = VL_MAX(is, f->s_min + 1) ;

  xper = pow (2.0, o) ;
  ix   = (int)(x / xper + 0.5) ;
  iy   = (int)(y / xper + 0.5) ;

  k -> o  = o ;

  k -> ix = ix ;
  k -> iy = iy ;
  k -> is = is ;

  k -> x = x ;
  k -> y = y ;
  k -> s = s ;

  k->sigma = sigma ;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movsd %xmm0, 0x50(%rsp)
movsd %xmm1, 0x48(%rsp)
movsd %xmm2, 0x40(%rsp)
movsd 0x79d0(%rip), %xmm0     # 0x599c8
addsd 0x40(%rsp), %xmm0
movq 0x60(%rsp), %rax
divsd 0x8(%rax), %xmm0
callq 0x94c0
movsd 0x8133(%rip), %xmm1     # 0x5a148
divsd %xmm1, %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x20(%rsp), %xmm0
movq 0x60(%rsp), %rax
cvtsi2sdl 0x34(%rax), %xmm1
movsd 0x7049(%rip), %xmm2     # 0x59080
addsd %xmm2, %xmm1
movq 0x60(%rsp), %rax
cvtsi2sdl 0x2c(%rax), %xmm2
divsd %xmm2, %xmm1
subsd %xmm1, %xmm0
callq 0x50860
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movq 0x60(%rsp), %rcx
movl 0x30(%rcx), %ecx
movq 0x60(%rsp), %rdx
addl 0x28(%rdx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5207b
movl 0x3c(%rsp), %eax
movl %eax, 0x14(%rsp)
jmp 0x52092
movq 0x60(%rsp), %rax
movl 0x30(%rax), %eax
movq 0x60(%rsp), %rcx
addl 0x28(%rcx), %eax
subl $0x1, %eax
movl %eax, 0x14(%rsp)
movl 0x14(%rsp), %eax
movl %eax, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movq 0x60(%rsp), %rcx
cmpl 0x30(%rcx), %eax
jle 0x520b2
movl 0x3c(%rsp), %eax
movl %eax, 0x10(%rsp)
jmp 0x520be
movq 0x60(%rsp), %rax
movl 0x30(%rax), %eax
movl %eax, 0x10(%rsp)
movl 0x10(%rsp), %eax
movl %eax, 0x3c(%rsp)
movq 0x60(%rsp), %rax
cvtsi2sdl 0x2c(%rax), %xmm0
movsd 0x20(%rsp), %xmm1
cvtsi2sdl 0x3c(%rsp), %xmm2
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x6f8e(%rip), %xmm0     # 0x59080
addsd 0x28(%rsp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x30(%rsp)
movl 0x30(%rsp), %eax
movq 0x60(%rsp), %rcx
movl 0x38(%rcx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x5211d
movl 0x30(%rsp), %eax
movl %eax, 0xc(%rsp)
jmp 0x5212c
movq 0x60(%rsp), %rax
movl 0x38(%rax), %eax
subl $0x2, %eax
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
movl %eax, 0x30(%rsp)
movl 0x30(%rsp), %eax
movq 0x60(%rsp), %rcx
movl 0x34(%rcx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jle 0x52151
movl 0x30(%rsp), %eax
movl %eax, 0x8(%rsp)
jmp 0x52160
movq 0x60(%rsp), %rax
movl 0x34(%rax), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
movl 0x8(%rsp), %eax
movl %eax, 0x30(%rsp)
cvtsi2sdl 0x3c(%rsp), %xmm1
movsd 0x6f6a(%rip), %xmm0     # 0x590e0
callq 0x92b0
movsd %xmm0, 0x18(%rsp)
movsd 0x50(%rsp), %xmm0
divsd 0x18(%rsp), %xmm0
movsd 0x6eeb(%rip), %xmm1     # 0x59080
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x38(%rsp)
movsd 0x48(%rsp), %xmm0
divsd 0x18(%rsp), %xmm0
movsd 0x6ecb(%rip), %xmm1     # 0x59080
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, 0x34(%rsp)
movl 0x3c(%rsp), %ecx
movq 0x58(%rsp), %rax
movl %ecx, (%rax)
movl 0x38(%rsp), %ecx
movq 0x58(%rsp), %rax
movl %ecx, 0x4(%rax)
movl 0x34(%rsp), %ecx
movq 0x58(%rsp), %rax
movl %ecx, 0x8(%rax)
movl 0x30(%rsp), %ecx
movq 0x58(%rsp), %rax
movl %ecx, 0xc(%rax)
movsd 0x50(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x58(%rsp), %rax
movss %xmm0, 0x10(%rax)
movsd 0x48(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x58(%rsp), %rax
movss %xmm0, 0x14(%rax)
movsd 0x28(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x58(%rsp), %rax
movss %xmm0, 0x18(%rax)
movsd 0x40(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x58(%rsp), %rax
movss %xmm0, 0x1c(%rax)
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)