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

```asm
<bbn_excluded>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x120,%rsp
  mov    %rdi,-0x118(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0xe0(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <nucl@plt>
  test   %rax,%rax
  jne    L41
  movsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    -0x108(%rbp),%rax
  movq   %rax,%xmm0
  call   <isnan@plt>
  test   %rax,%rax
  jne    L61
  mov    -0x110(%rbp),%rax
  movq   %rax,%xmm0
  call   <isnan@plt>
  test   %rax,%rax
  jne    L61
  movsd  -0xf0(%rbp),%xmm0
  divsd  -0x110(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <isnan@plt>
  test   %rax,%rax
  jne    L61
  mov    -0x100(%rbp),%rax
  movq   %rax,%xmm0
  call   <isnan@plt>
  test   %rax,%rax
  jne    L61
  movsd  -0xe8(%rbp),%xmm0
  divsd  -0x100(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <isnan@plt>
  test   %rax,%rax
  jne    L61
  mov    -0xf8(%rbp),%rax
  movq   %rax,%xmm0
  call   <isnan@plt>
  test   %rax,%rax
  je     L62
L61:
  mov    $0xffffffff,%eax
  jmp    L33
L62:
  movsd  D3(%rip),%xmm0
  comisd -0x108(%rbp),%xmm0
  jbe    L105
  movsd  -0x110(%rbp),%xmm0
  comisd D41(%rip),%xmm0
  jbe    L105
  movsd  D55(%rip),%xmm0
  comisd -0x110(%rbp),%xmm0
  jbe    L105
  movsd  -0xf0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0x110(%rbp),%xmm1
  movsd  D30(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L105
  movsd  -0x100(%rbp),%xmm0
  comisd D58(%rip),%xmm0
  jbe    L105
  movsd  -0xe8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0x100(%rbp),%xmm1
  movsd  D47(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L105
  mov    $0x0,%eax
  jmp    L33
L105:
  mov    $0x1,%eax
  jmp    L33
L41:
  mov    $0xffffffff,%eax
L33:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L159
  call   <__stack_chk_fail@plt>
L159:
  leave
  ret
```

tool_calls: name: parse_data
arguments: tag: D3
type_infered: f64
name: parse_data
arguments: tag: D41
type_infered: byte[16]
name: parse_data
arguments: tag: D55
type_infered: byte[8]
name: parse_data
arguments: tag: D30
type_infered: f64
name: parse_data
arguments: tag: D58
type_infered: byte[16]
name: parse_data
arguments: tag: D47
type_infered: f64

tool: D3: 0.258

tool: {"D41": [0x54,0xe4,0x10,0x71,0x73,0x2a,0xe9,0x3e,0x72,0x51,0x2d,0x22,0x8a,0xc9,0x0b,0x3f]}

tool: {"D55": [0x72,0x51,0x2d,0x22,0x8a,0xc9,0x0b,0x3f]}

tool: D30: 1.52

tool: {"D58": [0xdf,0xfa,0x90,0xdf,0x57,0x5d,0xd7,0x3d,0x1f,0x85,0xeb,0x51,0xb8,0x1e,0xe5,0x3f]}

tool: D47: 0.66

assistant: ```c
int bbn_excluded(struct relicparam *paramrelic) {
  double H2_H, Yp, Li7_H, Be7_H, He3_H, Li6_H;
  double ratioH[26 + 1];
  if (nucl(paramrelic, ratioH) == 0) {
    H2_H = ratioH[3];
    Yp = ratioH[6];
    Li7_H = ratioH[8];
    Be7_H = ratioH[9];
    He3_H = ratioH[5];
    Li6_H = ratioH[7];
    if (isnan(Yp) || isnan(H2_H) || isnan(He3_H / H2_H) || isnan(Li7_H) || isnan(Li6_H / Li7_H) || isnan(Be7_H))
      return -1;
    if ((Yp < 0.258) && ((H2_H > 1.2e-5) && (H2_H < 5.3e-5)) && (He3_H / H2_H < 1.52) && (Li7_H > 0.85e-10) && (Li6_H / Li7_H < 0.66))
      return 0;
    else
      return 1;
  } else
    return -1;
}
```