user: 这段汇编代码用C语言表示是什么样的:

```asm
<bessik>:
  endbr64
  push   %r15
  movaps %xmm0,%xmm5
  push   %r14
  push   %r13
  mov    %rdx,%r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rcx,%rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0x98,%rsp
  movss  %xmm0,(%rsp)
  pxor   %xmm0,%xmm0
  mov    %fs:0x28,%rax
  mov    %rax,0x88(%rsp)
  xor    %eax,%eax
  comiss %xmm5,%xmm0
  jae    L175
  comiss %xmm1,%xmm0
  ja     L175
L38:
  movsd  D156(%rip),%xmm0
  pxor   %xmm3,%xmm3
  pxor   %xmm7,%xmm7
  pxor   %xmm5,%xmm5
  cvtss2sd %xmm1,%xmm3
  cvtss2sd (%rsp),%xmm5
  movapd %xmm5,%xmm6
  movsd  %xmm5,0x10(%rsp)
  addsd  %xmm3,%xmm0
  movsd  D194(%rip),%xmm4
  mov    $0x2710,%eax
  movsd  D102(%rip),%xmm8
  cvttsd2si %xmm0,%r14d
  pxor   %xmm0,%xmm0
  cvtsi2ss %r14d,%xmm0
  subss  %xmm0,%xmm1
  cvtss2sd %xmm1,%xmm7
  movsd  D99(%rip),%xmm1
  movapd %xmm7,%xmm2
  mulsd  %xmm7,%xmm2
  movapd %xmm1,%xmm5
  divsd  %xmm6,%xmm5
  pxor   %xmm6,%xmm6
  movapd %xmm5,%xmm12
  movsd  %xmm5,0x8(%rsp)
  addsd  %xmm5,%xmm12
  mulsd  %xmm3,%xmm5
  mulsd  %xmm12,%xmm3
  maxsd  %xmm5,%xmm4
  movsd  %xmm5,0x18(%rsp)
  movq   D242(%rip),%xmm5
  movapd %xmm4,%xmm9
  jmp    L225
  nopw   0x0(%rax,%rax,1)
L74:
  sub    $0x1,%eax
  je     L146
L225:
  addsd  %xmm12,%xmm3
  addsd  %xmm3,%xmm6
  movapd %xmm6,%xmm0
  movapd %xmm1,%xmm6
  divsd  %xmm0,%xmm6
  movapd %xmm1,%xmm0
  divsd  %xmm4,%xmm0
  movapd %xmm0,%xmm4
  movapd %xmm6,%xmm0
  addsd  %xmm3,%xmm4
  mulsd  %xmm4,%xmm0
  mulsd  %xmm0,%xmm9
  subsd  %xmm1,%xmm0
  andpd  %xmm5,%xmm0
  comisd %xmm0,%xmm8
  jbe    L74
L165:
  movsd  D194(%rip),%xmm4
  mulsd  %xmm9,%xmm4
  movsd  %xmm4,0x20(%rsp)
  test   %r14d,%r14d
  jle    L41
  mov    D194(%rip),%rsi
  movsd  0x18(%rsp),%xmm6
  mov    %r14d,%eax
  movsd  0x8(%rsp),%xmm9
  movq   %rsi,%xmm0
  movapd %xmm6,%xmm3
  movq   %rsi,%xmm11
  mulsd  %xmm6,%xmm0
  nop
L256:
  addsd  %xmm4,%xmm0
  subsd  %xmm9,%xmm3
  movapd %xmm11,%xmm6
  movapd %xmm0,%xmm11
  mulsd  %xmm3,%xmm0
  addsd  %xmm0,%xmm6
  movapd %xmm6,%xmm4
  sub    $0x1,%eax
  jne    L256
L306:
  divsd  %xmm11,%xmm4
  movss  D138(%rip),%xmm0
  comiss (%rsp),%xmm0
  movq   %xmm4,%r15
  jbe    L103
  movsd  D33(%rip),%xmm3
  movsd  D156(%rip),%xmm6
  mulsd  0x10(%rsp),%xmm6
  movsd  %xmm1,0x10(%rsp)
  mulsd  %xmm7,%xmm3
  movsd  %xmm6,(%rsp)
  movapd %xmm3,%xmm0
  andpd  %xmm5,%xmm0
  comisd %xmm0,%xmm8
  jbe    L110
L230:
  movsd  (%rsp),%xmm0
  movsd  %xmm11,0x40(%rsp)
  movsd  %xmm12,0x38(%rsp)
  movsd  %xmm2,0x30(%rsp)
  movsd  %xmm7,0x28(%rsp)
  call   <log@plt>
  movsd  0x28(%rsp),%xmm7
  mov    D99(%rip),%rax
  movapd %xmm0,%xmm6
  xorpd  D141(%rip),%xmm6
  movq   D242(%rip),%xmm5
  movapd %xmm7,%xmm4
  movq   %rax,%xmm3
  mov    D102(%rip),%rax
  movsd  0x30(%rsp),%xmm2
  mulsd  %xmm6,%xmm4
  movsd  0x38(%rsp),%xmm12
  movsd  0x40(%rsp),%xmm11
  movq   %rax,%xmm8
  movapd %xmm4,%xmm0
  andpd  %xmm5,%xmm0
  comisd %xmm0,%xmm8
  jbe    L293
L139:
  movapd %xmm7,%xmm0
  lea    0x70(%rsp),%rsi
  lea    0x78(%rsp),%rcx
  movsd  %xmm11,0x58(%rsp)
  lea    0x80(%rsp),%rdx
  lea    0x68(%rsp),%rdi
  movsd  %xmm12,0x48(%rsp)
  movsd  %xmm2,0x40(%rsp)
  movsd  %xmm7,0x30(%rsp)
  movsd  %xmm6,0x50(%rsp)
  movsd  %xmm3,0x38(%rsp)
  movsd  %xmm4,0x28(%rsp)
  call   <beschb@plt>
  movsd  0x28(%rsp),%xmm4
  movapd %xmm4,%xmm0
  call   <cosh@plt>
  movsd  0x38(%rsp),%xmm3
  mulsd  0x70(%rsp),%xmm3
  movsd  0x50(%rsp),%xmm6
  mulsd  0x68(%rsp),%xmm0
  movsd  0x28(%rsp),%xmm4
  mulsd  %xmm6,%xmm3
  addsd  %xmm0,%xmm3
  mulsd  0x10(%rsp),%xmm3
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm4,%xmm0
  movsd  %xmm3,0x10(%rsp)
  call   <exp@plt>
  mov    D99(%rip),%rax
  movsd  D156(%rip),%xmm9
  movsd  D156(%rip),%xmm10
  movsd  (%rsp),%xmm15
  mulsd  %xmm0,%xmm9
  movsd  0x10(%rsp),%xmm3
  movq   %rax,%xmm1
  mov    D102(%rip),%rsi
  mulsd  %xmm15,%xmm15
  movsd  0x30(%rsp),%xmm7
  divsd  0x80(%rsp),%xmm9
  movsd  0x40(%rsp),%xmm2
  mulsd  0x78(%rsp),%xmm0
  movsd  0x48(%rsp),%xmm12
  movapd %xmm9,%xmm6
  mov    $0x1,%eax
  movsd  0x58(%rsp),%xmm11
  movq   D242(%rip),%xmm5
  movq   %rsi,%xmm8
  divsd  %xmm0,%xmm10
  movapd %xmm3,%xmm0
  jmp    L205
  xchg   %ax,%ax
L158:
  add    $0x1,%eax
  cmp    $0x2711,%eax
  je     L295
L205:
  pxor   %xmm4,%xmm4
  mov    %eax,%edx
  pxor   %xmm13,%xmm13
  cvtsi2sd %eax,%xmm4
  imul   %eax,%edx
  mulsd  %xmm4,%xmm3
  cvtsi2sd %edx,%xmm13
  subsd  %xmm2,%xmm13
  addsd  %xmm9,%xmm3
  addsd  %xmm10,%xmm3
  divsd  %xmm13,%xmm3
  movapd %xmm15,%xmm13
  divsd  %xmm4,%xmm13
  mulsd  %xmm13,%xmm1
  movapd %xmm4,%xmm13
  subsd  %xmm7,%xmm13
  divsd  %xmm13,%xmm9
  movapd %xmm4,%xmm13
  mulsd  %xmm3,%xmm4
  addsd  %xmm7,%xmm13
  movapd %xmm4,%xmm14
  divsd  %xmm13,%xmm10
  movapd %xmm3,%xmm13
  mulsd  %xmm1,%xmm13
  addsd  %xmm13,%xmm0
  andpd  %xmm5,%xmm13
  movapd %xmm9,%xmm4
  subsd  %xmm14,%xmm4
  mulsd  %xmm1,%xmm4
  addsd  %xmm4,%xmm6
  movapd %xmm0,%xmm4
  andpd  %xmm5,%xmm4
  mulsd  %xmm8,%xmm4
  comisd %xmm13,%xmm4
  jbe    L158
L68:
  mulsd  %xmm12,%xmm6
L64:
  movsd  0x8(%rsp),%xmm5
  movq   %r15,%xmm2
  mulsd  %xmm0,%xmm2
  movapd %xmm5,%xmm1
  mulsd  %xmm7,%xmm1
  mulsd  %xmm0,%xmm1
  subsd  %xmm6,%xmm1
  subsd  %xmm1,%xmm2
  divsd  %xmm2,%xmm5
  movsd  D194(%rip),%xmm2
  mulsd  %xmm5,%xmm2
  movapd %xmm5,%xmm1
  mulsd  0x20(%rsp),%xmm1
  divsd  %xmm11,%xmm2
  divsd  %xmm11,%xmm1
  cvtsd2ss %xmm2,%xmm2
  movss  %xmm2,(%r12)
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x0(%r13)
  test   %r14d,%r14d
  jle    L308
  add    $0x1,%r14d
  mov    $0x1,%eax
  jmp    L52
  nopl   (%rax)
L90:
  movapd %xmm1,%xmm6
L52:
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  add    $0x1,%eax
  addsd  %xmm7,%xmm1
  mulsd  %xmm12,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm0,%xmm1
  movapd %xmm6,%xmm0
  cmp    %r14d,%eax
  jne    L90
L77:
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm6,%xmm0
  mulsd  0x18(%rsp),%xmm6
  movss  %xmm0,(%rbx)
  subsd  %xmm1,%xmm6
  cvtsd2ss %xmm6,%xmm6
  movss  %xmm6,0x0(%rbp)
  mov    0x88(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L204
  add    $0x98,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L175:
  lea    D133(%rip),%rdi
  movss  %xmm1,0x8(%rsp)
  call   <nrerror@plt>
  movss  0x8(%rsp),%xmm1
  jmp    L38
  nopl   (%rax)
L103:
  movapd %xmm1,%xmm0
  mov    $0x2,%edx
  movapd %xmm1,%xmm9
  xor    %ecx,%ecx
  movsd  0x10(%rsp),%xmm4
  movsd  D114(%rip),%xmm3
  mov    $0x2,%eax
  movsd  %xmm7,0x30(%rsp)
  addsd  %xmm1,%xmm4
  subsd  %xmm2,%xmm3
  addsd  %xmm4,%xmm4
  movapd %xmm3,%xmm13
  movapd %xmm3,%xmm6
  movsd  %xmm3,0x28(%rsp)
  xorpd  D141(%rip),%xmm6
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm14
  divsd  %xmm4,%xmm0
  mulsd  %xmm0,%xmm13
  movapd %xmm0,%xmm15
  movapd %xmm0,%xmm10
  addsd  %xmm1,%xmm13
  jmp    L234
  nop
L61:
  add    $0x1,%eax
  add    $0x2,%edx
  cmp    $0x2711,%eax
  je     L278
L234:
  pxor   %xmm3,%xmm3
  movapd %xmm4,%xmm7
  addsd  D289(%rip),%xmm4
  cvtsi2sd %edx,%xmm3
  mulsd  %xmm9,%xmm7
  subsd  %xmm3,%xmm6
  mulsd  %xmm6,%xmm0
  movapd %xmm6,%xmm3
  xorpd  D141(%rip),%xmm3
  mulsd  %xmm3,%xmm2
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  divsd  %xmm3,%xmm2
  movq   %rcx,%xmm3
  movq   %xmm9,%rcx
  subsd  %xmm7,%xmm3
  divsd  %xmm6,%xmm3
  movapd %xmm3,%xmm9
  movapd %xmm2,%xmm3
  mulsd  %xmm9,%xmm3
  addsd  %xmm3,%xmm14
  movapd %xmm0,%xmm3
  movapd %xmm1,%xmm0
  addsd  %xmm4,%xmm3
  divsd  %xmm3,%xmm0
  movapd %xmm4,%xmm3
  mulsd  %xmm0,%xmm3
  subsd  %xmm1,%xmm3
  mulsd  %xmm3,%xmm10
  movapd %xmm14,%xmm3
  mulsd  %xmm10,%xmm3
  addsd  %xmm10,%xmm15
  addsd  %xmm3,%xmm13
  divsd  %xmm13,%xmm3
  andpd  %xmm5,%xmm3
  comisd %xmm3,%xmm8
  jbe    L61
  movsd  0x30(%rsp),%xmm7
L126:
  movsd  0x10(%rsp),%xmm5
  movsd  D33(%rip),%xmm0
  pxor   %xmm2,%xmm2
  mulsd  0x28(%rsp),%xmm15
  movapd %xmm5,%xmm1
  addsd  %xmm5,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm15,0x30(%rsp)
  ucomisd %xmm0,%xmm2
  ja     L0
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x28(%rsp)
L129:
  movss  (%rsp),%xmm0
  xorps  D149(%rip),%xmm0
  movsd  %xmm11,0x50(%rsp)
  movsd  %xmm13,0x48(%rsp)
  movsd  %xmm12,0x40(%rsp)
  movsd  %xmm7,0x38(%rsp)
  call   <exp@plt>
  mulsd  0x28(%rsp),%xmm0
  movsd  0x48(%rsp),%xmm13
  movsd  0x10(%rsp),%xmm6
  movsd  0x38(%rsp),%xmm7
  movsd  0x50(%rsp),%xmm11
  movsd  0x40(%rsp),%xmm12
  addsd  %xmm7,%xmm6
  addsd  D156(%rip),%xmm6
  subsd  0x30(%rsp),%xmm6
  divsd  %xmm13,%xmm0
  mulsd  %xmm0,%xmm6
  mulsd  0x8(%rsp),%xmm6
  jmp    L64
  nopl   0x0(%rax,%rax,1)
L110:
  movapd %xmm3,%xmm0
  movsd  %xmm11,0x40(%rsp)
  movsd  %xmm12,0x38(%rsp)
  movsd  %xmm2,0x30(%rsp)
  movsd  %xmm7,0x28(%rsp)
  movsd  %xmm3,0x10(%rsp)
  call   <sin@plt>
  movsd  0x10(%rsp),%xmm3
  movsd  0x40(%rsp),%xmm11
  movsd  0x38(%rsp),%xmm12
  movsd  0x30(%rsp),%xmm2
  divsd  %xmm0,%xmm3
  movsd  0x28(%rsp),%xmm7
  movsd  %xmm3,0x10(%rsp)
  jmp    L230
  nopl   0x0(%rax,%rax,1)
L146:
  lea    D7(%rip),%rdi
  movsd  %xmm9,0x38(%rsp)
  movsd  %xmm12,0x30(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm7,0x20(%rsp)
  call   <nrerror@plt>
  mov    D99(%rip),%rax
  movsd  0x20(%rsp),%xmm7
  movsd  0x28(%rsp),%xmm2
  movsd  0x30(%rsp),%xmm12
  movq   %rax,%xmm1
  mov    D102(%rip),%rax
  movsd  0x38(%rsp),%xmm9
  movq   D242(%rip),%xmm5
  movq   %rax,%xmm8
  jmp    L165
  nopl   (%rax)
L293:
  movapd %xmm4,%xmm0
  movsd  %xmm11,0x50(%rsp)
  movsd  %xmm6,0x48(%rsp)
  movsd  %xmm12,0x40(%rsp)
  movsd  %xmm2,0x38(%rsp)
  movsd  %xmm7,0x30(%rsp)
  movsd  %xmm4,0x28(%rsp)
  call   <sinh@plt>
  movsd  0x28(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm11
  movsd  0x48(%rsp),%xmm6
  movsd  0x40(%rsp),%xmm12
  divsd  %xmm4,%xmm0
  movsd  0x38(%rsp),%xmm2
  movsd  0x30(%rsp),%xmm7
  movapd %xmm0,%xmm3
  jmp    L139
L308:
  movapd %xmm6,%xmm1
  movapd %xmm0,%xmm6
  jmp    L77
L41:
  mov    D194(%rip),%rax
  movsd  0x20(%rsp),%xmm4
  movq   %rax,%xmm11
  jmp    L306
L295:
  lea    D159(%rip),%rdi
  movsd  %xmm0,0x38(%rsp)
  movsd  %xmm11,0x30(%rsp)
  movsd  %xmm6,0x28(%rsp)
  movsd  %xmm12,0x10(%rsp)
  movsd  %xmm7,(%rsp)
  call   <nrerror@plt>
  movsd  (%rsp),%xmm7
  movsd  0x10(%rsp),%xmm12
  movsd  0x28(%rsp),%xmm6
  movsd  0x30(%rsp),%xmm11
  movsd  0x38(%rsp),%xmm0
  jmp    L68
L278:
  lea    D316(%rip),%rdi
  movsd  %xmm11,0x50(%rsp)
  movsd  %xmm13,0x48(%rsp)
  movsd  %xmm15,0x40(%rsp)
  movsd  %xmm12,0x38(%rsp)
  call   <nrerror@plt>
  movsd  0x30(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm12
  movsd  0x40(%rsp),%xmm15
  movsd  0x48(%rsp),%xmm13
  movsd  0x50(%rsp),%xmm11
  jmp    L126
L0:
  movsd  %xmm11,0x50(%rsp)
  movsd  %xmm13,0x48(%rsp)
  movsd  %xmm12,0x40(%rsp)
  movsd  %xmm7,0x38(%rsp)
  call   <sqrt@plt>
  movsd  0x50(%rsp),%xmm11
  movsd  0x48(%rsp),%xmm13
  movsd  0x40(%rsp),%xmm12
  movsd  0x38(%rsp),%xmm7
  movsd  %xmm0,0x28(%rsp)
  jmp    L129
L204:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: label: D156
data_type: f64
name: retrieve_data
arguments: label: D194
data_type: byte[8]
name: retrieve_data
arguments: label: D102
data_type: byte[8]
name: retrieve_data
arguments: label: D99
data_type: f64
name: retrieve_data
arguments: label: D242
data_type: qword
name: retrieve_data
arguments: label: D138
data_type: f32
name: retrieve_data
arguments: label: D33
data_type: f64
name: retrieve_data
arguments: label: D141
data_type: f32[4]
name: retrieve_data
arguments: label: D133
data_type: string
name: retrieve_data
arguments: label: D114
data_type: f64
name: retrieve_data
arguments: label: D289
data_type: f32[2]
name: retrieve_data
arguments: label: D149
data_type: byte[16]
name: retrieve_data
arguments: label: D7
data_type: string
name: retrieve_data
arguments: label: D159
data_type: string
name: retrieve_data
arguments: label: D316
data_type: string

tool: D156: 0.5

tool: {"D194": [0xa0,0xc2,0xeb,0xfe,0x4b,0x48,0xb4,0x39]}

tool: {"D102": [0xbb,0xbd,0xd7,0xd9,0xdf,0x7c,0xdb,0x3d]}

tool: D99: 1

tool: D242: 9223372036854775807

tool: D138: 2

tool: D33: 3.141592653589793

tool: {"D141": [0.0,-0.0,0.0,0.0]}

tool: D133: bad arguments in bessik

tool: D114: 0.25

tool: {"D289": [0.0,2.0]}

tool: {"D149": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: D7: x too large in bessik; try asymptotic expansion

tool: D159: bessk series failed to converge

tool: D316: bessik: failure to converge in cf2

assistant: ```c
void bessik(float x, float xnu, float *ri, float *rk, float *rip, float *rkp) {
  void beschb(double x, double *gam1, double *gam2, double *gampl, double *gammi);
  void nrerror(char error_text[]);
  int i, l, nl;
  double a, a1, b, c, d, del, del1, delh, dels, e, f, fact, fact2, ff, gam1, gam2, gammi, gampl, h, p, pimu, q, q1, q2, qnew, ril, ril1, rimu, rip1, ripl, ritemp, rk1, rkmu, rkmup, rktemp, s, sum, sum1, x2, xi, xi2, xmu, xmu2;
  if (x <= 0.0 || xnu < 0.0)
    nrerror("bad arguments in bessik");
  nl = (int)(xnu + 0.5);
  xmu = xnu - nl;
  xmu2 = xmu * xmu;
  xi = 1.0 / x;
  xi2 = 2.0 * xi;
  h = xnu * xi;
  if (h < 1.0e-30)
    h = 1.0e-30;
  b = xi2 * xnu;
  d = 0.0;
  c = h;
  for (i = 1; i <= 10000; i++) {
    b += xi2;
    d = 1.0 / (b + d);
    c = b + 1.0 / c;
    del = c * d;
    h = del * h;
    if (fabs(del - 1.0) < 1.0e-10)
      break;
  }
  if (i > 10000)
    nrerror("x too large in bessik; try asymptotic expansion");
  ril = 1.0e-30;
  ripl = h * ril;
  ril1 = ril;
  rip1 = ripl;
  fact = xnu * xi;
  for (l = nl; l >= 1; l--) {
    ritemp = fact * ril + ripl;
    fact -= xi;
    ripl = fact * ritemp + ril;
    ril = ritemp;
  }
  f = ripl / ril;
  if (x < 2.0) {
    x2 = 0.5 * x;
    pimu = 3.141592653589793 * xmu;
    fact = (fabs(pimu) < 1.0e-10 ? 1.0 : pimu / sin(pimu));
    d = -log(x2);
    e = xmu * d;
    fact2 = (fabs(e) < 1.0e-10 ? 1.0 : sinh(e) / e);
    beschb(xmu, &gam1, &gam2, &gampl, &gammi);
    ff = fact * (gam1 * cosh(e) + gam2 * fact2 * d);
    sum = ff;
    e = exp(e);
    p = 0.5 * e / gampl;
    q = 0.5 / (e * gammi);
    c = 1.0;
    d = x2 * x2;
    sum1 = p;
    for (i = 1; i <= 10000; i++) {
      ff = (i * ff + p + q) / (i * i - xmu2);
      c *= (d / i);
      p /= (i - xmu);
      q /= (i + xmu);
      del = c * ff;
      sum += del;
      del1 = c * (p - i * ff);
      sum1 += del1;
      if (fabs(del) < fabs(sum) * 1.0e-10)
        break;
    }
    if (i > 10000)
      nrerror("bessk series failed to converge");
    rkmu = sum;
    rk1 = sum1 * xi2;
  } else {
    b = 2.0 * (1.0 + x);
    d = 1.0 / b;
    h = delh = d;
    q1 = 0.0;
    q2 = 1.0;
    a1 = 0.25 - xmu2;
    q = c = a1;
    a = -a1;
    s = 1.0 + q * delh;
    for (i = 2; i <= 10000; i++) {
      a -= 2 * (i - 1);
      c = -a * c / i;
      qnew = (q1 - b * q2) / a;
      q1 = q2;
      q2 = qnew;
      q += c * qnew;
      b += 2.0;
      d = 1.0 / (b + a * d);
      delh = (b * d - 1.0) * delh;
      h += delh;
      dels = q * delh;
      s += dels;
      if (fabs(dels / s) < 1.0e-10)
        break;
    }
    if (i > 10000)
      nrerror("bessik: failure to converge in cf2");
    h = a1 * h;
    rkmu = sqrt(3.141592653589793 / (2.0 * x)) * exp(-x) / s;
    rk1 = rkmu * (xmu + x + 0.5 - h) * xi;
  }
  rkmup = xmu * xi * rkmu - rk1;
  rimu = xi / (f * rkmu - rkmup);
  *ri = (rimu * ril1) / ril;
  *rip = (rimu * rip1) / ril;
  for (i = 1; i <= nl; i++) {
    rktemp = (xmu + i) * xi2 * rk1 + rkmu;
    rkmu = rk1;
    rk1 = rktemp;
  }
  *rk = rkmu;
  *rkp = xnu * xi * rkmu - rk1;
}
```