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    %rsi,%rbp
  mov    $0x5,%esi
  push   %rbx
  shr    $0x3,%ecx
  mov    %rdx,%rbx
  sub    $0x20,%rsp
  movsd  %xmm0,0x18(%rsp)
  movq   $0x0,(%rdx)
  movq   $0x0,0x78(%rdx)
  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  D305(%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  D182(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  cvtsi2sd %r12d,%xmm3
  mulsd  D273(%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  D182(%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  D452(%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  D258(%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  D455(%rip),%xmm0
  xor    %eax,%eax
  addsd  0x10(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  divsd  D194(%rip),%xmm0
  movsd  %xmm0,0x30(%rbx)
  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  D134(%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  D412(%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  D308(%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  D327(%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  D306(%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  D197(%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  D351(%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  D197(%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  D301(%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  D234(%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  D459(%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  D129(%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  D413(%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  D413(%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  D88(%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  D231(%rip),%xmm2
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sd %r12d,%xmm2
  mulsd  D2(%rip),%xmm2
  mulsd  %xmm2,%xmm0
  divsd  D194(%rip),%xmm0
  movsd  %xmm0,0x40(%rbx)
  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  D134(%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  D412(%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  D308(%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  D7(%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  D234(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  movapd %xmm0,%xmm6
  mulsd  %xmm2,%xmm6
  movsd  %xmm6,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  D129(%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  D311(%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  D197(%rip),%xmm0
  mov    $0x2,%edi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  movapd %xmm0,%xmm7
  mulsd  %xmm2,%xmm7
  movsd  %xmm7,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  D351(%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  D197(%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),%xmm1
  mov    $0x5,%esi
  mulsd  D301(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,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  D459(%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  D413(%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  D413(%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  D88(%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  D231(%rip),%xmm2
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sd %r12d,%xmm2
  mulsd  D2(%rip),%xmm2
  mulsd  %xmm2,%xmm0
  divsd  D194(%rip),%xmm0
  movsd  %xmm0,0x50(%rbx)
  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  D305(%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),%xmm6
  mov    $0x9,%esi
  cvtsi2sd %eax,%xmm0
  mov    $0x2,%edi
  xor    %eax,%eax
  mulsd  %xmm0,%xmm6
  movsd  %xmm6,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  D182(%rip),%xmm2
  cvtsi2sd %eax,%xmm3
  xor    %eax,%eax
  cvtsi2sd %r13d,%xmm0
  mulsd  D273(%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  D182(%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),%xmm4
  cvtsi2sd %r12d,%xmm0
  mov    $0x5,%esi
  mov    $0xfffffffe,%edi
  mulsd  D452(%rip),%xmm0
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm4
  movsd  %xmm4,0x10(%rsp)
  call   <SL_G2@plt>
  pxor   %xmm0,%xmm0
  mov    $0x2,%esi
  mov    $0xfffffffb,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  D258(%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  D455(%rip),%xmm0
  lea    0x78(%rbx),%rax
  addsd  0x10(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  divsd  D194(%rip),%xmm0
  movsd  %xmm0,0x60(%rbx)
  pxor   %xmm0,%xmm0
  movq   $0x0,0x78(%rbp)
  nopl   0x0(%rax)
L3:
  mulsd  %xmm1,%xmm0
  mov    %rax,%rdx
  sub    $0x8,%rax
  addsd  0x8(%rax),%xmm0
  movsd  %xmm0,0x78(%rbp)
  cmp    %rdx,%rbx
  jne    L3
  add    $0x20,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
```

tool_calls: name: read_data
arguments: label: D305
datatype: f64
name: read_data
arguments: label: D182
datatype: f64
name: read_data
arguments: label: D273
datatype: f64
name: read_data
arguments: label: D452
datatype: f64
name: read_data
arguments: label: D258
datatype: f64
name: read_data
arguments: label: D455
datatype: f64
name: read_data
arguments: label: D194
datatype: f64
name: read_data
arguments: label: D134
datatype: f64
name: read_data
arguments: label: D412
datatype: f64
name: read_data
arguments: label: D308
datatype: f64
name: read_data
arguments: label: D327
datatype: f64
name: read_data
arguments: label: D306
datatype: f64
name: read_data
arguments: label: D197
datatype: f64
name: read_data
arguments: label: D351
datatype: f64
name: read_data
arguments: label: D301
datatype: f64
name: read_data
arguments: label: D234
datatype: f64
name: read_data
arguments: label: D459
datatype: f64
name: read_data
arguments: label: D129
datatype: f64
name: read_data
arguments: label: D413
datatype: f64
name: read_data
arguments: label: D88
datatype: f64
name: read_data
arguments: label: D231
datatype: f64
name: read_data
arguments: label: D2
datatype: f32[2]
name: read_data
arguments: label: D7
datatype: f64
name: read_data
arguments: label: D311
datatype: f64

tool: D305: 4096

tool: D182: 525

tool: D273: 1620

tool: D452: 168

tool: D258: 700

tool: D455: 32

tool: D194: 21

tool: D134: 41580

tool: D412: 6480

tool: D308: 15120

tool: D327: 29890

tool: D306: 13475

tool: D197: 9800

tool: D351: 5880

tool: D301: 560

tool: D234: 7980

tool: D459: 2100

tool: D129: 7000

tool: D413: 2800

tool: D88: 2016

tool: D231: 128

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

tool: D7: 32340

tool: D311: 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];
}
```