user: 请从给定的汇编指令推导出C源代码：

```asm
<linear_GRP_2D_solver_Edir>:
  endbr64
  push   %r15
  movapd %xmm2,%xmm13
  movapd %xmm3,%xmm2
  movapd %xmm5,%xmm11
  push   %r14
  movapd %xmm6,%xmm12
  movapd %xmm1,%xmm10
  movapd %xmm0,%xmm6
  push   %r13
  movapd %xmm2,%xmm1
  movapd %xmm0,%xmm8
  movapd %xmm4,%xmm9
  push   %r12
  unpcklpd %xmm11,%xmm1
  movapd %xmm2,%xmm5
  movapd %xmm9,%xmm2
  push   %rbp
  movapd %xmm7,%xmm15
  unpcklpd %xmm6,%xmm6
  mov    %rdi,%r12
  push   %rbx
  unpcklpd %xmm15,%xmm5
  mov    %rsi,%rbx
  mov    %rdx,%rbp
  sub    $0x1a8,%rsp
  movapd D97(%rip),%xmm0
  movsd  0x228(%rsp),%xmm14
  movsd  %xmm3,0x18(%rsp)
  movsd  0x208(%rsp),%xmm3
  movhpd 0x1e0(%rsp),%xmm2
  movsd  %xmm4,0x50(%rsp)
  xorpd  %xmm0,%xmm1
  movsd  0x210(%rsp),%xmm4
  movsd  0x230(%rsp),%xmm7
  mov    %fs:0x28,%rax
  mov    %rax,0x198(%rsp)
  xor    %eax,%eax
  movaps %xmm1,0x60(%rsp)
  movhpd %xmm1,0x58(%rsp)
  movapd %xmm9,%xmm1
  movapd %xmm14,%xmm9
  mulsd  %xmm3,%xmm9
  movaps %xmm6,0x20(%rsp)
  movapd %xmm10,%xmm6
  unpcklpd %xmm12,%xmm1
  movaps %xmm5,0x30(%rsp)
  unpcklpd %xmm11,%xmm6
  movapd %xmm11,%xmm5
  xorpd  %xmm0,%xmm1
  unpcklpd %xmm15,%xmm5
  movaps %xmm6,0x70(%rsp)
  movapd %xmm12,%xmm6
  movhpd 0x1e0(%rsp),%xmm6
  movaps %xmm5,0x40(%rsp)
  movsd  0x1e8(%rsp),%xmm5
  movaps %xmm6,0xa0(%rsp)
  pxor   %xmm6,%xmm6
  divsd  %xmm10,%xmm9
  unpcklpd %xmm3,%xmm5
  movaps %xmm2,0x90(%rsp)
  movsd  0x1f0(%rsp),%xmm2
  movaps %xmm5,0x80(%rsp)
  movapd %xmm13,%xmm5
  unpcklpd %xmm12,%xmm5
  unpcklpd %xmm4,%xmm2
  movaps %xmm1,0xc0(%rsp)
  movhpd %xmm1,0xb8(%rsp)
  movaps %xmm5,0xd0(%rsp)
  movaps %xmm2,0xe0(%rsp)
  ucomisd %xmm9,%xmm6
  ja     L368
  sqrtsd %xmm9,%xmm9
  movapd %xmm6,%xmm5
L173:
  movapd %xmm14,%xmm6
  mulsd  %xmm4,%xmm6
  divsd  %xmm13,%xmm6
  ucomisd %xmm6,%xmm5
  ja     L161
  sqrtsd %xmm6,%xmm6
L113:
  movapd %xmm10,%xmm1
  movapd %xmm11,%xmm0
  movapd %xmm3,%xmm2
  subsd  %xmm13,%xmm1
  subsd  %xmm12,%xmm0
  subsd  %xmm4,%xmm2
  mulsd  %xmm1,%xmm1
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  comisd %xmm0,%xmm7
  jbe    L278
  movapd %xmm12,%xmm1
  movapd %xmm11,%xmm0
  addsd  %xmm4,%xmm3
  movsd  0x218(%rsp),%xmm2
  addsd  %xmm6,%xmm1
  subsd  %xmm9,%xmm0
  movapd %xmm13,%xmm5
  movsd  0x1e8(%rsp),%xmm4
  mulsd  %xmm6,%xmm13
  movapd %xmm10,%xmm7
  movsd  0x1f0(%rsp),%xmm14
  unpcklpd %xmm1,%xmm0
  movsd  D227(%rip),%xmm1
  movups %xmm0,(%r12)
  movapd %xmm11,%xmm0
  addsd  %xmm12,%xmm0
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm0
  movapd %xmm10,%xmm1
  mulsd  %xmm9,%xmm1
  unpcklpd %xmm3,%xmm4
  unpcklpd %xmm3,%xmm14
  movsd  %xmm3,0x188(%rsp)
  movsd  0x220(%rsp),%xmm3
  divsd  %xmm13,%xmm3
  comisd %xmm8,%xmm0
  unpcklpd %xmm0,%xmm7
  unpcklpd %xmm0,%xmm5
  movsd  %xmm0,0x180(%rsp)
  divsd  %xmm1,%xmm2
  movapd %xmm11,%xmm1
  addsd  %xmm9,%xmm1
  addsd  %xmm15,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  0x1e0(%rsp),%xmm1
  subsd  %xmm3,%xmm1
  movapd %xmm12,%xmm3
  subsd  %xmm6,%xmm3
  movapd %xmm2,%xmm13
  mulsd  %xmm1,%xmm3
  movsd  D287(%rip),%xmm1
  addsd  %xmm3,%xmm13
  subsd  %xmm3,%xmm2
  mulsd  %xmm1,%xmm13
  mulsd  %xmm10,%xmm1
  movsd  %xmm13,0x8(%rbx)
  mulsd  %xmm9,%xmm1
  mulsd  %xmm2,%xmm1
  movsd  %xmm1,0x18(%rbx)
  ja     L552
  movapd %xmm6,%xmm3
  movsd  0x50(%rsp),%xmm7
  movsd  0x200(%rsp),%xmm2
  movups %xmm5,0x0(%rbp)
  mulsd  0x200(%rsp),%xmm12
  movups %xmm14,0x10(%rbp)
  movsd  0x8(%rbx),%xmm4
  movsd  0x220(%rsp),%xmm1
  mulsd  %xmm8,%xmm2
  mulsd  %xmm6,%xmm3
  mulsd  %xmm8,%xmm1
  addsd  0x18(%rbx),%xmm1
  subsd  %xmm12,%xmm2
  mulsd  %xmm7,%xmm3
  mulsd  %xmm8,%xmm7
  mulsd  0x1e0(%rsp),%xmm8
  unpcklpd %xmm1,%xmm2
  movsd  0x220(%rsp),%xmm1
  movups %xmm2,0x10(%rbx)
  subsd  %xmm3,%xmm1
  addsd  %xmm4,%xmm8
  mulsd  %xmm1,%xmm0
  addsd  %xmm4,%xmm0
  divsd  %xmm6,%xmm0
  divsd  %xmm6,%xmm0
  addsd  %xmm7,%xmm0
  unpcklpd %xmm8,%xmm0
  movups %xmm0,(%rbx)
L477:
  mov    0x198(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L474
  add    $0x1a8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L552:
  movsd  0x1f8(%rsp),%xmm2
  movapd %xmm9,%xmm3
  movsd  0x218(%rsp),%xmm1
  movups %xmm7,0x0(%rbp)
  mulsd  %xmm9,%xmm3
  movsd  0x18(%rsp),%xmm7
  movups %xmm4,0x10(%rbp)
  movsd  0x8(%rbx),%xmm4
  mulsd  %xmm8,%xmm2
  mulsd  0x1f8(%rsp),%xmm11
  mulsd  %xmm8,%xmm1
  addsd  0x18(%rbx),%xmm1
  mulsd  %xmm7,%xmm3
  mulsd  %xmm8,%xmm7
  subsd  %xmm11,%xmm2
  mulsd  %xmm15,%xmm8
  unpcklpd %xmm1,%xmm2
  movsd  0x218(%rsp),%xmm1
  movups %xmm2,0x10(%rbx)
  subsd  %xmm3,%xmm1
  addsd  %xmm4,%xmm8
  mulsd  %xmm1,%xmm0
  addsd  %xmm4,%xmm0
  divsd  %xmm9,%xmm0
  divsd  %xmm9,%xmm0
  addsd  %xmm7,%xmm0
  unpcklpd %xmm8,%xmm0
  movups %xmm0,(%rbx)
  jmp    L477
L278:
  movapd %xmm14,%xmm5
  movapd %xmm11,%xmm1
  movapd %xmm14,%xmm0
  movsd  D118(%rip),%xmm2
  subsd  D118(%rip),%xmm5
  lea    0x190(%rsp),%rdx
  mov    $0x1f4,%ecx
  mov    $0x8,%eax
  addsd  %xmm14,%xmm2
  lea    0x188(%rsp),%rsi
  movsd  %xmm15,0x130(%rsp)
  lea    0x180(%rsp),%rdi
  movsd  %xmm13,0x120(%rsp)
  movsd  %xmm5,0x8(%rsp)
  divsd  %xmm2,%xmm5
  movsd  %xmm2,0xb0(%rsp)
  movapd %xmm12,%xmm2
  movsd  %xmm10,0x110(%rsp)
  movsd  %xmm8,0x108(%rsp)
  movsd  %xmm6,0x100(%rsp)
  movsd  %xmm9,0xf8(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm12,0xf0(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm5,(%rsp)
  movapd %xmm9,%xmm5
  call   <Riemann_solver_exact@plt>
  mov    0x190(%rsp),%r13d
  movsd  0x228(%rsp),%xmm14
  movsd  0x208(%rsp),%xmm3
  movsd  0x10(%rsp),%xmm11
  movsd  0xf0(%rsp),%xmm12
  test   %r13d,%r13d
  movsd  0x210(%rsp),%xmm4
  movsd  0xf8(%rsp),%xmm9
  movsd  0x100(%rsp),%xmm6
  movsd  0x108(%rsp),%xmm8
  movsd  0x110(%rsp),%xmm10
  movsd  0x120(%rsp),%xmm13
  movsd  0x130(%rsp),%xmm15
  je     L599
  movsd  0x188(%rsp),%xmm2
  movsd  %xmm15,0x150(%rsp)
  movsd  %xmm12,0x148(%rsp)
  movapd %xmm2,%xmm4
  movsd  %xmm11,0x140(%rsp)
  divsd  %xmm3,%xmm4
  movsd  %xmm10,0x10(%rsp)
  movsd  %xmm13,0x138(%rsp)
  movsd  %xmm8,0x130(%rsp)
  movsd  %xmm6,0x120(%rsp)
  movsd  %xmm9,0x108(%rsp)
  movsd  %xmm2,0x110(%rsp)
  movapd %xmm4,%xmm5
  movsd  D118(%rip),%xmm4
  movsd  %xmm5,0x100(%rsp)
  movapd %xmm5,%xmm0
  divsd  %xmm14,%xmm4
  movapd %xmm4,%xmm1
  call   <pow@plt>
  movsd  D227(%rip),%xmm4
  movsd  0x8(%rsp),%xmm1
  movsd  0x100(%rsp),%xmm5
  movsd  0x10(%rsp),%xmm10
  mulsd  %xmm4,%xmm1
  movsd  %xmm4,0x10(%rsp)
  movsd  0x228(%rsp),%xmm14
  movsd  %xmm10,0xf8(%rsp)
  mulsd  %xmm10,%xmm0
  divsd  %xmm14,%xmm1
  movsd  %xmm0,0xf0(%rsp)
  movapd %xmm5,%xmm0
  call   <pow@plt>
  movsd  0x108(%rsp),%xmm9
  movsd  0x140(%rsp),%xmm11
  movsd  0x228(%rsp),%xmm14
  movsd  0xf8(%rsp),%xmm10
  mulsd  %xmm9,%xmm0
  movapd %xmm11,%xmm5
  movsd  0x208(%rsp),%xmm3
  movsd  0x110(%rsp),%xmm2
  movsd  0x120(%rsp),%xmm6
  subsd  %xmm9,%xmm5
  movsd  0x130(%rsp),%xmm8
  movsd  0x138(%rsp),%xmm13
  movsd  0x148(%rsp),%xmm12
  movsd  0x150(%rsp),%xmm15
  movsd  0x210(%rsp),%xmm4
  movsd  %xmm0,0x108(%rsp)
L346:
  movsd  0x1f0(%rsp),%xmm7
  mov    0x194(%rsp),%r14d
  unpcklpd %xmm2,%xmm7
  movaps %xmm7,0x110(%rsp)
  movsd  0x1e8(%rsp),%xmm7
  unpcklpd %xmm2,%xmm7
  movaps %xmm7,0x120(%rsp)
  test   %r14d,%r14d
  je     L45
  movapd %xmm2,%xmm7
  movsd  D118(%rip),%xmm1
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x178(%rsp)
  divsd  %xmm4,%xmm7
  movsd  %xmm12,0x170(%rsp)
  movsd  %xmm11,0x168(%rsp)
  movsd  %xmm10,0x160(%rsp)
  movsd  %xmm8,0x158(%rsp)
  movsd  %xmm6,0x150(%rsp)
  movsd  %xmm9,0x148(%rsp)
  movsd  %xmm5,0x140(%rsp)
  movsd  %xmm2,0x138(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm13,0xf8(%rsp)
  movsd  %xmm14,0x228(%rsp)
  divsd  %xmm14,%xmm1
  movsd  %xmm7,0x100(%rsp)
  movapd %xmm7,%xmm0
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  0x10(%rsp),%xmm1
  movsd  0x228(%rsp),%xmm14
  movsd  0xf8(%rsp),%xmm13
  movsd  0x100(%rsp),%xmm7
  movsd  %xmm13,0x130(%rsp)
  mulsd  %xmm13,%xmm0
  divsd  %xmm14,%xmm1
  movsd  %xmm0,0xf8(%rsp)
  movapd %xmm7,%xmm0
  call   <pow@plt>
  movsd  0x150(%rsp),%xmm6
  movsd  0x170(%rsp),%xmm12
  movsd  0x228(%rsp),%xmm14
  movsd  0x130(%rsp),%xmm13
  movsd  0x210(%rsp),%xmm4
  mulsd  %xmm6,%xmm0
  movsd  0x138(%rsp),%xmm2
  movsd  0x140(%rsp),%xmm5
  movsd  0x148(%rsp),%xmm9
  movsd  0x158(%rsp),%xmm8
  movsd  0x160(%rsp),%xmm10
  movsd  0x168(%rsp),%xmm11
  movsd  0x178(%rsp),%xmm15
  movsd  0x208(%rsp),%xmm3
  movsd  %xmm0,0x100(%rsp)
  movapd %xmm12,%xmm0
  addsd  %xmm6,%xmm0
L360:
  comisd %xmm8,%xmm5
  movapd %xmm5,%xmm1
  unpcklpd %xmm0,%xmm1
  movups %xmm1,(%r12)
  jbe    L0
  movsd  0x218(%rsp),%xmm2
  movapd %xmm10,%xmm1
  movapd 0x40(%rsp),%xmm0
  mulsd  %xmm15,%xmm1
  movapd 0x70(%rsp),%xmm4
  divsd  %xmm10,%xmm2
  mulpd  0x60(%rsp),%xmm0
  mulsd  %xmm9,%xmm10
  mulsd  0x218(%rsp),%xmm11
  mulsd  %xmm9,%xmm10
  mulsd  %xmm15,%xmm10
  addsd  %xmm11,%xmm10
  unpcklpd %xmm2,%xmm1
  subpd  %xmm1,%xmm0
  movapd 0x30(%rsp),%xmm1
  mulpd  0x20(%rsp),%xmm1
  addpd  %xmm1,%xmm0
  movsd  0x1f8(%rsp),%xmm1
  mulsd  %xmm8,%xmm1
  mulsd  0x218(%rsp),%xmm8
  movups %xmm0,(%rbx)
  movsd  0x58(%rsp),%xmm0
  mulsd  0x1f8(%rsp),%xmm0
  subsd  %xmm10,%xmm8
  addsd  %xmm1,%xmm0
  unpcklpd %xmm8,%xmm0
  movups %xmm0,0x10(%rbx)
  movups %xmm4,0x0(%rbp)
  movapd 0x80(%rsp),%xmm4
  movups %xmm4,0x10(%rbp)
  jmp    L477
  nopw   0x0(%rax,%rax,1)
L599:
  movsd  0x188(%rsp),%xmm2
  movsd  (%rsp),%xmm7
  movapd %xmm7,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm7
  addsd  %xmm2,%xmm0
  movapd %xmm7,%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm10,%xmm0
  movapd %xmm0,%xmm7
  movapd %xmm2,%xmm0
  divsd  %xmm1,%xmm7
  mulsd  %xmm14,%xmm0
  movsd  %xmm7,0xf0(%rsp)
  divsd  %xmm7,%xmm0
  pxor   %xmm7,%xmm7
  ucomisd %xmm0,%xmm7
  ja     L211
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x108(%rsp)
L519:
  movapd %xmm2,%xmm0
  movsd  D227(%rip),%xmm7
  divsd  %xmm3,%xmm0
  movsd  %xmm7,0x10(%rsp)
  mulsd  0xb0(%rsp),%xmm0
  addsd  0x8(%rsp),%xmm0
  mulsd  %xmm7,%xmm0
  pxor   %xmm7,%xmm7
  divsd  %xmm14,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L548
  sqrtsd %xmm0,%xmm0
L172:
  mulsd  %xmm9,%xmm0
  movapd %xmm11,%xmm5
  subsd  %xmm0,%xmm5
  jmp    L346
  nopw   0x0(%rax,%rax,1)
L0:
  comisd %xmm0,%xmm8
  ja     L467
  movsd  0x180(%rsp),%xmm7
  movsd  0xf8(%rsp),%xmm5
  unpcklpd %xmm7,%xmm5
  movsd  %xmm7,0x30(%rsp)
  movaps %xmm5,0x90(%rsp)
  movsd  0xf0(%rsp),%xmm5
  unpcklpd %xmm7,%xmm5
  movaps %xmm5,0xa0(%rsp)
  test   %r13d,%r13d
  je     L215
  subsd  0x108(%rsp),%xmm7
  comisd %xmm8,%xmm7
  ja     L387
  test   %r14d,%r14d
  je     L607
  movsd  0x100(%rsp),%xmm0
  addsd  0x30(%rsp),%xmm0
  comisd %xmm0,%xmm8
  ja     L313
L607:
  movsd  %xmm3,0x208(%rsp)
  movsd  0x10(%rsp),%xmm7
  movsd  0x108(%rsp),%xmm3
  divsd  (%rsp),%xmm7
  movsd  D118(%rip),%xmm0
  movapd %xmm7,%xmm1
  divsd  0xf0(%rsp),%xmm0
  movsd  %xmm14,0x228(%rsp)
  divsd  %xmm3,%xmm0
  movsd  %xmm7,0x70(%rsp)
  movsd  %xmm15,0x148(%rsp)
  movsd  %xmm12,0x140(%rsp)
  movsd  %xmm11,0x138(%rsp)
  movsd  %xmm13,0x130(%rsp)
  movsd  %xmm8,0xd0(%rsp)
  movsd  %xmm6,0xc0(%rsp)
  movsd  %xmm2,0xb8(%rsp)
  movsd  %xmm10,0xe0(%rsp)
  movsd  %xmm9,0x60(%rsp)
  movsd  %xmm4,0x210(%rsp)
  divsd  %xmm9,%xmm3
  movsd  %xmm0,0x58(%rsp)
  movapd %xmm3,%xmm0
  movq   %xmm3,%r15
  call   <pow@plt>
  movsd  (%rsp),%xmm4
  movsd  D118(%rip),%xmm5
  movsd  %xmm0,0x20(%rsp)
  movq   %r15,%xmm0
  addsd  %xmm4,%xmm5
  movapd %xmm5,%xmm1
  movsd  %xmm5,0x40(%rsp)
  divsd  %xmm4,%xmm1
  call   <pow@plt>
  movsd  (%rsp),%xmm4
  movsd  0x40(%rsp),%xmm5
  movsd  0x20(%rsp),%xmm1
  movsd  0x60(%rsp),%xmm9
  mulsd  %xmm4,%xmm0
  movapd %xmm4,%xmm3
  movsd  0x70(%rsp),%xmm7
  movsd  0xe0(%rsp),%xmm10
  addsd  %xmm4,%xmm3
  movsd  0x18(%rsp),%xmm4
  mulsd  %xmm5,%xmm1
  movsd  %xmm10,0x40(%rsp)
  mulsd  %xmm9,%xmm4
  movsd  %xmm3,0x80(%rsp)
  addsd  %xmm0,%xmm1
  movsd  D118(%rip),%xmm0
  movapd %xmm4,%xmm5
  addsd  %xmm3,%xmm0
  movsd  %xmm4,0x20(%rsp)
  mulsd  %xmm9,%xmm5
  divsd  %xmm0,%xmm1
  movsd  0x218(%rsp),%xmm0
  subsd  %xmm5,%xmm0
  divsd  0x8(%rsp),%xmm0
  divsd  %xmm10,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm7,%xmm1
  movq   %xmm0,%r12
  movq   %r15,%xmm0
  call   <pow@plt>
  movsd  0x60(%rsp),%xmm9
  movsd  0x228(%rsp),%xmm14
  movq   %r12,%xmm4
  movapd %xmm0,%xmm1
  movsd  0x40(%rsp),%xmm10
  movsd  0x218(%rsp),%xmm0
  mulsd  %xmm9,%xmm1
  mov    D118(%rip),%rax
  movsd  0x148(%rsp),%xmm15
  mulsd  %xmm14,%xmm0
  mov    D45(%rip),%r12
  movsd  0xb8(%rsp),%xmm2
  movsd  0xc0(%rsp),%xmm6
  mov    %rax,0x40(%rsp)
  movsd  0xd0(%rsp),%xmm8
  movsd  0x130(%rsp),%xmm13
  movsd  0x138(%rsp),%xmm11
  movsd  0x140(%rsp),%xmm12
  movsd  0x208(%rsp),%xmm3
  divsd  %xmm9,%xmm0
  subsd  0x20(%rsp),%xmm0
  divsd  0x8(%rsp),%xmm0
  divsd  %xmm10,%xmm0
  addsd  %xmm15,%xmm0
  mulsd  %xmm1,%xmm0
  subsd  %xmm0,%xmm4
  movsd  %xmm4,0x60(%rsp)
  movq   D71(%rip),%xmm4
  movaps %xmm4,0x20(%rsp)
  movsd  0x210(%rsp),%xmm4
L606:
  movsd  %xmm14,0x228(%rsp)
  test   %r14d,%r14d
  je     L326
  movsd  %xmm3,0x208(%rsp)
  movq   %r12,%xmm7
  movsd  0x100(%rsp),%xmm3
  divsd  0xf8(%rsp),%xmm7
  movsd  %xmm15,0x168(%rsp)
  movsd  %xmm12,0x160(%rsp)
  divsd  %xmm3,%xmm7
  movsd  %xmm11,0x158(%rsp)
  movsd  %xmm10,0x148(%rsp)
  movsd  %xmm8,0x140(%rsp)
  movsd  %xmm9,0x138(%rsp)
  movsd  %xmm2,0x130(%rsp)
  movsd  %xmm13,0x150(%rsp)
  movsd  %xmm6,0xd0(%rsp)
  movsd  %xmm4,0x210(%rsp)
  divsd  %xmm6,%xmm3
  movsd  %xmm7,0x70(%rsp)
  movsd  0x10(%rsp),%xmm7
  divsd  (%rsp),%xmm7
  movapd %xmm7,%xmm1
  movsd  %xmm7,0xe0(%rsp)
  movapd %xmm3,%xmm0
  movq   %xmm3,%r12
  call   <pow@plt>
  movsd  (%rsp),%xmm4
  movsd  D118(%rip),%xmm5
  movsd  %xmm0,0xb8(%rsp)
  movq   %r12,%xmm0
  addsd  %xmm4,%xmm5
  movsd  %xmm5,0xc0(%rsp)
  movapd %xmm5,%xmm1
  divsd  %xmm4,%xmm1
  call   <pow@plt>
  movsd  0x50(%rsp),%xmm4
  mulsd  (%rsp),%xmm0
  movsd  0xd0(%rsp),%xmm6
  movsd  0xc0(%rsp),%xmm5
  movsd  0xb8(%rsp),%xmm1
  movsd  0x150(%rsp),%xmm13
  movsd  0xe0(%rsp),%xmm7
  mulsd  %xmm6,%xmm4
  movsd  %xmm13,0xc0(%rsp)
  mulsd  %xmm5,%xmm1
  movapd %xmm4,%xmm5
  mulsd  %xmm6,%xmm5
  addsd  %xmm0,%xmm1
  movsd  D118(%rip),%xmm0
  addsd  0x80(%rsp),%xmm0
  movsd  %xmm4,0x80(%rsp)
  divsd  %xmm0,%xmm1
  movsd  0x220(%rsp),%xmm0
  subsd  %xmm5,%xmm0
  divsd  0x8(%rsp),%xmm0
  divsd  %xmm13,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm7,%xmm1
  movsd  %xmm0,0xb8(%rsp)
  movq   %r12,%xmm0
  call   <pow@plt>
  movsd  0x60(%rsp),%xmm4
  movsd  0x228(%rsp),%xmm14
  mulsd  0x220(%rsp),%xmm14
  movapd %xmm0,%xmm1
  movsd  0xd0(%rsp),%xmm6
  movsd  0xc0(%rsp),%xmm13
  movsd  0x1e0(%rsp),%xmm7
  movsd  0x130(%rsp),%xmm2
  mulsd  %xmm6,%xmm1
  movsd  0x138(%rsp),%xmm9
  movsd  0x140(%rsp),%xmm8
  movsd  0x148(%rsp),%xmm10
  movsd  0x158(%rsp),%xmm11
  movsd  0x160(%rsp),%xmm12
  movsd  0x168(%rsp),%xmm15
  movapd %xmm14,%xmm0
  movsd  0x208(%rsp),%xmm3
  divsd  %xmm6,%xmm0
  subsd  0x80(%rsp),%xmm0
  divsd  0x8(%rsp),%xmm0
  divsd  %xmm13,%xmm0
  movsd  %xmm4,0x80(%rsp)
  movsd  0x210(%rsp),%xmm4
  subsd  %xmm0,%xmm7
  mulsd  %xmm1,%xmm7
  movsd  0x58(%rsp),%xmm1
  addsd  0xb8(%rsp),%xmm7
L237:
  movsd  (%rsp),%xmm14
  movsd  0x60(%rsp),%xmm5
  movapd %xmm14,%xmm0
  mulsd  %xmm14,%xmm0
  movsd  0x70(%rsp),%xmm14
  mulsd  %xmm14,%xmm5
  movsd  %xmm0,0xb8(%rsp)
  movsd  0x40(%rsp),%xmm0
  mulsd  %xmm14,%xmm0
  movapd %xmm5,%xmm14
  movsd  0x58(%rsp),%xmm5
  mulsd  %xmm7,%xmm5
  subsd  %xmm1,%xmm0
  movsd  0x40(%rsp),%xmm1
  mulsd  %xmm7,%xmm1
  subsd  %xmm5,%xmm14
  movsd  0x30(%rsp),%xmm7
  subsd  0x80(%rsp),%xmm1
  comisd %xmm7,%xmm8
  divsd  %xmm0,%xmm14
  divsd  %xmm0,%xmm1
  movapd %xmm7,%xmm0
  subsd  %xmm8,%xmm0
  movapd %xmm1,%xmm5
  mulsd  %xmm0,%xmm5
  jbe    L563
  movapd 0x90(%rsp),%xmm3
  movsd  0x100(%rsp),%xmm7
  movups %xmm3,0x0(%rbp)
  movapd 0x110(%rsp),%xmm3
  movups %xmm3,0x10(%rbp)
  movsd  0xf8(%rsp),%xmm3
  divsd  %xmm3,%xmm5
  divsd  %xmm7,%xmm5
  divsd  %xmm7,%xmm5
  addsd  %xmm14,%xmm5
  movsd  %xmm5,0x8(%rbx)
  movapd %xmm0,%xmm5
  mulsd  %xmm3,%xmm5
  movapd %xmm5,%xmm3
  movsd  %xmm5,0x40(%rsp)
  mulsd  %xmm14,%xmm3
  addsd  %xmm1,%xmm3
  movsd  %xmm3,0x18(%rbx)
  movsd  %xmm3,0x18(%rsp)
  test   %r14d,%r14d
  je     L570
  movsd  (%rsp),%xmm4
  movapd %xmm7,%xmm0
  movsd  D118(%rip),%xmm1
  movsd  %xmm13,0x10(%rsp)
  divsd  %xmm6,%xmm0
  movsd  %xmm8,0x8(%rsp)
  addsd  %xmm4,%xmm1
  movsd  %xmm6,(%rsp)
  divsd  %xmm4,%xmm1
  call   <pow@plt>
  movsd  (%rsp),%xmm6
  movsd  0x50(%rsp),%xmm4
  movapd %xmm0,%xmm2
  movsd  0x40(%rsp),%xmm5
  movsd  0x220(%rsp),%xmm1
  mulsd  %xmm6,%xmm4
  movsd  0x10(%rsp),%xmm13
  movsd  0x18(%rsp),%xmm3
  mulsd  %xmm2,%xmm5
  movsd  0x8(%rsp),%xmm8
  movsd  0x100(%rsp),%xmm7
  mulsd  0x200(%rsp),%xmm8
  movapd %xmm4,%xmm0
  mulsd  %xmm6,%xmm0
  subsd  %xmm0,%xmm1
  mulsd  %xmm5,%xmm1
  divsd  %xmm13,%xmm1
  addsd  %xmm3,%xmm1
  divsd  %xmm7,%xmm1
  divsd  %xmm7,%xmm1
  movsd  %xmm1,(%rbx)
  movsd  0x8(%rbp),%xmm0
  xorpd  0x20(%rsp),%xmm0
  mulsd  0x200(%rsp),%xmm0
  mulsd  0x0(%rbp),%xmm0
  divsd  %xmm13,%xmm0
  addsd  %xmm8,%xmm0
  movsd  %xmm0,0x10(%rbx)
  jmp    L477
  nopl   0x0(%rax)
L45:
  movsd  (%rsp),%xmm7
  movapd %xmm7,%xmm1
  mulsd  %xmm4,%xmm1
  mulsd  %xmm2,%xmm7
  addsd  %xmm2,%xmm1
  movapd %xmm7,%xmm0
  addsd  %xmm4,%xmm0
  mulsd  %xmm13,%xmm1
  movapd %xmm1,%xmm7
  divsd  %xmm0,%xmm7
  movapd %xmm14,%xmm0
  mulsd  %xmm2,%xmm0
  movsd  %xmm7,0xf8(%rsp)
  divsd  %xmm7,%xmm0
  pxor   %xmm7,%xmm7
  ucomisd %xmm0,%xmm7
  ja     L74
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x100(%rsp)
L143:
  movapd %xmm2,%xmm0
  divsd  %xmm4,%xmm0
  mulsd  0xb0(%rsp),%xmm0
  addsd  0x8(%rsp),%xmm0
  mulsd  0x10(%rsp),%xmm0
  divsd  %xmm14,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L149
  sqrtsd %xmm0,%xmm0
L235:
  mulsd  %xmm6,%xmm0
  addsd  %xmm12,%xmm0
  jmp    L360
  nopl   0x0(%rax)
L467:
  movsd  0x220(%rsp),%xmm2
  movsd  0x1e0(%rsp),%xmm1
  movapd 0xa0(%rsp),%xmm0
  mulpd  0xc0(%rsp),%xmm0
  movapd 0xd0(%rsp),%xmm4
  divsd  %xmm13,%xmm2
  mulsd  %xmm13,%xmm1
  mulsd  %xmm6,%xmm13
  mulsd  0x220(%rsp),%xmm12
  mulsd  %xmm6,%xmm13
  mulsd  0x1e0(%rsp),%xmm13
  addsd  %xmm12,%xmm13
  unpcklpd %xmm2,%xmm1
  subpd  %xmm1,%xmm0
  movapd 0x20(%rsp),%xmm1
  mulpd  0x90(%rsp),%xmm1
  addpd  %xmm1,%xmm0
  movsd  0x200(%rsp),%xmm1
  mulsd  %xmm8,%xmm1
  mulsd  0x220(%rsp),%xmm8
  movups %xmm0,(%rbx)
  movsd  0xb8(%rsp),%xmm0
  mulsd  0x200(%rsp),%xmm0
  subsd  %xmm13,%xmm8
  addsd  %xmm1,%xmm0
  unpcklpd %xmm8,%xmm0
  movups %xmm0,0x10(%rbx)
  movups %xmm4,0x0(%rbp)
  movapd 0xe0(%rsp),%xmm4
  movups %xmm4,0x10(%rbp)
  jmp    L477
  nopw   0x0(%rax,%rax,1)
L215:
  test   %r14d,%r14d
  jne    L317
L416:
  movsd  0xb0(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  pxor   %xmm7,%xmm7
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  mulsd  0x10(%rsp),%xmm0
  divsd  0xf0(%rsp),%xmm0
  ucomisd %xmm0,%xmm7
  ja     L241
  sqrtsd %xmm0,%xmm0
  movq   %xmm0,%r15
L523:
  movq   D71(%rip),%xmm7
  movq   %r15,%xmm5
  movsd  0xb0(%rsp),%xmm1
  mulsd  %xmm2,%xmm1
  xorpd  %xmm7,%xmm5
  movaps %xmm7,0x20(%rsp)
  pxor   %xmm7,%xmm7
  movq   %xmm5,%r12
  movsd  0x8(%rsp),%xmm5
  mulsd  %xmm3,%xmm5
  addsd  %xmm5,%xmm1
  mulsd  0x10(%rsp),%xmm1
  divsd  %xmm10,%xmm1
  ucomisd %xmm1,%xmm7
  ja     L430
  sqrtsd %xmm1,%xmm1
  movsd  %xmm1,0x60(%rsp)
  movapd %xmm1,%xmm5
L83:
  movapd 0x20(%rsp),%xmm7
  movsd  (%rsp),%xmm0
  movsd  D118(%rip),%xmm1
  xorpd  %xmm5,%xmm7
  movsd  %xmm7,0x70(%rsp)
  movapd %xmm0,%xmm7
  subsd  %xmm0,%xmm1
  mulsd  %xmm3,%xmm7
  movapd %xmm1,%xmm0
  movapd %xmm7,%xmm5
  movsd  %xmm7,0x40(%rsp)
  addsd  %xmm2,%xmm5
  movapd %xmm5,%xmm7
  mulsd  %xmm10,%xmm7
  divsd  %xmm7,%xmm0
  pxor   %xmm7,%xmm7
  ucomisd %xmm0,%xmm7
  ja     L446
  sqrtsd %xmm0,%xmm0
L538:
  movsd  (%rsp),%xmm1
  mulsd  0x10(%rsp),%xmm0
  movapd %xmm1,%xmm7
  addsd  %xmm1,%xmm7
  movsd  D118(%rip),%xmm1
  movsd  %xmm7,0x80(%rsp)
  addsd  %xmm7,%xmm1
  movapd %xmm1,%xmm7
  mulsd  %xmm3,%xmm7
  addsd  %xmm2,%xmm7
  mulsd  %xmm0,%xmm7
  xorpd  0x20(%rsp),%xmm0
  movapd %xmm0,%xmm1
  movsd  (%rsp),%xmm0
  addsd  D285(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  0x40(%rsp),%xmm0
  divsd  %xmm5,%xmm7
  movsd  %xmm1,0x40(%rsp)
  mulsd  %xmm1,%xmm0
  movapd %xmm2,%xmm1
  subsd  %xmm3,%xmm1
  divsd  %xmm5,%xmm0
  movsd  0x40(%rsp),%xmm5
  mulsd  %xmm1,%xmm5
  movq   %r12,%xmm1
  mov    D45(%rip),%r12
  mulsd  0xf0(%rsp),%xmm1
  divsd  %xmm10,%xmm5
  movsd  %xmm0,0xb8(%rsp)
  movapd %xmm1,%xmm0
  movsd  D118(%rip),%xmm1
  mulsd  %xmm7,%xmm0
  subsd  %xmm0,%xmm1
  movsd  0xf0(%rsp),%xmm0
  movsd  %xmm1,0x40(%rsp)
  movsd  0x108(%rsp),%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  movq   %r15,%xmm0
  divsd  %xmm1,%xmm0
  movsd  0x60(%rsp),%xmm1
  addsd  %xmm7,%xmm0
  movsd  0xb8(%rsp),%xmm7
  movsd  %xmm0,0x58(%rsp)
  movapd %xmm9,%xmm0
  mulsd  %xmm9,%xmm0
  mulsd  %xmm7,%xmm0
  addsd  %xmm5,%xmm0
  mulsd  %xmm10,%xmm0
  subsd  %xmm1,%xmm0
  mulsd  %xmm5,%xmm1
  movsd  0x70(%rsp),%xmm5
  mulsd  0x18(%rsp),%xmm1
  mulsd  %xmm7,%xmm5
  mulsd  %xmm15,%xmm0
  addsd  %xmm1,%xmm0
  movq   %r12,%xmm1
  divsd  %xmm10,%xmm1
  subsd  %xmm5,%xmm1
  mulsd  0x218(%rsp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x60(%rsp)
  jmp    L606
  nopl   0x0(%rax)
L317:
  movsd  0x100(%rsp),%xmm0
  addsd  0x30(%rsp),%xmm0
  comisd %xmm0,%xmm8
  jbe    L416
L313:
  movapd %xmm6,%xmm0
  movapd %xmm8,%xmm2
  movapd %xmm14,%xmm1
  movsd  %xmm4,0x210(%rsp)
  subsd  %xmm8,%xmm0
  movsd  0x8(%rsp),%xmm4
  addsd  %xmm14,%xmm1
  movsd  %xmm13,0xb0(%rsp)
  movsd  %xmm8,0x80(%rsp)
  movsd  %xmm6,0x18(%rsp)
  addsd  %xmm0,%xmm0
  divsd  %xmm4,%xmm1
  movsd  %xmm14,0x228(%rsp)
  divsd  %xmm4,%xmm0
  subsd  %xmm0,%xmm12
  mulsd  (%rsp),%xmm12
  subsd  %xmm12,%xmm2
  movsd  %xmm12,0x8(%rbp)
  movapd %xmm2,%xmm7
  movsd  %xmm2,0x30(%rsp)
  divsd  %xmm6,%xmm7
  movapd %xmm7,%xmm0
  movsd  %xmm7,0x20(%rsp)
  call   <pow@plt>
  movsd  0x30(%rsp),%xmm2
  movsd  0x18(%rsp),%xmm6
  movsd  0x210(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm7
  movsd  0x228(%rsp),%xmm14
  movsd  (%rsp),%xmm3
  movsd  %xmm6,0x58(%rsp)
  mulsd  %xmm4,%xmm0
  movsd  D118(%rip),%xmm4
  movsd  0x220(%rsp),%xmm1
  movsd  %xmm2,0x70(%rsp)
  mulsd  %xmm6,%xmm7
  addsd  %xmm3,%xmm4
  movsd  %xmm0,0x18(%rbp)
  mulsd  %xmm14,%xmm0
  movsd  %xmm7,0x60(%rsp)
  movsd  %xmm4,0x50(%rsp)
  divsd  %xmm2,%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,0x0(%rbp)
  movapd %xmm7,%xmm0
  mulsd  %xmm6,%xmm0
  movsd  0x10(%rsp),%xmm6
  divsd  %xmm3,%xmm6
  movsd  0x20(%rsp),%xmm3
  subsd  %xmm0,%xmm1
  movapd %xmm3,%xmm0
  movsd  %xmm1,0x18(%rsp)
  movapd %xmm6,%xmm1
  movsd  %xmm6,0x40(%rsp)
  call   <pow@plt>
  movsd  0x20(%rsp),%xmm3
  movsd  0x50(%rsp),%xmm5
  divsd  (%rsp),%xmm5
  movsd  %xmm0,0x10(%rsp)
  movapd %xmm5,%xmm1
  movapd %xmm3,%xmm0
  movsd  %xmm5,0x30(%rsp)
  call   <pow@plt>
  movsd  0x40(%rsp),%xmm4
  movsd  0x20(%rsp),%xmm3
  movq   %xmm0,%r12
  movapd %xmm4,%xmm1
  movapd %xmm3,%xmm0
  call   <pow@plt>
  movsd  (%rsp),%xmm3
  movsd  0x50(%rsp),%xmm1
  movapd %xmm0,%xmm4
  movq   %r12,%xmm0
  movsd  0xb0(%rsp),%xmm13
  movsd  0x228(%rsp),%xmm14
  mulsd  %xmm3,%xmm0
  movsd  0x58(%rsp),%xmm6
  movsd  0x60(%rsp),%xmm7
  mulsd  0x10(%rsp),%xmm1
  movsd  0x30(%rsp),%xmm5
  movsd  %xmm13,0x10(%rsp)
  movsd  0x80(%rsp),%xmm8
  mulsd  %xmm6,%xmm4
  addsd  %xmm1,%xmm0
  movapd %xmm3,%xmm1
  addsd  %xmm3,%xmm1
  addsd  D118(%rip),%xmm1
  movsd  0x8(%rsp),%xmm3
  divsd  %xmm1,%xmm0
  movsd  0x18(%rsp),%xmm1
  divsd  %xmm3,%xmm1
  divsd  %xmm13,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  0x220(%rsp),%xmm0
  mulsd  %xmm14,%xmm0
  divsd  %xmm6,%xmm0
  subsd  %xmm7,%xmm0
  movsd  0x1e0(%rsp),%xmm7
  divsd  %xmm3,%xmm0
  movsd  0x20(%rsp),%xmm3
  divsd  %xmm13,%xmm0
  subsd  %xmm0,%xmm7
  movapd %xmm1,%xmm0
  movapd %xmm5,%xmm1
  mulsd  %xmm4,%xmm7
  addsd  %xmm7,%xmm0
  movsd  %xmm0,0x8(%rbx)
  movsd  0x8(%rbp),%xmm4
  subsd  %xmm8,%xmm4
  mulsd  0x0(%rbp),%xmm4
  mulsd  %xmm0,%xmm4
  movsd  %xmm4,0x18(%rbx)
  movsd  0x8(%rbp),%xmm0
  movsd  %xmm4,0x8(%rsp)
  subsd  %xmm8,%xmm0
  mulsd  0x0(%rbp),%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm3,%xmm0
  call   <pow@plt>
  mulsd  (%rsp),%xmm0
  movsd  0x10(%rsp),%xmm13
  mulsd  0x18(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm4
  movsd  0x70(%rsp),%xmm2
  divsd  %xmm13,%xmm0
  addsd  %xmm4,%xmm0
  movsd  0x1f0(%rsp),%xmm4
  divsd  %xmm2,%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,(%rbx)
  movsd  0x8(%rbp),%xmm0
  xorpd  D71(%rip),%xmm0
  mulsd  0x1f8(%rsp),%xmm0
  movsd  %xmm4,0x10(%rbp)
  mulsd  0x0(%rbp),%xmm0
  divsd  %xmm13,%xmm0
  movsd  %xmm0,0x10(%rbx)
  jmp    L477
  xchg   %ax,%ax
L387:
  movapd %xmm8,%xmm2
  movapd %xmm14,%xmm1
  movsd  %xmm3,0x208(%rsp)
  movsd  0x8(%rsp),%xmm3
  addsd  %xmm9,%xmm2
  addsd  %xmm14,%xmm1
  movsd  %xmm15,0x90(%rsp)
  movsd  %xmm10,0xb0(%rsp)
  movsd  %xmm8,0x80(%rsp)
  addsd  %xmm2,%xmm2
  divsd  %xmm3,%xmm1
  movsd  %xmm9,0x50(%rsp)
  movsd  %xmm14,0x228(%rsp)
  divsd  %xmm3,%xmm2
  addsd  %xmm11,%xmm2
  mulsd  (%rsp),%xmm2
  movsd  %xmm2,0x8(%rbp)
  subsd  %xmm8,%xmm2
  movapd %xmm2,%xmm6
  movsd  %xmm2,0x30(%rsp)
  divsd  %xmm9,%xmm6
  movapd %xmm6,%xmm0
  movsd  %xmm6,0x20(%rsp)
  call   <pow@plt>
  movsd  0x30(%rsp),%xmm2
  movsd  0x18(%rsp),%xmm6
  movsd  0x208(%rsp),%xmm3
  movsd  0x50(%rsp),%xmm9
  movsd  0x228(%rsp),%xmm14
  movsd  (%rsp),%xmm4
  movsd  %xmm2,0x70(%rsp)
  mulsd  %xmm3,%xmm0
  movsd  D118(%rip),%xmm3
  movsd  0x218(%rsp),%xmm1
  movsd  %xmm9,0x58(%rsp)
  mulsd  %xmm9,%xmm6
  addsd  %xmm4,%xmm3
  movsd  %xmm0,0x18(%rbp)
  mulsd  %xmm14,%xmm0
  movsd  %xmm6,0x60(%rsp)
  movsd  %xmm3,0x50(%rsp)
  divsd  %xmm2,%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,0x0(%rbp)
  movapd %xmm6,%xmm0
  movsd  0x10(%rsp),%xmm6
  mulsd  %xmm9,%xmm0
  divsd  %xmm4,%xmm6
  movsd  0x20(%rsp),%xmm4
  subsd  %xmm0,%xmm1
  movapd %xmm4,%xmm0
  movsd  %xmm1,0x18(%rsp)
  movapd %xmm6,%xmm1
  movsd  %xmm6,0x40(%rsp)
  call   <pow@plt>
  movsd  0x20(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm5
  divsd  (%rsp),%xmm5
  movsd  %xmm0,0x10(%rsp)
  movapd %xmm5,%xmm1
  movapd %xmm4,%xmm0
  movsd  %xmm5,0x30(%rsp)
  call   <pow@plt>
  movsd  0x40(%rsp),%xmm3
  movsd  0x20(%rsp),%xmm4
  movq   %xmm0,%r12
  movapd %xmm3,%xmm1
  movapd %xmm4,%xmm0
  call   <pow@plt>
  movsd  (%rsp),%xmm4
  movsd  0x50(%rsp),%xmm5
  movq   %r12,%xmm6
  mulsd  0x10(%rsp),%xmm5
  movapd %xmm0,%xmm3
  movsd  0xb0(%rsp),%xmm10
  mulsd  %xmm4,%xmm6
  movapd %xmm4,%xmm1
  movsd  0x228(%rsp),%xmm14
  movsd  0x58(%rsp),%xmm9
  addsd  %xmm4,%xmm1
  movsd  0x8(%rsp),%xmm4
  addsd  D118(%rip),%xmm1
  movsd  %xmm10,0x10(%rsp)
  movsd  0x90(%rsp),%xmm15
  mulsd  %xmm9,%xmm3
  movsd  0x80(%rsp),%xmm8
  mulsd  0x218(%rsp),%xmm14
  movapd %xmm5,%xmm0
  movsd  0x30(%rsp),%xmm5
  addsd  %xmm6,%xmm0
  movsd  0x60(%rsp),%xmm6
  divsd  %xmm1,%xmm0
  movsd  0x18(%rsp),%xmm1
  divsd  %xmm4,%xmm1
  divsd  %xmm10,%xmm1
  mulsd  %xmm1,%xmm0
  movapd %xmm14,%xmm1
  divsd  %xmm9,%xmm1
  subsd  %xmm6,%xmm1
  divsd  %xmm4,%xmm1
  movsd  0x20(%rsp),%xmm4
  divsd  %xmm10,%xmm1
  addsd  %xmm15,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm5,%xmm1
  movsd  %xmm0,0x8(%rbx)
  movsd  0x8(%rbp),%xmm3
  subsd  %xmm8,%xmm3
  mulsd  0x0(%rbp),%xmm3
  mulsd  %xmm0,%xmm3
  movsd  %xmm3,0x18(%rbx)
  movsd  0x8(%rbp),%xmm0
  movsd  %xmm3,0x8(%rsp)
  subsd  %xmm8,%xmm0
  mulsd  0x0(%rbp),%xmm0
  movsd  %xmm0,(%rsp)
  movapd %xmm4,%xmm0
  call   <pow@plt>
  mulsd  (%rsp),%xmm0
  movsd  0x10(%rsp),%xmm10
  mulsd  0x18(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm3
  movsd  0x1e8(%rsp),%xmm4
  movsd  0x70(%rsp),%xmm2
  divsd  %xmm10,%xmm0
  addsd  %xmm3,%xmm0
  divsd  %xmm2,%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,(%rbx)
  movsd  0x8(%rbp),%xmm0
  xorpd  D71(%rip),%xmm0
  mulsd  0x1f8(%rsp),%xmm0
  movsd  %xmm4,0x10(%rbp)
  mulsd  0x0(%rbp),%xmm0
  divsd  %xmm10,%xmm0
  movsd  %xmm0,0x10(%rbx)
  jmp    L477
  nopl   0x0(%rax)
L563:
  movsd  0xf0(%rsp),%xmm7
  movsd  0x108(%rsp),%xmm6
  movapd 0xa0(%rsp),%xmm4
  divsd  %xmm7,%xmm5
  movups %xmm4,0x0(%rbp)
  movapd 0x120(%rsp),%xmm4
  movups %xmm4,0x10(%rbp)
  movapd %xmm0,%xmm4
  mulsd  %xmm7,%xmm4
  movsd  %xmm4,0x40(%rsp)
  divsd  %xmm6,%xmm5
  divsd  %xmm6,%xmm5
  addsd  %xmm14,%xmm5
  movsd  %xmm5,0x8(%rbx)
  movapd %xmm4,%xmm5
  mulsd  %xmm14,%xmm5
  addsd  %xmm1,%xmm5
  movsd  %xmm5,0x18(%rbx)
  movsd  %xmm5,0x50(%rsp)
  test   %r13d,%r13d
  je     L65
  movsd  (%rsp),%xmm4
  movsd  D118(%rip),%xmm1
  movapd %xmm6,%xmm0
  movsd  %xmm10,0x10(%rsp)
  divsd  %xmm9,%xmm0
  movsd  %xmm8,0x8(%rsp)
  addsd  %xmm4,%xmm1
  movsd  %xmm9,(%rsp)
  divsd  %xmm4,%xmm1
  call   <pow@plt>
  movsd  (%rsp),%xmm9
  movsd  0x18(%rsp),%xmm4
  movapd %xmm0,%xmm2
  movsd  0x10(%rsp),%xmm10
  movsd  0x218(%rsp),%xmm1
  mulsd  %xmm9,%xmm4
  movsd  0x50(%rsp),%xmm5
  movsd  0x108(%rsp),%xmm6
  movsd  0x8(%rsp),%xmm8
  mulsd  0x1f8(%rsp),%xmm8
  movapd %xmm4,%xmm0
  movsd  0x40(%rsp),%xmm4
  mulsd  %xmm9,%xmm0
  mulsd  %xmm2,%xmm4
  subsd  %xmm0,%xmm1
  mulsd  %xmm4,%xmm1
  divsd  %xmm10,%xmm1
  addsd  %xmm5,%xmm1
  divsd  %xmm6,%xmm1
  divsd  %xmm6,%xmm1
  movsd  %xmm1,(%rbx)
  movsd  0x8(%rbp),%xmm0
  xorpd  0x20(%rsp),%xmm0
  mulsd  0x1f8(%rsp),%xmm0
  mulsd  0x0(%rbp),%xmm0
  divsd  %xmm10,%xmm0
  addsd  %xmm8,%xmm0
  movsd  %xmm0,0x10(%rbx)
  jmp    L477
  nopw   0x0(%rax,%rax,1)
L326:
  movsd  0xb0(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  pxor   %xmm7,%xmm7
  mulsd  %xmm4,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  mulsd  0x10(%rsp),%xmm0
  divsd  0xf8(%rsp),%xmm0
  ucomisd %xmm0,%xmm7
  ja     L296
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x70(%rsp)
L1:
  movsd  0xb0(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm4,%xmm1
  addsd  %xmm0,%xmm1
  mulsd  0x10(%rsp),%xmm1
  divsd  %xmm13,%xmm1
  ucomisd %xmm1,%xmm7
  ja     L612
  sqrtsd %xmm1,%xmm1
L575:
  movsd  (%rsp),%xmm14
  movsd  D118(%rip),%xmm0
  movapd %xmm14,%xmm7
  subsd  %xmm14,%xmm0
  mulsd  %xmm4,%xmm7
  movsd  %xmm7,0xb8(%rsp)
  addsd  %xmm2,%xmm7
  movapd %xmm7,%xmm5
  mulsd  %xmm13,%xmm5
  divsd  %xmm5,%xmm0
  pxor   %xmm5,%xmm5
  ucomisd %xmm0,%xmm5
  ja     L144
  sqrtsd %xmm0,%xmm0
L7:
  movsd  D118(%rip),%xmm5
  movsd  0x10(%rsp),%xmm14
  addsd  0x80(%rsp),%xmm5
  mulsd  %xmm0,%xmm14
  mulsd  %xmm4,%xmm5
  addsd  %xmm2,%xmm5
  mulsd  %xmm14,%xmm5
  xorpd  0x20(%rsp),%xmm14
  divsd  %xmm7,%xmm5
  movsd  %xmm5,0x80(%rsp)
  movsd  (%rsp),%xmm5
  addsd  D285(%rip),%xmm5
  mulsd  %xmm2,%xmm5
  addsd  0xb8(%rsp),%xmm5
  mulsd  %xmm14,%xmm5
  movsd  0x100(%rsp),%xmm14
  divsd  %xmm7,%xmm5
  movapd %xmm2,%xmm7
  subsd  %xmm4,%xmm7
  movsd  %xmm5,0xb8(%rsp)
  movsd  D287(%rip),%xmm5
  mulsd  %xmm7,%xmm5
  movsd  0xf8(%rsp),%xmm7
  mulsd  %xmm5,%xmm0
  movsd  0x70(%rsp),%xmm5
  mulsd  %xmm7,%xmm5
  mulsd  0x100(%rsp),%xmm7
  mulsd  0x80(%rsp),%xmm5
  divsd  %xmm13,%xmm0
  addsd  D118(%rip),%xmm5
  mulsd  %xmm7,%xmm14
  movsd  0x70(%rsp),%xmm7
  divsd  %xmm14,%xmm7
  addsd  0x80(%rsp),%xmm7
  movapd %xmm7,%xmm14
  movapd %xmm6,%xmm7
  xorpd  0x20(%rsp),%xmm14
  mulsd  %xmm6,%xmm7
  mulsd  0xb8(%rsp),%xmm7
  movsd  %xmm14,0x70(%rsp)
  movapd %xmm1,%xmm14
  addsd  %xmm0,%xmm7
  mulsd  %xmm1,%xmm0
  mulsd  0xb8(%rsp),%xmm1
  mulsd  0x50(%rsp),%xmm0
  mulsd  %xmm13,%xmm7
  subsd  %xmm7,%xmm14
  movq   %r12,%xmm7
  divsd  %xmm13,%xmm7
  mulsd  0x1e0(%rsp),%xmm14
  addsd  %xmm14,%xmm0
  addsd  %xmm1,%xmm7
  movsd  0x58(%rsp),%xmm1
  mulsd  0x220(%rsp),%xmm7
  mulsd  %xmm5,%xmm1
  mulsd  0x60(%rsp),%xmm5
  addsd  %xmm0,%xmm7
  movsd  %xmm5,0x80(%rsp)
  jmp    L237
  nop
L65:
  movsd  0xb0(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm4
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm4
  addsd  %xmm4,%xmm0
  mulsd  0x10(%rsp),%xmm0
  pxor   %xmm4,%xmm4
  divsd  0xf0(%rsp),%xmm0
  ucomisd %xmm0,%xmm4
  ja     L399
  movapd %xmm0,%xmm7
  sqrtsd %xmm7,%xmm7
L20:
  movapd 0x20(%rsp),%xmm4
  movsd  0x8(%rsp),%xmm0
  mulsd  %xmm3,%xmm0
  xorpd  %xmm7,%xmm4
  movapd %xmm4,%xmm13
  movsd  0xb0(%rsp),%xmm4
  mulsd  %xmm2,%xmm4
  addsd  %xmm4,%xmm0
  mulsd  0x10(%rsp),%xmm0
  pxor   %xmm4,%xmm4
  divsd  %xmm10,%xmm0
  ucomisd %xmm0,%xmm4
  ja     L472
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm0,%xmm6
L333:
  movapd 0x20(%rsp),%xmm4
  movapd %xmm3,%xmm5
  movsd  D118(%rip),%xmm12
  mulsd  %xmm10,%xmm5
  subsd  0x8(%rsp),%xmm11
  subsd  0xb8(%rsp),%xmm12
  xorpd  %xmm6,%xmm4
  movapd %xmm4,%xmm0
  movsd  (%rsp),%xmm4
  mulsd  %xmm2,%xmm4
  mulsd  %xmm12,%xmm5
  movsd  0xb8(%rsp),%xmm12
  subsd  D118(%rip),%xmm12
  addsd  %xmm3,%xmm4
  mulsd  (%rsp),%xmm3
  divsd  %xmm4,%xmm5
  addsd  %xmm2,%xmm3
  divsd  %xmm4,%xmm3
  divsd  %xmm4,%xmm5
  movapd %xmm5,%xmm6
  movapd %xmm10,%xmm5
  xorpd  0x20(%rsp),%xmm10
  mulsd  %xmm2,%xmm5
  mulsd  %xmm12,%xmm5
  movsd  0x108(%rsp),%xmm12
  divsd  %xmm4,%xmm5
  divsd  %xmm4,%xmm5
  movapd %xmm5,%xmm2
  mulsd  %xmm9,%xmm2
  mulsd  %xmm9,%xmm2
  addsd  %xmm3,%xmm2
  mulsd  %xmm10,%xmm2
  movapd %xmm0,%xmm10
  mulsd  %xmm3,%xmm10
  mulsd  0x18(%rsp),%xmm3
  movapd %xmm2,%xmm4
  mulsd  %xmm15,%xmm4
  movsd  0x30(%rsp),%xmm15
  movapd %xmm15,%xmm2
  movapd %xmm15,%xmm9
  subsd  %xmm7,%xmm2
  mulsd  %xmm6,%xmm9
  divsd  %xmm12,%xmm2
  divsd  %xmm12,%xmm2
  movsd  0xf0(%rsp),%xmm12
  subsd  %xmm9,%xmm2
  movapd %xmm12,%xmm9
  mulsd  %xmm15,%xmm9
  mulsd  %xmm1,%xmm2
  mulsd  %xmm13,%xmm9
  mulsd  %xmm12,%xmm13
  mulsd  %xmm6,%xmm9
  mulsd  %xmm14,%xmm13
  mulsd  %xmm14,%xmm9
  subsd  %xmm13,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm9,%xmm2
  movsd  0x18(%rsp),%xmm9
  mulsd  %xmm10,%xmm9
  movapd %xmm0,%xmm10
  mulsd  %xmm5,%xmm10
  mulsd  0x218(%rsp),%xmm10
  mulsd  0x218(%rsp),%xmm5
  addsd  %xmm10,%xmm9
  addsd  %xmm5,%xmm3
  addsd  %xmm4,%xmm9
  mulsd  %xmm0,%xmm3
  mulsd  %xmm15,%xmm9
  movapd 0x20(%rsp),%xmm15
  addsd  %xmm4,%xmm3
  subsd  %xmm9,%xmm2
  addsd  %xmm3,%xmm1
  xorpd  %xmm15,%xmm2
  divsd  %xmm7,%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm11,%xmm1
  mulsd  %xmm8,%xmm1
  mulsd  0x1f8(%rsp),%xmm8
  addsd  %xmm2,%xmm1
  movsd  %xmm1,(%rbx)
  mulsd  0x8(%rbp),%xmm0
  mulsd  0x1f8(%rsp),%xmm0
  xorpd  %xmm15,%xmm0
  divsd  %xmm7,%xmm0
  subsd  %xmm0,%xmm8
  movsd  %xmm8,0x10(%rbx)
  jmp    L477
  nopl   0x0(%rax,%rax,1)
L570:
  movsd  0xb0(%rsp),%xmm0
  movsd  0x8(%rsp),%xmm5
  pxor   %xmm3,%xmm3
  mulsd  %xmm4,%xmm0
  mulsd  %xmm2,%xmm5
  addsd  %xmm0,%xmm5
  mulsd  0x10(%rsp),%xmm5
  divsd  0xf8(%rsp),%xmm5
  ucomisd %xmm5,%xmm3
  ja     L398
  sqrtsd %xmm5,%xmm5
L64:
  movsd  0xb0(%rsp),%xmm3
  movsd  0x8(%rsp),%xmm0
  mulsd  %xmm2,%xmm3
  mulsd  %xmm4,%xmm0
  addsd  %xmm3,%xmm0
  mulsd  0x10(%rsp),%xmm0
  pxor   %xmm3,%xmm3
  divsd  %xmm13,%xmm0
  ucomisd %xmm0,%xmm3
  ja     L464
  sqrtsd %xmm0,%xmm0
L485:
  movapd %xmm4,%xmm7
  movsd  D118(%rip),%xmm3
  addsd  %xmm0,%xmm12
  movsd  0xb8(%rsp),%xmm11
  mulsd  %xmm13,%xmm7
  movsd  (%rsp),%xmm15
  subsd  %xmm11,%xmm3
  subsd  D118(%rip),%xmm11
  movapd %xmm15,%xmm9
  mulsd  %xmm2,%xmm9
  mulsd  %xmm3,%xmm7
  movapd %xmm13,%xmm3
  xorpd  0x20(%rsp),%xmm13
  mulsd  %xmm2,%xmm3
  addsd  %xmm4,%xmm9
  mulsd  %xmm15,%xmm4
  movsd  0x30(%rsp),%xmm15
  mulsd  %xmm11,%xmm3
  movsd  0xf8(%rsp),%xmm11
  divsd  %xmm9,%xmm7
  addsd  %xmm2,%xmm4
  divsd  %xmm9,%xmm3
  divsd  %xmm9,%xmm7
  divsd  %xmm9,%xmm3
  divsd  %xmm9,%xmm4
  movapd %xmm15,%xmm9
  addsd  %xmm5,%xmm9
  movapd %xmm3,%xmm2
  movapd %xmm3,%xmm10
  mulsd  %xmm6,%xmm2
  mulsd  %xmm0,%xmm10
  mulsd  0x220(%rsp),%xmm10
  mulsd  0x220(%rsp),%xmm3
  mulsd  %xmm2,%xmm6
  movsd  0x100(%rsp),%xmm2
  divsd  %xmm2,%xmm9
  addsd  %xmm4,%xmm6
  mulsd  %xmm13,%xmm6
  movsd  0x50(%rsp),%xmm13
  mulsd  0x1e0(%rsp),%xmm6
  divsd  %xmm2,%xmm9
  movapd %xmm15,%xmm2
  mulsd  %xmm7,%xmm2
  subsd  %xmm2,%xmm9
  movapd %xmm11,%xmm2
  mulsd  %xmm15,%xmm2
  mulsd  %xmm1,%xmm9
  mulsd  %xmm5,%xmm2
  mulsd  %xmm7,%xmm2
  mulsd  %xmm14,%xmm2
  addsd  %xmm2,%xmm9
  movapd %xmm4,%xmm2
  mulsd  %xmm0,%xmm2
  mulsd  %xmm13,%xmm4
  mulsd  %xmm13,%xmm2
  addsd  %xmm4,%xmm3
  addsd  %xmm10,%xmm2
  addsd  %xmm6,%xmm2
  mulsd  %xmm15,%xmm2
  subsd  %xmm2,%xmm9
  movapd %xmm3,%xmm2
  movapd %xmm11,%xmm3
  mulsd  %xmm5,%xmm3
  mulsd  %xmm0,%xmm2
  divsd  %xmm5,%xmm9
  mulsd  %xmm14,%xmm3
  addsd  %xmm6,%xmm2
  subsd  %xmm3,%xmm1
  mulsd  %xmm7,%xmm1
  addsd  %xmm1,%xmm2
  subsd  %xmm9,%xmm2
  divsd  %xmm12,%xmm2
  mulsd  %xmm8,%xmm2
  mulsd  0x200(%rsp),%xmm8
  addsd  %xmm9,%xmm2
  movsd  %xmm2,(%rbx)
  mulsd  0x8(%rbp),%xmm0
  mulsd  0x200(%rsp),%xmm0
  divsd  %xmm5,%xmm0
  subsd  %xmm0,%xmm8
  movsd  %xmm8,0x10(%rbx)
  jmp    L477
L161:
  movapd %xmm6,%xmm0
  movsd  %xmm10,0x10(%rsp)
  movsd  %xmm7,0x230(%rsp)
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x100(%rsp)
  movsd  %xmm12,0xf8(%rsp)
  movsd  %xmm11,0xf0(%rsp)
  movsd  %xmm13,0xb0(%rsp)
  movsd  %xmm8,0x8(%rsp)
  movsd  %xmm9,(%rsp)
  call   <sqrt@plt>
  movsd  0x10(%rsp),%xmm10
  movsd  0x230(%rsp),%xmm7
  movsd  0x228(%rsp),%xmm14
  movsd  (%rsp),%xmm9
  movapd %xmm0,%xmm6
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x100(%rsp),%xmm15
  movsd  0xf8(%rsp),%xmm12
  movsd  0xf0(%rsp),%xmm11
  movsd  0x8(%rsp),%xmm8
  movsd  0xb0(%rsp),%xmm13
  jmp    L113
L368:
  movapd %xmm9,%xmm0
  movsd  %xmm13,0x10(%rsp)
  movsd  %xmm7,0x230(%rsp)
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0xf8(%rsp)
  movsd  %xmm12,0xf0(%rsp)
  movsd  %xmm11,0xb0(%rsp)
  movsd  %xmm10,0x8(%rsp)
  movsd  %xmm8,(%rsp)
  call   <sqrt@plt>
  movsd  0x10(%rsp),%xmm13
  movsd  0x8(%rsp),%xmm10
  pxor   %xmm5,%xmm5
  movsd  0x230(%rsp),%xmm7
  movsd  (%rsp),%xmm8
  movapd %xmm0,%xmm9
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0xf8(%rsp),%xmm15
  movsd  0xf0(%rsp),%xmm12
  movsd  0xb0(%rsp),%xmm11
  jmp    L173
L474:
  call   <__stack_chk_fail@plt>
L74:
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x178(%rsp)
  movsd  %xmm12,0x170(%rsp)
  movsd  %xmm11,0x168(%rsp)
  movsd  %xmm13,0x160(%rsp)
  movsd  %xmm10,0x158(%rsp)
  movsd  %xmm8,0x150(%rsp)
  movsd  %xmm6,0x148(%rsp)
  movsd  %xmm9,0x140(%rsp)
  movsd  %xmm5,0x138(%rsp)
  movsd  %xmm2,0x130(%rsp)
  call   <sqrt@plt>
  pxor   %xmm7,%xmm7
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x178(%rsp),%xmm15
  movsd  %xmm0,0x100(%rsp)
  movsd  0x170(%rsp),%xmm12
  movsd  0x168(%rsp),%xmm11
  movsd  0x160(%rsp),%xmm13
  movsd  0x158(%rsp),%xmm10
  movsd  0x150(%rsp),%xmm8
  movsd  0x148(%rsp),%xmm6
  movsd  0x140(%rsp),%xmm9
  movsd  0x138(%rsp),%xmm5
  movsd  0x130(%rsp),%xmm2
  jmp    L143
L548:
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x150(%rsp)
  movsd  %xmm12,0x148(%rsp)
  movsd  %xmm11,0x140(%rsp)
  movsd  %xmm13,0x138(%rsp)
  movsd  %xmm10,0x130(%rsp)
  movsd  %xmm8,0x120(%rsp)
  movsd  %xmm6,0x110(%rsp)
  movsd  %xmm9,0x100(%rsp)
  movsd  %xmm2,0xf8(%rsp)
  call   <sqrt@plt>
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x150(%rsp),%xmm15
  movsd  0x148(%rsp),%xmm12
  movsd  0x140(%rsp),%xmm11
  movsd  0x138(%rsp),%xmm13
  movsd  0x130(%rsp),%xmm10
  movsd  0x120(%rsp),%xmm8
  movsd  0x110(%rsp),%xmm6
  movsd  0x100(%rsp),%xmm9
  movsd  0xf8(%rsp),%xmm2
  jmp    L172
L149:
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x178(%rsp)
  movsd  %xmm12,0x170(%rsp)
  movsd  %xmm11,0x168(%rsp)
  movsd  %xmm13,0x160(%rsp)
  movsd  %xmm10,0x158(%rsp)
  movsd  %xmm8,0x150(%rsp)
  movsd  %xmm6,0x148(%rsp)
  movsd  %xmm9,0x140(%rsp)
  movsd  %xmm5,0x138(%rsp)
  movsd  %xmm2,0x130(%rsp)
  call   <sqrt@plt>
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x178(%rsp),%xmm15
  movsd  0x170(%rsp),%xmm12
  movsd  0x168(%rsp),%xmm11
  movsd  0x160(%rsp),%xmm13
  movsd  0x158(%rsp),%xmm10
  movsd  0x150(%rsp),%xmm8
  movsd  0x148(%rsp),%xmm6
  movsd  0x140(%rsp),%xmm9
  movsd  0x138(%rsp),%xmm5
  movsd  0x130(%rsp),%xmm2
  jmp    L235
L211:
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x148(%rsp)
  movsd  %xmm12,0x140(%rsp)
  movsd  %xmm11,0x138(%rsp)
  movsd  %xmm13,0x130(%rsp)
  movsd  %xmm10,0x120(%rsp)
  movsd  %xmm8,0x110(%rsp)
  movsd  %xmm6,0x100(%rsp)
  movsd  %xmm9,0xf8(%rsp)
  movsd  %xmm2,0x10(%rsp)
  call   <sqrt@plt>
  movsd  0x10(%rsp),%xmm2
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  %xmm0,0x108(%rsp)
  movsd  0x148(%rsp),%xmm15
  movsd  0x140(%rsp),%xmm12
  movsd  0x138(%rsp),%xmm11
  movsd  0x130(%rsp),%xmm13
  movsd  0x120(%rsp),%xmm10
  movsd  0x110(%rsp),%xmm8
  movsd  0x100(%rsp),%xmm6
  movsd  0xf8(%rsp),%xmm9
  jmp    L519
L144:
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x168(%rsp)
  movsd  %xmm12,0x160(%rsp)
  movsd  %xmm11,0x158(%rsp)
  movsd  %xmm13,0x150(%rsp)
  movsd  %xmm10,0x148(%rsp)
  movsd  %xmm8,0x140(%rsp)
  movsd  %xmm1,0x138(%rsp)
  movsd  %xmm6,0x130(%rsp)
  movsd  %xmm9,0xe0(%rsp)
  movsd  %xmm7,0xd0(%rsp)
  movsd  %xmm2,0xc0(%rsp)
  call   <sqrt@plt>
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x168(%rsp),%xmm15
  movsd  0x160(%rsp),%xmm12
  movsd  0x158(%rsp),%xmm11
  movsd  0x150(%rsp),%xmm13
  movsd  0x148(%rsp),%xmm10
  movsd  0x140(%rsp),%xmm8
  movsd  0x138(%rsp),%xmm1
  movsd  0x130(%rsp),%xmm6
  movsd  0xe0(%rsp),%xmm9
  movsd  0xd0(%rsp),%xmm7
  movsd  0xc0(%rsp),%xmm2
  jmp    L7
L446:
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x148(%rsp)
  movsd  %xmm12,0x140(%rsp)
  movsd  %xmm11,0x138(%rsp)
  movsd  %xmm13,0x130(%rsp)
  movsd  %xmm10,0xe0(%rsp)
  movsd  %xmm8,0xd0(%rsp)
  movsd  %xmm6,0xc0(%rsp)
  movsd  %xmm9,0xb8(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm2,0x58(%rsp)
  call   <sqrt@plt>
  movsd  0x58(%rsp),%xmm2
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x148(%rsp),%xmm15
  movsd  0x140(%rsp),%xmm12
  movsd  0x138(%rsp),%xmm11
  movsd  0x130(%rsp),%xmm13
  movsd  0xe0(%rsp),%xmm10
  movsd  0xd0(%rsp),%xmm8
  movsd  0xc0(%rsp),%xmm6
  movsd  0xb8(%rsp),%xmm9
  movsd  0x80(%rsp),%xmm5
  jmp    L538
L464:
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm12,0x80(%rsp)
  movsd  %xmm13,0x70(%rsp)
  movsd  %xmm8,0x60(%rsp)
  movsd  %xmm5,0x58(%rsp)
  movsd  %xmm1,0x40(%rsp)
  movsd  %xmm14,0x18(%rsp)
  movsd  %xmm6,0x10(%rsp)
  movsd  %xmm2,0x8(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm13
  movsd  0x210(%rsp),%xmm4
  movsd  0x80(%rsp),%xmm12
  movsd  0x60(%rsp),%xmm8
  movsd  0x58(%rsp),%xmm5
  movsd  0x40(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm14
  movsd  0x10(%rsp),%xmm6
  movsd  0x8(%rsp),%xmm2
  jmp    L485
L398:
  movapd %xmm5,%xmm0
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm12,0x90(%rsp)
  movsd  %xmm13,0x80(%rsp)
  movsd  %xmm8,0x70(%rsp)
  movsd  %xmm14,0x58(%rsp)
  movsd  %xmm6,0x40(%rsp)
  movsd  %xmm2,0x18(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm8
  movsd  0x210(%rsp),%xmm4
  movsd  0x60(%rsp),%xmm1
  movsd  0x58(%rsp),%xmm14
  movapd %xmm0,%xmm5
  movsd  0x90(%rsp),%xmm12
  movsd  0x40(%rsp),%xmm6
  movsd  0x80(%rsp),%xmm13
  movsd  0x18(%rsp),%xmm2
  jmp    L64
L612:
  movsd  %xmm4,0x210(%rsp)
  movapd %xmm1,%xmm0
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x150(%rsp)
  movsd  %xmm12,0x148(%rsp)
  movsd  %xmm11,0x140(%rsp)
  movsd  %xmm13,0x138(%rsp)
  movsd  %xmm10,0x130(%rsp)
  movsd  %xmm8,0xe0(%rsp)
  movsd  %xmm6,0xd0(%rsp)
  movsd  %xmm9,0xc0(%rsp)
  movsd  %xmm2,0xb8(%rsp)
  call   <sqrt@plt>
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x150(%rsp),%xmm15
  movapd %xmm0,%xmm1
  movsd  0x148(%rsp),%xmm12
  movsd  0x140(%rsp),%xmm11
  movsd  0x138(%rsp),%xmm13
  movsd  0x130(%rsp),%xmm10
  movsd  0xe0(%rsp),%xmm8
  movsd  0xd0(%rsp),%xmm6
  movsd  0xc0(%rsp),%xmm9
  movsd  0xb8(%rsp),%xmm2
  jmp    L575
L296:
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x150(%rsp)
  movsd  %xmm12,0x148(%rsp)
  movsd  %xmm11,0x140(%rsp)
  movsd  %xmm13,0x138(%rsp)
  movsd  %xmm10,0x130(%rsp)
  movsd  %xmm8,0xe0(%rsp)
  movsd  %xmm6,0xd0(%rsp)
  movsd  %xmm9,0xc0(%rsp)
  movsd  %xmm2,0xb8(%rsp)
  call   <sqrt@plt>
  pxor   %xmm7,%xmm7
  movsd  0x210(%rsp),%xmm4
  movsd  0x208(%rsp),%xmm3
  movsd  0x150(%rsp),%xmm15
  movsd  %xmm0,0x70(%rsp)
  movsd  0x148(%rsp),%xmm12
  movsd  0x140(%rsp),%xmm11
  movsd  0x138(%rsp),%xmm13
  movsd  0x130(%rsp),%xmm10
  movsd  0xe0(%rsp),%xmm8
  movsd  0xd0(%rsp),%xmm6
  movsd  0xc0(%rsp),%xmm9
  movsd  0xb8(%rsp),%xmm2
  jmp    L1
L430:
  movapd %xmm1,%xmm0
  movsd  %xmm6,0x70(%rsp)
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0x130(%rsp)
  movsd  %xmm12,0xe0(%rsp)
  movsd  %xmm11,0xd0(%rsp)
  movsd  %xmm13,0xc0(%rsp)
  movsd  %xmm10,0xb8(%rsp)
  movsd  %xmm8,0x80(%rsp)
  movsd  %xmm9,0x58(%rsp)
  movsd  %xmm2,0x40(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm6
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x40(%rsp),%xmm2
  movsd  %xmm0,0x60(%rsp)
  movapd %xmm0,%xmm5
  movsd  0x208(%rsp),%xmm3
  movsd  0x130(%rsp),%xmm15
  movsd  0xe0(%rsp),%xmm12
  movsd  0xd0(%rsp),%xmm11
  movsd  0xc0(%rsp),%xmm13
  movsd  0x58(%rsp),%xmm9
  movsd  0xb8(%rsp),%xmm10
  movsd  0x80(%rsp),%xmm8
  jmp    L83
L241:
  movsd  %xmm14,0x228(%rsp)
  movsd  %xmm4,0x210(%rsp)
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0xd0(%rsp)
  movsd  %xmm12,0xc0(%rsp)
  movsd  %xmm11,0xb8(%rsp)
  movsd  %xmm13,0x80(%rsp)
  movsd  %xmm10,0x70(%rsp)
  movsd  %xmm8,0x60(%rsp)
  movsd  %xmm6,0x58(%rsp)
  movsd  %xmm9,0x40(%rsp)
  movsd  %xmm2,0x20(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm10
  movsd  0x228(%rsp),%xmm14
  movsd  0x210(%rsp),%xmm4
  movsd  0x58(%rsp),%xmm6
  movq   %xmm0,%r15
  movsd  0x208(%rsp),%xmm3
  movsd  0x20(%rsp),%xmm2
  movsd  0xd0(%rsp),%xmm15
  movsd  0xc0(%rsp),%xmm12
  movsd  0x60(%rsp),%xmm8
  movsd  0x40(%rsp),%xmm9
  movsd  0xb8(%rsp),%xmm11
  movsd  0x80(%rsp),%xmm13
  jmp    L523
L472:
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0xa0(%rsp)
  movsd  %xmm11,0x90(%rsp)
  movsd  %xmm10,0xb0(%rsp)
  movsd  %xmm8,0x80(%rsp)
  movsd  %xmm13,0x70(%rsp)
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm14,0x58(%rsp)
  movsd  %xmm9,0x40(%rsp)
  movsd  %xmm7,0x50(%rsp)
  movsd  %xmm2,0x10(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm13
  movsd  0x208(%rsp),%xmm3
  movsd  0xa0(%rsp),%xmm15
  movsd  0x60(%rsp),%xmm1
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm0,%xmm6
  movsd  0x90(%rsp),%xmm11
  movsd  0x58(%rsp),%xmm14
  movsd  0xb0(%rsp),%xmm10
  movsd  0x40(%rsp),%xmm9
  movsd  0x80(%rsp),%xmm8
  movsd  0x50(%rsp),%xmm7
  movsd  0x10(%rsp),%xmm2
  jmp    L333
L399:
  movsd  %xmm3,0x208(%rsp)
  movsd  %xmm15,0xa0(%rsp)
  movsd  %xmm11,0x90(%rsp)
  movsd  %xmm10,0x80(%rsp)
  movsd  %xmm8,0x70(%rsp)
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm14,0x58(%rsp)
  movsd  %xmm9,0x40(%rsp)
  movsd  %xmm2,0x50(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm8
  movsd  0x208(%rsp),%xmm3
  movsd  0x60(%rsp),%xmm1
  movsd  0x50(%rsp),%xmm2
  movapd %xmm0,%xmm7
  movsd  0x58(%rsp),%xmm14
  movsd  0x40(%rsp),%xmm9
  movsd  0xa0(%rsp),%xmm15
  movsd  0x90(%rsp),%xmm11
  movsd  0x80(%rsp),%xmm10
  jmp    L20
```

tool_calls: name: parse_data
arguments: data_label: D97
datatype: byte[16]
name: parse_data
arguments: data_label: D227
datatype: f64
name: parse_data
arguments: data_label: D287
datatype: byte[8]
name: parse_data
arguments: data_label: D118
datatype: f64
name: parse_data
arguments: data_label: D45
datatype: byte[8]
name: parse_data
arguments: data_label: D71
datatype: byte[16]
name: parse_data
arguments: data_label: D285
datatype: f64

tool: {"D97": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: D227: 0.5

tool: {"D287": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xbf]}

tool: D118: 1

tool: {"D45": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

tool: {"D71": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: D285: 2

assistant: ```c
void linear_GRP_2D_solver_Edir(double *wave_speed, double *direvative, double *source, double lambda, double rho_L, double rho_R, double d_rho_L, double d_rho_R, double u_L, double u_R, double d_u_L, double d_u_R, double v_L, double v_R, double d_v_L, double d_v_R, double p_L, double p_R, double d_p_L, double d_p_R, double gamma, double eps) {
  double dist;
  double c_L, c_R, c_frac;
  int CRW[2];
  double d_Phi, d_Psi, TdS, VAR, RIEL, RIER;
  double u_star, p_star, rho_star_L, rho_star_R, c_star_L, c_star_R;
  double PI, H1, H2, H3;
  double a_L, b_L, d_L, a_R, b_R, d_R, detA;
  double L_u, L_p, L_rho;
  double u_t_mat, p_t_mat;
  double shk_spd, SmUs, SmUL, SmUR, zeta = (gamma - 1.0) / (gamma + 1.0), zts = zeta * zeta;
  double C, rho_x;
  double g_rho, g_u, g_p, f;
  double speed_L, speed_R;
  c_L = sqrt(gamma * p_L / rho_L);
  c_R = sqrt(gamma * p_R / rho_R);
  dist = (rho_L - rho_R) * (rho_L - rho_R) + (u_L - u_R) * (u_L - u_R) + (p_L - p_R) * (p_L - p_R);
  if (dist < eps) {
    wave_speed[0] = u_L - c_L;
    wave_speed[1] = u_R + c_R;
    rho_star_L = rho_L;
    rho_star_R = rho_R;
    c_star_L = c_L;
    c_star_R = c_R;
    u_star = 0.5 * (u_R + u_L);
    p_star = 0.5 * (p_R + p_L);
    RIEL = d_u_L + d_p_L / (rho_L * c_L);
    RIER = d_u_R - d_p_R / (rho_R * c_R);
    direvative[1] = -0.5 * ((u_L + c_L) * RIEL + (u_R - c_R) * RIER);
    direvative[3] = -0.5 * rho_L * c_L * ((u_L + c_L) * RIEL - (u_R - c_R) * RIER);
    if (u_star > lambda) {
      source[0] = rho_star_L;
      source[1] = u_star;
      source[2] = v_L;
      source[3] = p_star;
      direvative[0] = (direvative[1] + u_star * (d_p_L - c_L * c_L * d_rho_L)) / c_L / c_L;
      direvative[2] = -u_L * d_v_L;
      direvative[0] = direvative[0] + lambda * d_rho_L;
      direvative[1] = direvative[1] + lambda * d_u_L;
      direvative[2] = direvative[2] + lambda * d_v_L;
      direvative[3] = direvative[3] + lambda * d_p_L;
    } else {
      source[0] = rho_star_R;
      source[1] = u_star;
      source[2] = v_R;
      source[3] = p_star;
      direvative[0] = (direvative[1] + u_star * (d_p_R - c_R * c_R * d_rho_R)) / c_R / c_R;
      direvative[2] = -u_R * d_v_R;
      direvative[0] = direvative[0] + lambda * d_rho_R;
      direvative[1] = direvative[1] + lambda * d_u_R;
      direvative[2] = direvative[2] + lambda * d_v_R;
      direvative[3] = direvative[3] + lambda * d_p_R;
    }
    return;
  }
  Riemann_solver_exact(&u_star, &p_star, gamma, u_L, u_R, p_L, p_R, c_L, c_R, CRW, eps, 500);
  if (CRW[0]) {
    rho_star_L = rho_L * pow(p_star / p_L, 1.0 / gamma);
    c_star_L = c_L * pow(p_star / p_L, 0.5 * (gamma - 1.0) / gamma);
    speed_L = u_L - c_L;
  } else {
    rho_star_L = rho_L * (p_star + zeta * p_L) / (p_L + zeta * p_star);
    c_star_L = sqrt(gamma * p_star / rho_star_L);
    speed_L = u_L - c_L * sqrt(0.5 * ((gamma + 1.0) * (p_star / p_L) + (gamma - 1.0)) / gamma);
  }
  if (CRW[1]) {
    rho_star_R = rho_R * pow(p_star / p_R, 1.0 / gamma);
    c_star_R = c_R * pow(p_star / p_R, 0.5 * (gamma - 1.0) / gamma);
    speed_R = u_R + c_R;
  } else {
    rho_star_R = rho_R * (p_star + zeta * p_R) / (p_R + zeta * p_star);
    c_star_R = sqrt(gamma * p_star / rho_star_R);
    speed_R = u_R + c_R * sqrt(0.5 * ((gamma + 1.0) * (p_star / p_R) + (gamma - 1.0)) / gamma);
  }
  wave_speed[0] = speed_L;
  wave_speed[1] = speed_R;
  if (speed_L > lambda) {
    direvative[0] = -d_rho_L * u_L - rho_L * d_u_L;
    direvative[1] = -u_L * d_u_L - d_p_L / rho_L;
    direvative[2] = -u_L * d_v_L;
    direvative[3] = -(rho_L * c_L * c_L * d_u_L + u_L * d_p_L);
    direvative[0] = direvative[0] + lambda * d_rho_L;
    direvative[1] = direvative[1] + lambda * d_u_L;
    direvative[2] = direvative[2] + lambda * d_v_L;
    direvative[3] = direvative[3] + lambda * d_p_L;
    source[0] = rho_L;
    source[1] = u_L;
    source[2] = v_L;
    source[3] = p_L;
  } else if (speed_R < lambda) {
    direvative[0] = -d_rho_R * u_R - rho_R * d_u_R;
    direvative[1] = -u_R * d_u_R - d_p_R / rho_R;
    direvative[2] = -u_R * d_v_R;
    direvative[3] = -(rho_R * c_R * c_R * d_u_R + u_R * d_p_R);
    direvative[0] = direvative[0] + lambda * d_rho_R;
    direvative[1] = direvative[1] + lambda * d_u_R;
    direvative[2] = direvative[2] + lambda * d_v_R;
    direvative[3] = direvative[3] + lambda * d_p_R;
    source[0] = rho_R;
    source[1] = u_R;
    source[2] = v_R;
    source[3] = p_R;
  } else {
    if ((CRW[0]) && ((u_star - c_star_L) > lambda)) {
      source[1] = zeta * (u_L + 2.0 * (c_L + lambda) / (gamma - 1.0));
      C = source[1] - lambda;
      source[3] = pow(C / c_L, 2.0 * gamma / (gamma - 1.0)) * p_L;
      source[0] = gamma * source[3] / C / C;
      c_frac = C / c_L;
      TdS = (d_p_L - d_rho_L * c_L * c_L) / (gamma - 1.0) / rho_L;
      d_Psi = d_u_L + (gamma * d_p_L / c_L - c_L * d_rho_L) / (gamma - 1.0) / rho_L;
      direvative[1] = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) + zeta * pow(c_frac, (1.0 + zeta) / zeta)) / (1.0 + 2.0 * zeta);
      direvative[1] = direvative[1] * TdS;
      direvative[1] = direvative[1] - c_L * pow(c_frac, 0.5 / zeta) * d_Psi;
      direvative[3] = source[0] * (source[1] - lambda) * direvative[1];
      direvative[0] = source[0] * (source[1] - lambda) * pow(c_frac, (1.0 + zeta) / zeta) * (d_p_L - d_rho_L * c_L * c_L) / rho_L;
      direvative[0] = (direvative[0] + direvative[3]) / C / C;
      source[2] = v_L;
      direvative[2] = -source[1] * d_v_L * source[0] / rho_L;
    } else if ((CRW[1]) && ((u_star + c_star_R) < lambda)) {
      source[1] = zeta * (u_R - 2.0 * (c_R - lambda) / (gamma - 1.0));
      C = lambda - source[1];
      source[3] = pow(C / c_R, 2.0 * gamma / (gamma - 1.0)) * p_R;
      source[0] = gamma * source[3] / C / C;
      c_frac = C / c_R;
      TdS = (d_p_R - d_rho_R * c_R * c_R) / (gamma - 1.0) / rho_R;
      d_Phi = d_u_R - (gamma * d_p_R / c_R - c_R * d_rho_R) / (gamma - 1.0) / rho_R;
      direvative[1] = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) + zeta * pow(c_frac, (1.0 + zeta) / zeta)) / (1.0 + 2.0 * zeta);
      direvative[1] = direvative[1] * TdS;
      direvative[1] = direvative[1] + c_R * pow(c_frac, 0.5 / zeta) * d_Phi;
      direvative[3] = source[0] * (source[1] - lambda) * direvative[1];
      direvative[0] = source[0] * (source[1] - lambda) * pow(c_frac, (1.0 + zeta) / zeta) * (d_p_R - d_rho_R * c_R * c_R) / rho_R;
      direvative[0] = (direvative[0] + direvative[3]) / C / C;
      source[2] = v_R;
      direvative[2] = -source[1] * d_v_L * source[0] / rho_R;
    } else {
      if (CRW[0]) {
        a_L = 1.0;
        b_L = 1.0 / rho_star_L / c_star_L;
        c_frac = c_star_L / c_L;
        TdS = (d_p_L - d_rho_L * c_L * c_L) / (gamma - 1.0) / rho_L;
        d_Psi = d_u_L + (gamma * d_p_L / c_L - c_L * d_rho_L) / (gamma - 1.0) / rho_L;
        d_L = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) + zeta * pow(c_frac, (1.0 + zeta) / zeta)) / (1.0 + 2.0 * zeta);
        d_L = d_L * TdS;
        d_L = d_L - c_L * pow(c_frac, 0.5 / zeta) * d_Psi;
      } else {
        SmUs = -sqrt(0.5 * ((gamma + 1.0) * p_L + (gamma - 1.0) * p_star) / rho_star_L);
        SmUL = -sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_L) / rho_L);
        VAR = sqrt((1 - zeta) / (rho_L * (p_star + zeta * p_L)));
        H1 = 0.5 * VAR * (p_star + (1.0 + 2.0 * zeta) * p_L) / (p_star + zeta * p_L);
        H2 = -0.5 * VAR * ((2.0 + zeta) * p_star + zeta * p_L) / (p_star + zeta * p_L);
        H3 = -0.5 * VAR * (p_star - p_L) / rho_L;
        L_p = -1.0 / rho_L - SmUL * H2;
        L_u = SmUL + rho_L * (c_L * c_L * H2 + H3);
        L_rho = -SmUL * H3;
        a_L = 1.0 - rho_star_L * SmUs * H1;
        b_L = -SmUs / (rho_star_L * c_star_L * c_star_L) + H1;
        d_L = L_rho * d_rho_L + L_u * d_u_L + L_p * d_p_L;
      }
      if (CRW[1]) {
        a_R = 1.0;
        b_R = -1.0 / rho_star_R / c_star_R;
        c_frac = c_star_R / c_R;
        TdS = (d_p_R - d_rho_R * c_R * c_R) / (gamma - 1.0) / rho_R;
        d_Phi = d_u_R - (gamma * d_p_R / c_R - c_R * d_rho_R) / (gamma - 1.0) / rho_R;
        d_R = ((1.0 + zeta) * pow(c_frac, 0.5 / zeta) + zeta * pow(c_frac, (1.0 + zeta) / zeta)) / (1.0 + 2.0 * zeta);
        d_R = d_R * TdS;
        d_R = d_R + c_R * pow(c_frac, 0.5 / zeta) * d_Phi;
      } else {
        SmUs = sqrt(0.5 * ((gamma + 1.0) * p_R + (gamma - 1.0) * p_star) / rho_star_R);
        SmUR = sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_R) / rho_R);
        VAR = sqrt((1.0 - zeta) / (rho_R * (p_star + zeta * p_R)));
        H1 = 0.5 * VAR * (p_star + (1 + 2.0 * zeta) * p_R) / (p_star + zeta * p_R);
        H2 = -0.5 * VAR * ((2.0 + zeta) * p_star + zeta * p_R) / (p_star + zeta * p_R);
        H3 = -0.5 * (p_star - p_R) * VAR / rho_R;
        L_p = -1.0 / rho_R + SmUR * H2;
        L_u = SmUR - rho_R * (c_R * c_R * H2 + H3);
        L_rho = SmUR * H3;
        a_R = 1.0 + rho_star_R * SmUs * H1;
        b_R = -(SmUs / (rho_star_R * c_star_R * c_star_R) + H1);
        d_R = L_rho * d_rho_R + L_u * d_u_R + L_p * d_p_R;
      }
      detA = a_L * b_R - b_L * a_R;
      u_t_mat = (b_R * d_L - b_L * d_R) / detA;
      p_t_mat = (a_L * d_R - a_R * d_L) / detA;
      if (u_star < lambda) {
        source[0] = rho_star_R;
        source[1] = u_star;
        source[2] = v_R;
        source[3] = p_star;
        direvative[1] = u_t_mat + (u_star - lambda) * p_t_mat / rho_star_R / c_star_R / c_star_R;
        direvative[3] = p_t_mat + rho_star_R * (u_star - lambda) * u_t_mat;
        if (CRW[1]) {
          direvative[0] = rho_star_R * (u_star - lambda) * pow(c_star_R / c_R, (1.0 + zeta) / zeta) * (d_p_R - d_rho_R * c_R * c_R) / rho_R;
          direvative[0] = (direvative[0] + direvative[3]) / c_star_R / c_star_R;
          direvative[2] = -source[1] * d_v_R * source[0] / rho_R;
          direvative[2] = direvative[2] + lambda * d_v_R;
        } else {
          SmUs = sqrt(0.5 * ((gamma + 1.0) * p_R + (gamma - 1.0) * p_star) / rho_star_R);
          SmUR = sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_R) / rho_R);
          VAR = p_R + zeta * p_star;
          H1 = rho_R * p_R * (1.0 - zts) / VAR / VAR;
          H2 = rho_R * p_star * (zts - 1.0) / VAR / VAR;
          H3 = (p_star + zeta * p_R) / VAR;
          L_rho = SmUR * H3 * d_rho_R;
          L_u = -rho_R * (H2 * c_R * c_R + H3) * d_u_R;
          L_p = H2 * SmUR * d_p_R;
          direvative[0] = ((u_star + SmUs) / c_star_R / c_star_R - u_star * H1) * p_t_mat + rho_star_R * u_star * SmUs * H1 * u_t_mat;
          direvative[0] = (direvative[0] - u_star * (L_p + L_rho + L_u)) / SmUs;
          f = SmUR * (H2 * d_p_R + H3 * d_rho_R) - rho_R * (H2 * c_R * c_R + H3) * d_u_R;
          rho_x = (f + H1 * (p_t_mat - rho_star_R * SmUs * u_t_mat) - direvative[0]) / (SmUR + u_R);
          direvative[0] = direvative[0] + lambda * rho_x;
          direvative[2] = source[1] * SmUR * d_v_R / SmUs;
          direvative[2] = -direvative[2] + lambda * d_v_R;
        }
      } else {
        source[0] = rho_star_L;
        source[1] = u_star;
        source[2] = v_L;
        source[3] = p_star;
        direvative[1] = u_t_mat + (u_star - lambda) * p_t_mat / rho_star_L / c_star_L / c_star_L;
        direvative[3] = p_t_mat + rho_star_L * (u_star - lambda) * u_t_mat;
        if (CRW[0]) {
          direvative[0] = rho_star_L * (u_star - lambda) * pow(c_star_L / c_L, (1.0 + zeta) / zeta) * (d_p_L - d_rho_L * c_L * c_L) / rho_L;
          direvative[0] = (direvative[0] + direvative[3]) / c_star_L / c_star_L;
          direvative[2] = -source[1] * d_v_L * source[0] / rho_L;
          direvative[2] = direvative[2] + lambda * d_v_L;
        } else {
          SmUs = -sqrt(0.5 * ((gamma + 1.0) * p_L + (gamma - 1.0) * p_star) / rho_star_L);
          SmUL = -sqrt(0.5 * ((gamma + 1.0) * p_star + (gamma - 1.0) * p_L) / rho_L);
          VAR = p_L + zeta * p_star;
          H1 = rho_L * p_L * (1.0 - zts) / VAR / VAR;
          H2 = rho_L * p_star * (zts - 1.0) / VAR / VAR;
          H3 = (p_star + zeta * p_L) / VAR;
          L_rho = SmUL * H3 * d_rho_L;
          L_u = -rho_L * (H2 * c_L * c_L + H3) * d_u_L;
          L_p = H2 * SmUL * d_p_L;
          direvative[0] = ((u_star + SmUs) / c_star_L / c_star_L - H1 * u_star) * p_t_mat + rho_star_L * u_star * SmUs * H1 * u_t_mat;
          direvative[0] = (direvative[0] - u_star * (L_p + L_rho + L_u)) / SmUs;
          f = SmUL * (H2 * d_p_L + H3 * d_rho_L) - rho_L * (H2 * c_L * c_L + H3) * d_u_L;
          rho_x = (f + H1 * (p_t_mat - rho_star_L * SmUs * u_t_mat) - direvative[0]) / (SmUL + u_L);
          direvative[0] = direvative[0] + lambda * rho_x;
          direvative[2] = source[1] * SmUL * d_v_L / SmUs;
          direvative[2] = -direvative[2] + lambda * d_v_L;
        }
      }
    }
  }
}
```