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

```asm
<cvd_male_raw>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xb8,%rsp
  mov    %edi,%r15d
  mov    %esi,%r14d
  mov    %edx,%r13d
  mov    %ecx,%r12d
  mov    %r8d,%ebp
  mov    %r9d,%ebx
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm3,0x18(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0xa8(%rsp)
  xor    %eax,%eax
  movq   $0x0,0x50(%rsp)
  movq   $0x0,0x58(%rsp)
  mov    D12(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D143(%rip),%rax
  mov    %rax,0x68(%rsp)
  mov    D161(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D33(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D166(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D40(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D39(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D32(%rip),%rax
  mov    %rax,0x98(%rsp)
  movq   $0x0,0x20(%rsp)
  mov    D162(%rip),%rax
  mov    %rax,0x28(%rsp)
  mov    D129(%rip),%rax
  mov    %rax,0x30(%rsp)
  mov    D57(%rip),%rax
  mov    %rax,0x38(%rsp)
  mov    D104(%rip),%rax
  mov    %rax,0x40(%rsp)
  divsd  D75(%rip),%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movslq %ebx,%rbx
  pxor   %xmm0,%xmm0
  addsd  0x50(%rsp,%rbx,8),%xmm0
  movslq 0xf8(%rsp),%rax
  addsd  0x20(%rsp,%rax,8),%xmm0
  subsd  D56(%rip),%xmm1
  mulsd  D233(%rip),%xmm1
  addsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm0
  subsd  D64(%rip),%xmm0
  mulsd  D195(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  0x10(%rsp),%xmm1
  subsd  D238(%rip),%xmm1
  mulsd  D210(%rip),%xmm1
  addsd  %xmm0,%xmm1
  movsd  0x18(%rsp),%xmm0
  addsd  D71(%rip),%xmm0
  mulsd  D212(%rip),%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm1
  mulsd  D141(%rip),%xmm1
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sd %r14d,%xmm0
  mulsd  D156(%rip),%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r13d,%xmm1
  mulsd  D250(%rip),%xmm1
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sd %r12d,%xmm0
  mulsd  D68(%rip),%xmm0
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %ebp,%xmm1
  mulsd  D116(%rip),%xmm1
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl 0xf0(%rsp),%xmm0
  mulsd  D262(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mov    0xa8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L8
  add    $0xb8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L8:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D12
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D143
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D161
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D33
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D166
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D40
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D39
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D32
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D162
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D129
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D57
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D104
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D75
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D56
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D233
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D64
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D195
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D238
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D210
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D71
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D212
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D141
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D156
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D250
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D68
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D116
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D262
type_guessed: f64

tool: D12: 0.40356565427866453

tool: D143: 0.7159343574607239

tool: D161: 0.758806896692187

tool: D33: 0.27782579964051385

tool: {"D166": [0xfd,0x69,0x1c,0x66,0x29,0xa7,0xd5,0xbf]}

tool: {"D40": [0x11,0x09,0x44,0xc0,0x4c,0x36,0xd7,0xbf]}

tool: {"D39": [0x48,0x80,0xb9,0xbb,0xb3,0xcc,0xce,0xbf]}

tool: {"D32": [0x4d,0xc7,0x0e,0x9f,0xe7,0x06,0xbb,0xbf]}

tool: D162: 0.16553897704955278

tool: D129: 0.3227167436634278

tool: D57: 0.43930916796228525

tool: D104: 0.5830168090609185

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

tool: D56: 0.967572152614594

tool: D233: 0.43259533106833525

tool: D64: 4.439734935760498

tool: D195: 0.1616093175199347

tool: D238: 133.26568603515625

tool: D210: 0.0051706475575211365

tool: D71: 0.164980158209801

tool: D212: 0.01183727894154126

tool: D141: 0.4871573476846625

tool: D156: 0.31654607381132344

tool: D250: 0.46653234999349424

tool: D68: 0.3146452536778831

tool: D116: 0.47004450249724833

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