user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<initAminoAcidMass>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    $0xd0,%edi
  call   <malloc@plt>
  mov    %rax,-0x8(%rbp)
  cmpq   $0x0,-0x8(%rbp)
  jne    L7
  mov    $0x0,%eax
  jmp    L19
L7:
  mov    -0x8(%rbp),%rax
  movsd  D196(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movsd  D239(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  movsd  D128(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  movsd  D143(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  movsd  D175(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  movsd  D1(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  movsd  D152(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  movsd  D156(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x40,%rax
  movsd  D73(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x48,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x50,%rax
  movsd  D157(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x58,%rax
  movsd  D73(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x60,%rax
  movsd  D33(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x68,%rax
  movsd  D158(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x70,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x78,%rax
  movsd  D173(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  D126(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x88,%rax
  movsd  D167(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x90,%rax
  movsd  D28(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0x98,%rax
  movsd  D235(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0xa0,%rax
  movsd  D11(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0xa8,%rax
  movsd  D56(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0xb0,%rax
  movsd  D58(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0xb8,%rax
  movsd  D141(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0xc0,%rax
  movsd  D201(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  add    $0xc8,%rax
  movsd  D88(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
L19:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D196
data_type: f64
name: extract_symbolic_data
arguments: tag: D239
data_type: f64
name: extract_symbolic_data
arguments: tag: D128
data_type: f64
name: extract_symbolic_data
arguments: tag: D143
data_type: f64
name: extract_symbolic_data
arguments: tag: D175
data_type: f64
name: extract_symbolic_data
arguments: tag: D1
data_type: f64
name: extract_symbolic_data
arguments: tag: D152
data_type: f64
name: extract_symbolic_data
arguments: tag: D156
data_type: f64
name: extract_symbolic_data
arguments: tag: D73
data_type: f64
name: extract_symbolic_data
arguments: tag: D157
data_type: f64
name: extract_symbolic_data
arguments: tag: D33
data_type: f64
name: extract_symbolic_data
arguments: tag: D158
data_type: f64
name: extract_symbolic_data
arguments: tag: D173
data_type: f64
name: extract_symbolic_data
arguments: tag: D126
data_type: f64
name: extract_symbolic_data
arguments: tag: D167
data_type: f64
name: extract_symbolic_data
arguments: tag: D28
data_type: f64
name: extract_symbolic_data
arguments: tag: D235
data_type: f64
name: extract_symbolic_data
arguments: tag: D11
data_type: f64
name: extract_symbolic_data
arguments: tag: D56
data_type: f64
name: extract_symbolic_data
arguments: tag: D58
data_type: f64
name: extract_symbolic_data
arguments: tag: D141
data_type: f64
name: extract_symbolic_data
arguments: tag: D201
data_type: f64
name: extract_symbolic_data
arguments: tag: D88
data_type: f64

tool: D196: 71.03711

tool: D239: 114.53494

tool: D128: 160.030649

tool: D143: 115.02694

tool: D175: 129.04259

tool: D1: 147.06841

tool: D152: 57.02146

tool: D156: 137.05891

tool: D73: 113.08406

tool: D157: 128.09496

tool: D33: 131.04048

tool: D158: 114.04293

tool: D173: 97.05276

tool: D126: 128.05858

tool: D167: 156.10111

tool: D28: 87.03203

tool: D235: 101.04768

tool: D11: 150.95363

tool: D56: 99.06841

tool: D58: 186.07931

tool: D141: 111

tool: D201: 163.06333

tool: D88: 128.55059

assistant: ```c
double *initAminoAcidMass(void) {
  double *M;
  if ((M = (double *)malloc(26 * sizeof(double))) == NULL) {
    return (NULL);
  }
  M[0] = 71.037110;
  M[1] = 114.534940;
  M[2] = 160.030649;
  M[3] = 115.026940;
  M[4] = 129.042590;
  M[5] = 147.068410;
  M[6] = 57.021460;
  M[7] = 137.058910;
  M[8] = 113.084060;
  M[9] = 0.000000;
  M[10] = 128.094960;
  M[11] = 113.084060;
  M[12] = 131.040480;
  M[13] = 114.042930;
  M[14] = 0.000000;
  M[15] = 97.052760;
  M[16] = 128.058580;
  M[17] = 156.101110;
  M[18] = 87.032030;
  M[19] = 101.047680;
  M[20] = 150.953630;
  M[21] = 99.068410;
  M[22] = 186.079310;
  M[23] = 111.000000;
  M[24] = 163.063330;
  M[25] = 128.550590;
  return (M);
}
```