user: Converte this assembly snippet into its equivalent C code:

```asm
<gsw_latentheat_melting>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x110,%rsp
  movsd  %xmm0,-0x108(%rbp)
  movsd  %xmm1,-0x110(%rbp)
  movsd  D208(%rip),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  D124(%rip),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  D249(%rip),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  movsd  D33(%rip),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  D197(%rip),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  D98(%rip),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  D20(%rip),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  movsd  D277(%rip),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  D220(%rip),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  D122(%rip),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  D80(%rip),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  D133(%rip),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  D294(%rip),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  D89(%rip),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  D160(%rip),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  D190(%rip),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  D231(%rip),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D103(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  D115(%rip),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  D141(%rip),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  D251(%rip),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D90(%rip),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D61(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  D114(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D270(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D193(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D165(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D293(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D161(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x108(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x10(%rbp)
  movsd  -0x110(%rbp),%xmm1
  movsd  D215(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0xf0(%rbp),%xmm1
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movapd %xmm0,%xmm2
  addsd  -0xe0(%rbp),%xmm2
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0x70(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0xa0(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movapd %xmm0,%xmm3
  addsd  -0xc8(%rbp),%xmm3
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0x78(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movapd %xmm0,%xmm4
  addsd  -0xa8(%rbp),%xmm4
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movapd %xmm0,%xmm5
  addsd  -0x80(%rbp),%xmm5
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  %xmm5,%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  %xmm4,%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  %xmm3,%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0xf8(%rbp),%xmm1
  movsd  -0xb8(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm2
  addsd  -0xd0(%rbp),%xmm2
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x90(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm3
  addsd  -0xb0(%rbp),%xmm3
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x60(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm4
  addsd  -0x88(%rbp),%xmm4
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm5
  addsd  -0x58(%rbp),%xmm5
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm5,%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm4,%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm3,%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0xe8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D208
type_guessed: f64
name: unpack_data
arguments: label: D124
type_guessed: byte[8]
name: unpack_data
arguments: label: D249
type_guessed: byte[8]
name: unpack_data
arguments: label: D33
type_guessed: byte[8]
name: unpack_data
arguments: label: D197
type_guessed: byte[8]
name: unpack_data
arguments: label: D98
type_guessed: byte[8]
name: unpack_data
arguments: label: D20
type_guessed: f64
name: unpack_data
arguments: label: D277
type_guessed: f64
name: unpack_data
arguments: label: D220
type_guessed: f64
name: unpack_data
arguments: label: D122
type_guessed: f64
name: unpack_data
arguments: label: D80
type_guessed: byte[8]
name: unpack_data
arguments: label: D133
type_guessed: byte[8]
name: unpack_data
arguments: label: D294
type_guessed: byte[8]
name: unpack_data
arguments: label: D89
type_guessed: byte[8]
name: unpack_data
arguments: label: D160
type_guessed: byte[8]
name: unpack_data
arguments: label: D190
type_guessed: f64
name: unpack_data
arguments: label: D231
type_guessed: f64
name: unpack_data
arguments: label: D103
type_guessed: f64
name: unpack_data
arguments: label: D115
type_guessed: f64
name: unpack_data
arguments: label: D141
type_guessed: f64
name: unpack_data
arguments: label: D251
type_guessed: f64
name: unpack_data
arguments: label: D90
type_guessed: byte[8]
name: unpack_data
arguments: label: D61
type_guessed: byte[8]
name: unpack_data
arguments: label: D114
type_guessed: byte[8]
name: unpack_data
arguments: label: D270
type_guessed: byte[8]
name: unpack_data
arguments: label: D193
type_guessed: byte[8]
name: unpack_data
arguments: label: D165
type_guessed: byte[8]
name: unpack_data
arguments: label: D293
type_guessed: f64
name: unpack_data
arguments: label: D161
type_guessed: byte[8]
name: unpack_data
arguments: label: D215
type_guessed: byte[8]

tool: D208: 333426.516924071

tool: {"D124": [0x00,0xc5,0xdd,0x5a,0xc8,0x50,0x06,0xc0]}

tool: {"D249": [0x0e,0x21,0xa2,0x19,0x60,0xcb,0xd1,0xc0]}

tool: {"D33": [0x7d,0x83,0xf5,0xef,0x95,0x78,0xb3,0xc0]}

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

tool: {"D98": [0x40,0x0c,0x23,0x74,0xcd,0xb5,0xbd,0xc0]}

tool: D20: 1195.857305019339

tool: D277: 1233.720336206392

tool: D220: 229.479867659189

tool: D122: 965.5751370889338

tool: {"D80": [0x20,0x16,0x2a,0xa2,0xa7,0x19,0x82,0xc0]}

tool: {"D133": [0x10,0xdd,0xce,0xae,0xc9,0xc5,0x99,0xc0]}

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

tool: {"D89": [0xff,0x03,0xf1,0x29,0x7e,0xd2,0x73,0xc0]}

tool: {"D160": [0x82,0xa3,0xc3,0x04,0x7c,0xe4,0x65,0xc0]}

tool: D190: 683.6527214265952

tool: D231: 1078.283734113611

tool: D103: 561.3896351265648

tool: D115: 696.8934948667265

tool: D141: 179.3032021946783

tool: D251: 86.92558481134256

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

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

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

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

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

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

tool: D293: 4.618228988300871

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

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

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