user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<cdflib_beta_rcomp1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0xd8,%rsp
  mov    %rdi,-0xb8(%rbp)
  mov    %rsi,-0xc0(%rbp)
  mov    %rdx,-0xc8(%rbp)
  mov    %rcx,-0xd0(%rbp)
  mov    %r8,-0xd8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x18(%rbp)
  xor    %eax,%eax
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <cdflib_fifdmin1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  comisd D66(%rip),%xmm0
  jae    L251
  mov    -0xd0(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd D345(%rip),%xmm0
  ja     L90
  mov    -0xd0(%rbp),%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0xd0(%rbp),%rax
  movsd  (%rax),%xmm0
  movq   D347(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  lea    -0x80(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_alnrel@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  jmp    L93
L90:
  nop
  mov    -0xd8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd D345(%rip),%xmm0
  ja     L224
  mov    -0xd8(%rbp),%rax
  movsd  (%rax),%xmm0
  movq   D347(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  lea    -0x78(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_alnrel@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0xd8(%rbp),%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x50(%rbp)
  jmp    L93
L224:
  nop
  mov    -0xd0(%rbp),%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0xd8(%rbp),%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x50(%rbp)
L93:
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  -0x50(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0xa0(%rbp),%xmm1
  movsd  D26(%rip),%xmm0
  comisd %xmm1,%xmm0
  ja     L67
  mov    -0xc8(%rbp),%rdx
  mov    -0xc0(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_beta_log@plt>
  movsd  -0x88(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  lea    -0x88(%rbp),%rdx
  mov    -0xb8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_esum@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  jmp    L163
L67:
  nop
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xc0(%rbp),%rax
  mov    (%rax),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <cdflib_fifdmax1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  comisd D66(%rip),%xmm0
  jae    L270
  movsd  -0x98(%rbp),%xmm0
  movsd  D26(%rip),%xmm1
  comisd %xmm1,%xmm0
  ja     L295
  lea    -0x88(%rbp),%rdx
  mov    -0xb8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_esum@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jp     L283
  pxor   %xmm0,%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jne    L283
  movsd  -0x28(%rbp),%xmm0
  jmp    L163
L283:
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movsd  D26(%rip),%xmm1
  comisd %xmm1,%xmm0
  ja     L173
  lea    -0x70(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  jmp    L226
L173:
  nop
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D26(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  lea    -0x90(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x70(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
L226:
  mov    -0xc0(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,-0xe0(%rbp)
  mov    -0xc8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  -0x88(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  -0xa0(%rbp),%xmm1
  movsd  -0x98(%rbp),%xmm3
  movapd %xmm1,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D26(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  jmp    L163
L295:
  nop
  lea    -0xa0(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gamma_ln1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  D26(%rip),%xmm1
  subsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  mov    %eax,-0xa4(%rbp)
  cmpl   $0x0,-0xa4(%rbp)
  jle    L220
  movsd  D26(%rip),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movl   $0x1,-0xa8(%rbp)
  jmp    L12
L11:
  movsd  -0x98(%rbp),%xmm0
  movsd  D26(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  -0xa0(%rbp),%xmm2
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x68(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  addl   $0x1,-0xa8(%rbp)
L12:
  mov    -0xa8(%rbp),%eax
  cmp    -0xa4(%rbp),%eax
  jle    L11
  mov    -0x68(%rbp),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movsd  -0x90(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  jmp    L87
L220:
  nop
L87:
  movsd  -0x88(%rbp),%xmm0
  movsd  -0x90(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  D26(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm1
  movsd  -0x98(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movsd  D26(%rip),%xmm1
  comisd %xmm1,%xmm0
  ja     L158
  lea    -0x70(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  jmp    L176
L158:
  nop
  movsd  -0xa0(%rbp),%xmm1
  movsd  -0x98(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D26(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  lea    -0x90(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x70(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
L176:
  lea    -0x88(%rbp),%rdx
  mov    -0xb8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_esum@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,-0xe0(%rbp)
  lea    -0x98(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gam1@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  jmp    L163
L270:
  nop
  lea    -0xa0(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_gamma_ln1@plt>
  mov    %eax,%ebx
  lea    -0x98(%rbp),%rdx
  lea    -0xa0(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_algdiv@plt>
  add    %ebx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movsd  -0x90(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  lea    -0x70(%rbp),%rdx
  mov    -0xb8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_esum@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  jmp    L163
L251:
  nop
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  ja     L115
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x20(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D26(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm2
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm1
  addsd  %xmm1,%xmm2
  mov    -0xd0(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  jmp    L132
L115:
  nop
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D26(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D26(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x20(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xd8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
L132:
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x60(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movq   D347(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x78(%rbp),%xmm0
  movq   D250(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd D108(%rip),%xmm0
  ja     L71
  lea    -0x78(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_rlog1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  jmp    L216
L71:
  nop
  movsd  -0x78(%rbp),%xmm4
  movsd  %xmm4,-0xe0(%rbp)
  mov    -0xd0(%rbp),%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm5
  divsd  -0x38(%rbp),%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0xe0(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
L216:
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x60(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x78(%rbp),%xmm0
  movq   D250(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd D108(%rip),%xmm0
  ja     L106
  lea    -0x78(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_rlog1@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  jmp    L288
L106:
  nop
  movsd  -0x78(%rbp),%xmm6
  movsd  %xmm6,-0xe0(%rbp)
  mov    -0xd8(%rbp),%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm7
  divsd  -0x30(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0xe0(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
L288:
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x90(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movq   D347(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  lea    -0x70(%rbp),%rdx
  mov    -0xb8(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_esum@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  -0x38(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  D340(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x88(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,-0xe0(%rbp)
  mov    -0xc8(%rbp),%rdx
  mov    -0xc0(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <cdflib_bcorr@plt>
  neg    %eax
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
L163:
  movq   %xmm0,%rax
  mov    -0x18(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L101
  call   <__stack_chk_fail@plt>
L101:
  movq   %rax,%xmm0
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D66
type_guessed: f64[2]
name: parse_data
arguments: data_tag: D345
type_guessed: f64[2]
name: parse_data
arguments: data_tag: D347
type_guessed: f32[2]
name: parse_data
arguments: data_tag: D26
type_guessed: f64
name: parse_data
arguments: data_tag: D250
type_guessed: qword
name: parse_data
arguments: data_tag: D108
type_guessed: f64
name: parse_data
arguments: data_tag: D340
type_guessed: byte[8]

tool: {"D66": [8.0,0.375]}

tool: {"D345": [0.375,0.0]}

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

tool: D26: 1

tool: D250: 9223372036854775807

tool: D108: 0.6

tool: {"D340": [0x56,0x36,0xd4,0x33,0x45,0x88,0xd9,0x3f]}

assistant: ```c
double cdflib_beta_rcomp1(const int *mu, const double *a, const double *b, const double *x, const double *y) {
  static const double Const = .398942280401433e0;
  double brcmp1, a0, apb, b0, c, e, h, lambda, lnx, lny, t, u, v, x0, y0, z;
  int i, n;
  double T1, T2, T3, T4;
  a0 = cdflib_fifdmin1(*a, *b);
  if (a0 >= 8.0e0) {
    goto S130;
  }
  if (*x > 0.375e0) {
    goto S10;
  }
  lnx = log(*x);
  T1 = -*x;
  lny = cdflib_alnrel(&T1);
  goto S30;
S10:
  if (*y > 0.375e0) {
    goto S20;
  }
  T2 = -*y;
  lnx = cdflib_alnrel(&T2);
  lny = log(*y);
  goto S30;
S20:
  lnx = log(*x);
  lny = log(*y);
S30:
  z = *a * lnx + *b * lny;
  if (a0 < 1.0e0) {
    goto S40;
  }
  z -= cdflib_beta_log(a, b);
  brcmp1 = cdflib_esum(mu, &z);
  return brcmp1;
S40:
  b0 = cdflib_fifdmax1(*a, *b);
  if (b0 >= 8.0e0) {
    goto S120;
  }
  if (b0 > 1.0e0) {
    goto S70;
  }
  brcmp1 = cdflib_esum(mu, &z);
  if (brcmp1 == 0.0e0) {
    return brcmp1;
  }
  apb = *a + *b;
  if (apb > 1.0e0) {
    goto S50;
  }
  z = 1.0e0 + cdflib_gam1(&apb);
  goto S60;
S50:
  u = *a + *b - 1.e0;
  z = (1.0e0 + cdflib_gam1(&u)) / apb;
S60:
  c = (1.0e0 + cdflib_gam1(a)) * (1.0e0 + cdflib_gam1(b)) / z;
  brcmp1 = brcmp1 * (a0 * c) / (1.0e0 + a0 / b0);
  return brcmp1;
S70:
  u = cdflib_gamma_ln1(&a0);
  n = (int)(b0 - 1.0e0);
  if (n < 1) {
    goto S90;
  }
  c = 1.0e0;
  for (i = 1; i <= n; i++) {
    b0 -= 1.0e0;
    c *= (b0 / (a0 + b0));
  }
  u = log(c) + u;
S90:
  z -= u;
  b0 -= 1.0e0;
  apb = a0 + b0;
  if (apb > 1.0e0) {
    goto S100;
  }
  t = 1.0e0 + cdflib_gam1(&apb);
  goto S110;
S100:
  u = a0 + b0 - 1.e0;
  t = (1.0e0 + cdflib_gam1(&u)) / apb;
S110:
  brcmp1 = a0 * cdflib_esum(mu, &z) * (1.0e0 + cdflib_gam1(&b0)) / t;
  return brcmp1;
S120:
  u = cdflib_gamma_ln1(&a0) + cdflib_algdiv(&a0, &b0);
  T3 = z - u;
  brcmp1 = a0 * cdflib_esum(mu, &T3);
  return brcmp1;
S130:
  if (*a > *b) {
    goto S140;
  }
  h = *a / *b;
  x0 = h / (1.0e0 + h);
  y0 = 1.0e0 / (1.0e0 + h);
  lambda = *a - (*a + *b) * *x;
  goto S150;
S140:
  h = *b / *a;
  x0 = 1.0e0 / (1.0e0 + h);
  y0 = h / (1.0e0 + h);
  lambda = (*a + *b) * *y - *b;
S150:
  e = -(lambda / *a);
  if (fabs(e) > 0.6e0) {
    goto S160;
  }
  u = cdflib_rlog1(&e);
  goto S170;
S160:
  u = e - log(*x / x0);
S170:
  e = lambda / *b;
  if (fabs(e) > 0.6e0) {
    goto S180;
  }
  v = cdflib_rlog1(&e);
  goto S190;
S180:
  v = e - log(*y / y0);
S190:
  T4 = -(*a * u + *b * v);
  z = cdflib_esum(mu, &T4);
  brcmp1 = Const * sqrt(*b * x0) * z * exp(-cdflib_bcorr(a, b));
  return brcmp1;
}
```