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

```asm
<Worley>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xb0,%rsp
  mov    %rdi,-0x88(%rbp)
  mov    %rsi,-0x90(%rbp)
  mov    %rdx,-0x98(%rbp)
  mov    %rcx,-0xa0(%rbp)
  mov    %r8,-0xa8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movq   $0x0,-0x78(%rbp)
  jmp    L105
L320:
  mov    -0x78(%rbp),%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  D14(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addq   $0x1,-0x78(%rbp)
L105:
  mov    -0x78(%rbp),%rax
  cmp    -0x90(%rbp),%rax
  jl     L320
  mov    -0x88(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D81(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x88(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  movsd  D81(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x88(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  movsd  D81(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x40(%rbp),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jbe    L240
  movsd  -0x40(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
  sub    $0x1,%rax
  jmp    L251
L240:
  movsd  -0x40(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
L251:
  mov    %rax,-0x20(%rbp)
  movsd  -0x38(%rbp),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jbe    L247
  movsd  -0x38(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
  sub    $0x1,%rax
  jmp    L91
L247:
  movsd  -0x38(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
L91:
  mov    %rax,-0x18(%rbp)
  movsd  -0x30(%rbp),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jbe    L60
  movsd  -0x30(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
  sub    $0x1,%rax
  jmp    L153
L60:
  movsd  -0x30(%rbp),%xmm0
  cvttsd2si %xmm0,%rax
L153:
  mov    %rax,-0x10(%rbp)
  mov    -0x10(%rbp),%rdx
  mov    -0x18(%rbp),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rdi
  mov    -0x90(%rbp),%rcx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
  movsd  -0x40(%rbp),%xmm0
  mov    -0x20(%rbp),%rax
  pxor   %xmm1,%xmm1
  cvtsi2sd %rax,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  pxor   %xmm1,%xmm1
  cvtsi2sd %rax,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mov    -0x10(%rbp),%rax
  pxor   %xmm1,%xmm1
  cvtsi2sd %rax,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  D58(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x70(%rbp),%xmm1
  movsd  D58(%rip),%xmm0
  subsd  -0x70(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D58(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x68(%rbp),%xmm1
  movsd  D58(%rip),%xmm0
  subsd  -0x68(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D58(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x60(%rbp),%xmm1
  movsd  D58(%rip),%xmm0
  subsd  -0x60(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x70(%rbp),%xmm0
  jbe    L131
  mov    -0x10(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    -0x20(%rbp),%rcx
  lea    -0x1(%rcx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rsi
  mov    -0x90(%rbp),%rcx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rsi,%r8
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L131:
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x68(%rbp),%xmm0
  jbe    L230
  mov    -0x10(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rdi
  mov    -0x90(%rbp),%rcx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L230:
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x60(%rbp),%xmm0
  jbe    L22
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x18(%rbp),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L22:
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x58(%rbp),%xmm0
  jbe    L345
  mov    -0x10(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  mov    -0x20(%rbp),%rcx
  lea    0x1(%rcx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rsi
  mov    -0x90(%rbp),%rcx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rsi,%r8
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L345:
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x50(%rbp),%xmm0
  jbe    L49
  mov    -0x10(%rbp),%rdx
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rdi
  mov    -0x90(%rbp),%rcx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L49:
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x48(%rbp),%xmm0
  jbe    L273
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x18(%rbp),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L273:
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x68(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L256
  mov    -0x10(%rbp),%rax
  mov    -0x18(%rbp),%rdx
  lea    -0x1(%rdx),%rsi
  mov    -0x20(%rbp),%rdx
  lea    -0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L256:
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L102
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x18(%rbp),%rax
  mov    -0x20(%rbp),%rdx
  lea    -0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rsi,%rdx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L102:
  movsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L306
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L306:
  movsd  -0x58(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x50(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L65
  mov    -0x10(%rbp),%rax
  mov    -0x18(%rbp),%rdx
  lea    0x1(%rdx),%rsi
  mov    -0x20(%rbp),%rdx
  lea    0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L65:
  movsd  -0x58(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L71
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x18(%rbp),%rax
  mov    -0x20(%rbp),%rdx
  lea    0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rsi,%rdx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L71:
  movsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L180
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L180:
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x50(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L160
  mov    -0x10(%rbp),%rax
  mov    -0x18(%rbp),%rdx
  lea    0x1(%rdx),%rsi
  mov    -0x20(%rbp),%rdx
  lea    -0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L160:
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L207
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x18(%rbp),%rax
  mov    -0x20(%rbp),%rdx
  lea    -0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rsi,%rdx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L207:
  movsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L351
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L351:
  movsd  -0x58(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x68(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L358
  mov    -0x10(%rbp),%rax
  mov    -0x18(%rbp),%rdx
  lea    -0x1(%rdx),%rsi
  mov    -0x20(%rbp),%rdx
  lea    0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L358:
  movsd  -0x58(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L148
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x18(%rbp),%rax
  mov    -0x20(%rbp),%rdx
  lea    0x1(%rdx),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rsi,%rdx
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L148:
  movsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L274
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rdx
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rdx,%rcx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L274:
  movsd  -0x70(%rbp),%xmm0
  addsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L171
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L171:
  movsd  -0x70(%rbp),%xmm0
  addsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L31
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L31:
  movsd  -0x70(%rbp),%xmm0
  addsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L123
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L123:
  movsd  -0x70(%rbp),%xmm0
  addsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L323
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    -0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L323:
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L234
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L234:
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L94
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    -0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L94:
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x60(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L137
  mov    -0x10(%rbp),%rax
  lea    -0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L137:
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x48(%rbp),%xmm1
  mov    -0x90(%rbp),%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L87
  mov    -0x10(%rbp),%rax
  lea    0x1(%rax),%rdx
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rsi
  mov    -0x20(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x98(%rbp),%r8
  lea    -0x40(%rbp),%rcx
  mov    -0x90(%rbp),%rax
  push   -0xa8(%rbp)
  push   -0xa0(%rbp)
  mov    %r8,%r9
  mov    %rcx,%r8
  mov    %rax,%rcx
  mov    $0x0,%eax
  call   <AddSamples@plt>
  add    $0x10,%rsp
L87:
  movq   $0x0,-0x78(%rbp)
  jmp    L298
L237:
  mov    -0x78(%rbp),%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  mov    -0x78(%rbp),%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  D63(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x78(%rbp),%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x78(%rbp),%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  D63(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x78(%rbp),%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  0x8(%rax),%xmm1
  mov    -0x78(%rbp),%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  D63(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%rax)
  mov    -0x78(%rbp),%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  0x10(%rax),%xmm1
  mov    -0x78(%rbp),%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  D63(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rax)
  addq   $0x1,-0x78(%rbp)
L298:
  mov    -0x78(%rbp),%rax
  cmp    -0x90(%rbp),%rax
  jl     L237
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L296
  call   <__stack_chk_fail@plt>
L296:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D14
type_infered: f64
name: read_data
arguments: data_tag: D81
type_infered: f64
name: read_data
arguments: data_tag: D58
type_infered: f64
name: read_data
arguments: data_tag: D63
type_infered: byte[8]

tool: D14: 999999.9

tool: D81: 0.39815

tool: D58: 1

tool: {"D63": [0xe6,0x39,0x55,0x3f,0xca,0x17,0x04,0x40]}

assistant: ```c
void Worley(double at[3], long max_order, double *F, double (*delta)[3], unsigned long *ID) {
  double x2, y2, z2, mx2, my2, mz2;
  double new_at[3];
  long int_at[3], i;
  for (i = 0; i < max_order; i++)
    F[i] = 999999.9;
  new_at[0] = 0.398150 * at[0];
  new_at[1] = 0.398150 * at[1];
  new_at[2] = 0.398150 * at[2];
  int_at[0] = ((new_at[0]) < 0 ? ((long)new_at[0] - 1) : ((long)new_at[0]));
  int_at[1] = ((new_at[1]) < 0 ? ((long)new_at[1] - 1) : ((long)new_at[1]));
  int_at[2] = ((new_at[2]) < 0 ? ((long)new_at[2] - 1) : ((long)new_at[2]));
  AddSamples(int_at[0], int_at[1], int_at[2], max_order, new_at, F, delta, ID);
  x2 = new_at[0] - int_at[0];
  y2 = new_at[1] - int_at[1];
  z2 = new_at[2] - int_at[2];
  mx2 = (1.0 - x2) * (1.0 - x2);
  my2 = (1.0 - y2) * (1.0 - y2);
  mz2 = (1.0 - z2) * (1.0 - z2);
  x2 *= x2;
  y2 *= y2;
  z2 *= z2;
  if (x2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1], int_at[2], max_order, new_at, F, delta, ID);
  if (y2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1] - 1, int_at[2], max_order, new_at, F, delta, ID);
  if (z2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1], int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (mx2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1], int_at[2], max_order, new_at, F, delta, ID);
  if (my2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1] + 1, int_at[2], max_order, new_at, F, delta, ID);
  if (mz2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1], int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (x2 + y2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1] - 1, int_at[2], max_order, new_at, F, delta, ID);
  if (x2 + z2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1], int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (y2 + z2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1] - 1, int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (mx2 + my2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1] + 1, int_at[2], max_order, new_at, F, delta, ID);
  if (mx2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1], int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (my2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1] + 1, int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (x2 + my2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1] + 1, int_at[2], max_order, new_at, F, delta, ID);
  if (x2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1], int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (y2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1] - 1, int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (mx2 + y2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1] - 1, int_at[2], max_order, new_at, F, delta, ID);
  if (mx2 + z2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1], int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (my2 + z2 < F[max_order - 1])
    AddSamples(int_at[0], int_at[1] + 1, int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (x2 + y2 + z2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1] - 1, int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (x2 + y2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1] - 1, int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (x2 + my2 + z2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1] + 1, int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (x2 + my2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0] - 1, int_at[1] + 1, int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (mx2 + y2 + z2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1] - 1, int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (mx2 + y2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1] - 1, int_at[2] + 1, max_order, new_at, F, delta, ID);
  if (mx2 + my2 + z2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1] + 1, int_at[2] - 1, max_order, new_at, F, delta, ID);
  if (mx2 + my2 + mz2 < F[max_order - 1])
    AddSamples(int_at[0] + 1, int_at[1] + 1, int_at[2] + 1, max_order, new_at, F, delta, ID);
  for (i = 0; i < max_order; i++) {
    F[i] = sqrt(F[i]) * (1.0 / 0.398150);
    delta[i][0] *= (1.0 / 0.398150);
    delta[i][1] *= (1.0 / 0.398150);
    delta[i][2] *= (1.0 / 0.398150);
  }
  return;
}
```