user: What would the C source look like for the assembly code provided here?

```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    L212
  comiss %xmm1,%xmm0
  ja     L212
L224:
  movsd  D265(%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  D62(%rip),%xmm4
  mov    $0x2710,%eax
  movsd  D318(%rip),%xmm8
  cvttsd2si %xmm0,%r14d
  pxor   %xmm0,%xmm0
  cvtsi2ss %r14d,%xmm0
  subss  %xmm0,%xmm1
  cvtss2sd %xmm1,%xmm7
  movsd  D111(%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   D123(%rip),%xmm5
  movapd %xmm4,%xmm9
  jmp    L126
  nopw   0x0(%rax,%rax,1)
L258:
  sub    $0x1,%eax
  je     L159
L126:
  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    L258
L257:
  movsd  D62(%rip),%xmm4
  mulsd  %xmm9,%xmm4
  movsd  %xmm4,0x20(%rsp)
  test   %r14d,%r14d
  jle    L286
  mov    D62(%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
L28:
  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    L28
L93:
  divsd  %xmm11,%xmm4
  movss  D8(%rip),%xmm0
  comiss (%rsp),%xmm0
  movq   %xmm4,%r15
  jbe    L92
  movsd  D66(%rip),%xmm3
  movsd  D265(%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    L161
L206:
  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    D111(%rip),%rax
  movapd %xmm0,%xmm6
  xorpd  D89(%rip),%xmm6
  movq   D123(%rip),%xmm5
  movapd %xmm7,%xmm4
  movq   %rax,%xmm3
  mov    D318(%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    L308
L63:
  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    D111(%rip),%rax
  movsd  D265(%rip),%xmm9
  movsd  D265(%rip),%xmm10
  movsd  (%rsp),%xmm15
  mulsd  %xmm0,%xmm9
  movsd  0x10(%rsp),%xmm3
  movq   %rax,%xmm1
  mov    D318(%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   D123(%rip),%xmm5
  movq   %rsi,%xmm8
  divsd  %xmm0,%xmm10
  movapd %xmm3,%xmm0
  jmp    L204
  xchg   %ax,%ax
L100:
  add    $0x1,%eax
  cmp    $0x2711,%eax
  je     L131
L204:
  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    L100
L17:
  mulsd  %xmm12,%xmm6
L119:
  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  D62(%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    L267
  add    $0x1,%r14d
  mov    $0x1,%eax
  jmp    L158
  nopl   (%rax)
L273:
  movapd %xmm1,%xmm6
L158:
  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    L273
L136:
  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    L188
  add    $0x98,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L212:
  lea    D102(%rip),%rdi
  movss  %xmm1,0x8(%rsp)
  call   <nrerror@plt>
  movss  0x8(%rsp),%xmm1
  jmp    L224
  nopl   (%rax)
L92:
  movapd %xmm1,%xmm0
  mov    $0x2,%edx
  movapd %xmm1,%xmm9
  xor    %ecx,%ecx
  movsd  0x10(%rsp),%xmm4
  movsd  D54(%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  D89(%rip),%xmm6
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm14
  divsd  %xmm4,%xmm0
  mulsd  %xmm0,%xmm13
  movapd %xmm0,%xmm15
  movapd %xmm0,%xmm10
  addsd  %xmm1,%xmm13
  jmp    L223
  nop
L141:
  add    $0x1,%eax
  add    $0x2,%edx
  cmp    $0x2711,%eax
  je     L175
L223:
  pxor   %xmm3,%xmm3
  movapd %xmm4,%xmm7
  addsd  D211(%rip),%xmm4
  cvtsi2sd %edx,%xmm3
  mulsd  %xmm9,%xmm7
  subsd  %xmm3,%xmm6
  mulsd  %xmm6,%xmm0
  movapd %xmm6,%xmm3
  xorpd  D89(%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    L141
  movsd  0x30(%rsp),%xmm7
L305:
  movsd  0x10(%rsp),%xmm5
  movsd  D66(%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     L216
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x28(%rsp)
L137:
  movss  (%rsp),%xmm0
  xorps  D129(%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  D265(%rip),%xmm6
  subsd  0x30(%rsp),%xmm6
  divsd  %xmm13,%xmm0
  mulsd  %xmm0,%xmm6
  mulsd  0x8(%rsp),%xmm6
  jmp    L119
  nopl   0x0(%rax,%rax,1)
L161:
  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    L206
  nopl   0x0(%rax,%rax,1)
L159:
  lea    D48(%rip),%rdi
  movsd  %xmm9,0x38(%rsp)
  movsd  %xmm12,0x30(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm7,0x20(%rsp)
  call   <nrerror@plt>
  mov    D111(%rip),%rax
  movsd  0x20(%rsp),%xmm7
  movsd  0x28(%rsp),%xmm2
  movsd  0x30(%rsp),%xmm12
  movq   %rax,%xmm1
  mov    D318(%rip),%rax
  movsd  0x38(%rsp),%xmm9
  movq   D123(%rip),%xmm5
  movq   %rax,%xmm8
  jmp    L257
  nopl   (%rax)
L308:
  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    L63
L267:
  movapd %xmm6,%xmm1
  movapd %xmm0,%xmm6
  jmp    L136
L286:
  mov    D62(%rip),%rax
  movq   %rax,%xmm11
  jmp    L93
L131:
  lea    D198(%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    L17
L175:
  lea    D112(%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    L305
L216:
  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    L137
L188:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D265
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D62
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_label: D318
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_label: D111
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D123
type_infered: qword
name: extract_symbolic_data
arguments: data_label: D8
type_infered: f32
name: extract_symbolic_data
arguments: data_label: D66
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D89
type_infered: f32[4]
name: extract_symbolic_data
arguments: data_label: D102
type_infered: string
name: extract_symbolic_data
arguments: data_label: D54
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D211
type_infered: f32[2]
name: extract_symbolic_data
arguments: data_label: D129
type_infered: byte[16]
name: extract_symbolic_data
arguments: data_label: D48
type_infered: string
name: extract_symbolic_data
arguments: data_label: D198
type_infered: string
name: extract_symbolic_data
arguments: data_label: D112
type_infered: string

tool: D265: 0.5

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

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

tool: D111: 1

tool: D123: 9223372036854775807

tool: D8: 2

tool: D66: 3.141592653589793

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

tool: D102: bad arguments in bessik

tool: D54: 0.25

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

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

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

tool: D198: bessk series failed to converge

tool: D112: 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;
}
```