user: Translate the below assembly code into C programming language:

```asm
<twobody_ZM_slip_15>:
  endbr64
  lea    0x8(%rdx),%rdi
  mov    %rdx,%rcx
  push   %r14
  xor    %eax,%eax
  push   %r13
  and    $0xfffffffffffffff8,%rdi
  push   %r12
  sub    %rdi,%rcx
  push   %rbp
  sub    $0xffffff80,%ecx
  mov    %rdx,%rbp
  push   %rbx
  shr    $0x3,%ecx
  mov    %rsi,%rbx
  mov    $0x5,%esi
  sub    $0x20,%rsp
  movq   $0x0,(%rdx)
  movq   $0x0,0x78(%rdx)
  movsd  %xmm0,0x18(%rsp)
  rep stos %rax,%es:(%rdi)
  xor    %edi,%edi
  call   <SL_G1@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x5,%esi
  cvtsi2sd %r12d,%xmm0
  mulsd  D462(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm5
  mov    $0x9,%esi
  cvtsi2sd %eax,%xmm0
  mov    $0x2,%edi
  xor    %eax,%eax
  mulsd  %xmm0,%xmm5
  movsd  %xmm5,0x8(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x2,%esi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G1@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  cvtsi2sd %r13d,%xmm0
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  mulsd  D23(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  cvtsi2sd %r12d,%xmm3
  mulsd  D91(%rip),%xmm3
  mulsd  %xmm2,%xmm0
  subsd  %xmm0,%xmm3
  movq   %xmm3,%r12
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  movq   %r12,%xmm6
  xor    %edi,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  D23(%rip),%xmm0
  mov    $0x2,%esi
  xor    %eax,%eax
  subsd  %xmm0,%xmm6
  movsd  %xmm6,0x10(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x5,%esi
  cvtsi2sd %r12d,%xmm0
  mulsd  D472(%rip),%xmm0
  mov    $0xfffffffe,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  addsd  0x10(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  movsd  0x10(%rsp),%xmm4
  mov    $0x2,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  D275(%rip),%xmm0
  mov    $0xfffffffb,%edi
  xor    %eax,%eax
  addsd  %xmm0,%xmm4
  movsd  %xmm4,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  mov    $0x5,%esi
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  D408(%rip),%xmm0
  xor    %eax,%eax
  addsd  0x10(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  divsd  D492(%rip),%xmm0
  movsd  %xmm0,0x30(%rbp)
  call   <SL_G2@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G1@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x9,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D260(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  movsd  0x8(%rsp),%xmm5
  xor    %eax,%eax
  mulsd  %xmm0,%xmm5
  movq   %xmm5,%r13
  call   <SL_G2@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r14d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x9,%esi
  cvtsi2sd %r14d,%xmm0
  mulsd  D326(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  movq   %r13,%xmm6
  mov    $0x4,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x8(%rsp),%xmm0
  mov    $0xffffffff,%edi
  xor    %eax,%eax
  subsd  %xmm0,%xmm6
  movsd  %xmm6,0x8(%rsp)
  call   <SL_G2@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x9,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D128(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D490(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  mov    $0x7,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D64(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffe,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D241(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  movapd %xmm0,%xmm4
  mulsd  %xmm2,%xmm4
  movsd  %xmm4,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm5
  xor    %eax,%eax
  addsd  %xmm0,%xmm5
  movsd  %xmm5,0x8(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D383(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  mov    $0x4,%esi
  mov    $0xffffffff,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D241(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffb,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  cvtsi2sd %r13d,%xmm0
  movsd  0x8(%rsp),%xmm7
  mov    $0x5,%esi
  mulsd  D318(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm7
  movsd  %xmm7,0x8(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D319(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  xor    %edi,%edi
  mov    $0x7,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D182(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  movapd %xmm0,%xmm5
  mulsd  %xmm2,%xmm5
  movsd  %xmm5,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  mov    $0x4,%esi
  mov    $0xffffffff,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  xor    %edi,%edi
  mov    $0x7,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D450(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffe,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D335(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffe,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  mov    $0x4,%esi
  mov    $0xffffffff,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D335(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  xor    %edi,%edi
  cvtsi2sd %r13d,%xmm2
  mulsd  D315(%rip),%xmm2
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffb,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  movsd  0x8(%rsp),%xmm0
  cvtsi2sd %r13d,%xmm2
  mov    $0x5,%esi
  mov    $0x2,%edi
  mulsd  D219(%rip),%xmm2
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sd %r12d,%xmm2
  mulsd  D54(%rip),%xmm2
  mulsd  %xmm2,%xmm0
  divsd  D492(%rip),%xmm0
  movsd  %xmm0,0x40(%rbp)
  call   <SL_G1@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G2@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x9,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D260(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  movsd  0x8(%rsp),%xmm7
  xor    %eax,%eax
  mulsd  %xmm0,%xmm7
  movq   %xmm7,%r13
  call   <SL_G1@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r14d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x9,%esi
  cvtsi2sd %r14d,%xmm0
  mulsd  D326(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  movq   %r13,%xmm5
  mov    $0x4,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x8(%rsp),%xmm0
  mov    $0xffffffff,%edi
  xor    %eax,%eax
  subsd  %xmm0,%xmm5
  movsd  %xmm5,0x8(%rsp)
  call   <SL_G1@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x9,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D128(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D217(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D319(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  movapd %xmm0,%xmm7
  mulsd  %xmm2,%xmm7
  movsd  %xmm7,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  mov    $0x4,%esi
  mov    $0xffffffff,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D450(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  mov    $0x7,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D78(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  xor    %eax,%eax
  mov    $0xfffffffe,%edi
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D241(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  movapd %xmm0,%xmm1
  mulsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm5
  xor    %eax,%eax
  addsd  %xmm0,%xmm5
  movsd  %xmm5,0x8(%rsp)
  call   <SL_G2@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D383(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  mov    $0x4,%esi
  mov    $0xffffffff,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x7,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D241(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffb,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  cvtsi2sd %r13d,%xmm0
  movsd  0x8(%rsp),%xmm4
  mov    $0x5,%esi
  mulsd  D318(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm4
  movsd  %xmm4,0x8(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x7,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm0
  mulsd  D182(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  mov    $0x5,%esi
  mov    $0xfffffffe,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D335(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffe,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  mov    $0x4,%esi
  mov    $0xffffffff,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  mov    $0x5,%esi
  cvtsi2sd %r13d,%xmm2
  mulsd  D335(%rip),%xmm2
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  xor    %edi,%edi
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G1@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  xor    %edi,%edi
  cvtsi2sd %r13d,%xmm2
  mulsd  D315(%rip),%xmm2
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x8(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  mov    $0x5,%esi
  cvtsi2sd %eax,%xmm2
  mulsd  0x8(%rsp),%xmm2
  mov    $0xfffffffb,%edi
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G2@plt>
  xor    %edi,%edi
  mov    $0x5,%esi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  xor    %edi,%edi
  cvtsi2sd %r13d,%xmm2
  movsd  0x8(%rsp),%xmm0
  mov    $0x5,%esi
  mulsd  D219(%rip),%xmm2
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sd %r12d,%xmm2
  mulsd  D54(%rip),%xmm2
  mulsd  %xmm2,%xmm0
  divsd  D492(%rip),%xmm0
  movsd  %xmm0,0x50(%rbp)
  call   <SL_G2@plt>
  mov    $0x5,%esi
  mov    $0x2,%edi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  mov    $0x5,%esi
  cvtsi2sd %r12d,%xmm0
  mulsd  D462(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  call   <SL_G1@plt>
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm7
  mov    $0x9,%esi
  cvtsi2sd %eax,%xmm0
  mov    $0x2,%edi
  xor    %eax,%eax
  mulsd  %xmm0,%xmm7
  movsd  %xmm7,0x8(%rsp)
  call   <SL_G2@plt>
  mov    $0x2,%esi
  xor    %edi,%edi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <SL_G2@plt>
  mov    $0x7,%esi
  mov    $0x2,%edi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  pxor   %xmm3,%xmm3
  xor    %edi,%edi
  cvtsi2sd %r12d,%xmm2
  pxor   %xmm0,%xmm0
  mov    $0x7,%esi
  mulsd  D23(%rip),%xmm2
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  cvtsi2sd %r13d,%xmm0
  mulsd  D91(%rip),%xmm0
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm2,%xmm2
  mov    $0x2,%esi
  xor    %edi,%edi
  cvtsi2sd %eax,%xmm2
  mulsd  D23(%rip),%xmm2
  movsd  0x10(%rsp),%xmm0
  xor    %eax,%eax
  subsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  mov    $0x5,%esi
  xor    %edi,%edi
  mov    %eax,%r12d
  xor    %eax,%eax
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm5
  cvtsi2sd %r12d,%xmm0
  mov    $0x5,%esi
  mov    $0xfffffffe,%edi
  mulsd  D472(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm5
  movsd  %xmm5,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  mov    $0x2,%esi
  mov    $0xfffffffb,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  D275(%rip),%xmm0
  xor    %eax,%eax
  addsd  0x10(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  movsd  0x18(%rsp),%xmm1
  cvtsi2sd %eax,%xmm0
  mulsd  D408(%rip),%xmm0
  addsd  0x10(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  divsd  D492(%rip),%xmm0
  movsd  %xmm0,0x60(%rbp)
  pxor   %xmm0,%xmm0
  mulsd  %xmm1,%xmm0
  movq   $0x0,0x78(%rbx)
  addsd  0x78(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x70(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x68(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x60(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x58(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x50(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x48(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x40(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x38(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x30(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x28(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x20(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x18(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x10(%rbp),%xmm0
  movsd  %xmm0,0x78(%rbx)
  mulsd  %xmm1,%xmm0
  addsd  0x8(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm0,0x78(%rbx)
  addsd  0x0(%rbp),%xmm1
  movsd  %xmm1,0x78(%rbx)
  add    $0x20,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
```

tool_calls: name: read_data
arguments: label: D462
data_type: f64
name: read_data
arguments: label: D23
data_type: f64
name: read_data
arguments: label: D91
data_type: f64
name: read_data
arguments: label: D472
data_type: f64
name: read_data
arguments: label: D275
data_type: f64
name: read_data
arguments: label: D408
data_type: f64
name: read_data
arguments: label: D492
data_type: f64
name: read_data
arguments: label: D260
data_type: f64
name: read_data
arguments: label: D326
data_type: f64
name: read_data
arguments: label: D128
data_type: f64
name: read_data
arguments: label: D490
data_type: f64
name: read_data
arguments: label: D64
data_type: f64
name: read_data
arguments: label: D241
data_type: f64
name: read_data
arguments: label: D383
data_type: f64
name: read_data
arguments: label: D318
data_type: f64
name: read_data
arguments: label: D319
data_type: f64
name: read_data
arguments: label: D182
data_type: f64
name: read_data
arguments: label: D450
data_type: f64
name: read_data
arguments: label: D335
data_type: f64
name: read_data
arguments: label: D315
data_type: f64
name: read_data
arguments: label: D219
data_type: f64
name: read_data
arguments: label: D54
data_type: f32[2]
name: read_data
arguments: label: D217
data_type: f64
name: read_data
arguments: label: D78
data_type: f64

tool: D462: 4096

tool: D23: 525

tool: D91: 1620

tool: D472: 168

tool: D275: 700

tool: D408: 32

tool: D492: 21

tool: D260: 41580

tool: D326: 6480

tool: D128: 15120

tool: D490: 29890

tool: D64: 13475

tool: D241: 9800

tool: D383: 5880

tool: D318: 560

tool: D319: 7980

tool: D182: 2100

tool: D450: 7000

tool: D335: 2800

tool: D315: 2016

tool: D219: 128

tool: {"D54": [0.0,-4.5]}

tool: D217: 32340

tool: D78: 11025

assistant: ```c
void twobody_ZM_slip_15(int n, double l, double *f, double *fk) {
  int q;
  for (q = 0; q <= 15; q++)
    fk[q] = 0.0;
  fk[6] = 4096.0 * SL_G1(0, 5) * SL_G2(2, 5) * SL_G2(2, 5) * (1620.0 * SL_G1(2, 9) - 525.0 * SL_G1(0, 2) * SL_G1(2, 7) - 525.0 * SL_G1(0, 7) + 168.0 * SL_G1(0, 2) * SL_G1(0, 5) + 700.0 * SL_G1(-2, 5) + 32.0 * SL_G1(-5, 2)) / 21.0;
  fk[8] = -1024.0 * SL_G2(2, 5) * (41580.0 * SL_G1(2, 5) * SL_G2(2, 7) * SL_G1(2, 9) - 6480.0 * SL_G2(0, 5) * SL_G1(2, 5) * SL_G1(2, 9) + 15120.0 * SL_G2(-1, 4) * SL_G1(2, 5) * SL_G1(2, 9) - 29890.0 * SL_G1(0, 5) * SL_G1(2, 7) * SL_G2(2, 7) - 13475.0 * SL_G1(0, 7) * SL_G1(2, 5) * SL_G2(2, 7) + 9800.0 * SL_G1(-2, 5) * SL_G1(2, 5) * SL_G2(2, 7) + 5880.0 * SL_G1(0, 5) * SL_G1(0, 5) * SL_G2(2, 7) - 9800.0 * SL_G1(-1, 4) * SL_G1(0, 5) * SL_G2(2, 7) + 560.0 * SL_G1(-5, 5) * SL_G2(2, 7) + 7980.0 * SL_G1(0, 5) * SL_G2(0, 5) * SL_G1(2, 7) + 2100.0 * SL_G2(0, 5) * SL_G1(0, 7) * SL_G1(2, 5) - 7000.0 * SL_G2(-1, 4) * SL_G1(0, 7) * SL_G1(2, 5) - 2800.0 * SL_G1(-2, 5) * SL_G2(0, 5) * SL_G1(2, 5) - 2800.0 * SL_G1(-2, 5) * SL_G2(-1, 4) * SL_G1(2, 5) - 2016.0 * SL_G1(0, 5) * SL_G1(0, 5) * SL_G2(0, 5) - 128.0 * SL_G1(-5, 5) * SL_G2(0, 5)) / 21.0;
  fk[10] = -1024.0 * SL_G1(2, 5) * (41580.0 * SL_G2(2, 5) * SL_G1(2, 7) * SL_G2(2, 9) - 6480.0 * SL_G1(0, 5) * SL_G2(2, 5) * SL_G2(2, 9) + 15120.0 * SL_G1(-1, 4) * SL_G2(2, 5) * SL_G2(2, 9) - 32340.0 * SL_G2(0, 5) * SL_G1(2, 7) * SL_G2(2, 7) + 7980.0 * SL_G1(0, 5) * SL_G2(0, 5) * SL_G2(2, 7) - 7000.0 * SL_G1(-1, 4) * SL_G2(0, 5) * SL_G2(2, 7) - 11025.0 * SL_G2(0, 7) * SL_G2(2, 5) * SL_G1(2, 7) + 9800.0 * SL_G2(-2, 5) * SL_G2(2, 5) * SL_G1(2, 7) + 5880.0 * SL_G2(0, 5) * SL_G2(0, 5) * SL_G1(2, 7) - 9800.0 * SL_G2(-1, 4) * SL_G2(0, 5) * SL_G1(2, 7) + 560.0 * SL_G2(-5, 5) * SL_G1(2, 7) + 2100.0 * SL_G1(0, 5) * SL_G2(0, 7) * SL_G2(2, 5) - 2800.0 * SL_G2(-2, 5) * SL_G1(0, 5) * SL_G2(2, 5) - 2800.0 * SL_G2(-2, 5) * SL_G1(-1, 4) * SL_G2(2, 5) - 2016.0 * SL_G1(0, 5) * SL_G2(0, 5) * SL_G2(0, 5) - 128.0 * SL_G2(-5, 5) * SL_G1(0, 5)) / 21.0;
  fk[12] = 4096.0 * SL_G2(0, 5) * SL_G1(2, 5) * SL_G1(2, 5) * (1620.0 * SL_G2(2, 9) - 525.0 * SL_G2(0, 2) * SL_G2(2, 7) - 525.0 * SL_G2(0, 7) + 168.0 * SL_G2(0, 2) * SL_G2(0, 5) + 700.0 * SL_G2(-2, 5) + 32.0 * SL_G2(-5, 2)) / 21.0;
  f[15] = 0.0;
  for (q = 0; q <= 15; q++)
    f[15] = f[15] * l + fk[15 - q];
}
```