user: 这段汇编代码用C语言表示是什么样的?

```asm
<Worley>:
  endbr64
  push   %r15
  mov    %rdx,%r15
  push   %r14
  mov    %rsi,%r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x98,%rsp
  mov    %rcx,0x8(%rsp)
  mov    %r8,0x10(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x88(%rsp)
  xor    %eax,%eax
  test   %rsi,%rsi
  jle    L13
  cmp    $0x1,%rsi
  je     L487
  mov    %rdx,%rax
  mov    %rsi,%rdx
  movapd D16(%rip),%xmm0
  shr    %rdx
  shl    $0x4,%rdx
  add    %r15,%rdx
  nop
L580:
  movups %xmm0,(%rax)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L580
  mov    %r14,%rax
  and    $0xfffffffffffffffe,%rax
  test   $0x1,%r14b
  je     L13
L12:
  mov    D16(%rip),%rcx
  mov    %rcx,(%r15,%rax,8)
L13:
  movupd (%rdi),%xmm0
  xor    %eax,%eax
  lea    0x70(%rsp),%rbx
  mov    %r14,%rcx
  mulpd  D4(%rip),%xmm0
  mov    %r15,%r9
  mov    %rbx,%r8
  movapd %xmm0,%xmm6
  movapd %xmm0,%xmm2
  movaps %xmm0,0x70(%rsp)
  movsd  D4(%rip),%xmm0
  cvttsd2si %xmm2,%rbp
  mulsd  0x10(%rdi),%xmm0
  unpckhpd %xmm6,%xmm6
  movapd %xmm6,%xmm1
  pxor   %xmm6,%xmm6
  comisd %xmm2,%xmm6
  cvttsd2si %xmm1,%r12
  seta   %al
  cvttsd2si %xmm0,%r13
  movsd  %xmm0,0x80(%rsp)
  sub    %rax,%rbp
  xor    %eax,%eax
  push   0x10(%rsp)
  comisd %xmm1,%xmm6
  push   0x10(%rsp)
  mov    %rbp,%rdi
  seta   %al
  sub    %rax,%r12
  xor    %eax,%eax
  comisd %xmm0,%xmm6
  mov    %r12,%rsi
  seta   %al
  sub    %rax,%r13
  xor    %eax,%eax
  mov    %r13,%rdx
  call   <AddSamples@plt>
  pxor   %xmm0,%xmm0
  movsd  0x80(%rsp),%xmm3
  movsd  0x88(%rsp),%xmm2
  cvtsi2sd %rbp,%xmm0
  lea    0x0(,%r14,8),%rax
  movsd  0x90(%rsp),%xmm1
  mov    %rax,0x78(%rsp)
  lea    -0x8(%r15,%rax,1),%rax
  mov    %rax,0x38(%rsp)
  subsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  cvtsi2sd %r12,%xmm0
  movapd %xmm3,%xmm7
  mulsd  %xmm3,%xmm7
  subsd  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %r13,%xmm0
  movsd  %xmm7,0x58(%rsp)
  subsd  %xmm0,%xmm1
  movsd  D43(%rip),%xmm0
  movapd %xmm0,%xmm4
  subsd  %xmm3,%xmm4
  mulsd  %xmm4,%xmm4
  movsd  %xmm4,0x40(%rsp)
  movapd %xmm0,%xmm4
  subsd  %xmm1,%xmm0
  subsd  %xmm2,%xmm4
  mulsd  %xmm1,%xmm1
  mulsd  %xmm2,%xmm2
  mulsd  %xmm0,%xmm0
  mulsd  %xmm4,%xmm4
  movsd  %xmm1,0x30(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm0,0x28(%rsp)
  movsd  (%rax),%xmm0
  movsd  %xmm4,0x48(%rsp)
  pop    %rcx
  pop    %rsi
  comisd %xmm7,%xmm0
  ja     L549
  comisd 0x40(%rsp),%xmm0
  ja     L608
L342:
  comisd 0x20(%rsp),%xmm0
  ja     L498
L14:
  comisd 0x30(%rsp),%xmm0
  ja     L379
L343:
  comisd 0x38(%rsp),%xmm0
  ja     L345
L218:
  comisd 0x18(%rsp),%xmm0
  ja     L569
L417:
  movsd  0x48(%rsp),%xmm6
  addsd  0x40(%rsp),%xmm6
  comisd %xmm6,%xmm0
  movsd  %xmm6,0x50(%rsp)
  ja     L441
L418:
  movsd  0x48(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L194
L375:
  movsd  0x40(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L367
L70:
  movsd  0x30(%rsp),%xmm3
  addsd  0x38(%rsp),%xmm3
  comisd %xmm3,%xmm0
  movsd  %xmm3,0x58(%rsp)
  ja     L209
L49:
  movsd  0x30(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L185
L298:
  movsd  0x38(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L226
L302:
  movsd  0x38(%rsp),%xmm4
  addsd  0x48(%rsp),%xmm4
  comisd %xmm4,%xmm0
  movsd  %xmm4,0x60(%rsp)
  ja     L288
L195:
  movsd  0x48(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L254
L20:
  movsd  0x18(%rsp),%xmm1
  addsd  0x40(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L265
L614:
  movsd  0x40(%rsp),%xmm7
  addsd  0x30(%rsp),%xmm7
  comisd %xmm7,%xmm0
  movsd  %xmm7,0x40(%rsp)
  ja     L530
L524:
  movsd  0x30(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L26
L404:
  movsd  0x38(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L381
L374:
  movsd  0x50(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L617
L233:
  movsd  0x50(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L276
L477:
  movsd  0x60(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L58
L65:
  movsd  0x60(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L482
L405:
  movsd  0x40(%rsp),%xmm1
  addsd  0x20(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L537
L297:
  movsd  0x40(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L331
L214:
  movsd  0x20(%rsp),%xmm1
  addsd  0x58(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L225
L573:
  movsd  0x58(%rsp),%xmm1
  addsd  0x18(%rsp),%xmm1
  comisd %xmm1,%xmm0
  ja     L449
L349:
  test   %r14,%r14
  jle    L546
  mov    0x68(%rsp),%rbp
  mov    0x8(%rsp),%rbx
  mov    %r15,%r12
  movsd  D56(%rip),%xmm1
  movapd D56(%rip),%xmm2
  add    %r15,%rbp
  xchg   %ax,%ax
L448:
  movsd  (%r12),%xmm0
  pxor   %xmm5,%xmm5
  ucomisd %xmm0,%xmm5
  ja     L133
  sqrtsd %xmm0,%xmm0
L494:
  mulsd  %xmm1,%xmm0
  add    $0x8,%r12
  add    $0x18,%rbx
  movsd  %xmm0,-0x8(%r12)
  movupd -0x18(%rbx),%xmm0
  mulpd  %xmm2,%xmm0
  movups %xmm0,-0x18(%rbx)
  movsd  -0x8(%rbx),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbx)
  cmp    %r12,%rbp
  jne    L448
L546:
  mov    0x88(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L424
  add    $0x98,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L549:
  push   0x10(%rsp)
  mov    %r13,%rdx
  xor    %eax,%eax
  lea    -0x1(%rbp),%rdi
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r12,%rsi
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  movsd  (%rax),%xmm0
  pop    %rax
  pop    %rdx
  comisd 0x40(%rsp),%xmm0
  jbe    L342
L608:
  push   0x10(%rsp)
  xor    %eax,%eax
  lea    -0x1(%r12),%rsi
  mov    %r15,%r9
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r11
  movsd  (%rax),%xmm0
  pop    %rax
  comisd 0x20(%rsp),%xmm0
  jbe    L14
L498:
  push   0x10(%rsp)
  mov    %r15,%r9
  xor    %eax,%eax
  lea    -0x1(%r13),%rdx
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r9
  pop    %r10
  movsd  (%rax),%xmm0
  comisd 0x30(%rsp),%xmm0
  jbe    L343
L379:
  push   0x10(%rsp)
  lea    0x1(%rbp),%rdi
  mov    %rbx,%r8
  xor    %eax,%eax
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %r14,%rcx
  mov    %r13,%rdx
  mov    %r12,%rsi
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rdi
  pop    %r8
  movsd  (%rax),%xmm0
  comisd 0x38(%rsp),%xmm0
  jbe    L218
L345:
  push   0x10(%rsp)
  lea    0x1(%r12),%rsi
  mov    %r14,%rcx
  xor    %eax,%eax
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %rbx,%r8
  mov    %r13,%rdx
  mov    %rbp,%rdi
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rcx
  pop    %rsi
  movsd  (%rax),%xmm0
  comisd 0x18(%rsp),%xmm0
  jbe    L417
L569:
  push   0x10(%rsp)
  lea    0x1(%r13),%rdx
  mov    %r15,%r9
  mov    %rbx,%r8
  push   0x10(%rsp)
  mov    %r14,%rcx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  movsd  (%rax),%xmm0
  pop    %rax
  pop    %rdx
  jmp    L417
  nopl   (%rax)
L449:
  push   0x10(%rsp)
  lea    0x1(%r13),%rdx
  lea    0x1(%r12),%rsi
  mov    %r15,%r9
  push   0x10(%rsp)
  lea    0x1(%rbp),%rdi
  mov    %rbx,%r8
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  pop    %rax
  pop    %rdx
  jmp    L349
  nopl   0x0(%rax)
L225:
  push   0x10(%rsp)
  lea    0x1(%r12),%rsi
  mov    %r14,%rcx
  lea    -0x1(%r13),%rdx
  push   0x10(%rsp)
  lea    0x1(%rbp),%rdi
  mov    %r15,%r9
  mov    %rbx,%r8
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rcx
  pop    %rsi
  movsd  (%rax),%xmm0
  jmp    L573
  nopl   (%rax)
L331:
  push   0x10(%rsp)
  lea    0x1(%rbp),%rdi
  mov    %rbx,%r8
  lea    0x1(%r13),%rdx
  push   0x10(%rsp)
  lea    -0x1(%r12),%rsi
  mov    %r15,%r9
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rdi
  pop    %r8
  movsd  (%rax),%xmm0
  jmp    L214
  xchg   %ax,%ax
L537:
  push   0x10(%rsp)
  mov    %r15,%r9
  lea    -0x1(%r13),%rdx
  lea    -0x1(%r12),%rsi
  push   0x10(%rsp)
  lea    0x1(%rbp),%rdi
  mov    %rbx,%r8
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r9
  pop    %r10
  movsd  (%rax),%xmm0
  jmp    L297
  nopw   0x0(%rax,%rax,1)
L482:
  push   0x10(%rsp)
  lea    0x1(%r13),%rdx
  lea    0x1(%r12),%rsi
  mov    %r15,%r9
  push   0x10(%rsp)
  lea    -0x1(%rbp),%rdi
  mov    %rbx,%r8
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r11
  movsd  (%rax),%xmm0
  pop    %rax
  jmp    L405
  cs nopw 0x0(%rax,%rax,1)
L58:
  push   0x10(%rsp)
  lea    -0x1(%r13),%rdx
  lea    0x1(%r12),%rsi
  mov    %r15,%r9
  push   0x10(%rsp)
  lea    -0x1(%rbp),%rdi
  mov    %rbx,%r8
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  movsd  (%rax),%xmm0
  pop    %rax
  pop    %rdx
  jmp    L65
  nopl   (%rax)
L276:
  push   0x10(%rsp)
  lea    -0x1(%r12),%rsi
  mov    %r14,%rcx
  lea    0x1(%r13),%rdx
  push   0x10(%rsp)
  lea    -0x1(%rbp),%rdi
  mov    %r15,%r9
  mov    %rbx,%r8
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rcx
  pop    %rsi
  movsd  (%rax),%xmm0
  jmp    L477
  nopl   (%rax)
L617:
  push   0x10(%rsp)
  lea    -0x1(%rbp),%rdi
  mov    %rbx,%r8
  lea    -0x1(%r13),%rdx
  push   0x10(%rsp)
  lea    -0x1(%r12),%rsi
  mov    %r15,%r9
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rdi
  pop    %r8
  movsd  (%rax),%xmm0
  jmp    L233
  cs nopw 0x0(%rax,%rax,1)
L381:
  push   0x10(%rsp)
  mov    %r15,%r9
  lea    -0x1(%r13),%rdx
  lea    0x1(%r12),%rsi
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r9
  pop    %r10
  movsd  (%rax),%xmm0
  jmp    L374
  cs nopw 0x0(%rax,%rax,1)
L26:
  push   0x10(%rsp)
  lea    -0x1(%r13),%rdx
  lea    0x1(%rbp),%rdi
  mov    %r15,%r9
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r12,%rsi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r11
  movsd  (%rax),%xmm0
  pop    %rax
  jmp    L404
  nopl   0x0(%rax)
L530:
  push   0x10(%rsp)
  mov    %r13,%rdx
  lea    -0x1(%r12),%rsi
  lea    0x1(%rbp),%rdi
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %rbx,%r8
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  movsd  (%rax),%xmm0
  pop    %rax
  pop    %rdx
  jmp    L524
  nopl   0x0(%rax)
L265:
  push   0x10(%rsp)
  lea    -0x1(%r12),%rsi
  mov    %r14,%rcx
  lea    0x1(%r13),%rdx
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %rbx,%r8
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rcx
  pop    %rsi
  movsd  (%rax),%xmm0
  jmp    L614
  nopl   0x0(%rax)
L254:
  push   0x10(%rsp)
  lea    -0x1(%rbp),%rdi
  mov    %rbx,%r8
  lea    0x1(%r13),%rdx
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %r14,%rcx
  mov    %r12,%rsi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rdi
  pop    %r8
  movsd  (%rax),%xmm0
  jmp    L20
  nopl   0x0(%rax)
L288:
  push   0x10(%rsp)
  mov    %r15,%r9
  lea    0x1(%r12),%rsi
  lea    -0x1(%rbp),%rdi
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r13,%rdx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r9
  pop    %r10
  movsd  (%rax),%xmm0
  jmp    L195
  cs nopw 0x0(%rax,%rax,1)
L226:
  push   0x10(%rsp)
  lea    0x1(%r13),%rdx
  lea    0x1(%r12),%rsi
  mov    %r15,%r9
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r11
  movsd  (%rax),%xmm0
  pop    %rax
  jmp    L302
  nopl   (%rax)
L185:
  push   0x10(%rsp)
  lea    0x1(%r13),%rdx
  lea    0x1(%rbp),%rdi
  mov    %r15,%r9
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r12,%rsi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  movsd  (%rax),%xmm0
  pop    %rax
  pop    %rdx
  jmp    L298
  nopl   0x0(%rax,%rax,1)
L209:
  push   0x10(%rsp)
  lea    0x1(%r12),%rsi
  mov    %r14,%rcx
  lea    0x1(%rbp),%rdi
  push   0x10(%rsp)
  mov    %r15,%r9
  mov    %rbx,%r8
  mov    %r13,%rdx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rcx
  pop    %rsi
  movsd  (%rax),%xmm0
  jmp    L49
  nopl   0x0(%rax)
L367:
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %rbp,%rdi
  lea    -0x1(%r13),%rdx
  push   0x10(%rsp)
  lea    -0x1(%r12),%rsi
  mov    %r15,%r9
  mov    %r14,%rcx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %rdi
  pop    %r8
  movsd  (%rax),%xmm0
  jmp    L70
  nopl   (%rax)
L194:
  push   0x10(%rsp)
  mov    %r15,%r9
  lea    -0x1(%r13),%rdx
  lea    -0x1(%rbp),%rdi
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r12,%rsi
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r9
  pop    %r10
  movsd  (%rax),%xmm0
  jmp    L375
  nopl   (%rax)
L441:
  push   0x10(%rsp)
  lea    -0x1(%r12),%rsi
  lea    -0x1(%rbp),%rdi
  mov    %r15,%r9
  push   0x10(%rsp)
  mov    %rbx,%r8
  mov    %r14,%rcx
  mov    %r13,%rdx
  xor    %eax,%eax
  call   <AddSamples@plt>
  mov    0x38(%rsp),%rax
  pop    %r11
  movsd  (%rax),%xmm0
  pop    %rax
  jmp    L418
L487:
  xor    %eax,%eax
  jmp    L12
L133:
  call   <sqrt@plt>
  mov    D56(%rip),%rax
  movapd D56(%rip),%xmm2
  movq   %rax,%xmm1
  jmp    L494
L424:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: tag: D16
type: f64[2]
name: extract_symbolic_data
arguments: tag: D4
type: f64[2]
name: extract_symbolic_data
arguments: tag: D43
type: f64
name: extract_symbolic_data
arguments: tag: D56
type: byte[16]

tool: {"D16": [999999.9,999999.9]}

tool: {"D4": [0.39815,0.39815]}

tool: D43: 1

tool: {"D56": [0xe6,0x39,0x55,0x3f,0xca,0x17,0x04,0x40,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;
}
```