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

```asm
<cvd_male_raw>:
  endbr64
  push   %r15
  pxor   %xmm4,%xmm4
  mov    %r8d,%r15d
  push   %r14
  mov    %ecx,%r14d
  push   %r13
  mov    %edx,%r13d
  push   %r12
  mov    %esi,%r12d
  push   %rbp
  mov    %edi,%ebp
  push   %rbx
  movslq %r9d,%rbx
  sub    $0xb8,%rsp
  divsd  D122(%rip),%xmm0
  movsd  %xmm1,0x18(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm3,0x8(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0xa8(%rsp)
  xor    %eax,%eax
  movaps %xmm4,0x50(%rsp)
  movapd D41(%rip),%xmm4
  mov    D152(%rip),%rax
  movaps %xmm4,0x60(%rsp)
  movapd D166(%rip),%xmm4
  mov    %rax,0x40(%rsp)
  movaps %xmm4,0x70(%rsp)
  movapd D143(%rip),%xmm4
  movaps %xmm4,0x80(%rsp)
  movapd D30(%rip),%xmm4
  movaps %xmm4,0x90(%rsp)
  movapd D170(%rip),%xmm4
  movaps %xmm4,0x20(%rsp)
  movapd D148(%rip),%xmm4
  movaps %xmm4,0x30(%rsp)
  call   <log@plt>
  pxor   %xmm4,%xmm4
  subsd  D79(%rip),%xmm0
  movslq 0xf8(%rsp),%rax
  mulsd  D126(%rip),%xmm0
  addsd  0x50(%rsp,%rbx,8),%xmm4
  addsd  0x20(%rsp,%rax,8),%xmm4
  movsd  0x18(%rsp),%xmm1
  subsd  D136(%rip),%xmm1
  mulsd  D177(%rip),%xmm1
  movsd  0x10(%rsp),%xmm2
  subsd  D28(%rip),%xmm2
  mulsd  D219(%rip),%xmm2
  movsd  0x8(%rsp),%xmm3
  addsd  %xmm4,%xmm0
  addsd  D22(%rip),%xmm3
  mulsd  D81(%rip),%xmm3
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sd %r12d,%xmm0
  mulsd  D70(%rip),%xmm0
  addsd  %xmm1,%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %ebp,%xmm1
  mulsd  D202(%rip),%xmm1
  addsd  %xmm2,%xmm3
  addsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r13d,%xmm1
  mulsd  D137(%rip),%xmm1
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sd %r14d,%xmm0
  mulsd  D179(%rip),%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm1
  mulsd  D155(%rip),%xmm1
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl 0xf0(%rsp),%xmm0
  mulsd  D131(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mov    0xa8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L5
  add    $0xb8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L5:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: tag: D122
type: byte[8]
name: unpack_data
arguments: tag: D41
type: f64[2]
name: unpack_data
arguments: tag: D152
type: f64
name: unpack_data
arguments: tag: D166
type: f64[2]
name: unpack_data
arguments: tag: D143
type: byte[16]
name: unpack_data
arguments: tag: D30
type: byte[16]
name: unpack_data
arguments: tag: D170
type: byte[16]
name: unpack_data
arguments: tag: D148
type: f64[2]
name: unpack_data
arguments: tag: D79
type: f64
name: unpack_data
arguments: tag: D126
type: f64
name: unpack_data
arguments: tag: D136
type: f64
name: unpack_data
arguments: tag: D177
type: f64
name: unpack_data
arguments: tag: D28
type: f64
name: unpack_data
arguments: tag: D219
type: f64
name: unpack_data
arguments: tag: D22
type: f64
name: unpack_data
arguments: tag: D81
type: f64
name: unpack_data
arguments: tag: D70
type: f64
name: unpack_data
arguments: tag: D202
type: f64
name: unpack_data
arguments: tag: D137
type: f64
name: unpack_data
arguments: tag: D179
type: f64
name: unpack_data
arguments: tag: D155
type: f64
name: unpack_data
arguments: tag: D131
type: f64

tool: {"D122": [0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x40]}

tool: {"D41": [0.40356565427866453,0.7159343574607239]}

tool: D152: 0.5830168090609185

tool: {"D166": [0.758806896692187,0.27782579964051385]}

tool: {"D143": [0xfd,0x69,0x1c,0x66,0x29,0xa7,0xd5,0xbf,0x11,0x09,0x44,0xc0,0x4c,0x36,0xd7,0xbf]}

tool: {"D30": [0x48,0x80,0xb9,0xbb,0xb3,0xcc,0xce,0xbf,0x4d,0xc7,0x0e,0x9f,0xe7,0x06,0xbb,0xbf]}

tool: {"D170": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x10,0x52,0x96,0x61,0x30,0xc5,0x3f]}

tool: {"D148": [0.3227167436634278,0.43930916796228525]}

tool: D79: 0.967572152614594

tool: D126: 0.43259533106833525

tool: D136: 4.439734935760498

tool: D177: 0.1616093175199347

tool: D28: 133.26568603515625

tool: D219: 0.0051706475575211365

tool: D22: 0.164980158209801

tool: D81: 0.01183727894154126

tool: D70: 0.31654607381132344

tool: D202: 0.4871573476846625

tool: D137: 0.46653234999349424

tool: D179: 0.3146452536778831

tool: D155: 0.47004450249724833

tool: D131: 0.6101222792348442

assistant: ```c
double cvd_male_raw(int b_AF, int b_ra, int b_renal, int b_treatedhyp, int b_type2, double bmi, int ethrisk, int fh_cvd, double rati, double sbp, int smoke_cat, double town) {
  double a;
  double bmi_1;
  double Iethrisk[10] = {0, 0, 0.4035656542786645300000000, 0.7159343574607238700000000, 0.7588068966921870400000000, 0.2778257996405138500000000, -0.3383277413537653700000000, -0.3626891973109574500000000, -0.2406220118164148500000000, -0.1055741084408314400000000};
  double Ismoke[5] = {0, 0.1655389770495527800000000, 0.3227167436634277900000000, 0.4393091679622852500000000, 0.5830168090609184600000000};
  double dbmi = bmi;
  dbmi = dbmi / 10;
  bmi_1 = log(dbmi);
  bmi_1 = bmi_1 - 0.967572152614594;
  rati = rati - 4.439734935760498;
  sbp = sbp - 133.265686035156250;
  town = town - -0.164980158209801;
  a = 0;
  a += Iethrisk[ethrisk];
  a += Ismoke[smoke_cat];
  a += bmi_1 * 0.4325953310683352500000000;
  a += rati * 0.1616093175199347100000000;
  a += sbp * 0.0051706475575211365000000;
  a += town * 0.0118372789415412600000000;
  a += b_AF * 0.4871573476846625100000000;
  a += b_ra * 0.3165460738113234400000000;
  a += b_renal * 0.4665323499934942400000000;
  a += b_treatedhyp * 0.3146452536778831000000000;
  a += b_type2 * 0.4700445024972483300000000;
  a += fh_cvd * 0.6101222792348441900000000;
  return a;
}
```