user: Please show me the C implementation that matches the assembly code listed below:

```asm
<death_female_raw>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xf0,%rsp
  mov    %edi,-0xb4(%rbp)
  mov    %esi,-0xb8(%rbp)
  mov    %edx,-0xbc(%rbp)
  mov    %ecx,-0xc0(%rbp)
  mov    %r8d,-0xc4(%rbp)
  movsd  %xmm0,-0xd0(%rbp)
  mov    %r9d,-0xc8(%rbp)
  movsd  %xmm1,-0xd8(%rbp)
  movsd  %xmm2,-0xe0(%rbp)
  movsd  %xmm3,-0xe8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D48(%rip),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D275(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  D171(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D194(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D80(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D156(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D122(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D138(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  D163(%rip),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  D96(%rip),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  D262(%rip),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D168(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  D0(%rip),%xmm0
  mov    -0xa8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa0(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movsd  D46(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  D213(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  movsd  D185(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0xe8(%rbp),%xmm1
  movsd  D76(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0xc8(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm1
  movsd  D152(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xd8(%rbp),%xmm1
  movsd  D52(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xe0(%rbp),%xmm1
  movsd  D165(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xe8(%rbp),%xmm1
  movsd  D174(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0xb4(%rbp),%xmm1
  movsd  D65(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0xb8(%rbp),%xmm1
  movsd  D252(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0xbc(%rbp),%xmm1
  movsd  D201(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0xc0(%rbp),%xmm1
  movsd  D17(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0xc4(%rbp),%xmm1
  movsd  D211(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  pxor   %xmm1,%xmm1
  cvtsi2sdl 0x10(%rbp),%xmm1
  movsd  D111(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x98(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movq   %xmm0,%rax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L1
  call   <__stack_chk_fail@plt>
L1:
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: parse_data
arguments: tag: D48
datatype: byte[8]
name: parse_data
arguments: tag: D275
datatype: byte[8]
name: parse_data
arguments: tag: D171
datatype: byte[8]
name: parse_data
arguments: tag: D194
datatype: byte[8]
name: parse_data
arguments: tag: D80
datatype: byte[8]
name: parse_data
arguments: tag: D156
datatype: byte[8]
name: parse_data
arguments: tag: D122
datatype: byte[8]
name: parse_data
arguments: tag: D138
datatype: byte[8]
name: parse_data
arguments: tag: D163
datatype: f64
name: parse_data
arguments: tag: D96
datatype: f64
name: parse_data
arguments: tag: D262
datatype: f64
name: parse_data
arguments: tag: D168
datatype: f64
name: parse_data
arguments: tag: D137
datatype: byte[8]
name: parse_data
arguments: tag: D0
datatype: byte[8]
name: parse_data
arguments: tag: D46
datatype: f64
name: parse_data
arguments: tag: D213
datatype: f64
name: parse_data
arguments: tag: D185
datatype: f64
name: parse_data
arguments: tag: D76
datatype: f64
name: parse_data
arguments: tag: D152
datatype: byte[8]
name: parse_data
arguments: tag: D52
datatype: f64
name: parse_data
arguments: tag: D165
datatype: byte[8]
name: parse_data
arguments: tag: D174
datatype: f64
name: parse_data
arguments: tag: D65
datatype: f64
name: parse_data
arguments: tag: D252
datatype: f64
name: parse_data
arguments: tag: D201
datatype: f64
name: parse_data
arguments: tag: D17
datatype: byte[8]
name: parse_data
arguments: tag: D211
datatype: f64
name: parse_data
arguments: tag: D111
datatype: byte[8]

tool: {"D48": [0xe8,0x31,0x28,0x0d,0xce,0x9c,0xe8,0xbf]}

tool: {"D275": [0x7f,0xe3,0x42,0x7f,0x11,0xcf,0xde,0xbf]}

tool: {"D171": [0x39,0xc1,0x99,0xbc,0x6d,0x47,0xe5,0xbf]}

tool: {"D194": [0x1f,0x7c,0x71,0x0c,0x7f,0x61,0xef,0xbf]}

tool: {"D80": [0x4f,0xca,0x99,0x2e,0xbb,0x87,0xe8,0xbf]}

tool: {"D156": [0x0f,0x1d,0xeb,0x3b,0x1f,0xb6,0xd3,0xbf]}

tool: {"D122": [0x2f,0xda,0xa8,0x3e,0x38,0xbc,0xf1,0xbf]}

tool: {"D138": [0x22,0xb4,0xa4,0xab,0x49,0x22,0xef,0xbf]}

tool: D163: 0.23433109014098005

tool: D96: 0.5870690502658261

tool: D262: 0.796446020307202

tool: D168: 1.0533145224303277

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

tool: {"D0": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

tool: D46: 1.605074524879456

tool: D213: 3.70583987236023

tool: D185: 129.82359313964844

tool: D76: 0.301369071006775

tool: {"D152": [0x9a,0x46,0x21,0x0f,0x2c,0xaf,0xbb,0xbf]}

tool: D52: 0.027317832090910966

tool: {"D165": [0xd8,0x7e,0x47,0x76,0x5e,0x52,0x4b,0xbf]}

tool: D174: 0.03663041847730991

tool: D65: 0.5484061247122409

tool: D252: 0.46670789784824235

tool: D201: 1.0288138959180866

tool: {"D17": [0xaa,0xcd,0x65,0xb2,0xfa,0xa0,0xa9,0xbf]}

tool: D211: 0.6543819525425484

tool: {"D111": [0x74,0x32,0x79,0x04,0x68,0xa0,0xdd,0xbf]}

assistant: ```c
double death_female_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.7691412217114335100000000, -0.4813884489809012200000000, -0.6649693187337454300000000, -0.9806514018090445300000000, -0.7665687475367323200000000, -0.3079908452168220200000000, -1.1084520766868413000000000, -0.9729355194482460800000000};
  double Ismoke[5] = {0, 0.2343310901409800500000000, 0.5870690502658261200000000, 0.7964460203072020200000000, 1.0533145224303277000000000};
  double dbmi = bmi;
  dbmi = dbmi / 10;
  bmi_1 = pow(dbmi, .5);
  bmi_1 = bmi_1 - 1.605074524879456;
  rati = rati - 3.705839872360230;
  sbp = sbp - 129.823593139648440;
  town = town - -0.301369071006775;
  a = 0;
  a += Iethrisk[ethrisk];
  a += Ismoke[smoke_cat];
  a += bmi_1 * -0.1081416642130314200000000;
  a += rati * 0.0273178320909109660000000;
  a += sbp * -0.0008337937584279265700000;
  a += town * 0.0366304184773099120000000;
  a += b_AF * 0.5484061247122409300000000;
  a += b_ra * 0.4667078978482423500000000;
  a += b_renal * 1.0288138959180866000000000;
  a += b_treatedhyp * -0.0500562994738190240000000;
  a += b_type2 * 0.6543819525425483800000000;
  a += fh_cvd * -0.4629154246984292800000000;
  return a;
}
```