// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_update_HIS
int transfer_update_HIS(
                        struct precision * ppr,
                        struct transfer * ptr,
                        struct transfer_workspace * ptw,
                        int index_q,
                        double tau0
                        ) {

  double nu,new_nu;
  int int_nu;
  double xmin, xmax, sampling, phiminabs, xtol;
  double sqrt_absK;
  int l_size_max;
  int index_l_left,index_l_right;

  if (ptw->HIS_allocated == _TRUE_) {
    class_call(hyperspherical_HIS_free(&(ptw->HIS),ptr->error_message),
               ptr->error_message,
               ptr->error_message);
    ptw->HIS_allocated = _FALSE_;
  }

  if ((ptw->sgnK!=0) && (index_q < ptr->index_q_flat_approximation)) {

    xmin = ppr->hyper_x_min;

    sqrt_absK = sqrt(ptw->sgnK*ptw->K);

    xmax = sqrt_absK*tau0;
    nu = ptr->q[index_q]/sqrt_absK;

    if (ptw->sgnK == 1) {
      xmax = MIN(xmax,_PI_/2.0-ppr->hyper_x_min); //We only need solution on [0;pi/2]

      int_nu = (int)(nu+0.2);
      new_nu = (double)int_nu;
      class_test(nu-new_nu > 1.e-6,
                 ptr->error_message,
                 "problem in q list definition in closed case for index_q=%d, nu=%e, nu-int(nu)=%e",index_q,nu,nu-new_nu);
      nu = new_nu;

    }

    if (nu > ppr->hyper_nu_sampling_step)
      sampling = ppr->hyper_sampling_curved_high_nu;
    else
      sampling = ppr->hyper_sampling_curved_low_nu;

    /* find the highest value of l such that x_nonzero < xmax = sqrt(|K|) tau0. That will be l_max. */
    l_size_max = ptr->l_size_max;
    if (ptw->sgnK == 1)
      while ((double)ptr->l[l_size_max-1] >= nu)
        l_size_max--;

    if (ptw->sgnK == -1){
      xtol = ppr->hyper_x_tol;
      phiminabs = ppr->hyper_phi_min_abs;

      /* First try to find lmax using fast approximation: */
      index_l_left=0;
      index_l_right=l_size_max-1;
      class_call(transfer_get_lmax(hyperspherical_get_xmin_from_approx,
                                   ptw->sgnK,
                                   nu,
                                   ptr->l,
                                   l_size_max,
                                   phiminabs,
                                   xmax,
                                   xtol,
                                   &index_l_left,
                                   &index_l_right,
                                   ptr->error_message),
                 ptr->error_message,
                 ptr->error_message);

      /* Now use WKB approximation to eventually modify borders: */
      class_call(transfer_get_lmax(hyperspherical_get_xmin_from_Airy,
                                   ptw->sgnK,
                                   nu,
                                   ptr->l,
                                   l_size_max,
                                   phiminabs,
                                   xmax,
                                   xtol,
                                   &index_l_left,
                                   &index_l_right,
                                   ptr->error_message),
                 ptr->error_message,
                 ptr->error_message);
      l_size_max = index_l_right+1;
    }

    class_test(nu <= 0.,
               ptr->error_message,
               "nu=%e when index_q=%d, q=%e, K=%e, sqrt(|K|)=%e; instead nu should always be strictly positive",
               nu,index_q,ptr->q[index_q],ptw->K,sqrt_absK);

    class_call(hyperspherical_HIS_create(ptw->sgnK,
                                         nu,
                                         l_size_max,
                                         ptr->l,
                                         xmin,
                                         xmax,
                                         sampling,
                                         ptr->l[l_size_max-1]+1,
                                         ppr->hyper_phi_min_abs,
                                         &(ptw->HIS),
                                         ptr->error_message),
               ptr->error_message,
               ptr->error_message);

    ptw->HIS_allocated = _TRUE_;

  }

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1088, %rsp           # imm = 0x1088
movapd %xmm0, %xmm2
movl %ecx, %ebx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %r12
cmpl $0x1, 0x60(%rdx)
jne 0xb0cfd
movsd %xmm2, 0x10(%rsp)
leaq 0x96a(%r14), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x232f2
cmpl $0x1, %eax
jne 0xb0cef
leaq 0x3d747(%rip), %rsi     # 0xee3f0
leaq 0x6fca5(%rip), %rdx     # 0x120955
leaq 0x880(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3d368(%rip), %rsi     # 0xee034
leaq 0x6fcd2(%rip), %rdx     # 0x1209a5
movq %r13, %rdi
movl $0x11e0, %ecx           # imm = 0x11E0
movq %rbx, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %ebp
jmp 0xb1140
movl $0x0, 0x60(%r15)
movsd 0x10(%rsp), %xmm2
movl 0xc0(%r15), %eax
xorl %ebp, %ebp
testl %eax, %eax
je 0xb1140
cmpl %ebx, 0x938(%r14)
jle 0xb1140
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
mulsd 0xb8(%r15), %xmm0
movsd 0x718(%r12), %xmm1
movsd %xmm1, 0x78(%rsp)
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xb0d4b
sqrtsd %xmm0, %xmm5
jmp 0xb0d60
movsd %xmm2, 0x10(%rsp)
callq 0x82b0
movsd 0x10(%rsp), %xmm2
movapd %xmm0, %xmm5
mulsd %xmm5, %xmm2
movq 0x928(%r14), %rax
movslq %ebx, %rdx
movsd (%rax,%rdx,8), %xmm0
divsd %xmm5, %xmm0
movl 0xc0(%r15), %eax
cmpl $0x1, %eax
jne 0xb0e11
movsd 0x3d509(%rip), %xmm1    # 0xee298
addsd %xmm0, %xmm1
cvttpd2dq %xmm1, %xmm1
cvtdq2pd %xmm1, %xmm4
movapd %xmm0, %xmm1
subsd %xmm4, %xmm1
ucomisd 0x3df45(%rip), %xmm1    # 0xeecf0
jbe 0xb0e33
leaq 0x6fc01(%rip), %rsi     # 0x1209b9
leaq 0x880(%rsp), %r15
movq %r15, %rdi
movl %ebx, %edx
movb $0x2, %al
callq 0x30af0
leaq 0x3d2af(%rip), %rsi     # 0xee082
leaq 0x6fc30(%rip), %rdx     # 0x120a0a
leaq 0x80(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %r14            # imm = 0x96A
leaq 0x3d237(%rip), %rsi     # 0xee034
leaq 0x6fba1(%rip), %rdx     # 0x1209a5
movq %r14, %rdi
movl $0x11f4, %ecx           # imm = 0x11F4
jmp 0xb0cdb
xorl %ecx, %ecx
ucomisd 0x738(%r12), %xmm0
seta %cl
movsd 0x728(%r12,%rcx,8), %xmm3
movl 0x908(%r14), %ebx
jmp 0xb0e92
movsd 0x40655(%rip), %xmm1    # 0xf1490
subsd 0x718(%r12), %xmm1
xorl %ecx, %ecx
ucomisd 0x738(%r12), %xmm4
minsd %xmm1, %xmm2
seta %cl
movsd 0x728(%r12,%rcx,8), %xmm3
movslq 0x908(%r14), %rcx
movq 0x910(%r14), %rsi
leal 0x1(%rcx), %ebx
leaq (%rsi,%rcx,4), %rcx
addq $-0x4, %rcx
xorps %xmm1, %xmm1
cvtsi2sdl (%rcx), %xmm1
decl %ebx
addq $-0x4, %rcx
ucomisd %xmm4, %xmm1
jae 0xb0e7b
movapd %xmm4, %xmm0
cmpl $-0x1, %eax
je 0xb0f29
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
jae 0xb1022
movl 0xc0(%r15), %edi
movq 0x910(%r14), %rdx
movslq %ebx, %rsi
movl -0x4(%rdx,%rsi,4), %ecx
incl %ecx
movsd 0x740(%r12), %xmm4
addq $0x96a, %r14            # imm = 0x96A
movsd 0x78(%rsp), %xmm1
movq %r15, %r8
movq %r14, %r9
callq 0x22154
cmpl $0x1, %eax
jne 0xb1138
leaq 0x3d4fe(%rip), %rsi     # 0xee3f0
leaq 0x6fcd1(%rip), %rdx     # 0x120bca
leaq 0x880(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3d11f(%rip), %rsi     # 0xee034
leaq 0x6fa89(%rip), %rdx     # 0x1209a5
movq %r14, %rdi
movl $0x123b, %ecx           # imm = 0x123B
jmp 0xb0cdb
movsd %xmm3, 0x60(%rsp)
movq %rdx, 0x68(%rsp)
movsd %xmm5, 0x70(%rsp)
movsd %xmm2, 0x10(%rsp)
movsd 0x740(%r12), %xmm2
movsd 0x748(%r12), %xmm1
movq 0x910(%r14), %rax
leaq 0x96a(%r14), %r13
leaq 0x4(%rsp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x28(%rsp)
movl (%rax), %esi
leaq 0x80(%rsp), %rdx
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movsd %xmm0, 0x8(%rsp)
movsd %xmm1, 0x30(%rsp)
movsd %xmm2, 0x38(%rsp)
callq 0x23118
cmpl $0x1, %eax
jne 0xb109c
leaq 0x3d448(%rip), %rsi     # 0xee3f0
leaq 0x6fcbf(%rip), %rdx     # 0x120c6e
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3d069(%rip), %rsi     # 0xee034
leaq 0x6fce6(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x1261, %ecx           # imm = 0x1261
movq %r14, %r8
xorl %eax, %eax
callq 0x30af0
leaq 0x3d405(%rip), %rsi     # 0xee3f0
leaq 0x6fa2a(%rip), %rdx     # 0x120a1c
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3d026(%rip), %rsi     # 0xee034
leaq 0x6f990(%rip), %rdx     # 0x1209a5
movq %r13, %rdi
movl $0x1217, %ecx           # imm = 0x1217
jmp 0xb123f
movq 0x928(%r14), %rax
movsd (%rax,%rdx,8), %xmm1
movsd 0xb8(%r15), %xmm2
leaq 0x6fb24(%rip), %rsi     # 0x120b62
leaq 0x880(%rsp), %rbx
movq %rbx, %rdi
movapd %xmm5, %xmm3
movb $0x4, %al
callq 0x30af0
leaq 0x3d027(%rip), %rsi     # 0xee082
leaq 0x6fb5f(%rip), %rdx     # 0x120bc1
leaq 0x80(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %r14            # imm = 0x96A
leaq 0x3cfaf(%rip), %rsi     # 0xee034
leaq 0x6f919(%rip), %rdx     # 0x1209a5
movq %r14, %rdi
movl $0x122d, %ecx           # imm = 0x122D
movq %r15, %r8
jmp 0xb0cde
leal -0x1(%rbx), %eax
movsd 0x80(%rsp), %xmm0
ucomisd 0x10(%rsp), %xmm0
movl %eax, 0x24(%rsp)
jae 0xb1154
movslq %eax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rsp)
movl (%rax,%rcx,4), %esi
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movsd 0x8(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x23118
cmpl $0x1, %eax
jne 0xb12e1
leaq 0x3d2ef(%rip), %rsi     # 0xee3f0
leaq 0x6fbc2(%rip), %rdx     # 0x120cca
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3cf10(%rip), %rsi     # 0xee034
leaq 0x6fb8d(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x1270, %ecx           # imm = 0x1270
jmp 0xb0fda
movl $0x1, 0x60(%r15)
movl %ebp, %eax
addq $0x1088, %rsp           # imm = 0x1088
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r13, 0x48(%rsp)
cmpl $0x3, %ebx
movl $0x2, %edx
cmovgel %ebx, %edx
decl %edx
xorl %ecx, %ecx
movsd 0x8(%rsp), %xmm0
movq %rdx, 0x18(%rsp)
movq %rcx, 0x50(%rsp)
movl 0xc0(%r15), %edi
movq 0x910(%r14), %rax
leaq 0x4(%rsp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x40(%rsp)
movl (%rax), %esi
leaq 0x80(%rsp), %rdx
movl %edi, 0x28(%rsp)
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x2624c
cmpl $0x1, %eax
jne 0xb1247
leaq 0x3d22b(%rip), %rsi     # 0xee3f0
leaq 0x6faa2(%rip), %rdx     # 0x120c6e
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq 0x48(%rsp), %r13
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3ce47(%rip), %rsi     # 0xee034
leaq 0x6fac4(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x1261, %ecx           # imm = 0x1261
movq %r14, %r8
xorl %eax, %eax
callq 0x30af0
leaq 0x3d1e3(%rip), %rsi     # 0xee3f0
leaq 0x6f8ac(%rip), %rdx     # 0x120ac0
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3ce04(%rip), %rsi     # 0xee034
leaq 0x6f76e(%rip), %rdx     # 0x1209a5
movq %r13, %rdi
movl $0x1226, %ecx           # imm = 0x1226
movq %r14, %r8
jmp 0xb0cde
movsd 0x80(%rsp), %xmm0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
movq 0x48(%rsp), %r13
jae 0xb1310
movslq 0x24(%rsp), %rax
movq 0x40(%rsp), %rcx
movl (%rcx,%rax,4), %esi
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movl 0x28(%rsp), %edi
movsd 0x8(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x2624c
cmpl $0x1, %eax
jne 0xb13b0
leaq 0x3d146(%rip), %rsi     # 0xee3f0
leaq 0x6fa19(%rip), %rdx     # 0x120cca
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3cd67(%rip), %rsi     # 0xee034
leaq 0x6f9e4(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x1270, %ecx           # imm = 0x1270
jmp 0xb11fc
movsd 0x10(%rsp), %xmm0
ucomisd 0x80(%rsp), %xmm0
jbe 0xb133d
movq %r13, 0x48(%rsp)
cmpl $0x3, %ebx
movl $0x2, %ecx
cmovgel %ebx, %ecx
addl $-0x2, %ecx
movl 0x24(%rsp), %eax
movl %eax, %edx
jmp 0xb1168
cmpl $0x3, %ebx
movl $0x2, %edx
cmovgel %ebx, %edx
decl %edx
movsd 0x8(%rsp), %xmm0
incl %edx
movl %edx, %ebx
movsd 0x70(%rsp), %xmm5
movq 0x68(%rsp), %rdx
movsd 0x60(%rsp), %xmm3
jmp 0xb0e9b
movq 0x28(%rsp), %rax
movl (%rax), %esi
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movsd 0x8(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x23118
cmpl $0x1, %eax
jne 0xb13d5
leaq 0x3d077(%rip), %rsi     # 0xee3f0
leaq 0x6f99a(%rip), %rdx     # 0x120d1a
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3cc98(%rip), %rsi     # 0xee034
leaq 0x6f915(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x1282, %ecx           # imm = 0x1282
jmp 0xb0fda
movsd 0x10(%rsp), %xmm2
ucomisd 0x80(%rsp), %xmm2
jbe 0xb14a1
movsd 0x8(%rsp), %xmm0
movq 0x18(%rsp), %rdx
jmp 0xb1323
xorl %ecx, %ecx
movsd 0x10(%rsp), %xmm0
ucomisd 0x80(%rsp), %xmm0
jae 0xb151d
xorl %edx, %edx
movsd 0x8(%rsp), %xmm0
movq %r13, 0x48(%rsp)
movl $0x0, 0x4(%rsp)
movl %edx, %eax
subl %ecx, %eax
cmpl $0x2, %eax
jl 0xb116e
movq %rdx, 0x18(%rsp)
leal (%rdx,%rcx), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
mulsd 0x3d8ab(%rip), %xmm1    # 0xeecd0
cvttsd2si %xmm1, %eax
movl %eax, 0x40(%rsp)
cltq
movq 0x28(%rsp), %rsi
movl (%rsi,%rax,4), %esi
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
leaq 0x80(%rsp), %rdx
movq %rcx, %r13
leaq 0x4(%rsp), %rcx
callq 0x23118
cmpl $0x1, %eax
je 0xb166a
movsd 0x10(%rsp), %xmm0
ucomisd 0x80(%rsp), %xmm0
movl 0x40(%rsp), %eax
cmoval %eax, %r13d
movq 0x18(%rsp), %rdx
cmovbel %eax, %edx
movl %edx, %eax
subl %r13d, %eax
cmpl $0x1, %eax
movsd 0x8(%rsp), %xmm0
movq %r13, %rcx
jg 0xb140e
jmp 0xb116e
movslq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movl (%rcx,%rax,4), %esi
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movl 0x28(%rsp), %edi
movsd 0x8(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x2624c
cmpl $0x1, %eax
jne 0xb159a
leaq 0x3cf0a(%rip), %rsi     # 0xee3f0
leaq 0x6f82d(%rip), %rdx     # 0x120d1a
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3cb2b(%rip), %rsi     # 0xee034
leaq 0x6f7a8(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x1282, %ecx           # imm = 0x1282
jmp 0xb11fc
movq 0x28(%rsp), %rax
movq 0x18(%rsp), %rcx
movl (%rax,%rcx,4), %esi
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movsd 0x8(%rsp), %xmm0
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x23118
cmpl $0x1, %eax
jne 0xb1637
leaq 0x3ce8d(%rip), %rsi     # 0xee3f0
leaq 0x6f806(%rip), %rdx     # 0x120d70
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3caae(%rip), %rsi     # 0xee034
leaq 0x6f72b(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x129e, %ecx           # imm = 0x129E
jmp 0xb0fda
movsd 0x80(%rsp), %xmm0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm0, %xmm2
jb 0xb16ad
movsd 0x8(%rsp), %xmm0
movq 0x18(%rsp), %rdx
movq %rdx, 0x18(%rsp)
movslq %edx, %rax
movq 0x40(%rsp), %rcx
movl (%rcx,%rax,4), %esi
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movl 0x28(%rsp), %edi
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
callq 0x2624c
cmpl $0x1, %eax
jne 0xb173c
leaq 0x3cdf0(%rip), %rsi     # 0xee3f0
leaq 0x6f769(%rip), %rdx     # 0x120d70
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3ca11(%rip), %rsi     # 0xee034
leaq 0x6f68e(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x129e, %ecx           # imm = 0x129E
jmp 0xb11fc
movsd 0x80(%rsp), %xmm0
ucomisd 0x10(%rsp), %xmm0
movl 0x24(%rsp), %eax
movl %eax, %edx
movsd 0x8(%rsp), %xmm0
movl $0x0, %ecx
jae 0xb13f4
movl 0x24(%rsp), %eax
movl %eax, %ecx
movl %eax, %edx
jmp 0xb13f4
leaq 0x3cd7f(%rip), %rsi     # 0xee3f0
leaq 0x6f74f(%rip), %rdx     # 0x120dc7
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq 0x48(%rsp), %r13
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3c99b(%rip), %rsi     # 0xee034
leaq 0x6f618(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x12bf, %ecx           # imm = 0x12BF
jmp 0xb0fda
movsd %xmm0, 0x58(%rsp)
movl $0x1, %ebx
movsd 0x8(%rsp), %xmm0
movq 0x50(%rsp), %rax
movl %eax, %edx
subl %ebx, %eax
jle 0xb17d3
movq %rdx, 0x18(%rsp)
movq %rax, 0x50(%rsp)
movl %eax, %eax
movq 0x40(%rsp), %rcx
movl (%rcx,%rax,4), %esi
movl 0x28(%rsp), %edi
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
callq 0x2624c
cmpl $0x1, %eax
je 0xb14df
leal (%rbx,%rbx,4), %ebx
movsd 0x10(%rsp), %xmm2
ucomisd 0x80(%rsp), %xmm2
movsd 0x8(%rsp), %xmm0
jb 0xb16be
ucomisd 0x58(%rsp), %xmm2
movq 0x18(%rsp), %rdx
jae 0xb15be
jmp 0xb17f7
movsd 0x80(%rsp), %xmm0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
jae 0xb17de
movl $0x1, %ebx
movsd 0x8(%rsp), %xmm0
movq 0x18(%rsp), %rdx
movl %edx, %eax
movq %rax, 0x50(%rsp)
addl %ebx, %eax
cmpl 0x24(%rsp), %eax
jge 0xb17eb
movq %rax, 0x18(%rsp)
cltq
movq 0x40(%rsp), %rcx
movl (%rcx,%rax,4), %esi
movl 0x28(%rsp), %edi
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
leaq 0x80(%rsp), %rdx
leaq 0x4(%rsp), %rcx
callq 0x2624c
cmpl $0x1, %eax
je 0xb15f9
leal (%rbx,%rbx,4), %ebx
movsd 0x80(%rsp), %xmm0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
movsd 0x8(%rsp), %xmm0
movq 0x18(%rsp), %rdx
jb 0xb1765
jmp 0xb17f7
movq $0x0, 0x50(%rsp)
jmp 0xb17f7
movsd 0x8(%rsp), %xmm0
movq 0x18(%rsp), %rdx
jmp 0xb17f7
movl 0x24(%rsp), %eax
movl %eax, %edx
movsd 0x10(%rsp), %xmm2
movl $0x0, 0x4(%rsp)
movl %edx, %eax
movq 0x50(%rsp), %rcx
subl %ecx, %eax
cmpl $0x2, %eax
jl 0xb1323
movq %r13, 0x48(%rsp)
leal (%rdx,%rcx), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
mulsd 0x3d4a8(%rip), %xmm1    # 0xeecd0
cvttsd2si %xmm1, %eax
movl %eax, 0x18(%rsp)
cltq
movq 0x40(%rsp), %rsi
movl (%rsi,%rax,4), %esi
movl 0x28(%rsp), %edi
movsd 0x30(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
movq %rdx, %rbx
leaq 0x80(%rsp), %rdx
movq %rcx, %r13
leaq 0x4(%rsp), %rcx
callq 0x2624c
cmpl $0x1, %eax
je 0xb18a0
movsd 0x10(%rsp), %xmm2
ucomisd 0x80(%rsp), %xmm2
movl 0x18(%rsp), %eax
cmoval %eax, %r13d
cmovbel %eax, %ebx
movl %ebx, %eax
subl %r13d, %eax
cmpl $0x1, %eax
movsd 0x8(%rsp), %xmm0
movq %r13, %rcx
movq %rbx, %rdx
jg 0xb1816
jmp 0xb1323
leaq 0x3cb49(%rip), %rsi     # 0xee3f0
leaq 0x6f519(%rip), %rdx     # 0x120dc7
leaq 0x880(%rsp), %r14
movq %r14, %rdi
movq 0x48(%rsp), %r13
movq %r13, %rcx
xorl %eax, %eax
callq 0x30af0
leaq 0x3c765(%rip), %rsi     # 0xee034
leaq 0x6f3e2(%rip), %rdx     # 0x120cb8
movq %r13, %rdi
movl $0x12bf, %ecx           # imm = 0x12BF
jmp 0xb11fc