user: What is the c source code of the assembly code below?

```asm
<sidtime_long_term>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x70,%rsp
  movsd  %xmm0,0x10(%rsp)
  movq   %xmm1,%rbx
  movq   %xmm2,%rbp
  mov    %fs:0x28,%rax
  mov    %rax,0x68(%rsp)
  xor    %eax,%eax
  mov    $0x0,%esi
  mov    $0xffffffff,%edi
  call   <swe_deltat_ex@plt>
  addsd  0x10(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm0,%xmm1
  subsd  D2(%rip),%xmm1
  divsd  D230(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  %xmm1,%xmm2
  movapd %xmm1,%xmm6
  mulsd  D12(%rip),%xmm6
  movapd %xmm6,%xmm0
  movapd %xmm2,%xmm3
  mulsd  D77(%rip),%xmm3
  subsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  D182(%rip),%xmm1
  subsd  %xmm1,%xmm0
  divsd  D99(%rip),%xmm0
  addsd  D181(%rip),%xmm0
  subsd  D75(%rip),%xmm0
  call   <swe_degnorm@plt>
  mulsd  D94(%rip),%xmm0
  movsd  %xmm0,0x30(%rsp)
  movq   $0x0,0x38(%rsp)
  mov    D132(%rip),%rax
  mov    %rax,0x40(%rsp)
  mov    $0x0,%esi
  mov    $0xffffffff,%edi
  mov    D2(%rip),%rax
  movq   %rax,%xmm0
  call   <swe_deltat_ex@plt>
  addsd  D2(%rip),%xmm0
  mov    $0x0,%edi
  call   <swi_epsiln@plt>
  movq   %xmm0,%r13
  lea    0x30(%rsp),%r12
  mov    %r12,%rsi
  mov    %r12,%rdi
  call   <swi_polcart@plt>
  movq   %r13,%xmm7
  mulsd  D195(%rip),%xmm7
  movapd %xmm7,%xmm0
  xorpd  D22(%rip),%xmm0
  mulsd  D94(%rip),%xmm0
  mov    %r12,%rsi
  mov    %r12,%rdi
  call   <swi_coortrf@plt>
  mov    $0xffffffff,%edx
  mov    $0x0,%esi
  movsd  0x8(%rsp),%xmm0
  mov    %r12,%rdi
  call   <swi_precess@plt>
  mov    $0x0,%edi
  movsd  0x8(%rsp),%xmm0
  call   <swi_epsiln@plt>
  movapd %xmm0,%xmm5
  mulsd  D195(%rip),%xmm5
  movsd  %xmm5,0x18(%rsp)
  lea    0x20(%rsp),%rsi
  mov    $0x0,%edi
  movsd  0x8(%rsp),%xmm0
  call   <swi_nutation@plt>
  mov    0x28(%rsp),%r14
  mov    0x20(%rsp),%r13
  movsd  D94(%rip),%xmm6
  mulsd  0x18(%rsp),%xmm6
  movapd %xmm6,%xmm0
  mov    %r12,%rsi
  mov    %r12,%rdi
  call   <swi_coortrf@plt>
  mov    %r12,%rsi
  mov    %r12,%rdi
  call   <swi_cartpol@plt>
  movsd  D195(%rip),%xmm7
  mulsd  0x30(%rsp),%xmm7
  movsd  %xmm7,0x30(%rsp)
  movsd  0x10(%rsp),%xmm0
  subsd  D248(%rip),%xmm0
  mov    $0x1,%edi
  call   <fmod@plt>
  imul   $0x168,%eax,%eax
  pxor   %xmm4,%xmm4
  cvtsi2sd %eax,%xmm4
  movsd  %xmm4,0x8(%rsp)
  movq   %rbx,%xmm4
  ucomisd D46(%rip),%xmm4
  jp     L22
  jne    L22
  movq   %r14,%xmm0
  mulsd  D195(%rip),%xmm0
  addsd  0x18(%rsp),%xmm0
  mulsd  D94(%rip),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm1
  movq   %r13,%xmm0
  mulsd  D195(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  0x30(%rsp),%xmm0
L18:
  movsd  %xmm0,0x30(%rsp)
  addsd  0x8(%rsp),%xmm0
  call   <swe_degnorm@plt>
  divsd  D97(%rip),%xmm0
  mov    0x68(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L13
  add    $0x70,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L22:
  movq   %rbx,%xmm0
  mulsd  D94(%rip),%xmm0
  call   <cos@plt>
  movq   %rbp,%xmm5
  mulsd  %xmm5,%xmm0
  addsd  0x30(%rsp),%xmm0
  jmp    L18
L13:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_label: D2
type_guessed: f64
name: parse_data
arguments: data_label: D230
type_guessed: f64
name: parse_data
arguments: data_label: D12
type_guessed: f64
name: parse_data
arguments: data_label: D77
type_guessed: f64
name: parse_data
arguments: data_label: D182
type_guessed: f64
name: parse_data
arguments: data_label: D99
type_guessed: f64
name: parse_data
arguments: data_label: D181
type_guessed: f64
name: parse_data
arguments: data_label: D75
type_guessed: byte[8]
name: parse_data
arguments: data_label: D94
type_guessed: byte[8]
name: parse_data
arguments: data_label: D132
type_guessed: f32[2]
name: parse_data
arguments: data_label: D195
type_guessed: byte[8]
name: parse_data
arguments: data_label: D22
type_guessed: f32[4]
name: parse_data
arguments: data_label: D248
type_guessed: f64
name: parse_data
arguments: data_label: D46
type_guessed: f32[2]
name: parse_data
arguments: data_label: D97
type_guessed: f32[2]

tool: D2: 2451545

tool: D230: 365250

tool: D12: 1295977422.83429

tool: D77: 2.04411

tool: D182: 0.00523

tool: D99: 3600

tool: D181: 100.46645683

tool: {"D75": [0x80,0xe6,0x5b,0xed,0x24,0x51,0x77,0x3f]}

tool: {"D94": [0x39,0x9d,0x52,0xa2,0x46,0xdf,0x91,0x3f]}

tool: {"D132": [0.0,1.875]}

tool: {"D195": [0xf8,0xc1,0x63,0x1a,0xdc,0xa5,0x4c,0x40]}

tool: {"D22": [0.0,-0.0,0.0,0.0]}

tool: D248: 0.5

tool: {"D46": [0.0,0.0]}

tool: {"D97": [0.0,2.71875]}

assistant: ```c
double sidtime_long_term(double tjd_ut, double eps, double nut) {
  double tsid = 0, tjd_et;
  double dlon, xs[6], xobl[6], dhour, nutlo[2];
  double dlt = 1.49597870700e+11 / 2.99792458e+8 / 86400.0;
  double t, t2, t3;
  tjd_et = tjd_ut + swe_deltat_ex(tjd_ut, -1, NULL);
  t = (tjd_et - 2451545.0) / 365250.0;
  t2 = t * t;
  t3 = t * t2;
  dlon = 100.46645683 + (1295977422.83429 * t - 2.04411 * t2 - 0.00523 * t3) / 3600.0;
  dlon = swe_degnorm(dlon - dlt * 360.0 / 365.2425);
  xs[0] = dlon * (3.14159265358979323846 / 180.0);
  xs[1] = 0;
  xs[2] = 1;
  xobl[0] = 23.45;
  xobl[1] = 23.45;
  xobl[1] = swi_epsiln(2451545.0 + swe_deltat_ex(2451545.0, -1, NULL), 0) * (180.0 / 3.14159265358979323846);
  swi_polcart(xs, xs);
  swi_coortrf(xs, xs, -xobl[1] * (3.14159265358979323846 / 180.0));
  swi_precess(xs, tjd_et, 0, -1);
  xobl[1] = swi_epsiln(tjd_et, 0) * (180.0 / 3.14159265358979323846);
  swi_nutation(tjd_et, 0, nutlo);
  xobl[0] = xobl[1] + nutlo[1] * (180.0 / 3.14159265358979323846);
  xobl[2] = nutlo[0] * (180.0 / 3.14159265358979323846);
  swi_coortrf(xs, xs, xobl[1] * (3.14159265358979323846 / 180.0));
  swi_cartpol(xs, xs);
  xs[0] *= (180.0 / 3.14159265358979323846);
  dhour = fmod(tjd_ut - 0.5, 1) * 360;
  if (eps == 0)
    xs[0] += xobl[2] * cos(xobl[0] * (3.14159265358979323846 / 180.0));
  else
    xs[0] += nut * cos(eps * (3.14159265358979323846 / 180.0));
  xs[0] = swe_degnorm(xs[0] + dhour);
  tsid = xs[0] / 15;
  return tsid;
}
```