user: 请将以下的汇编代码转换成C语言代码：

```asm
<Riemann>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x178,%rsp
  mov    %rdi,-0x148(%rbp)
  mov    %rsi,-0x150(%rbp)
  mov    %rdx,-0x158(%rbp)
  movsd  D247(%rip),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x108(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x108(%rbp),%xmm0
  movapd %xmm0,%xmm2
  addsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  D96(%rip),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  mov    -0x150(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  divsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x150(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  movsd  -0xe0(%rbp),%xmm2
  movsd  D434(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  -0xd8(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0xd8(%rbp),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0x108(%rbp),%xmm0
  mulsd  -0xd0(%rbp),%xmm0
  divsd  -0xe0(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc8(%rbp)
  mov    -0x148(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x148(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  divsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x148(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  movsd  -0xc0(%rbp),%xmm2
  movsd  D434(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0xb8(%rbp),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0x108(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  divsd  -0xc0(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa8(%rbp)
  movsd  -0xb0(%rbp),%xmm1
  movsd  D51(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  divsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  divsd  -0xd0(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x100(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  -0x100(%rbp),%xmm0
  mov    -0x140(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0xa8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  divsd  %xmm0,%xmm1
  movsd  %xmm1,-0x168(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  movapd %xmm0,%xmm4
  subsd  -0xd8(%rbp),%xmm4
  movsd  %xmm4,-0x170(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm7
  divsd  -0x108(%rbp),%xmm7
  movapd %xmm7,%xmm1
  movsd  -0x140(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm0
  movapd %xmm1,%xmm5
  mulsd  %xmm0,%xmm5
  movsd  %xmm5,-0x178(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm6
  mulsd  -0xf8(%rbp),%xmm6
  movapd %xmm6,%xmm1
  movsd  D329(%rip),%xmm0
  movapd %xmm1,%xmm7
  addsd  %xmm0,%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0x178(%rbp),%xmm5
  divsd  %xmm0,%xmm5
  movapd %xmm5,%xmm1
  movsd  -0x170(%rbp),%xmm4
  subsd  %xmm1,%xmm4
  movapd %xmm4,%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x160(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movq   %rbx,%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  divsd  -0xd0(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x100(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  -0x100(%rbp),%xmm0
  mov    -0x138(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0xa8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  divsd  %xmm0,%xmm1
  movsd  %xmm1,-0x168(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  movapd %xmm0,%xmm6
  subsd  -0xd8(%rbp),%xmm6
  movsd  %xmm6,-0x170(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm3
  divsd  -0x108(%rbp),%xmm3
  movapd %xmm3,%xmm1
  movsd  -0x138(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm0
  movapd %xmm1,%xmm7
  mulsd  %xmm0,%xmm7
  movsd  %xmm7,-0x178(%rbp)
  movsd  -0x138(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm4
  mulsd  -0xf8(%rbp),%xmm4
  movapd %xmm4,%xmm1
  movsd  D329(%rip),%xmm0
  movapd %xmm1,%xmm5
  addsd  %xmm0,%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0x178(%rbp),%xmm7
  divsd  %xmm0,%xmm7
  movapd %xmm7,%xmm1
  movsd  -0x170(%rbp),%xmm6
  subsd  %xmm1,%xmm6
  movapd %xmm6,%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x160(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movq   %rbx,%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  jmp    L73
L97:
  movsd  -0x138(%rbp),%xmm0
  subsd  -0x140(%rbp),%xmm0
  mulsd  -0x128(%rbp),%xmm0
  movsd  -0x128(%rbp),%xmm1
  movapd %xmm1,%xmm2
  subsd  -0x130(%rbp),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  -0x138(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  divsd  -0xd0(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x100(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  -0x100(%rbp),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0xa8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  divsd  %xmm0,%xmm1
  movsd  %xmm1,-0x168(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  movapd %xmm0,%xmm4
  subsd  -0xd8(%rbp),%xmm4
  movsd  %xmm4,-0x170(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm6
  divsd  -0x108(%rbp),%xmm6
  movapd %xmm6,%xmm1
  movsd  -0x20(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm0
  movapd %xmm1,%xmm5
  mulsd  %xmm0,%xmm5
  movsd  %xmm5,-0x178(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm7
  mulsd  -0xf8(%rbp),%xmm7
  movapd %xmm7,%xmm1
  movsd  D329(%rip),%xmm0
  movapd %xmm1,%xmm3
  addsd  %xmm0,%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0x178(%rbp),%xmm5
  divsd  %xmm0,%xmm5
  movapd %xmm5,%xmm1
  movsd  -0x170(%rbp),%xmm4
  subsd  %xmm1,%xmm4
  movapd %xmm4,%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x160(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movq   %rbx,%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x138(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
L73:
  movsd  -0x140(%rbp),%xmm0
  subsd  -0x138(%rbp),%xmm0
  movq   D451(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd -0xe8(%rbp),%xmm0
  ja     L97
  movsd  -0xd0(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  movapd %xmm0,%xmm6
  subsd  %xmm1,%xmm6
  movsd  %xmm6,-0x168(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm4
  mulsd  -0xf8(%rbp),%xmm4
  movapd %xmm4,%xmm1
  movsd  D329(%rip),%xmm0
  movapd %xmm1,%xmm5
  addsd  %xmm0,%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0x168(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  movsd  -0x160(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xd8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  addsd  -0x140(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  -0xf0(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x140(%rbp),%xmm2
  movsd  D329(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0xc8(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x108(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  movsd  -0x90(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  addsd  -0xb8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x78(%rbp),%xmm1
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  D344(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x108(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x80(%rbp),%xmm1
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xf8(%rbp),%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0xc8(%rbp),%xmm0
  movsd  -0xd8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x78(%rbp),%xmm0
  subsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  subsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L53
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  -0xb0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0xc0(%rbp),%xmm1
  movsd  D434(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0xb8(%rbp),%xmm2
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm3
  subsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  jmp    L69
L53:
  movsd  -0x50(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L113
  movsd  -0x108(%rbp),%xmm0
  movsd  D329(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  movsd  -0xa8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x108(%rbp),%xmm2
  movsd  D329(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x108(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm1,%xmm2
  movsd  -0x38(%rbp),%xmm0
  divsd  -0xa8(%rbp),%xmm0
  movq   %xmm0,%rax
  movapd %xmm2,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0xb0(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x38(%rbp),%xmm0
  ja     L17
  pxor   %xmm0,%xmm0
  comisd -0x30(%rbp),%xmm0
  jbe    L96
L17:
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L96:
  movsd  -0x108(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x30(%rbp),%xmm1
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x28(%rbp),%xmm1
  movsd  D434(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x40(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x40(%rbp),%xmm2
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x38(%rbp),%xmm0
  mulsd  -0x38(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm3
  subsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  jmp    L69
L113:
  movsd  -0x58(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L79
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x68(%rbp),%xmm1
  movsd  D434(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x78(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x78(%rbp),%xmm2
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm3
  subsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  jmp    L69
L79:
  movsd  -0x60(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L13
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  -0xa0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x88(%rbp),%xmm1
  movsd  D434(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x98(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x98(%rbp),%xmm2
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm3
  subsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  jmp    L69
L13:
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  -0xd0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0xe0(%rbp),%xmm1
  movsd  D434(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0xd8(%rbp),%xmm2
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0xc8(%rbp),%xmm0
  mulsd  -0xc8(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  -0x108(%rbp),%xmm1
  movsd  D329(%rip),%xmm3
  subsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  movsd  %xmm0,-0x110(%rbp)
L69:
  mov    -0x158(%rbp),%rax
  movsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x158(%rbp),%rax
  add    $0x8,%rax
  movsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x158(%rbp),%rax
  add    $0x10,%rax
  movsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D247
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D329
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D96
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_label: D434
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D51
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D451
type_infered: qword
name: extract_symbolic_data
arguments: data_label: D344
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D82
type_infered: string

tool: D247: 1.4

tool: D329: 1

tool: {"D96": [0xbb,0xbd,0xd7,0xd9,0xdf,0x7c,0xdb,0x3d]}

tool: D434: 0.5

tool: D51: 0.001

tool: D451: 9223372036854775807

tool: D344: 2

tool: D82: Negative a or p in Riemann

assistant: ```c
void Riemann(double *U4, double *U1, double *F) {
  const double gamma = 1.4;
  const double g1 = (2 * gamma) / (gamma - 1);
  const double g2 = (gamma + 1) / (2 * gamma);
  const double g3 = (gamma + 1) / (gamma - 1);
  const double tol = 1e-10;
  int i;
  double rho1, u1, p1, a1;
  rho1 = U1[0];
  u1 = U1[1] / rho1;
  p1 = (U1[2] - 0.5 * rho1 * u1 * u1) * (gamma - 1.0);
  a1 = sqrt(gamma * p1 / rho1);
  double rho4, u4, p4, a4;
  rho4 = U4[0];
  u4 = U4[1] / rho4;
  p4 = (U4[2] - 0.5 * rho4 * u4 * u4) * (gamma - 1.0);
  a4 = sqrt(gamma * p4 / rho4);
  double x, y, fx, fy, z, fz;
  x = 0.001 * p4 / p1;
  y = 1.0 * p4 / p1;
  fx = pow(p4 / p1, g1) - pow(x, g1) * (1 + ((gamma - 1) / (2 * a4)) * (u4 - u1 - (a1 / gamma) * (x - 1) / sqrt(g2 * (x - 1) + 1)));
  fy = pow(p4 / p1, g1) - pow(y, g1) * (1 + ((gamma - 1) / (2 * a4)) * (u4 - u1 - (a1 / gamma) * (y - 1) / sqrt(g2 * (y - 1) + 1)));
  while (fabs(x - y) > tol) {
    z = y - fy * (y - x) / (fy - fx);
    fz = pow(p4 / p1, g1) - pow(z, g1) * (1 + ((gamma - 1) / (2 * a4)) * (u4 - u1 - (a1 / gamma) * (z - 1) / sqrt(g2 * (z - 1) + 1)));
    x = y;
    fx = fy;
    y = z;
    fy = fz;
  }
  double rho2, u2, p2, a2;
  p2 = p1 * x;
  u2 = u1 + (a1 / gamma) * ((x - 1) / sqrt(g2 * (x - 1) + 1));
  a2 = a1 * sqrt(x * (g3 + x) / (1 + g3 * x));
  rho2 = gamma * p2 / (a2 * a2);
  double rho3, u3, p3, a3;
  p3 = p2;
  u3 = u2;
  a3 = (u4 + 2.0 * a4 / (gamma - 1) - u3) * (gamma - 1) / 2.0;
  rho3 = gamma * p3 / (a3 * a3);
  double s1, s2, s3, s4;
  s1 = u1 + a1 * sqrt(g2 * (x - 1) + 1);
  s2 = u2;
  s3 = u3 - a3;
  s4 = u4 - a4;
  double f1, f2, f3;
  double rho, a, u, p;
  if (s4 > 0) {
    f1 = rho4 * u4;
    f2 = rho4 * u4 * u4 + p4;
    f3 = 0.5 * rho4 * u4 * u4 * u4 + rho4 * a4 * a4 * u4 / (gamma - 1.0);
  } else if (s3 > 0) {
    u = ((gamma - 1.0) * u4 + 2.0 * a4) / (gamma + 1.0);
    a = u;
    p = p4 * pow(a / a4, 2.0 * gamma / (gamma - 1.0));
    if (a < 0 || p < 0) {
      printf("Negative a or p in Riemann");
    }
    rho = gamma * p / (a * a);
    f1 = rho * u;
    f2 = rho * u * u + p;
    f3 = 0.5 * rho * u * u * u + rho * a * a * u / (gamma - 1.0);
  } else if (s2 > 0) {
    f1 = rho3 * u3;
    f2 = rho3 * u3 * u3 + p3;
    f3 = 0.5 * rho3 * u3 * u3 * u3 + rho3 * a3 * a3 * u3 / (gamma - 1.0);
  } else if (s1 > 0) {
    f1 = rho2 * u2;
    f2 = rho2 * u2 * u2 + p2;
    f3 = 0.5 * rho2 * u2 * u2 * u2 + rho2 * a2 * a2 * u2 / (gamma - 1.0);
  } else {
    f1 = rho1 * u1;
    f2 = rho1 * u1 * u1 + p1;
    f3 = 0.5 * rho1 * u1 * u1 * u1 + rho1 * a1 * a1 * u1 / (gamma - 1.0);
  }
  F[0] = f1;
  F[1] = f2;
  F[2] = f3;
}
```