user: Translate the below assembly code into C programming language:

```asm
<cond1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0xaf000(%rsp),%r11
L105:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L105
  sub    $0xce0,%rsp
  mov    %edi,-0xafcb4(%rbp)
  mov    %rsi,-0xafcc0(%rbp)
  mov    %rdx,-0xafcc8(%rbp)
  mov    %rcx,-0xafcd0(%rbp)
  mov    %r8,-0xafcd8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movsd  D30(%rip),%xmm0
  movsd  %xmm0,-0xafc98(%rbp)
  movl   $0x1,-0xafcb0(%rbp)
  jmp    L34
L1:
  mov    -0xafcb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xafcc0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xafcd0(%rbp),%rax
  add    %rax,%rdx
  mov    -0xafcb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0xafcc0(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mov    -0xafcb4(%rbp),%eax
  movslq %eax,%rdx
  mov    -0xafcb0(%rbp),%eax
  cltq
  imul   $0x12c,%rax,%rax
  add    %rdx,%rax
  movsd  %xmm0,-0xafc90(%rbp,%rax,8)
  mov    -0xafcb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xafcc0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xafcd0(%rbp),%rax
  add    %rax,%rdx
  mov    -0xafcb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0xafcc0(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mov    -0xafcb0(%rbp),%eax
  cltq
  imul   $0x968,%rax,%rax
  add    %rbp,%rax
  sub    $0xafc90,%rax
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xafcb0(%rbp)
L34:
  mov    -0xafcb0(%rbp),%eax
  cmp    -0xafcb4(%rbp),%eax
  jl     L1
  movl   $0x1,-0xafcb0(%rbp)
  jmp    L30
L52:
  mov    -0xafcb0(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xafcac(%rbp)
  jmp    L24
L2:
  mov    -0xafcb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xafcc0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    -0xafcd0(%rbp),%rax
  add    %rax,%rdx
  mov    -0xafcac(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0xafcc0(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  mov    -0xafcac(%rbp),%eax
  movslq %eax,%rdx
  mov    -0xafcb0(%rbp),%eax
  cltq
  imul   $0x12c,%rax,%rax
  add    %rdx,%rax
  movsd  %xmm0,-0xafc90(%rbp,%rax,8)
  mov    -0xafcac(%rbp),%eax
  movslq %eax,%rdx
  mov    -0xafcb0(%rbp),%eax
  cltq
  imul   $0x12c,%rax,%rax
  add    %rdx,%rax
  movsd  -0xafc90(%rbp,%rax,8),%xmm0
  mov    -0xafcb0(%rbp),%eax
  movslq %eax,%rdx
  mov    -0xafcac(%rbp),%eax
  cltq
  imul   $0x12c,%rax,%rax
  add    %rdx,%rax
  movsd  %xmm0,-0xafc90(%rbp,%rax,8)
  addl   $0x1,-0xafcac(%rbp)
L24:
  mov    -0xafcac(%rbp),%eax
  cmp    -0xafcb4(%rbp),%eax
  jl     L2
  addl   $0x1,-0xafcb0(%rbp)
L30:
  mov    -0xafcb4(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xafcb0(%rbp)
  jl     L52
  mov    -0xafcd8(%rbp),%rax
  movl   $0x1,(%rax)
  mov    -0xafcb4(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0xafc98(%rbp),%rsi
  lea    -0xafca8(%rbp),%rcx
  mov    -0xafcb4(%rbp),%edx
  lea    -0xafc90(%rbp),%rax
  movq   %rsi,%xmm0
  mov    %edi,%esi
  mov    %rax,%rdi
  call   <gepp@plt>
  mov    -0xafca8(%rbp),%rax
  movq   %rax,%xmm0
  call   <fabs@plt>
  test   %eax,%eax
  jne    L43
  mov    -0xafcd8(%rbp),%rax
  movl   $0x0,(%rax)
L43:
  movl   $0x1,-0xafcb0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xafca0(%rbp)
  jmp    L123
L36:
  mov    -0xafcb4(%rbp),%eax
  movslq %eax,%rdx
  mov    -0xafcb0(%rbp),%eax
  cltq
  imul   $0x12c,%rax,%rax
  add    %rdx,%rax
  movsd  -0xafc90(%rbp,%rax,8),%xmm1
  mov    -0xafcb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xafcc0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xafcc8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movsd  D38(%rip),%xmm0
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xafca0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xafca0(%rbp)
  addl   $0x1,-0xafcb0(%rbp)
L123:
  mov    -0xafcb0(%rbp),%eax
  cmp    -0xafcb4(%rbp),%eax
  jl     L36
  mov    -0xafcb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xafcc0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xafcc8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0xafca0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xafca0(%rbp)
  movsd  -0xafca0(%rbp),%xmm0
  movsd  D38(%rip),%xmm1
  comisd %xmm1,%xmm0
  jbe    L32
  movsd  D38(%rip),%xmm0
  movsd  %xmm0,-0xafca0(%rbp)
L32:
  pxor   %xmm0,%xmm0
  comisd -0xafca0(%rbp),%xmm0
  jbe    L127
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xafca0(%rbp)
L127:
  movsd  -0xafca0(%rbp),%xmm0
  movq   %xmm0,%rax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L113
  call   <__stack_chk_fail@plt>
L113:
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D30
type: byte[8]
name: disassemble_data
arguments: data_tag: D38
type: f64

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

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