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

```asm
<gsw_latentheat_melting>:
  endbr64
  movapd %xmm0,%xmm4
  pxor   %xmm0,%xmm0
  movapd %xmm1,%xmm3
  sub    $0x18,%rsp
  divsd  D128(%rip),%xmm4
  ucomisd %xmm4,%xmm0
  ja     L15
  sqrtsd %xmm4,%xmm4
L2:
  mulsd  D27(%rip),%xmm3
  movsd  D258(%rip),%xmm1
  movsd  D88(%rip),%xmm0
  movsd  D198(%rip),%xmm2
  mulsd  %xmm4,%xmm1
  mulsd  %xmm4,%xmm2
  addsd  D15(%rip),%xmm2
  mulsd  %xmm3,%xmm0
  addsd  D227(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D70(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D9(%rip),%xmm1
  mulsd  %xmm4,%xmm0
  mulsd  %xmm3,%xmm1
  subsd  D298(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movsd  D13(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D211(%rip),%xmm1
  mulsd  %xmm4,%xmm0
  mulsd  %xmm3,%xmm1
  subsd  D78(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D180(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movsd  D161(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D246(%rip),%xmm1
  mulsd  %xmm4,%xmm0
  mulsd  %xmm3,%xmm1
  subsd  D160(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movsd  D278(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm4,%xmm0
  subsd  D44(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movsd  D162(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm4,%xmm0
  addsd  D279(%rip),%xmm0
  addsd  %xmm1,%xmm2
  movsd  D8(%rip),%xmm1
  mulsd  %xmm4,%xmm1
  addsd  D184(%rip),%xmm1
  mulsd  %xmm3,%xmm2
  mulsd  %xmm4,%xmm1
  subsd  D132(%rip),%xmm1
  addsd  %xmm1,%xmm2
  movsd  D53(%rip),%xmm1
  mulsd  %xmm4,%xmm1
  subsd  D35(%rip),%xmm1
  mulsd  %xmm3,%xmm2
  mulsd  %xmm4,%xmm1
  addsd  D47(%rip),%xmm1
  mulsd  D4(%rip),%xmm4
  subsd  D255(%rip),%xmm4
  addsd  %xmm1,%xmm2
  mulsd  %xmm3,%xmm2
  addsd  %xmm4,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D270(%rip),%xmm1
  add    $0x18,%rsp
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  ret
L15:
  movapd %xmm4,%xmm0
  movsd  %xmm1,0x8(%rsp)
  call   <sqrt@plt>
  movsd  0x8(%rsp),%xmm3
  movapd %xmm0,%xmm4
  jmp    L2
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D128
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D27
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D258
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D88
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D198
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D15
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D227
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D70
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D9
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D298
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D13
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D211
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D78
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D180
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D161
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D246
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D160
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D278
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D44
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D162
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D279
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D8
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D184
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D132
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D53
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D35
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D47
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D4
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D255
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D270
type_guessed: f64

tool: {"D128": [0xa8,0x04,0x46,0x9b,0x24,0x18,0x44,0x40]}

tool: {"D27": [0x2d,0x43,0x1c,0xeb,0xe2,0x36,0x1a,0x3f]}

tool: {"D258": [0x7f,0x7f,0x48,0xc9,0x87,0xa3,0x6d,0xc0]}

tool: {"D88": [0x50,0x0a,0xaf,0xd0,0x06,0x0c,0x82,0xc0]}

tool: {"D198": [0x01,0x5a,0x92,0x50,0xa6,0x77,0x30,0xc0]}

tool: D15: 86.92558481134256

tool: D227: 683.6527214265952

tool: {"D70": [0xb0,0xba,0x71,0x4b,0x99,0xdf,0x72,0xc0]}

tool: D9: 1078.283734113611

tool: D298: 579.2068522727968

tool: {"D13": [0x40,0xf1,0x75,0x22,0x56,0x10,0x84,0xc0]}

tool: D211: 561.3896351265648

tool: D78: 1649.446955902331

tool: D180: 1195.857305019339

tool: {"D161": [0x00,0xcf,0x93,0xf6,0x15,0x14,0x90,0xc0]}

tool: D246: 1233.720336206392

tool: D160: 4984.585692734338

tool: {"D278": [0xc0,0x8e,0xfc,0xfe,0x0e,0x6e,0x52,0xc0]}

tool: D44: 2.789444646733159

tool: D162: 4.618228988300871

tool: D279: 333426.516924071

tool: {"D8": [0xc0,0x84,0x03,0x05,0x1d,0x9c,0x70,0xc0]}

tool: D184: 179.3032021946783

tool: D132: 175.1401389905041

tool: D53: 696.8934948667265

tool: D35: 317.1558017172501

tool: D47: 965.5751370889338

tool: D4: 229.479867659189

tool: D255: 7605.802553358546

tool: D270: 18221.5015645335

assistant: ```c
double gsw_latentheat_melting(double sa, double p) {
  double c0 = 3.334265169240710e5, c1 = -2.789444646733159e0, c2 = -1.822150156453350e4, c3 = -4.984585692734338e3, c4 = -7.371966528571920e1, c5 = -7.605802553358546e3, c6 = 1.195857305019339e3, c7 = 1.233720336206392e3, c8 = 2.294798676591890e2, c9 = 9.655751370889338e2, c10 = -5.792068522727968e2, c11 = -1.649446955902331e3, c12 = -1.029021448430547e3, c13 = -3.171558017172501e2, c14 = -1.751401389905041e2, c15 = 6.836527214265952e2, c16 = 1.078283734113611e3, c17 = 5.613896351265648e2, c18 = 6.968934948667265e2, c19 = 1.793032021946783e2, c20 = 8.692558481134256e1, c21 = -2.371103254714944e2, c22 = -5.775033277201674e2, c23 = -3.019749254648732e2, c24 = -6.420420579160927e2, c25 = -2.657570848596042e2, c26 = -1.646738151143109e1, c27 = 4.618228988300871e0;
  double s_u, x, y;
  s_u = 40e0 * (35.16504e0 / 35e0);
  x = sqrt(sa / s_u);
  y = p * 1e-4;
  return (c0 + x * (c1 + c4 * y + x * (c3 + y * (c7 + c12 * y) + x * (c6 + y * (c11 + y * (c17 + c24 * y)) + x * (c10 + y * (c16 + c23 * y) + x * (c15 + c22 * y + c21 * x))))) + y * (c2 + y * (c5 + c8 * x + y * (c9 + x * (c13 + c18 * x) + y * (c14 + x * (c19 + c25 * x) + y * (c20 + c26 * x + c27 * y))))));
}
```