#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int cos(double);
double range(double);
double rangerad(double);
int sin(int);
void moonpos(double d, double *lambda, double *beta, double *rvec) {
  double dl, dB, dR, L, D, M, M1, F, e, lm, bm, rm, t;
  t = d / 36525;
  L = range(218.3164591 + 481267.88134236 * t) * 0.0174532925199433;
  D = range(297.8502042 + 445267.1115168 * t) * 0.0174532925199433;
  M = range(357.5291092 + 35999.0502909 * t) * 0.0174532925199433;
  M1 = range(134.9634114 + 477198.8676313 * t - .008997 * t * t) *
       0.0174532925199433;
  F = range(93.27209929999999 + 483202.0175273 * t - .0034029 * t * t) *
      0.0174532925199433;
  e = 1 - .002516 * t;
  dl = 6288774 * sin(M1);
  dl += 1274027 * sin(2 * D - M1);
  dl += 658314 * sin(2 * D);
  dl += 213618 * sin(2 * M1);
  dl -= e * 185116 * sin(M);
  dl -= 114332 * sin(2 * F);
  dl += 58793 * sin(2 * D - 2 * M1);
  dl += e * 57066 * sin(2 * D - M - M1);
  dl += 53322 * sin(2 * D + M1);
  dl += e * 45758 * sin(2 * D - M);
  dl -= e * 40923 * sin(M - M1);
  dl -= 34720 * sin(D);
  dl -= e * 30383 * sin(M + M1);
  dl += 15327 * sin(2 * D - 2 * F);
  dl -= 12528 * sin(M1 + 2 * F);
  dl += 10980 * sin(M1 - 2 * F);
  lm = rangerad(L + dl / 1000000 * 0.0174532925199433);
  dB = 5128122 * sin(F);
  dB += 280602 * sin(M1 + F);
  dB += 277693 * sin(M1 - F);
  dB += 173237 * sin(2 * D - F);
  dB += 55413 * sin(2 * D - M1 + F);
  dB += 46271 * sin(2 * D - M1 - F);
  dB += 32573 * sin(2 * D + F);
  dB += 17198 * sin(2 * M1 + F);
  dB += 9266 * sin(2 * D + M1 - F);
  dB += 8822 * sin(2 * M1 - F);
  dB += e * 8216 * sin(2 * D - M - F);
  dB += 4324 * sin(2 * D - 2 * M1 - F);
  bm = dB / 1000000 * 0.0174532925199433;
  dR = -20905355 * cos(M1);
  dR -= 3699111 * cos(2 * D - M1);
  dR -= 2955968 * cos(2 * D);
  dR -= 569925 * cos(2 * M1);
  dR += e * 48888 * cos(M);
  dR -= 3149 * cos(2 * F);
  dR += 246158 * cos(2 * D - 2 * M1);
  dR -= e * 152138 * cos(2 * D - M - M1);
  dR -= 170733 * cos(2 * D + M1);
  dR -= e * 204586 * cos(2 * D - M);
  dR -= e * 129620 * cos(M - M1);
  dR += 108743 * cos(D);
  dR += e * 104755 * cos(M + M1);
  dR += 79661 * cos(M1 - 2 * F);
  rm = 385000.56 + dR / 1000;
  *lambda = lm;
  *beta = bm;
  *rvec = rm / 6378.14;
}


x86 assembly (clang, -O0):
<moonpos>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
movsd  %xmm0,-0x8(%rbp)
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xf8f(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xf63(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf5f(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1040 <range@plt>
movsd  0xea6(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xf1d(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf19(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1040 <range@plt>
movsd  0xe70(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xed7(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xed3(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1040 <range@plt>
movsd  0xe3a(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x88(%rbp),%xmm1
ff
movsd  0xe91(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xe8d(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0xe71(%rip),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1040 <range@plt>
movsd  0xdcd(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x88(%rbp),%xmm1
ff
movsd  0xe0c(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xe08(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0xdec(%rip),%xmm0
mulsd  -0x88(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1040 <range@plt>
movsd  0xd60(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x88(%rbp),%xmm0
ff
movsd  0xd87(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd83(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
cvttsd2si -0x58(%rbp),%edi
call   1030 <sin@plt>
imul   $0x5ff586,%eax,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x1370ab,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xcbb(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xa0b8a,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xc91(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x34272,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xcaf(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
cvttsd2si -0x50(%rbp),%edi
call   1030 <sin@plt>
movsd  -0xe0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x28(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xc13(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x1be9c,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x28(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  0xbe0(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xe5a9,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xbd7(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x58(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
movsd  -0xd8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xd04a,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xb36(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
movsd  -0xd0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xac9(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
movsd  -0xc8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x28(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
cvttsd2si -0x48(%rbp),%edi
call   1030 <sin@plt>
imul   $0x87a0,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x28(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xa42(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
movsd  -0xc0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x28(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  0x9b8(%rip),%xmm1
mulsd  -0x60(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x3bdf,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x30f0,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x28(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
addsd  %xmm1,%xmm1
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2ae4,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x40(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x91b(%rip),%xmm2
divsd  %xmm2,%xmm0
movsd  0x907(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1050 <rangerad@plt>
movsd  %xmm0,-0x70(%rbp)
cvttsd2si -0x60(%rbp),%edi
call   1030 <sin@plt>
imul   $0x4e3fba,%eax,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x58(%rbp),%xmm0
addsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x4481a,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x58(%rbp),%xmm0
subsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x43cbd,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2a4b5,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xd875,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xb4bf,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x7f3d,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x432e,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2432,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2276,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0x6e2(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
movsd  -0xb8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x30(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  0x653(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x10e4,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0x618(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0x604(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x58(%rbp),%xmm0
call   1060 <cos@plt>
imul   $0xfec10275,%eax,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1060 <cos@plt>
imul   $0x3871a7,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x38(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x584(%rip),%xmm0
mulsd  -0x48(%rbp),%xmm0
call   1060 <cos@plt>
imul   $0x2d1ac0,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x38(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x55a(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
call   1060 <cos@plt>
imul   $0x8b245,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x38(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x538(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0xb0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x38(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x4f3(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
call   1060 <cos@plt>
imul   $0xc4d,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x38(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  0x4c4(%rip),%xmm1
mulsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1060 <cos@plt>
imul   $0x3c18e,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x477(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
subsd  -0x58(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0xa8(%rbp),%xmm0
cvtsi2sd %eax,%xmm2
movsd  -0x38(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1060 <cos@plt>
imul   $0x29aed,%eax,%eax
cvtsi2sd %eax,%xmm1
movsd  -0x38(%rbp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x3c3(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1060 <cos@plt>
movsd  -0xa0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x38(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x343(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0x98(%rbp),%xmm0
cvtsi2sd %eax,%xmm2
movsd  -0x38(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x48(%rbp),%xmm0
call   1060 <cos@plt>
imul   $0x1a8c7,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0x2c4(%rip),%xmm0
mulsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
call   1060 <cos@plt>
movsd  -0x90(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
movsd  -0x38(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
addsd  %xmm1,%xmm1
subsd  %xmm1,%xmm0
call   1060 <cos@plt>
imul   $0x1372d,%eax,%eax
cvtsi2sd %eax,%xmm0
addsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm1
movsd  0x24a(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0x236(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x70(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x80(%rbp),%xmm0
movsd  0x1fe(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<moonpos>:
push   %r15
push   %r14
push   %rbx
sub    $0xa0,%rsp
mov    %rdx,%r14
mov    %rsi,%r15
mov    %rdi,%rbx
movapd %xmm0,%xmm1
divsd  0xe9f(%rip),%xmm1
movsd  %xmm1,0x18(%rsp)
movsd  0xe99(%rip),%xmm0
mulsd  %xmm1,%xmm0
addsd  0xe95(%rip),%xmm0
call   1040 <range@plt>
mulsd  0xe90(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xe8a(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
addsd  0xe84(%rip),%xmm0
call   1040 <range@plt>
mulsd  0xe67(%rip),%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0xe71(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
addsd  0xe6b(%rip),%xmm0
call   1040 <range@plt>
mulsd  0xe3e(%rip),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0xe58(%rip),%xmm1
movsd  0x18(%rsp),%xmm2
mulsd  %xmm2,%xmm1
addsd  0xe4e(%rip),%xmm1
movsd  0xe4e(%rip),%xmm0
mulsd  %xmm2,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1040 <range@plt>
mulsd  0xdfd(%rip),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0xe2f(%rip),%xmm1
movsd  0x18(%rsp),%xmm2
mulsd  %xmm2,%xmm1
addsd  0xe25(%rip),%xmm1
movsd  0xe25(%rip),%xmm0
mulsd  %xmm2,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1040 <range@plt>
mulsd  0xdbc(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
mulsd  0xe00(%rip),%xmm0
addsd  0xe00(%rip),%xmm0
movsd  %xmm0,0x18(%rsp)
cvttsd2si 0x28(%rsp),%edi
call   1030 <sin@plt>
imul   $0x5ff586,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0x70(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x40(%rsp)
subsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x68(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x1370ab,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
cvttsd2si 0x40(%rsp),%edi
call   1030 <sin@plt>
imul   $0xa0b8a,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x38(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x34272,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
cvttsd2si 0x50(%rsp),%edi
call   1030 <sin@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xd36(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x30(%rsp),%xmm1
movsd  %xmm1,0x48(%rsp)
movsd  0x8(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x30(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x1be9c,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x48(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x48(%rsp)
movsd  0x40(%rsp),%xmm0
subsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x78(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xe5a9,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x48(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0xcb6(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x40(%rsp),%xmm0
subsd  0x50(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
subsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x98(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x58(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x40(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x58(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xd04a,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0xc33(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
cvttsd2si 0x48(%rsp),%edi
call   1030 <sin@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x60(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x50(%rsp),%xmm0
subsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x60(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xbe1(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
cvttsd2si 0x70(%rsp),%edi
call   1030 <sin@plt>
imul   $0x87a0,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x50(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x90(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xb7e(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x20(%rsp),%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x40(%rsp),%xmm0
subsd  0x30(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x3bdf,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x30(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x30f0,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x28(%rsp),%xmm0
subsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x88(%rsp)
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2ae4,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x20(%rsp),%xmm0
divsd  0xad7(%rip),%xmm0
mulsd  0xa3f(%rip),%xmm0
addsd  0x10(%rsp),%xmm0
call   1050 <rangerad@plt>
movsd  %xmm0,0x20(%rsp)
cvttsd2si 0x8(%rsp),%edi
call   1030 <sin@plt>
imul   $0x4e3fba,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x4481a,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x28(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x43cbd,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x40(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2a4b5,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x68(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xd875,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x68(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0xb4bf,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x40(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x7f3d,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x38(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x432e,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x58(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2432,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x38(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x2276,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x902(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x48(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x80(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x78(%rsp),%xmm0
subsd  0x8(%rsp),%xmm0
cvttsd2si %xmm0,%edi
call   1030 <sin@plt>
imul   $0x10e4,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x10(%rsp),%xmm0
divsd  0x88a(%rip),%xmm0
mulsd  0x7f2(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x28(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0xfec10275,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x68(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x3871a7,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x40(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x2d1ac0,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x38(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x8b245,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x7ee(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x50(%rsp),%xmm0
call   1060 <cos@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x30(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0xc4d,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x78(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x3c18e,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x98(%rsp),%xmm0
call   1060 <cos@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x75d(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x58(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x29aed,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x48(%rsp),%xmm0
call   1060 <cos@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x70d(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x60(%rsp),%xmm0
call   1060 <cos@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x6e5(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x70(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x1a8c7,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
mulsd  0x6a5(%rip),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x90(%rsp),%xmm0
call   1060 <cos@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x18(%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x88(%rsp),%xmm0
call   1060 <cos@plt>
imul   $0x1372d,%eax,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x18(%rsp),%xmm0
divsd  0x657(%rip),%xmm0
addsd  0x657(%rip),%xmm0
movsd  0x20(%rsp),%xmm1
movsd  %xmm1,(%rbx)
movsd  0x10(%rsp),%xmm1
movsd  %xmm1,(%r15)
divsd  0x642(%rip),%xmm0
movsd  %xmm0,(%r14)
add    $0xa0,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define void @moonpos(double %0, double* %1, double* %2, double* %3) {
%5 = alloca double
%6 = alloca double*
%7 = alloca double*
%8 = alloca double*
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
store double %0, double* %5
store double* %1, double** %6
store double* %2, double** %7
store double* %3, double** %8
%22 = load double, double* %5
%23 = fdiv double %22, 3.652500e+04
store double %23, double* %21
%24 = load double, double* %21
%25 = call double @llvm.fmuladd.f64(double 0x411D5FCF867E9C93, double %24, double 0x406B4A206ED5A0B1)
%26 = call double @range(double %25)
%27 = fmul double %26, 0x3F91DF46A2529D3A
store double %27, double* %12
%28 = load double, double* %21
%29 = call double @llvm.fmuladd.f64(double 0x411B2D4C723175C4, double %28, double 0x40729D9A6FB81EC0)
%30 = call double @range(double %29)
%31 = fmul double %30, 0x3F91DF46A2529D3A
store double %31, double* %13
%32 = load double, double* %21
%33 = call double @llvm.fmuladd.f64(double 0x40E193E19BFBA959, double %32, double 0x407658773B356034)
%34 = call double @range(double %33)
%35 = fmul double %34, 0x3F91DF46A2529D3A
store double %35, double* %14
%36 = load double, double* %21
%37 = call double @llvm.fmuladd.f64(double 0x411D203B787456EA, double %36, double 0x4060DED44424F2FF)
%38 = load double, double* %21
%39 = fmul double 0x3F826D04E618CE2D, %38
%40 = load double, double* %21
%41 = fneg double %39
%42 = call double @llvm.fmuladd.f64(double %41, double %40, double %37)
%43 = call double @range(double %42)
%44 = fmul double %43, 0x3F91DF46A2529D3A
store double %44, double* %15
%45 = load double, double* %21
%46 = call double @llvm.fmuladd.f64(double 0x411D7E0811F2AD31, double %45, double 0x4057516A132EB0ED)
%47 = load double, double* %21
%48 = fmul double 3.402900e-03, %47
%49 = load double, double* %21
%50 = fneg double %48
%51 = call double @llvm.fmuladd.f64(double %50, double %49, double %46)
%52 = call double @range(double %51)
%53 = fmul double %52, 0x3F91DF46A2529D3A
store double %53, double* %16
%54 = load double, double* %21
%55 = call double @llvm.fmuladd.f64(double -2.516000e-03, double %54, double 1.000000e+00)
store double %55, double* %17
%56 = load double, double* %15
%57 = fptosi double %56 to i32
%58 = call i32 @sin(i32 %57)
%59 = mul nsw i32 6288774, %58
%60 = sitofp i32 %59 to double
store double %60, double* %9
%61 = load double, double* %13
%62 = load double, double* %15
%63 = fneg double %62
%64 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %61, double %63)
%65 = fptosi double %64 to i32
%66 = call i32 @sin(i32 %65)
%67 = mul nsw i32 1274027, %66
%68 = sitofp i32 %67 to double
%69 = load double, double* %9
%70 = fadd double %69, %68
store double %70, double* %9
%71 = load double, double* %13
%72 = fmul double 2.000000e+00, %71
%73 = fptosi double %72 to i32
%74 = call i32 @sin(i32 %73)
%75 = mul nsw i32 658314, %74
%76 = sitofp i32 %75 to double
%77 = load double, double* %9
%78 = fadd double %77, %76
store double %78, double* %9
%79 = load double, double* %15
%80 = fmul double 2.000000e+00, %79
%81 = fptosi double %80 to i32
%82 = call i32 @sin(i32 %81)
%83 = mul nsw i32 213618, %82
%84 = sitofp i32 %83 to double
%85 = load double, double* %9
%86 = fadd double %85, %84
store double %86, double* %9
%87 = load double, double* %17
%88 = fmul double %87, 1.851160e+05
%89 = load double, double* %14
%90 = fptosi double %89 to i32
%91 = call i32 @sin(i32 %90)
%92 = sitofp i32 %91 to double
%93 = load double, double* %9
%94 = fneg double %88
%95 = call double @llvm.fmuladd.f64(double %94, double %92, double %93)
store double %95, double* %9
%96 = load double, double* %16
%97 = fmul double 2.000000e+00, %96
%98 = fptosi double %97 to i32
%99 = call i32 @sin(i32 %98)
%100 = mul nsw i32 114332, %99
%101 = sitofp i32 %100 to double
%102 = load double, double* %9
%103 = fsub double %102, %101
store double %103, double* %9
%104 = load double, double* %13
%105 = load double, double* %15
%106 = fmul double 2.000000e+00, %105
%107 = fneg double %106
%108 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %104, double %107)
%109 = fptosi double %108 to i32
%110 = call i32 @sin(i32 %109)
%111 = mul nsw i32 58793, %110
%112 = sitofp i32 %111 to double
%113 = load double, double* %9
%114 = fadd double %113, %112
store double %114, double* %9
%115 = load double, double* %17
%116 = fmul double %115, 5.706600e+04
%117 = load double, double* %13
%118 = load double, double* %14
%119 = fneg double %118
%120 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %117, double %119)
%121 = load double, double* %15
%122 = fsub double %120, %121
%123 = fptosi double %122 to i32
%124 = call i32 @sin(i32 %123)
%125 = sitofp i32 %124 to double
%126 = load double, double* %9
%127 = call double @llvm.fmuladd.f64(double %116, double %125, double %126)
store double %127, double* %9
%128 = load double, double* %13
%129 = load double, double* %15
%130 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %128, double %129)
%131 = fptosi double %130 to i32
%132 = call i32 @sin(i32 %131)
%133 = mul nsw i32 53322, %132
%134 = sitofp i32 %133 to double
%135 = load double, double* %9
%136 = fadd double %135, %134
store double %136, double* %9
%137 = load double, double* %17
%138 = fmul double %137, 4.575800e+04
%139 = load double, double* %13
%140 = load double, double* %14
%141 = fneg double %140
%142 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %139, double %141)
%143 = fptosi double %142 to i32
%144 = call i32 @sin(i32 %143)
%145 = sitofp i32 %144 to double
%146 = load double, double* %9
%147 = call double @llvm.fmuladd.f64(double %138, double %145, double %146)
store double %147, double* %9
%148 = load double, double* %17
%149 = fmul double %148, 4.092300e+04
%150 = load double, double* %14
%151 = load double, double* %15
%152 = fsub double %150, %151
%153 = fptosi double %152 to i32
%154 = call i32 @sin(i32 %153)
%155 = sitofp i32 %154 to double
%156 = load double, double* %9
%157 = fneg double %149
%158 = call double @llvm.fmuladd.f64(double %157, double %155, double %156)
store double %158, double* %9
%159 = load double, double* %13
%160 = fptosi double %159 to i32
%161 = call i32 @sin(i32 %160)
%162 = mul nsw i32 34720, %161
%163 = sitofp i32 %162 to double
%164 = load double, double* %9
%165 = fsub double %164, %163
store double %165, double* %9
%166 = load double, double* %17
%167 = fmul double %166, 3.038300e+04
%168 = load double, double* %14
%169 = load double, double* %15
%170 = fadd double %168, %169
%171 = fptosi double %170 to i32
%172 = call i32 @sin(i32 %171)
%173 = sitofp i32 %172 to double
%174 = load double, double* %9
%175 = fneg double %167
%176 = call double @llvm.fmuladd.f64(double %175, double %173, double %174)
store double %176, double* %9
%177 = load double, double* %13
%178 = load double, double* %16
%179 = fmul double 2.000000e+00, %178
%180 = fneg double %179
%181 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %177, double %180)
%182 = fptosi double %181 to i32
%183 = call i32 @sin(i32 %182)
%184 = mul nsw i32 15327, %183
%185 = sitofp i32 %184 to double
%186 = load double, double* %9
%187 = fadd double %186, %185
store double %187, double* %9
%188 = load double, double* %15
%189 = load double, double* %16
%190 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %189, double %188)
%191 = fptosi double %190 to i32
%192 = call i32 @sin(i32 %191)
%193 = mul nsw i32 12528, %192
%194 = sitofp i32 %193 to double
%195 = load double, double* %9
%196 = fsub double %195, %194
store double %196, double* %9
%197 = load double, double* %15
%198 = load double, double* %16
%199 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %198, double %197)
%200 = fptosi double %199 to i32
%201 = call i32 @sin(i32 %200)
%202 = mul nsw i32 10980, %201
%203 = sitofp i32 %202 to double
%204 = load double, double* %9
%205 = fadd double %204, %203
store double %205, double* %9
%206 = load double, double* %12
%207 = load double, double* %9
%208 = fdiv double %207, 1.000000e+06
%209 = call double @llvm.fmuladd.f64(double %208, double 0x3F91DF46A2529D3A, double %206)
%210 = call double @rangerad(double %209)
store double %210, double* %18
%211 = load double, double* %16
%212 = fptosi double %211 to i32
%213 = call i32 @sin(i32 %212)
%214 = mul nsw i32 5128122, %213
%215 = sitofp i32 %214 to double
store double %215, double* %10
%216 = load double, double* %15
%217 = load double, double* %16
%218 = fadd double %216, %217
%219 = fptosi double %218 to i32
%220 = call i32 @sin(i32 %219)
%221 = mul nsw i32 280602, %220
%222 = sitofp i32 %221 to double
%223 = load double, double* %10
%224 = fadd double %223, %222
store double %224, double* %10
%225 = load double, double* %15
%226 = load double, double* %16
%227 = fsub double %225, %226
%228 = fptosi double %227 to i32
%229 = call i32 @sin(i32 %228)
%230 = mul nsw i32 277693, %229
%231 = sitofp i32 %230 to double
%232 = load double, double* %10
%233 = fadd double %232, %231
store double %233, double* %10
%234 = load double, double* %13
%235 = load double, double* %16
%236 = fneg double %235
%237 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %234, double %236)
%238 = fptosi double %237 to i32
%239 = call i32 @sin(i32 %238)
%240 = mul nsw i32 173237, %239
%241 = sitofp i32 %240 to double
%242 = load double, double* %10
%243 = fadd double %242, %241
store double %243, double* %10
%244 = load double, double* %13
%245 = load double, double* %15
%246 = fneg double %245
%247 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %244, double %246)
%248 = load double, double* %16
%249 = fadd double %247, %248
%250 = fptosi double %249 to i32
%251 = call i32 @sin(i32 %250)
%252 = mul nsw i32 55413, %251
%253 = sitofp i32 %252 to double
%254 = load double, double* %10
%255 = fadd double %254, %253
store double %255, double* %10
%256 = load double, double* %13
%257 = load double, double* %15
%258 = fneg double %257
%259 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %256, double %258)
%260 = load double, double* %16
%261 = fsub double %259, %260
%262 = fptosi double %261 to i32
%263 = call i32 @sin(i32 %262)
%264 = mul nsw i32 46271, %263
%265 = sitofp i32 %264 to double
%266 = load double, double* %10
%267 = fadd double %266, %265
store double %267, double* %10
%268 = load double, double* %13
%269 = load double, double* %16
%270 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %268, double %269)
%271 = fptosi double %270 to i32
%272 = call i32 @sin(i32 %271)
%273 = mul nsw i32 32573, %272
%274 = sitofp i32 %273 to double
%275 = load double, double* %10
%276 = fadd double %275, %274
store double %276, double* %10
%277 = load double, double* %15
%278 = load double, double* %16
%279 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %277, double %278)
%280 = fptosi double %279 to i32
%281 = call i32 @sin(i32 %280)
%282 = mul nsw i32 17198, %281
%283 = sitofp i32 %282 to double
%284 = load double, double* %10
%285 = fadd double %284, %283
store double %285, double* %10
%286 = load double, double* %13
%287 = load double, double* %15
%288 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %286, double %287)
%289 = load double, double* %16
%290 = fsub double %288, %289
%291 = fptosi double %290 to i32
%292 = call i32 @sin(i32 %291)
%293 = mul nsw i32 9266, %292
%294 = sitofp i32 %293 to double
%295 = load double, double* %10
%296 = fadd double %295, %294
store double %296, double* %10
%297 = load double, double* %15
%298 = load double, double* %16
%299 = fneg double %298
%300 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %297, double %299)
%301 = fptosi double %300 to i32
%302 = call i32 @sin(i32 %301)
%303 = mul nsw i32 8822, %302
%304 = sitofp i32 %303 to double
%305 = load double, double* %10
%306 = fadd double %305, %304
store double %306, double* %10
%307 = load double, double* %17
%308 = fmul double %307, 8.216000e+03
%309 = load double, double* %13
%310 = load double, double* %14
%311 = fneg double %310
%312 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %309, double %311)
%313 = load double, double* %16
%314 = fsub double %312, %313
%315 = fptosi double %314 to i32
%316 = call i32 @sin(i32 %315)
%317 = sitofp i32 %316 to double
%318 = load double, double* %10
%319 = call double @llvm.fmuladd.f64(double %308, double %317, double %318)
store double %319, double* %10
%320 = load double, double* %13
%321 = load double, double* %15
%322 = fmul double 2.000000e+00, %321
%323 = fneg double %322
%324 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %320, double %323)
%325 = load double, double* %16
%326 = fsub double %324, %325
%327 = fptosi double %326 to i32
%328 = call i32 @sin(i32 %327)
%329 = mul nsw i32 4324, %328
%330 = sitofp i32 %329 to double
%331 = load double, double* %10
%332 = fadd double %331, %330
store double %332, double* %10
%333 = load double, double* %10
%334 = fdiv double %333, 1.000000e+06
%335 = fmul double %334, 0x3F91DF46A2529D3A
store double %335, double* %19
%336 = load double, double* %15
%337 = call i32 @cos(double %336)
%338 = mul nsw i32 -20905355, %337
%339 = sitofp i32 %338 to double
store double %339, double* %11
%340 = load double, double* %13
%341 = load double, double* %15
%342 = fneg double %341
%343 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %340, double %342)
%344 = call i32 @cos(double %343)
%345 = mul nsw i32 3699111, %344
%346 = sitofp i32 %345 to double
%347 = load double, double* %11
%348 = fsub double %347, %346
store double %348, double* %11
%349 = load double, double* %13
%350 = fmul double 2.000000e+00, %349
%351 = call i32 @cos(double %350)
%352 = mul nsw i32 2955968, %351
%353 = sitofp i32 %352 to double
%354 = load double, double* %11
%355 = fsub double %354, %353
store double %355, double* %11
%356 = load double, double* %15
%357 = fmul double 2.000000e+00, %356
%358 = call i32 @cos(double %357)
%359 = mul nsw i32 569925, %358
%360 = sitofp i32 %359 to double
%361 = load double, double* %11
%362 = fsub double %361, %360
store double %362, double* %11
%363 = load double, double* %17
%364 = fmul double %363, 4.888800e+04
%365 = load double, double* %14
%366 = call i32 @cos(double %365)
%367 = sitofp i32 %366 to double
%368 = load double, double* %11
%369 = call double @llvm.fmuladd.f64(double %364, double %367, double %368)
store double %369, double* %11
%370 = load double, double* %16
%371 = fmul double 2.000000e+00, %370
%372 = call i32 @cos(double %371)
%373 = mul nsw i32 3149, %372
%374 = sitofp i32 %373 to double
%375 = load double, double* %11
%376 = fsub double %375, %374
store double %376, double* %11
%377 = load double, double* %13
%378 = load double, double* %15
%379 = fmul double 2.000000e+00, %378
%380 = fneg double %379
%381 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %377, double %380)
%382 = call i32 @cos(double %381)
%383 = mul nsw i32 246158, %382
%384 = sitofp i32 %383 to double
%385 = load double, double* %11
%386 = fadd double %385, %384
store double %386, double* %11
%387 = load double, double* %17
%388 = fmul double %387, 1.521380e+05
%389 = load double, double* %13
%390 = load double, double* %14
%391 = fneg double %390
%392 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %389, double %391)
%393 = load double, double* %15
%394 = fsub double %392, %393
%395 = call i32 @cos(double %394)
%396 = sitofp i32 %395 to double
%397 = load double, double* %11
%398 = fneg double %388
%399 = call double @llvm.fmuladd.f64(double %398, double %396, double %397)
store double %399, double* %11
%400 = load double, double* %13
%401 = load double, double* %15
%402 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %400, double %401)
%403 = call i32 @cos(double %402)
%404 = mul nsw i32 170733, %403
%405 = sitofp i32 %404 to double
%406 = load double, double* %11
%407 = fsub double %406, %405
store double %407, double* %11
%408 = load double, double* %17
%409 = fmul double %408, 2.045860e+05
%410 = load double, double* %13
%411 = load double, double* %14
%412 = fneg double %411
%413 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %410, double %412)
%414 = call i32 @cos(double %413)
%415 = sitofp i32 %414 to double
%416 = load double, double* %11
%417 = fneg double %409
%418 = call double @llvm.fmuladd.f64(double %417, double %415, double %416)
store double %418, double* %11
%419 = load double, double* %17
%420 = fmul double %419, 1.296200e+05
%421 = load double, double* %14
%422 = load double, double* %15
%423 = fsub double %421, %422
%424 = call i32 @cos(double %423)
%425 = sitofp i32 %424 to double
%426 = load double, double* %11
%427 = fneg double %420
%428 = call double @llvm.fmuladd.f64(double %427, double %425, double %426)
store double %428, double* %11
%429 = load double, double* %13
%430 = call i32 @cos(double %429)
%431 = mul nsw i32 108743, %430
%432 = sitofp i32 %431 to double
%433 = load double, double* %11
%434 = fadd double %433, %432
store double %434, double* %11
%435 = load double, double* %17
%436 = fmul double %435, 1.047550e+05
%437 = load double, double* %14
%438 = load double, double* %15
%439 = fadd double %437, %438
%440 = call i32 @cos(double %439)
%441 = sitofp i32 %440 to double
%442 = load double, double* %11
%443 = call double @llvm.fmuladd.f64(double %436, double %441, double %442)
store double %443, double* %11
%444 = load double, double* %15
%445 = load double, double* %16
%446 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %445, double %444)
%447 = call i32 @cos(double %446)
%448 = mul nsw i32 79661, %447
%449 = sitofp i32 %448 to double
%450 = load double, double* %11
%451 = fadd double %450, %449
store double %451, double* %11
%452 = load double, double* %11
%453 = fdiv double %452, 1.000000e+03
%454 = fadd double 0x41177FA23D70A3D7, %453
store double %454, double* %20
%455 = load double, double* %18
%456 = load double*, double** %6
store double %455, double* %456
%457 = load double, double* %19
%458 = load double*, double** %7
store double %457, double* %458
%459 = load double, double* %20
%460 = fdiv double %459, 6.378140e+03
%461 = load double*, double** %8
store double %460, double* %461
ret void
}

LLVM IR (-O2):
define void @moonpos(double %0, double* nocapture writeonly %1, double* nocapture writeonly %2, double* nocapture writeonly %3) {
%5 = fdiv double %0, 3.652500e+04
%6 = tail call double @llvm.fmuladd.f64(double %5, double 0x411D5FCF867E9C93, double 0x406B4A206ED5A0B1)
%7 = tail call double @range(double %6)
%8 = fmul double %7, 0x3F91DF46A2529D3A
%9 = tail call double @llvm.fmuladd.f64(double %5, double 0x411B2D4C723175C4, double 0x40729D9A6FB81EC0)
%10 = tail call double @range(double %9)
%11 = fmul double %10, 0x3F91DF46A2529D3A
%12 = tail call double @llvm.fmuladd.f64(double %5, double 0x40E193E19BFBA959, double 0x407658773B356034)
%13 = tail call double @range(double %12)
%14 = fmul double %13, 0x3F91DF46A2529D3A
%15 = tail call double @llvm.fmuladd.f64(double %5, double 0x411D203B787456EA, double 0x4060DED44424F2FF)
%16 = fmul double %5, 0xBF826D04E618CE2D
%17 = tail call double @llvm.fmuladd.f64(double %16, double %5, double %15)
%18 = tail call double @range(double %17)
%19 = fmul double %18, 0x3F91DF46A2529D3A
%20 = tail call double @llvm.fmuladd.f64(double %5, double 0x411D7E0811F2AD31, double 0x4057516A132EB0ED)
%21 = fmul double %5, -3.402900e-03
%22 = tail call double @llvm.fmuladd.f64(double %21, double %5, double %20)
%23 = tail call double @range(double %22)
%24 = fmul double %23, 0x3F91DF46A2529D3A
%25 = tail call double @llvm.fmuladd.f64(double %5, double -2.516000e-03, double 1.000000e+00)
%26 = fptosi double %19 to i32
%27 = tail call i32 @sin(i32 %26)
%28 = mul nsw i32 %27, 6288774
%29 = sitofp i32 %28 to double
%30 = fneg double %19
%31 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %30)
%32 = fptosi double %31 to i32
%33 = tail call i32 @sin(i32 %32)
%34 = mul nsw i32 %33, 1274027
%35 = sitofp i32 %34 to double
%36 = fadd double %29, %35
%37 = fmul double %11, 2.000000e+00
%38 = fptosi double %37 to i32
%39 = tail call i32 @sin(i32 %38)
%40 = mul nsw i32 %39, 658314
%41 = sitofp i32 %40 to double
%42 = fadd double %36, %41
%43 = fmul double %19, 2.000000e+00
%44 = fptosi double %43 to i32
%45 = tail call i32 @sin(i32 %44)
%46 = mul nsw i32 %45, 213618
%47 = sitofp i32 %46 to double
%48 = fadd double %42, %47
%49 = fptosi double %14 to i32
%50 = tail call i32 @sin(i32 %49)
%51 = sitofp i32 %50 to double
%52 = fmul double %25, -1.851160e+05
%53 = tail call double @llvm.fmuladd.f64(double %52, double %51, double %48)
%54 = fmul double %24, 2.000000e+00
%55 = fptosi double %54 to i32
%56 = tail call i32 @sin(i32 %55)
%57 = mul nsw i32 %56, 114332
%58 = sitofp i32 %57 to double
%59 = fsub double %53, %58
%60 = fneg double %43
%61 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %60)
%62 = fptosi double %61 to i32
%63 = tail call i32 @sin(i32 %62)
%64 = mul nsw i32 %63, 58793
%65 = sitofp i32 %64 to double
%66 = fadd double %59, %65
%67 = fmul double %25, 5.706600e+04
%68 = fneg double %14
%69 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %68)
%70 = fsub double %69, %19
%71 = fptosi double %70 to i32
%72 = tail call i32 @sin(i32 %71)
%73 = sitofp i32 %72 to double
%74 = tail call double @llvm.fmuladd.f64(double %67, double %73, double %66)
%75 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %19)
%76 = fptosi double %75 to i32
%77 = tail call i32 @sin(i32 %76)
%78 = mul nsw i32 %77, 53322
%79 = sitofp i32 %78 to double
%80 = fadd double %74, %79
%81 = fmul double %25, 4.575800e+04
%82 = fptosi double %69 to i32
%83 = tail call i32 @sin(i32 %82)
%84 = sitofp i32 %83 to double
%85 = tail call double @llvm.fmuladd.f64(double %81, double %84, double %80)
%86 = fsub double %14, %19
%87 = fptosi double %86 to i32
%88 = tail call i32 @sin(i32 %87)
%89 = sitofp i32 %88 to double
%90 = fmul double %25, -4.092300e+04
%91 = tail call double @llvm.fmuladd.f64(double %90, double %89, double %85)
%92 = fptosi double %11 to i32
%93 = tail call i32 @sin(i32 %92)
%94 = mul nsw i32 %93, 34720
%95 = sitofp i32 %94 to double
%96 = fsub double %91, %95
%97 = fadd double %14, %19
%98 = fptosi double %97 to i32
%99 = tail call i32 @sin(i32 %98)
%100 = sitofp i32 %99 to double
%101 = fmul double %25, -3.038300e+04
%102 = tail call double @llvm.fmuladd.f64(double %101, double %100, double %96)
%103 = fneg double %54
%104 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %103)
%105 = fptosi double %104 to i32
%106 = tail call i32 @sin(i32 %105)
%107 = mul nsw i32 %106, 15327
%108 = sitofp i32 %107 to double
%109 = fadd double %102, %108
%110 = tail call double @llvm.fmuladd.f64(double %24, double 2.000000e+00, double %19)
%111 = fptosi double %110 to i32
%112 = tail call i32 @sin(i32 %111)
%113 = mul nsw i32 %112, 12528
%114 = sitofp i32 %113 to double
%115 = fsub double %109, %114
%116 = tail call double @llvm.fmuladd.f64(double %24, double -2.000000e+00, double %19)
%117 = fptosi double %116 to i32
%118 = tail call i32 @sin(i32 %117)
%119 = mul nsw i32 %118, 10980
%120 = sitofp i32 %119 to double
%121 = fadd double %115, %120
%122 = fdiv double %121, 1.000000e+06
%123 = tail call double @llvm.fmuladd.f64(double %122, double 0x3F91DF46A2529D3A, double %8)
%124 = tail call double @rangerad(double %123)
%125 = fptosi double %24 to i32
%126 = tail call i32 @sin(i32 %125)
%127 = mul nsw i32 %126, 5128122
%128 = sitofp i32 %127 to double
%129 = fadd double %19, %24
%130 = fptosi double %129 to i32
%131 = tail call i32 @sin(i32 %130)
%132 = mul nsw i32 %131, 280602
%133 = sitofp i32 %132 to double
%134 = fadd double %128, %133
%135 = fsub double %19, %24
%136 = fptosi double %135 to i32
%137 = tail call i32 @sin(i32 %136)
%138 = mul nsw i32 %137, 277693
%139 = sitofp i32 %138 to double
%140 = fadd double %134, %139
%141 = fneg double %24
%142 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %141)
%143 = fptosi double %142 to i32
%144 = tail call i32 @sin(i32 %143)
%145 = mul nsw i32 %144, 173237
%146 = sitofp i32 %145 to double
%147 = fadd double %140, %146
%148 = fadd double %31, %24
%149 = fptosi double %148 to i32
%150 = tail call i32 @sin(i32 %149)
%151 = mul nsw i32 %150, 55413
%152 = sitofp i32 %151 to double
%153 = fadd double %147, %152
%154 = fsub double %31, %24
%155 = fptosi double %154 to i32
%156 = tail call i32 @sin(i32 %155)
%157 = mul nsw i32 %156, 46271
%158 = sitofp i32 %157 to double
%159 = fadd double %153, %158
%160 = tail call double @llvm.fmuladd.f64(double %11, double 2.000000e+00, double %24)
%161 = fptosi double %160 to i32
%162 = tail call i32 @sin(i32 %161)
%163 = mul nsw i32 %162, 32573
%164 = sitofp i32 %163 to double
%165 = fadd double %159, %164
%166 = tail call double @llvm.fmuladd.f64(double %19, double 2.000000e+00, double %24)
%167 = fptosi double %166 to i32
%168 = tail call i32 @sin(i32 %167)
%169 = mul nsw i32 %168, 17198
%170 = sitofp i32 %169 to double
%171 = fadd double %165, %170
%172 = fsub double %75, %24
%173 = fptosi double %172 to i32
%174 = tail call i32 @sin(i32 %173)
%175 = mul nsw i32 %174, 9266
%176 = sitofp i32 %175 to double
%177 = fadd double %171, %176
%178 = tail call double @llvm.fmuladd.f64(double %19, double 2.000000e+00, double %141)
%179 = fptosi double %178 to i32
%180 = tail call i32 @sin(i32 %179)
%181 = mul nsw i32 %180, 8822
%182 = sitofp i32 %181 to double
%183 = fadd double %177, %182
%184 = fmul double %25, 8.216000e+03
%185 = fsub double %69, %24
%186 = fptosi double %185 to i32
%187 = tail call i32 @sin(i32 %186)
%188 = sitofp i32 %187 to double
%189 = tail call double @llvm.fmuladd.f64(double %184, double %188, double %183)
%190 = fsub double %61, %24
%191 = fptosi double %190 to i32
%192 = tail call i32 @sin(i32 %191)
%193 = mul nsw i32 %192, 4324
%194 = sitofp i32 %193 to double
%195 = fadd double %189, %194
%196 = fdiv double %195, 1.000000e+06
%197 = fmul double %196, 0x3F91DF46A2529D3A
%198 = tail call i32 @cos(double %19)
%199 = mul nsw i32 %198, -20905355
%200 = sitofp i32 %199 to double
%201 = tail call i32 @cos(double %31)
%202 = mul nsw i32 %201, 3699111
%203 = sitofp i32 %202 to double
%204 = fsub double %200, %203
%205 = tail call i32 @cos(double %37)
%206 = mul nsw i32 %205, 2955968
%207 = sitofp i32 %206 to double
%208 = fsub double %204, %207
%209 = tail call i32 @cos(double %43)
%210 = mul nsw i32 %209, 569925
%211 = sitofp i32 %210 to double
%212 = fsub double %208, %211
%213 = fmul double %25, 4.888800e+04
%214 = tail call i32 @cos(double %14)
%215 = sitofp i32 %214 to double
%216 = tail call double @llvm.fmuladd.f64(double %213, double %215, double %212)
%217 = tail call i32 @cos(double %54)
%218 = mul nsw i32 %217, 3149
%219 = sitofp i32 %218 to double
%220 = fsub double %216, %219
%221 = tail call i32 @cos(double %61)
%222 = mul nsw i32 %221, 246158
%223 = sitofp i32 %222 to double
%224 = fadd double %220, %223
%225 = tail call i32 @cos(double %70)
%226 = sitofp i32 %225 to double
%227 = fmul double %25, -1.521380e+05
%228 = tail call double @llvm.fmuladd.f64(double %227, double %226, double %224)
%229 = tail call i32 @cos(double %75)
%230 = mul nsw i32 %229, 170733
%231 = sitofp i32 %230 to double
%232 = fsub double %228, %231
%233 = tail call i32 @cos(double %69)
%234 = sitofp i32 %233 to double
%235 = fmul double %25, -2.045860e+05
%236 = tail call double @llvm.fmuladd.f64(double %235, double %234, double %232)
%237 = tail call i32 @cos(double %86)
%238 = sitofp i32 %237 to double
%239 = fmul double %25, -1.296200e+05
%240 = tail call double @llvm.fmuladd.f64(double %239, double %238, double %236)
%241 = tail call i32 @cos(double %11)
%242 = mul nsw i32 %241, 108743
%243 = sitofp i32 %242 to double
%244 = fadd double %240, %243
%245 = fmul double %25, 1.047550e+05
%246 = tail call i32 @cos(double %97)
%247 = sitofp i32 %246 to double
%248 = tail call double @llvm.fmuladd.f64(double %245, double %247, double %244)
%249 = tail call i32 @cos(double %116)
%250 = mul nsw i32 %249, 79661
%251 = sitofp i32 %250 to double
%252 = fadd double %248, %251
%253 = fdiv double %252, 1.000000e+03
%254 = fadd double %253, 0x41177FA23D70A3D7
store double %124, double* %1
store double %197, double* %2
%255 = fdiv double %254, 6.378140e+03
store double %255, double* %3
ret void
}