user: 请从给定的汇编指令推导出C源代码：

```asm
<cond1>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    -0xaf000(%rsp),%r11
L23:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L23
  sub    $0xcb8,%rsp
  mov    %r8,(%rsp)
  movslq %edi,%r13
  mov    %rsi,%rbp
  mov    %rdx,%r12
  mov    %r13,%rbx
  mov    %rcx,%r11
  mov    %fs:0x28,%rax
  mov    %rax,0xafca8(%rsp)
  xor    %eax,%eax
  lea    (%rsi,%r13,4),%rax
  mov    %rax,0x8(%rsp)
  cmp    $0x1,%r13d
  jle    L64
  lea    -0x2(%r13),%eax
  lea    0x20(%rsp),%r14
  lea    0x8(%rbp,%rax,4),%r9
  lea    0x0(%rbp,%r13,4),%rax
  movslq (%rax),%r8
  lea    0x4(%rsi),%rdx
  lea    (%r14,%r13,8),%rdi
  lea    0x988(%rsp),%rsi
  nopl   (%rax)
L111:
  movslq (%rdx),%rcx
  add    $0x4,%rdx
  add    $0x960,%rdi
  add    $0x968,%rsi
  lea    (%rcx,%rcx,4),%rax
  shl    $0x5,%rax
  add    %r11,%rax
  movsd  (%rax,%r8,8),%xmm0
  movsd  %xmm0,(%rdi)
  movsd  (%rax,%rcx,8),%xmm0
  movsd  %xmm0,-0x968(%rsi)
  cmp    %rdx,%r9
  jne    L111
L10:
  lea    -0x1(%rbx),%r10d
  cmp    $0x1,%r10d
  jle    L17
  lea    -0x3(%rbx),%r15d
  lea    0x12e8(%rsp),%r9
  mov    $0x2,%r8d
  lea    0x980(%rsp),%rdi
  add    $0x3,%r15
  nopl   0x0(%rax)
L13:
  cmp    %r8d,%ebx
  jle    L128
  movslq -0x4(%rbp,%r8,4),%rax
  mov    %r9,%rdx
  lea    (%rax,%rax,4),%rcx
  mov    %r8,%rax
  shl    $0x5,%rcx
  add    %r11,%rcx
  nopl   0x0(%rax,%rax,1)
L72:
  movslq 0x0(%rbp,%rax,4),%rsi
  add    $0x960,%rdx
  movsd  (%rcx,%rsi,8),%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  add    $0x1,%rax
  movsd  %xmm0,-0x960(%rdx)
  cmp    %eax,%ebx
  jg     L72
L128:
  add    $0x1,%r8
  add    $0x968,%r9
  add    $0x960,%rdi
  cmp    %r8,%r15
  jne    L13
L17:
  mov    (%rsp),%rax
  lea    0x18(%rsp),%rcx
  mov    %ebx,%edx
  mov    %r10d,%esi
  movsd  D28(%rip),%xmm0
  mov    %r14,%rdi
  movl   $0x1,(%rax)
  call   <gepp@plt>
  movsd  0x18(%rsp),%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jne    L84
  mov    (%rsp),%rax
  movl   $0x0,(%rax)
L84:
  cmp    $0x1,%ebx
  jle    L142
  lea    -0x2(%rbx),%ecx
  pxor   %xmm3,%xmm3
  movsd  D7(%rip),%xmm2
  lea    (%r14,%r13,8),%rdx
  lea    0x4(%rbp),%rax
  lea    0x8(%rbp,%rcx,4),%rsi
  movapd %xmm3,%xmm0
  nopl   0x0(%rax,%rax,1)
L119:
  movslq (%rax),%rcx
  movapd %xmm2,%xmm1
  add    $0x4,%rax
  add    $0x960,%rdx
  subsd  (%r12,%rcx,8),%xmm1
  mulsd  (%rdx),%xmm1
  addsd  %xmm1,%xmm0
  cmp    %rax,%rsi
  jne    L119
L66:
  mov    0x8(%rsp),%rax
  movslq (%rax),%rax
  addsd  (%r12,%rax,8),%xmm0
  comisd %xmm2,%xmm0
  jbe    L70
  movapd %xmm2,%xmm0
L59:
  mov    0xafca8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L29
  add    $0xafcb8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L70:
  maxsd  %xmm0,%xmm3
  movapd %xmm3,%xmm0
  jmp    L59
L142:
  pxor   %xmm3,%xmm3
  movsd  D7(%rip),%xmm2
  movapd %xmm3,%xmm0
  jmp    L66
L64:
  lea    0x20(%rsp),%r14
  jmp    L10
L29:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D28
type: byte[8]
name: extract_symbolic_data
arguments: data_label: D7
type: f64

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

tool: D7: 1

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);
}
```