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

```asm
<heatindex_F>:
  endbr64
  cmp    $0x3e7,%edi
  sete   %al
  cmp    $0x45,%edi
  setle  %dl
  or     %dl,%al
  jne    L7
  test   %esi,%esi
  js     L7
  pxor   %xmm5,%xmm5
  pxor   %xmm6,%xmm6
  mov    %edi,%edx
  mov    %esi,%eax
  cvtsi2sd %esi,%xmm5
  pxor   %xmm4,%xmm4
  pxor   %xmm3,%xmm3
  movsd  D60(%rip),%xmm7
  cvtsi2sd %edi,%xmm6
  movsd  D1(%rip),%xmm0
  pxor   %xmm2,%xmm2
  pxor   %xmm1,%xmm1
  imul   %edi,%edx
  imul   %esi,%eax
  mulsd  %xmm5,%xmm7
  mulsd  %xmm6,%xmm0
  cvtsi2sd %edx,%xmm4
  cvtsi2sd %eax,%xmm3
  addsd  D49(%rip),%xmm0
  imul   %edx,%edi
  imul   %eax,%esi
  addsd  %xmm7,%xmm0
  movsd  D111(%rip),%xmm7
  cvtsi2sd %edi,%xmm2
  mulsd  %xmm6,%xmm7
  cvtsi2sd %esi,%xmm1
  mulsd  %xmm5,%xmm7
  subsd  %xmm7,%xmm0
  movsd  D81(%rip),%xmm7
  mulsd  %xmm4,%xmm7
  addsd  %xmm7,%xmm0
  movsd  D7(%rip),%xmm7
  mulsd  %xmm3,%xmm7
  addsd  %xmm7,%xmm0
  movsd  D38(%rip),%xmm7
  mulsd  %xmm4,%xmm7
  mulsd  %xmm5,%xmm7
  addsd  %xmm7,%xmm0
  movsd  D10(%rip),%xmm7
  mulsd  %xmm6,%xmm7
  mulsd  D123(%rip),%xmm6
  mulsd  %xmm3,%xmm7
  mulsd  %xmm1,%xmm6
  subsd  %xmm7,%xmm0
  movsd  D78(%rip),%xmm7
  mulsd  %xmm4,%xmm7
  mulsd  D103(%rip),%xmm4
  mulsd  %xmm3,%xmm7
  mulsd  %xmm1,%xmm4
  addsd  %xmm7,%xmm0
  movsd  D21(%rip),%xmm7
  mulsd  %xmm2,%xmm7
  subsd  %xmm7,%xmm0
  movsd  D125(%rip),%xmm7
  mulsd  %xmm1,%xmm7
  addsd  %xmm7,%xmm0
  movsd  D87(%rip),%xmm7
  mulsd  %xmm2,%xmm7
  mulsd  %xmm7,%xmm5
  addsd  %xmm5,%xmm0
  movsd  D82(%rip),%xmm5
  mulsd  %xmm2,%xmm5
  mulsd  D15(%rip),%xmm2
  addsd  %xmm6,%xmm0
  mulsd  %xmm5,%xmm3
  mulsd  %xmm1,%xmm2
  subsd  %xmm3,%xmm0
  addsd  %xmm4,%xmm0
  subsd  %xmm2,%xmm0
  jmp    1050 <round@plt>
  nopl   0x0(%rax)
L7:
  mov    $0x3e7,%eax
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D60
type: f64
name: retrieve_data
arguments: tag: D1
type: byte[8]
name: retrieve_data
arguments: tag: D49
type: f64
name: retrieve_data
arguments: tag: D111
type: byte[8]
name: retrieve_data
arguments: tag: D81
type: byte[8]
name: retrieve_data
arguments: tag: D7
type: byte[8]
name: retrieve_data
arguments: tag: D38
type: byte[8]
name: retrieve_data
arguments: tag: D10
type: byte[8]
name: retrieve_data
arguments: tag: D123
type: byte[8]
name: retrieve_data
arguments: tag: D78
type: byte[8]
name: retrieve_data
arguments: tag: D103
type: byte[8]
name: retrieve_data
arguments: tag: D21
type: byte[8]
name: retrieve_data
arguments: tag: D125
type: byte[8]
name: retrieve_data
arguments: tag: D87
type: byte[8]
name: retrieve_data
arguments: tag: D82
type: byte[8]
name: retrieve_data
arguments: tag: D15
type: byte[8]

tool: D60: 5.37941

tool: {"D1": [0x02,0xd3,0x69,0xdd,0x06,0xb5,0xc7,0x3f]}

tool: D49: 16.923

tool: {"D111": [0x1b,0x0e,0x4b,0x03,0x3f,0xaa,0xb9,0x3f]}

tool: {"D81": [0x4c,0x7b,0x39,0xa2,0x31,0x49,0x83,0x3f]}

tool: {"D7": [0xff,0x06,0x8a,0xab,0x0c,0xdb,0x7d,0x3f]}

tool: {"D38": [0x3f,0x83,0xe8,0x71,0x61,0xa2,0x36,0x3f]}

tool: {"D10": [0x15,0x6e,0x66,0xe5,0x78,0xb4,0x4a,0x3f]}

tool: {"D123": [0x11,0x23,0x9b,0xd6,0x76,0x81,0x8a,0x3e]}

tool: {"D78": [0xa8,0xc1,0xe6,0x33,0x8f,0x69,0xe5,0x3e]}

tool: {"D103": [0x53,0x10,0x93,0xc6,0xb5,0xf9,0x0c,0x3e]}

tool: {"D21": [0x1b,0xae,0xef,0x72,0xfa,0x42,0x04,0x3f]}

tool: {"D125": [0xd4,0xc1,0x56,0x1e,0x1f,0x93,0xfe,0x3e]}

tool: {"D87": [0x02,0xdf,0x82,0xfd,0xd1,0xf1,0xb7,0x3e]}

tool: {"D82": [0x58,0xe8,0x33,0x71,0x21,0x74,0x57,0x3e]}

tool: {"D15": [0x0b,0x0e,0xbf,0xf1,0x31,0x7f,0xca,0x3d]}

assistant: ```c
int heatindex_F(int temp_F, int rh) {
  int temp2, temp3, rh2, rh3;
  if (temp_F == 999 || temp_F < 70 || rh < 0)
    return 999;
  temp2 = temp_F * temp_F;
  temp3 = temp2 * temp_F;
  rh2 = rh * rh;
  rh3 = rh2 * rh;
  return round(16.923 + .185212 * temp_F + 5.37941 * rh - .100254 * temp_F * rh + (9.41695e-3) * temp2 + (7.28898e-3) * rh2 + (3.45372e-4) * temp2 * rh - (8.14971e-4) * temp_F * rh2 + (1.02102e-5) * temp2 * rh2 - (3.8646e-5) * temp3 + (2.91583e-5) * rh3 + (1.42721e-6) * temp3 * rh + (1.97483e-7) * temp_F * rh3 - (2.18429e-8) * temp3 * rh2 + (8.43296e-10) * temp2 * rh3 - (4.81975e-11) * temp3 * rh3);
}
```