user: What is the c source code of the assembly code below?

```asm
<gencoef>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x10,%rsp
  mov    D270(%rip),%r13d
  lea    0x1(%r13),%eax
  mov    %eax,D38(%rip)
  test   %r13d,%r13d
  je     L8
  add    $0x10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  nopl   0x0(%rax,%rax,1)
L8:
  xor    %eax,%eax
  mov    $0x5,%r14d
  mov    $0x10,%ebx
  call   <dct_coef_addr@plt>
  mov    %rax,%rbp
L71:
  test   %ebx,%ebx
  jle    L84
  lea    0x0(,%rbx,4),%eax
  pxor   %xmm0,%xmm0
  movsd  D38(%rip),%xmm2
  cvtsi2sd %eax,%xmm0
  divsd  %xmm0,%xmm2
  movapd %xmm2,%xmm0
  movsd  %xmm2,0x8(%rsp)
  call   <cos@plt>
  movsd  D204(%rip),%xmm3
  movslq %r13d,%rax
  lea    0x0(,%rax,4),%r12
  divsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm3,%xmm0
  movss  %xmm0,0x0(%rbp,%rax,4)
  cmp    $0x1,%ebx
  je     L86
  movsd  D165(%rip),%xmm4
  mulsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x4(%rbp,%r12,1)
  cmp    $0x2,%ebx
  je     L86
  movsd  D3(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x8(%rbp,%r12,1)
  cmp    $0x3,%ebx
  je     L86
  movsd  D91(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0xc(%rbp,%r12,1)
  cmp    $0x4,%ebx
  je     L86
  movsd  D173(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x10(%rbp,%r12,1)
  cmp    $0x5,%ebx
  je     L86
  movsd  D89(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x14(%rbp,%r12,1)
  cmp    $0x6,%ebx
  je     L86
  movsd  D257(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x18(%rbp,%r12,1)
  cmp    $0x7,%ebx
  je     L86
  movsd  D215(%rip),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x1c(%rbp,%r12,1)
  cmp    $0x8,%ebx
  je     L86
  movsd  D315(%rip),%xmm5
  mulsd  0x8(%rsp),%xmm5
  movapd %xmm5,%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x20(%rbp,%r12,1)
  cmp    $0x9,%ebx
  je     L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D219(%rip),%xmm0
  call   <cos@plt>
  movsd  D204(%rip),%xmm6
  divsd  %xmm0,%xmm6
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm6,%xmm0
  movss  %xmm0,0x24(%rbp,%r12,1)
  cmp    $0xa,%ebx
  je     L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D51(%rip),%xmm0
  call   <cos@plt>
  movsd  D204(%rip),%xmm7
  divsd  %xmm0,%xmm7
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm7,%xmm0
  movss  %xmm0,0x28(%rbp,%r12,1)
  cmp    $0xb,%ebx
  je     L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D40(%rip),%xmm0
  call   <cos@plt>
  movsd  D204(%rip),%xmm7
  divsd  %xmm0,%xmm7
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm7,%xmm0
  movss  %xmm0,0x2c(%rbp,%r12,1)
  cmp    $0xc,%ebx
  je     L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D185(%rip),%xmm0
  call   <cos@plt>
  movsd  D204(%rip),%xmm6
  divsd  %xmm0,%xmm6
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm6,%xmm0
  movss  %xmm0,0x30(%rbp,%r12,1)
  cmp    $0xd,%ebx
  je     L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D32(%rip),%xmm0
  call   <cos@plt>
  movsd  D204(%rip),%xmm5
  divsd  %xmm0,%xmm5
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm5,%xmm0
  movss  %xmm0,0x34(%rbp,%r12,1)
  cmp    $0xe,%ebx
  je     L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D265(%rip),%xmm0
  call   <cos@plt>
  movsd  D204(%rip),%xmm7
  divsd  %xmm0,%xmm7
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm7,%xmm0
  movss  %xmm0,0x38(%rbp,%r12,1)
  cmp    $0x10,%ebx
  jne    L86
  movsd  0x8(%rsp),%xmm0
  mulsd  D161(%rip),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movsd  D204(%rip),%xmm0
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x3c(%rbp,%r12,1)
  nopl   (%rax)
L86:
  add    %ebx,%r13d
L84:
  mov    %ebx,%eax
  shr    $0x1f,%eax
  add    %ebx,%eax
  sar    %eax
  mov    %eax,%ebx
  sub    $0x1,%r14d
  jne    L71
  add    $0x10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
```

tool_calls: name: parse_data
arguments: label: D38
data_type: byte[8]
name: parse_data
arguments: label: D204
data_type: f64
name: parse_data
arguments: label: D165
data_type: byte[8]
name: parse_data
arguments: label: D3
data_type: byte[8]
name: parse_data
arguments: label: D91
data_type: byte[8]
name: parse_data
arguments: label: D173
data_type: byte[8]
name: parse_data
arguments: label: D89
data_type: byte[8]
name: parse_data
arguments: label: D257
data_type: byte[8]
name: parse_data
arguments: label: D215
data_type: byte[8]
name: parse_data
arguments: label: D315
data_type: byte[8]
name: parse_data
arguments: label: D219
data_type: byte[8]
name: parse_data
arguments: label: D51
data_type: byte[8]
name: parse_data
arguments: label: D40
data_type: byte[8]
name: parse_data
arguments: label: D185
data_type: byte[8]
name: parse_data
arguments: label: D32
data_type: byte[8]
name: parse_data
arguments: label: D265
data_type: byte[8]
name: parse_data
arguments: label: D161
data_type: byte[8]

tool: {"D38": [0x18,0x2d,0x44,0x54,0xfb,0x21,0x09,0x40]}

tool: D204: 0.5

tool: {"D165": [0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40]}

tool: {"D3": [0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x40]}

tool: {"D91": [0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x40]}

tool: {"D173": [0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x40]}

tool: {"D89": [0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x40]}

tool: {"D257": [0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x40]}

tool: {"D215": [0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x40]}

tool: {"D315": [0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x40]}

tool: {"D219": [0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x40]}

tool: {"D51": [0x00,0x00,0x00,0x00,0x00,0x00,0x35,0x40]}

tool: {"D40": [0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x40]}

tool: {"D185": [0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x40]}

tool: {"D32": [0x00,0x00,0x00,0x00,0x00,0x00,0x3b,0x40]}

tool: {"D265": [0x00,0x00,0x00,0x00,0x00,0x00,0x3d,0x40]}

tool: {"D161": [0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x40]}

assistant: ```c
void gencoef() {
  static int iOnceOnly = 0;
  int p, n, i, k;
  double t, pi;
  float *coef32;
  if (!iOnceOnly++) {
    coef32 = dct_coef_addr();
    pi = 4.0 * atan(1.0);
    n = 16;
    k = 0;
    for (i = 0; i < 5; i++, n = n / 2) {
      for (p = 0; p < n; p++, k++) {
        t = (pi / (4 * n)) * (2 * p + 1);
        coef32[k] = (float)(0.50 / cos(t));
      }
    }
  }
}
```