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

```asm
<gsw_latentheat_melting>:
  endbr64
  push   %rbx
  movq   %xmm1,%rbx
  divsd  D228(%rip),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L18
  movapd %xmm0,%xmm1
  sqrtsd %xmm1,%xmm1
L9:
  movq   %rbx,%xmm3
  mulsd  D129(%rip),%xmm3
  movapd %xmm3,%xmm0
  mulsd  D256(%rip),%xmm0
  addsd  D33(%rip),%xmm0
  movapd %xmm1,%xmm2
  mulsd  D270(%rip),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm3,%xmm2
  mulsd  D280(%rip),%xmm2
  addsd  D209(%rip),%xmm2
  mulsd  %xmm3,%xmm2
  subsd  D299(%rip),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm3,%xmm2
  mulsd  D169(%rip),%xmm2
  addsd  D94(%rip),%xmm2
  mulsd  %xmm3,%xmm2
  subsd  D97(%rip),%xmm2
  mulsd  %xmm3,%xmm2
  addsd  D101(%rip),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm3,%xmm2
  mulsd  D79(%rip),%xmm2
  addsd  D288(%rip),%xmm2
  mulsd  %xmm3,%xmm2
  subsd  D121(%rip),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm3,%xmm2
  mulsd  D124(%rip),%xmm2
  subsd  D244(%rip),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  D196(%rip),%xmm0
  movapd %xmm1,%xmm2
  mulsd  D249(%rip),%xmm2
  addsd  D108(%rip),%xmm2
  movapd %xmm3,%xmm4
  mulsd  D120(%rip),%xmm4
  addsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm2
  movapd %xmm1,%xmm4
  mulsd  D100(%rip),%xmm4
  addsd  D74(%rip),%xmm4
  mulsd  %xmm1,%xmm4
  subsd  D9(%rip),%xmm4
  addsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm2
  movapd %xmm1,%xmm4
  mulsd  D36(%rip),%xmm4
  subsd  D15(%rip),%xmm4
  mulsd  %xmm1,%xmm4
  addsd  D118(%rip),%xmm4
  addsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm2
  mulsd  D136(%rip),%xmm1
  subsd  D172(%rip),%xmm1
  addsd  %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D83(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  pop    %rbx
  ret
L18:
  call   <sqrt@plt>
  movapd %xmm0,%xmm1
  jmp    L9
```

tool_calls: name: read_data
arguments: data_tag: D228
data_type: byte[8]
name: read_data
arguments: data_tag: D129
data_type: byte[8]
name: read_data
arguments: data_tag: D256
data_type: byte[8]
name: read_data
arguments: data_tag: D33
data_type: f64
name: read_data
arguments: data_tag: D270
data_type: byte[8]
name: read_data
arguments: data_tag: D280
data_type: byte[8]
name: read_data
arguments: data_tag: D209
data_type: f64
name: read_data
arguments: data_tag: D299
data_type: f64
name: read_data
arguments: data_tag: D169
data_type: byte[8]
name: read_data
arguments: data_tag: D94
data_type: f64
name: read_data
arguments: data_tag: D97
data_type: f64
name: read_data
arguments: data_tag: D101
data_type: f64
name: read_data
arguments: data_tag: D79
data_type: byte[8]
name: read_data
arguments: data_tag: D288
data_type: f64
name: read_data
arguments: data_tag: D121
data_type: f64
name: read_data
arguments: data_tag: D124
data_type: byte[8]
name: read_data
arguments: data_tag: D244
data_type: f64
name: read_data
arguments: data_tag: D196
data_type: f64
name: read_data
arguments: data_tag: D249
data_type: byte[8]
name: read_data
arguments: data_tag: D108
data_type: f64
name: read_data
arguments: data_tag: D120
data_type: f64
name: read_data
arguments: data_tag: D100
data_type: byte[8]
name: read_data
arguments: data_tag: D74
data_type: f64
name: read_data
arguments: data_tag: D9
data_type: f64
name: read_data
arguments: data_tag: D36
data_type: f64
name: read_data
arguments: data_tag: D15
data_type: f64
name: read_data
arguments: data_tag: D118
data_type: f64
name: read_data
arguments: data_tag: D136
data_type: f64
name: read_data
arguments: data_tag: D172
data_type: f64
name: read_data
arguments: data_tag: D83
data_type: f64

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

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

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

tool: D33: 683.6527214265952

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

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

tool: D209: 1078.283734113611

tool: D299: 579.2068522727968

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

tool: D94: 561.3896351265648

tool: D97: 1649.446955902331

tool: D101: 1195.857305019339

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

tool: D288: 1233.720336206392

tool: D121: 4984.585692734338

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

tool: D244: 2.789444646733159

tool: D196: 333426.516924071

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

tool: D108: 86.92558481134256

tool: D120: 4.618228988300871

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

tool: D74: 179.3032021946783

tool: D9: 175.1401389905041

tool: D36: 696.8934948667265

tool: D15: 317.1558017172501

tool: D118: 965.5751370889338

tool: D136: 229.479867659189

tool: D172: 7605.802553358546

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