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

```asm
<cond1>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    -0xaf000(%rsp),%r11
L41:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L41
  sub    $0xca0,%rsp
  mov    %edi,%ebx
  mov    %rsi,%rbp
  mov    %rdx,%r12
  mov    %rcx,%r11
  mov    %r8,%r13
  mov    %fs:0x28,%rax
  mov    %rax,0xafc98(%rsp)
  xor    %eax,%eax
  cmp    $0x1,%edi
  jle    L114
  movslq %edi,%rax
  lea    0x4(%rsi),%rdx
  lea    0x10(%rsp,%rax,8),%rdi
  lea    0x978(%rsp),%rsi
  lea    -0x2(%rbx),%ecx
  lea    0x8(%rbp,%rcx,4),%r9
  movslq 0x0(%rbp,%rax,4),%r8
L56:
  movslq (%rdx),%rcx
  lea    (%rcx,%rcx,4),%rax
  shl    $0x5,%rax
  add    %r11,%rax
  movsd  (%rax,%r8,8),%xmm0
  movsd  %xmm0,0x960(%rdi)
  movsd  (%rax,%rcx,8),%xmm0
  movsd  %xmm0,(%rsi)
  add    $0x4,%rdx
  add    $0x960,%rdi
  add    $0x968,%rsi
  cmp    %r9,%rdx
  jne    L56
L114:
  lea    -0x1(%rbx),%r10d
  cmp    $0x1,%r10d
  jle    L27
  lea    0x12d8(%rsp),%r9
  lea    0x970(%rsp),%rdi
  lea    -0x3(%rbx),%r14d
  add    $0x3,%r14
  mov    $0x2,%r8d
L19:
  cmp    %r8d,%ebx
  jle    L89
  movslq -0x4(%rbp,%r8,4),%rax
  lea    (%rax,%rax,4),%rsi
  shl    $0x5,%rsi
  add    %r11,%rsi
  mov    %r9,%rdx
  mov    %r8,%rax
L9:
  movslq 0x0(%rbp,%rax,4),%rcx
  movsd  (%rsi,%rcx,8),%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  movsd  %xmm0,(%rdx)
  add    $0x1,%rax
  add    $0x960,%rdx
  cmp    %eax,%ebx
  jg     L9
L89:
  add    $0x1,%r8
  add    $0x968,%r9
  add    $0x960,%rdi
  cmp    %r14,%r8
  jne    L19
L27:
  movl   $0x1,0x0(%r13)
  lea    0x8(%rsp),%rcx
  lea    0x10(%rsp),%rdi
  movsd  D29(%rip),%xmm0
  mov    %ebx,%edx
  mov    %r10d,%esi
  call   <gepp@plt>
  movsd  0x8(%rsp),%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jne    L147
  movl   $0x0,0x0(%r13)
L147:
  cmp    $0x1,%ebx
  jle    L57
  movslq %ebx,%rax
  lea    0x10(%rsp,%rax,8),%rdx
  lea    0x4(%rbp),%rax
  lea    -0x2(%rbx),%ecx
  lea    0x8(%rbp,%rcx,4),%rsi
  pxor   %xmm0,%xmm0
  movsd  D24(%rip),%xmm2
L50:
  movslq (%rax),%rcx
  movapd %xmm2,%xmm1
  subsd  (%r12,%rcx,8),%xmm1
  mulsd  0x960(%rdx),%xmm1
  addsd  %xmm1,%xmm0
  add    $0x960,%rdx
  add    $0x4,%rax
  cmp    %rsi,%rax
  jne    L50
L10:
  movslq %ebx,%rbx
  movslq 0x0(%rbp,%rbx,4),%rax
  addsd  (%r12,%rax,8),%xmm0
  comisd D24(%rip),%xmm0
  jbe    L35
  movsd  D24(%rip),%xmm0
L68:
  mov    0xafc98(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L31
  add    $0xafca0,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L57:
  pxor   %xmm0,%xmm0
  jmp    L10
L35:
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  jbe    L68
  movapd %xmm1,%xmm0
  jmp    L68
L31:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D29
data_type: byte[8]
name: parse_data
arguments: data_tag: D24
data_type: f64[2]

tool: {"D29": [0x3a,0x8c,0x30,0xe2,0x8e,0x79,0x45,0x3e]}

tool: {"D24": [1.0,1e-8]}

assistant: ```c
double cond1(int m, int a[], double p[], double pp[][20], int *idt) {
  double A[300][300];
  double det, tem, tol;
  int i, j;
  void gepp(double[][300], int, int, double *, double);
  tol = 1.e-8;
  for (i = 1; i < m; i++) {
    A[i][m] = pp[a[i]][a[m]];
    A[i][i] = pp[a[i]][a[i]];
  }
  for (i = 1; i < m - 1; i++) {
    for (j = i + 1; j < m; j++) {
      A[i][j] = pp[a[i]][a[j]];
      A[j][i] = A[i][j];
    }
  }
  *idt = 1;
  gepp(A, m - 1, m, &det, tol);
  if (fabs(det) == 0.) {
    *idt = 0;
  }
  for (i = 1, tem = 0.; i < m; i++)
    tem += A[i][m] * (1. - p[a[i]]);
  tem += p[a[m]];
  if (tem > 1.)
    tem = 1;
  if (tem < 0.)
    tem = 0.;
  return (tem);
}
```