user: Demonstrate the C code that generates the assembly output below:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x228,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  xor    %eax,%eax
  mov    %rsp,%rax
L128:
  cmp    %rax,%rsp
  je     L502
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L128
L502:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r13
  mov    %rsp,%rax
L238:
  cmp    %rax,%rsp
  je     L530
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L238
L530:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r14
  mov    %rsp,%rax
L551:
  cmp    %rax,%rsp
  je     L381
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L551
L381:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1f8(%rbp)
  mov    %rsp,%rax
L288:
  cmp    %rax,%rsp
  je     L80
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L288
L80:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x200(%rbp)
  mov    %rsp,%rax
L509:
  cmp    %rax,%rsp
  je     L425
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L509
L425:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r15
  mov    %rsp,%rax
L467:
  cmp    %rax,%rsp
  je     L500
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L467
L500:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%rbx
  mov    %rsp,%rax
L813:
  cmp    %rax,%rsp
  je     L232
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L813
L232:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x208(%rbp)
  mov    %rsp,%rax
L841:
  cmp    %rax,%rsp
  je     L687
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L841
L687:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x210(%rbp)
  mov    %rsp,%rax
L589:
  cmp    %rax,%rsp
  je     L54
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L589
L54:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x220(%rbp)
  mov    %rsp,%rax
L777:
  cmp    %rax,%rsp
  je     L688
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L777
L688:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x228(%rbp)
  mov    %rsp,%rax
L421:
  cmp    %rax,%rsp
  je     L240
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L421
L240:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x230(%rbp)
  mov    %rsp,%rax
L796:
  cmp    %rax,%rsp
  je     L343
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L796
L343:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x238(%rbp)
  mov    %rsp,%rax
L445:
  cmp    %rax,%rsp
  je     L645
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L445
L645:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x188(%rbp)
  mov    %rsp,%rax
L786:
  cmp    %rax,%rsp
  je     L802
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L786
L802:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x190(%rbp)
  mov    %rsp,%rax
L161:
  cmp    %rax,%rsp
  je     L701
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L161
L701:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1d8(%rbp)
  mov    %rsp,%rax
L546:
  cmp    %rax,%rsp
  je     L449
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L546
L449:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1e0(%rbp)
  mov    $0xa28,%edx
  movsd  D130(%rip),%xmm0
L148:
  lea    -0x990(%rdx),%rax
L533:
  movsd  %xmm0,(%r15,%rax,1)
  movsd  %xmm0,(%rbx,%rax,1)
  movsd  %xmm0,0x0(%r13,%rax,1)
  movsd  %xmm0,(%r14,%rax,1)
  add    $0x90,%rax
  cmp    %rdx,%rax
  jne    L533
  add    $0x8,%rdx
  cmp    $0xab0,%rdx
  jne    L148
  movl   $0x227,-0x1ec(%rbp)
  pxor   %xmm5,%xmm5
  movsd  %xmm5,-0x1b8(%rbp)
  mov    %r13,-0x198(%rbp)
  mov    %r14,-0x140(%rbp)
  mov    %r15,-0x1a0(%rbp)
  mov    %rbx,-0x1a8(%rbp)
L311:
  lea    -0xd0(%rbp),%rax
  mov    %rax,-0x170(%rbp)
  movq   $0x90,-0x178(%rbp)
  pxor   %xmm4,%xmm4
  movsd  %xmm4,-0x1d0(%rbp)
  movl   $0x1,-0x134(%rbp)
  mov    -0x198(%rbp),%r15
  mov    -0x1a0(%rbp),%r13
  mov    -0x1a8(%rbp),%r14
L772:
  mov    -0x134(%rbp),%edi
  mov    %edi,-0x1c8(%rbp)
  lea    -0x1(%rdi),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  D131(%rip),%xmm0
  movapd %xmm0,%xmm4
  subsd  D61(%rip),%xmm4
  movsd  %xmm4,-0x148(%rbp)
  mov    -0x170(%rbp),%rax
  mov    %rax,-0x180(%rbp)
  movapd %xmm4,%xmm3
  movsd  %xmm4,0x8(%rax)
  mulsd  %xmm4,%xmm3
  movsd  %xmm3,-0x1b0(%rbp)
  lea    -0x2(%rdi),%eax
  mov    %eax,-0x138(%rbp)
  mov    -0x178(%rbp),%rbx
  lea    -0x90(%rbx),%rax
  mov    %rax,-0x150(%rbp)
  lea    0x98(%rbx),%rax
  mov    %rax,-0x158(%rbp)
  lea    0x128(%rbx),%rax
  mov    %rax,-0x160(%rbp)
  mov    $0x1,%r12d
L293:
  mov    %r12d,-0x1c4(%rbp)
  lea    -0x1(%r12),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  D131(%rip),%xmm0
  subsd  D61(%rip),%xmm0
  movsd  %xmm0,-0x1c0(%rbp)
  movapd %xmm0,%xmm11
  mulsd  %xmm0,%xmm11
  addsd  -0x1b0(%rbp),%xmm11
  movapd %xmm11,%xmm3
  movsd  %xmm11,-0x168(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd %xmm11,%xmm0
  ja     L527
  sqrtsd %xmm3,%xmm3
  movapd %xmm3,%xmm7
L541:
  ucomisd D95(%rip),%xmm7
  jp     L558
  jne    L558
  pxor   %xmm3,%xmm3
  movapd %xmm3,%xmm6
  jmp    L771
L527:
  movsd  -0x168(%rbp),%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm7
  jmp    L541
L558:
  movsd  -0x148(%rbp),%xmm6
  divsd  %xmm7,%xmm6
  movsd  -0x1c0(%rbp),%xmm3
  divsd  %xmm7,%xmm3
L771:
  movsd  -0x168(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  D56(%rip),%xmm2
  movsd  0x8(%r15,%rbx,1),%xmm8
  movapd %xmm2,%xmm4
  mulsd  %xmm8,%xmm4
  pxor   %xmm9,%xmm9
  addsd  %xmm9,%xmm4
  mov    -0x1f8(%rbp),%rax
  movsd  %xmm4,0x8(%rax,%rbx,1)
  mov    -0x140(%rbp),%rax
  movsd  0x8(%rax,%rbx,1),%xmm10
  mulsd  %xmm10,%xmm2
  addsd  %xmm8,%xmm2
  addsd  %xmm9,%xmm2
  mov    -0x200(%rbp),%rax
  movsd  %xmm2,0x8(%rax,%rbx,1)
  movsd  0x8(%r13,%rbx,1),%xmm5
  movsd  0x8(%r14,%rbx,1),%xmm12
  movapd %xmm5,%xmm13
  mulsd  %xmm3,%xmm13
  movapd %xmm12,%xmm0
  mulsd  %xmm6,%xmm0
  subsd  %xmm0,%xmm13
  mulsd  D6(%rip),%xmm1
  movapd %xmm1,%xmm11
  movapd %xmm6,%xmm0
  addsd  %xmm6,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  %xmm5,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm9,%xmm1
  mulsd  %xmm13,%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm12,%xmm1
  mulsd  %xmm9,%xmm1
  addsd  %xmm0,%xmm1
  movapd %xmm5,%xmm0
  mulsd  %xmm11,%xmm0
  subsd  %xmm0,%xmm1
  addsd  %xmm9,%xmm1
  mov    -0x208(%rbp),%rax
  movsd  %xmm1,0x8(%rax,%rbx,1)
  movapd %xmm3,%xmm0
  addsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  %xmm5,%xmm0
  subsd  %xmm5,%xmm0
  movapd %xmm3,%xmm14
  mulsd  %xmm9,%xmm14
  mulsd  %xmm14,%xmm13
  addsd  %xmm13,%xmm0
  movapd %xmm5,%xmm13
  mulsd  %xmm9,%xmm13
  subsd  %xmm13,%xmm0
  mulsd  %xmm12,%xmm11
  subsd  %xmm11,%xmm0
  addsd  %xmm9,%xmm0
  mov    -0x210(%rbp),%rax
  movsd  %xmm0,0x8(%rax,%rbx,1)
  mov    -0x1e0(%rbp),%rax
  movq   $0x0,0x8(%rax,%rbx,1)
  mov    -0x1d8(%rbp),%rax
  movq   $0x0,0x8(%rax,%rbx,1)
  mov    -0x190(%rbp),%rax
  movq   $0x0,0x8(%rax,%rbx,1)
  mov    -0x188(%rbp),%rax
  movq   $0x0,0x8(%rax,%rbx,1)
  mov    -0x1c8(%rbp),%eax
  lea    0x6(%rax),%edx
  mov    $0x1,%esi
  movsd  %xmm1,-0x168(%rbp)
  movsd  %xmm0,-0x218(%rbp)
  mov    -0x1e8(%rbp),%ecx
L734:
  mov    %edx,%edi
  cmp    $0xd,%edx
  jbe    L408
L691:
  add    $0x1,%ecx
  cmp    $0xd,%ecx
  jle    L407
  add    $0x1,%esi
  sub    $0x1,%edx
  cmp    $0xe,%esi
  jne    L734
  movsd  -0x168(%rbp),%xmm1
  movsd  -0x218(%rbp),%xmm0
  mov    %ecx,-0x1e8(%rbp)
  ucomisd D95(%rip),%xmm7
  jp     L290
  jne    L290
L2:
  mov    -0x188(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm1
  movsd  D62(%rip),%xmm9
  mulsd  %xmm9,%xmm1
  addsd  %xmm5,%xmm1
  movsd  %xmm1,0x8(%r13,%rbx,1)
  mov    -0x190(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm0
  movapd %xmm0,%xmm6
  mulsd  %xmm9,%xmm6
  addsd  %xmm12,%xmm6
  movsd  %xmm6,0x8(%r14,%rbx,1)
  mov    -0x1d8(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm4
  mulsd  %xmm9,%xmm4
  movapd %xmm4,%xmm7
  addsd  %xmm8,%xmm7
  movsd  %xmm7,0x8(%r15,%rbx,1)
  mov    -0x1e0(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm2
  movapd %xmm2,%xmm5
  mulsd  %xmm9,%xmm5
  addsd  %xmm10,%xmm5
  mov    -0x140(%rbp),%rax
  movsd  %xmm5,0x8(%rax,%rbx,1)
  movapd %xmm1,%xmm3
  mulsd  %xmm1,%xmm3
  movapd %xmm6,%xmm0
  mulsd  %xmm6,%xmm0
  addsd  %xmm0,%xmm3
  movapd %xmm5,%xmm4
  mulsd  %xmm5,%xmm4
  movapd %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  addsd  %xmm0,%xmm4
  movsd  -0x1c0(%rbp),%xmm0
  mulsd  %xmm9,%xmm0
  addsd  -0x148(%rbp),%xmm0
  cmpl   $0x1,-0x134(%rbp)
  je     L314
  cmpl   $0x9,-0x138(%rbp)
  ja     L262
  mov    -0x180(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  %xmm2,-0x100(%rbp)
  movsd  -0x148(%rbp),%xmm2
  movsd  %xmm2,-0xf8(%rbp)
  movsd  0x10(%rax),%xmm2
  movsd  %xmm2,-0xf0(%rbp)
  movsd  0x18(%rax),%xmm2
  movsd  %xmm2,-0xe8(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  0x8(%r13,%rax,1),%xmm2
  movsd  %xmm2,-0x130(%rbp)
  movsd  %xmm1,-0x128(%rbp)
  mov    -0x158(%rbp),%rax
  movsd  0x0(%r13,%rax,1),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  mov    -0x160(%rbp),%rax
  movsd  0x0(%r13,%rax,1),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L674:
  mov    $0x1,%ecx
  lea    -0x130(%rbp),%rdx
L575:
  movsd  -0x108(%rbp,%rcx,8),%xmm8
  subsd  %xmm0,%xmm8
  mov    %rcx,%rax
L724:
  movsd  -0x100(%rbp,%rax,8),%xmm2
  subsd  %xmm0,%xmm2
  movapd %xmm8,%xmm1
  mulsd  (%rdx,%rax,8),%xmm1
  movapd %xmm2,%xmm9
  mulsd  -0x8(%rdx,%rcx,8),%xmm9
  subsd  %xmm9,%xmm1
  movapd %xmm8,%xmm9
  subsd  %xmm2,%xmm9
  divsd  %xmm9,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    $0x3,%eax
  jle    L724
  add    $0x1,%rcx
  cmp    $0x4,%rcx
  jne    L575
  movsd  -0x118(%rbp),%xmm1
  mov    -0x220(%rbp),%rax
  movsd  %xmm1,0x8(%rax,%rbx,1)
  cmpl   $0x1,-0x134(%rbp)
  je     L349
  cmpl   $0x9,-0x138(%rbp)
  ja     L718
  mov    -0x180(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x148(%rbp),%xmm2
  movsd  %xmm2,-0xf8(%rbp)
  movsd  0x10(%rax),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  0x18(%rax),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  0x8(%r15,%rax,1),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  %xmm7,-0x128(%rbp)
  mov    -0x158(%rbp),%rax
  movsd  (%r15,%rax,1),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  mov    -0x160(%rbp),%rax
  movsd  (%r15,%rax,1),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L160:
  mov    $0x1,%ecx
  lea    -0x130(%rbp),%rdx
L632:
  movsd  -0x108(%rbp,%rcx,8),%xmm7
  subsd  %xmm0,%xmm7
  mov    %rcx,%rax
L635:
  movsd  -0x100(%rbp,%rax,8),%xmm2
  subsd  %xmm0,%xmm2
  movapd %xmm7,%xmm1
  mulsd  (%rdx,%rax,8),%xmm1
  movapd %xmm2,%xmm8
  mulsd  -0x8(%rdx,%rcx,8),%xmm8
  subsd  %xmm8,%xmm1
  movapd %xmm7,%xmm8
  subsd  %xmm2,%xmm8
  divsd  %xmm8,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    $0x3,%eax
  jle    L635
  add    $0x1,%rcx
  cmp    $0x4,%rcx
  jne    L632
  movsd  -0x118(%rbp),%xmm1
  mov    -0x230(%rbp),%rax
  movsd  %xmm1,0x8(%rax,%rbx,1)
  cmpl   $0x1,-0x134(%rbp)
  je     L395
  cmpl   $0x9,-0x138(%rbp)
  ja     L510
  mov    -0x180(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x148(%rbp),%xmm7
  movsd  %xmm7,-0xf8(%rbp)
  movsd  0x10(%rax),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  0x18(%rax),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  0x8(%r14,%rax,1),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  %xmm6,-0x128(%rbp)
  mov    -0x158(%rbp),%rax
  movsd  (%r14,%rax,1),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  mov    -0x160(%rbp),%rax
  movsd  (%r14,%rax,1),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L367:
  mov    $0x1,%ecx
  lea    -0x130(%rbp),%rdx
L115:
  movsd  -0x108(%rbp,%rcx,8),%xmm6
  subsd  %xmm0,%xmm6
  mov    %rcx,%rax
L347:
  movsd  -0x100(%rbp,%rax,8),%xmm2
  subsd  %xmm0,%xmm2
  movapd %xmm6,%xmm1
  mulsd  (%rdx,%rax,8),%xmm1
  movapd %xmm2,%xmm7
  mulsd  -0x8(%rdx,%rcx,8),%xmm7
  subsd  %xmm7,%xmm1
  movapd %xmm6,%xmm7
  subsd  %xmm2,%xmm7
  divsd  %xmm7,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    $0x3,%eax
  jle    L347
  add    $0x1,%rcx
  cmp    $0x4,%rcx
  jne    L115
  movsd  -0x118(%rbp),%xmm1
  mov    -0x228(%rbp),%rax
  movsd  %xmm1,0x8(%rax,%rbx,1)
  cmpl   $0x1,-0x134(%rbp)
  je     L496
  cmpl   $0x9,-0x138(%rbp)
  ja     L511
  mov    -0x180(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x148(%rbp),%xmm7
  movsd  %xmm7,-0xf8(%rbp)
  movsd  0x10(%rax),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  0x18(%rax),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  mov    -0x140(%rbp),%rax
  mov    -0x150(%rbp),%rsi
  movsd  0x8(%rax,%rsi,1),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  %xmm5,-0x128(%rbp)
  mov    -0x158(%rbp),%rsi
  movsd  (%rax,%rsi,1),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  mov    -0x160(%rbp),%rsi
  movsd  (%rax,%rsi,1),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L229:
  mov    $0x1,%ecx
  lea    -0x130(%rbp),%rdx
L292:
  movsd  -0x108(%rbp,%rcx,8),%xmm5
  subsd  %xmm0,%xmm5
  mov    %rcx,%rax
L16:
  movsd  -0x100(%rbp,%rax,8),%xmm2
  subsd  %xmm0,%xmm2
  movapd %xmm5,%xmm1
  mulsd  (%rdx,%rax,8),%xmm1
  movapd %xmm2,%xmm6
  mulsd  -0x8(%rdx,%rcx,8),%xmm6
  subsd  %xmm6,%xmm1
  movapd %xmm5,%xmm6
  subsd  %xmm2,%xmm6
  divsd  %xmm6,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    $0x3,%eax
  jle    L16
  add    $0x1,%rcx
  cmp    $0x4,%rcx
  jne    L292
  movsd  -0x118(%rbp),%xmm0
  mov    -0x238(%rbp),%rax
  movsd  %xmm0,0x8(%rax,%rbx,1)
  addsd  %xmm4,%xmm3
  mulsd  D131(%rip),%xmm3
  addsd  -0x1d0(%rbp),%xmm3
  movsd  %xmm3,-0x1d0(%rbp)
  add    $0x1,%r12
  add    $0x8,%rbx
  addq   $0x8,-0x150(%rbp)
  addq   $0x8,-0x158(%rbp)
  addq   $0x8,-0x160(%rbp)
  cmp    $0xe,%r12
  jne    L293
  addl   $0x1,-0x134(%rbp)
  mov    -0x134(%rbp),%eax
  addq   $0x8,-0x170(%rbp)
  addq   $0x90,-0x178(%rbp)
  cmp    $0xe,%eax
  jne    L772
  mov    $0xf8,%edx
  mov    -0x198(%rbp),%rcx
  mov    -0x140(%rbp),%rsi
  mov    -0x1a0(%rbp),%rdi
  mov    -0x1a8(%rbp),%r8
  mov    -0x220(%rbp),%rbx
  mov    -0x228(%rbp),%r13
  mov    -0x230(%rbp),%r14
  mov    -0x238(%rbp),%r15
L779:
  lea    -0x68(%rdx),%rax
L501:
  movsd  0x8(%rbx,%rax,1),%xmm0
  movsd  %xmm0,0x8(%rdi,%rax,1)
  movsd  0x8(%r13,%rax,1),%xmm0
  movsd  %xmm0,0x8(%r8,%rax,1)
  movsd  0x8(%r14,%rax,1),%xmm0
  movsd  %xmm0,0x8(%rcx,%rax,1)
  movsd  0x8(%r15,%rax,1),%xmm0
  movsd  %xmm0,0x8(%rsi,%rax,1)
  add    $0x8,%rax
  cmp    %rdx,%rax
  jne    L501
  add    $0x90,%rdx
  cmp    $0x848,%rdx
  jne    L779
  movsd  -0x1d0(%rbp),%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0x1b8(%rbp),%xmm0
  lea    D128(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movsd  -0x1b8(%rbp),%xmm5
  addsd  D62(%rip),%xmm5
  movsd  %xmm5,-0x1b8(%rbp)
  subl   $0x1,-0x1ec(%rbp)
  jne    L311
  mov    -0x38(%rbp),%rax
  sub    %fs:0x28,%rax
  jne    L157
  mov    $0x0,%eax
  lea    -0x28(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
L408:
  mov    $0x1,%ecx
L407:
  mov    -0x1c4(%rbp),%eax
  sub    %ecx,%eax
  add    $0x7,%eax
  cmp    $0xd,%eax
  ja     L691
  lea    -0x1(%rsi),%r8d
  pxor   %xmm11,%xmm11
  cvtsi2sd %r8d,%xmm11
  mulsd  D131(%rip),%xmm11
  subsd  D61(%rip),%xmm11
  lea    -0x1(%rcx),%r8d
  pxor   %xmm9,%xmm9
  cvtsi2sd %r8d,%xmm9
  mulsd  D131(%rip),%xmm9
  movapd %xmm9,%xmm15
  subsd  D61(%rip),%xmm15
  movapd %xmm15,%xmm1
  movslq %ecx,%r9
  movslq %esi,%r8
  imul   $0x12,%r8,%r8
  add    %r9,%r8
  movsd  -0x148(%rbp),%xmm15
  movapd %xmm15,%xmm13
  mulsd  0x0(%r13,%r8,8),%xmm13
  movsd  -0x1c0(%rbp),%xmm14
  movapd %xmm14,%xmm9
  mulsd  (%r14,%r8,8),%xmm9
  addsd  %xmm9,%xmm13
  movslq %eax,%r9
  movslq %edi,%rax
  imul   $0x12,%rax,%rax
  add    %r9,%rax
  mov    (%r15,%rax,8),%r9
  mov    -0x140(%rbp),%r10
  movsd  (%r10,%rax,8),%xmm9
  movq   %r9,%xmm0
  mulsd  %xmm15,%xmm0
  movapd %xmm0,%xmm15
  mulsd  %xmm9,%xmm14
  addsd  %xmm14,%xmm15
  movsd  %xmm15,-0x240(%rbp)
  movq   %r9,%xmm0
  mulsd  %xmm11,%xmm0
  movapd %xmm0,%xmm15
  movsd  %xmm1,-0x1e8(%rbp)
  movapd %xmm1,%xmm14
  mulsd  %xmm9,%xmm14
  addsd  %xmm14,%xmm15
  movsd  %xmm15,-0x248(%rbp)
  movsd  (%r15,%r8,8),%xmm14
  mov    (%r10,%r8,8),%r8
  movq   %r9,%xmm0
  mulsd  %xmm14,%xmm0
  movapd %xmm0,%xmm15
  movq   %r8,%xmm0
  mulsd  %xmm9,%xmm0
  addsd  %xmm0,%xmm15
  movapd %xmm15,%xmm1
  mov    0x0(%r13,%rax,8),%r10
  movq   %r10,%xmm0
  mulsd  %xmm13,%xmm0
  movsd  -0x248(%rbp),%xmm15
  mulsd  %xmm15,%xmm14
  addsd  %xmm0,%xmm14
  movsd  %xmm1,-0x248(%rbp)
  mulsd  %xmm1,%xmm11
  subsd  %xmm11,%xmm14
  mov    -0x188(%rbp),%r11
  addsd  0x8(%r11,%rbx,1),%xmm14
  movsd  %xmm14,0x8(%r11,%rbx,1)
  movsd  (%r14,%rax,8),%xmm14
  movapd %xmm14,%xmm0
  mulsd  %xmm13,%xmm0
  movq   %r8,%xmm1
  mulsd  %xmm15,%xmm1
  movapd %xmm1,%xmm11
  addsd  %xmm0,%xmm11
  movsd  -0x1e8(%rbp),%xmm15
  mulsd  -0x248(%rbp),%xmm15
  subsd  %xmm15,%xmm11
  mov    -0x190(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm11
  movsd  %xmm11,0x8(%rax,%rbx,1)
  movsd  -0x240(%rbp),%xmm1
  movq   %r10,%xmm0
  mulsd  %xmm1,%xmm0
  movq   %r9,%xmm11
  mulsd  %xmm13,%xmm11
  subsd  %xmm0,%xmm11
  mov    -0x1d8(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm11
  movsd  %xmm11,0x8(%rax,%rbx,1)
  mulsd  %xmm1,%xmm14
  mulsd  %xmm13,%xmm9
  subsd  %xmm14,%xmm9
  mov    -0x1e0(%rbp),%rax
  addsd  0x8(%rax,%rbx,1),%xmm9
  movsd  %xmm9,0x8(%rax,%rbx,1)
  jmp    L691
L290:
  mov    -0x188(%rbp),%rax
  movapd %xmm6,%xmm7
  mulsd  0xab0(%rax),%xmm7
  mov    -0x190(%rbp),%rsi
  movapd %xmm3,%xmm9
  mulsd  0xab0(%rsi),%xmm9
  addsd  %xmm9,%xmm7
  mulsd  %xmm7,%xmm6
  movsd  %xmm6,0xab0(%rax)
  mulsd  %xmm7,%xmm3
  movsd  %xmm3,0xab0(%rsi)
  jmp    L2
L314:
  movsd  -0xc8(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0xc0(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0xb8(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0xb0(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x90(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x120(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x1b0(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x240(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L608:
  cmpl   $0xd,-0x134(%rbp)
  jne    L674
  movsd  -0x68(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x80(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x750(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x6c0(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x630(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x5a0(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L674
L262:
  cmpl   $0xc,-0x134(%rbp)
  jne    L608
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x68(%rbp),%xmm2
  movsd  %xmm2,-0xf8(%rbp)
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x6c0(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x750(%r13,%r12,8),%xmm2
  movsd  %xmm2,-0x128(%rbp)
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x630(%r13,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L674
L349:
  movsd  -0xc8(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0xc0(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0xb8(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0xb0(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x90(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x120(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x1b0(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x240(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L67:
  cmpl   $0xd,-0x134(%rbp)
  jne    L160
  movsd  -0x68(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x80(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x750(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x6c0(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x630(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x5a0(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L160
L718:
  cmpl   $0xc,-0x134(%rbp)
  jne    L67
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x68(%rbp),%xmm2
  movsd  %xmm2,-0xf8(%rbp)
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x6c0(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x750(%r15,%r12,8),%xmm2
  movsd  %xmm2,-0x128(%rbp)
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x630(%r15,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L160
L395:
  movsd  -0xc8(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0xc0(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0xb8(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0xb0(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x90(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x120(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x1b0(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x240(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L405:
  cmpl   $0xd,-0x134(%rbp)
  jne    L367
  movsd  -0x68(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x80(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x750(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x6c0(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x630(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x5a0(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L367
L510:
  cmpl   $0xc,-0x134(%rbp)
  jne    L405
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x68(%rbp),%xmm2
  movsd  %xmm2,-0xf8(%rbp)
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  movsd  0x6c0(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x750(%r14,%r12,8),%xmm2
  movsd  %xmm2,-0x128(%rbp)
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x630(%r14,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L367
L496:
  movsd  -0xc8(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0xc0(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0xb8(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0xb0(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  mov    -0x140(%rbp),%rax
  movsd  0x90(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x120(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x1b0(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x240(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
L284:
  cmpl   $0xd,-0x134(%rbp)
  jne    L229
  movsd  -0x68(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0xf8(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x80(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  mov    -0x140(%rbp),%rax
  movsd  0x750(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x6c0(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x128(%rbp)
  movsd  0x630(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x5a0(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L229
L511:
  cmpl   $0xc,-0x134(%rbp)
  jne    L284
  movsd  -0x70(%rbp),%xmm1
  movsd  %xmm1,-0x100(%rbp)
  movsd  -0x68(%rbp),%xmm2
  movsd  %xmm2,-0xf8(%rbp)
  movsd  %xmm1,-0xf0(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  %xmm1,-0xe8(%rbp)
  mov    -0x140(%rbp),%rax
  movsd  0x6c0(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x130(%rbp)
  movsd  0x750(%rax,%r12,8),%xmm2
  movsd  %xmm2,-0x128(%rbp)
  movsd  %xmm1,-0x120(%rbp)
  movsd  0x630(%rax,%r12,8),%xmm1
  movsd  %xmm1,-0x118(%rbp)
  jmp    L229
L157:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: label: D130
type_infered: byte[8]
name: parse_data
arguments: label: D131
type_infered: f32[2]
name: parse_data
arguments: label: D61
type_infered: f64
name: parse_data
arguments: label: D95
type_infered: f32[2]
name: parse_data
arguments: label: D56
type_infered: byte[8]
name: parse_data
arguments: label: D6
type_infered: byte[8]
name: parse_data
arguments: label: D62
type_infered: byte[8]
name: parse_data
arguments: label: D128
type_infered: string

tool: {"D130": [0x03,0x95,0xf1,0xef,0x33,0x2e,0x3c,0x3f]}

tool: {"D131": [0.0,1.75]}

tool: D61: 3

tool: {"D95": [0.0,0.0]}

tool: {"D56": [0x8a,0x86,0xf8,0xe3,0xd6,0xe5,0x7d,0xbf]}

tool: {"D6": [0xfc,0xa9,0xf1,0xd2,0x4d,0x62,0x50,0x3f]}

tool: {"D62": [0x7b,0x14,0xae,0x47,0xe1,0x7a,0x84,0x3f]}

tool: D128: %g %g


assistant: ```c
int main(void) {
  int iy, ix;
  int jy, jx;
  int ky, kx;
  double Ly = 3., Lx = 3.;
  double DQy, DQx, Q2, Q;
  double Qy, Qx, Ky, Kx, K2, K;
  int my = 6, mx = 6;
  int Ny, Ny1, Nx, Nx1;
  int i, k, N = 3;
  double f[5], g[5];
  double x[5], xx;
  Ny = 2 * my + 1;
  Ny1 = Ny + 5;
  Nx = 2 * mx + 1;
  Nx1 = Nx + 5;
  DQy = 2 * Ly / (Ny - 1);
  DQx = 2 * Lx / (Nx - 1);
  double Dt = .01, t;
  double bx[Nx1][Ny1], by[Nx1][Ny1], ex[Nx1][Ny1], ey[Nx1][Ny1], vx[Nx1][Ny1], vy[Nx1][Ny1], ax[Nx1][Ny1], ay[Nx1][Ny1];
  double qx[Nx1], Vx[Nx1][Ny1], Vy[Nx1][Ny1], Bx[Nx1][Ny1], By[Nx1][Ny1];
  double nx, ny, nxp, nyp;
  double lvx[Nx1][Ny1], lvy[Nx1][Ny1], lbx[Nx1][Ny1], lby[Nx1][Ny1], vn, Qb, Qpb, Qv, bb, nlv;
  double energy;
  double wc = 0;
  double nuk = 1 / 1000., num = 1 / 137., Pk, Pm;
  double v2, b2;
  for (iy = 1; iy <= Ny + 4; iy++)
    for (ix = 1; ix <= Nx + 4; ix++) {
      vx[ix][iy] = 4.3 * 10E-5;
      vy[ix][iy] = 4.3 * 10E-5;
      bx[ix][iy] = 4.3 * 10E-5;
      by[ix][iy] = 4.3 * 10E-5;
    }
  for (t = 0; t <= 5.5; t = t + Dt) {
    energy = 0.;
    Pk = nuk;
    Pm = 0.;
    for (ix = 1; ix <= Nx; ix++) {
      Qx = -Lx + (ix - 1) * DQx;
      qx[ix] = Qx;
      for (iy = 1; iy <= Ny; iy++) {
        Qy = -Ly + (iy - 1) * DQy;
        Q2 = Qx * Qx + Qy * Qy;
        Q = sqrt(Q2);
        if (Q != 0.) {
          nx = Qx / Q;
          ny = Qy / Q;
        } else {
          nx = 0;
          ny = 0;
        }
        ex[ix][iy] = ey[ix][iy] = ax[ix][iy] = ay[ix][iy] = 0;
        ex[ix][iy] += -num * Q2 * bx[ix][iy];
        ey[ix][iy] += +bx[ix][iy] - num * Q2 * by[ix][iy];
        ax[ix][iy] += 2 * nx * ny * vx[ix][iy] + 2 * wc * nx * (ny * vx[ix][iy] - nx * vy[ix][iy]) + 2 * wc * vy[ix][iy] - nuk * Q2 * vx[ix][iy];
        ay[ix][iy] += -vx[ix][iy] + 2 * ny * ny * vx[ix][iy] + 2 * wc * ny * (ny * vx[ix][iy] - nx * vy[ix][iy]) - 2 * wc * vx[ix][iy] - nuk * Q2 * vy[ix][iy];
        lvx[ix][iy] = lvy[ix][iy] = lbx[ix][iy] = lby[ix][iy] = 0;
        for (jx = 1; jx <= Nx; jx++) {
          Kx = -Lx + (jx - 1) * DQx;
          kx = ix - jx + mx + 1;
          if (kx < 0)
            goto jump;
          if (kx > Nx)
            goto jump;
          for (jy = 1; jy <= Ny; jy++) {
            Ky = -Ly + (jy - 1) * DQy;
            ky = iy - jy + my + 1;
            if (ky < 0)
              goto jump;
            if (ky > Ny)
              goto jump;
            vn = vx[jx][jy] * Qx + vy[jx][jy] * Qy;
            Qb = Qx * bx[kx][ky] + Qy * by[kx][ky];
            Qv = Qx * vx[jx][jy] + Qy * vy[jx][jy];
            Qpb = Kx * bx[kx][ky] + Ky * by[kx][ky];
            bb = bx[jx][jy] * bx[kx][ky] + by[jx][jy] * by[kx][ky];
            lvx[ix][iy] += vx[kx][ky] * vn + bx[jx][jy] * Qpb - Kx * bb;
            lvy[ix][iy] += vy[kx][ky] * vn + by[jx][jy] * Qpb - Ky * bb;
            lbx[ix][iy] += -vx[kx][ky] * Qb + bx[kx][ky] * Qv;
            lby[ix][iy] += -vy[kx][ky] * Qb + by[kx][ky] * Qv;
          jump:;
          }
        }
        if (Q != 0.) {
          nlv = nx * lvx[Nx1][Ny1] + ny * lvy[Nx1][Ny1];
          lvx[Nx1][Ny1] = nx * nlv;
          lvy[Nx1][Ny1] = ny * nlv;
        }
        vx[ix][iy] += (ax[ix][iy] + lvx[ix][iy]) * Dt;
        vy[ix][iy] += (ay[ix][iy] + lvy[ix][iy]) * Dt;
        bx[ix][iy] += (ex[ix][iy] + lbx[ix][iy]) * Dt;
        by[ix][iy] += (ey[ix][iy] + lby[ix][iy]) * Dt;
        v2 = vx[ix][iy] * vx[ix][iy] + vy[ix][iy] * vy[ix][iy];
        b2 = by[ix][iy] * by[ix][iy] + bx[ix][iy] * bx[ix][iy];
        xx = qx[ix] + Qy * Dt;
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = vx[1][iy];
          f[1] = vx[2][iy];
          f[2] = vx[3][iy];
          f[3] = vx[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = vx[ix - 1][iy];
          f[1] = vx[ix][iy];
          f[2] = vx[ix + 1][iy];
          f[3] = vx[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = vx[Nx - 1][iy];
          f[1] = vx[Nx][iy];
          f[2] = vx[Nx - 1][iy];
          f[3] = vx[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = vx[Nx][iy];
          f[1] = vx[Nx - 1][iy];
          f[2] = vx[Nx - 2][iy];
          f[3] = vx[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        Vx[ix][iy] = f[N];
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = bx[1][iy];
          f[1] = bx[2][iy];
          f[2] = bx[3][iy];
          f[3] = bx[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = bx[ix - 1][iy];
          f[1] = bx[ix][iy];
          f[2] = bx[ix + 1][iy];
          f[3] = bx[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = bx[Nx - 1][iy];
          f[1] = bx[Nx][iy];
          f[2] = bx[Nx - 1][iy];
          f[3] = bx[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = bx[Nx][iy];
          f[1] = bx[Nx - 1][iy];
          f[2] = bx[Nx - 2][iy];
          f[3] = bx[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        Bx[ix][iy] = f[N];
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = vy[1][iy];
          f[1] = vy[2][iy];
          f[2] = vy[3][iy];
          f[3] = vy[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = vy[ix - 1][iy];
          f[1] = vy[ix][iy];
          f[2] = vy[ix + 1][iy];
          f[3] = vy[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = vy[Nx - 1][iy];
          f[1] = vy[Nx][iy];
          f[2] = vy[Nx - 1][iy];
          f[3] = vy[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = vy[Nx][iy];
          f[1] = vy[Nx - 1][iy];
          f[2] = vy[Nx - 2][iy];
          f[3] = vy[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        Vy[ix][iy] = f[N];
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = by[1][iy];
          f[1] = by[2][iy];
          f[2] = by[3][iy];
          f[3] = by[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = by[ix - 1][iy];
          f[1] = by[ix][iy];
          f[2] = by[ix + 1][iy];
          f[3] = by[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = by[Nx - 1][iy];
          f[1] = by[Nx][iy];
          f[2] = by[Nx - 1][iy];
          f[3] = by[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = by[Nx][iy];
          f[1] = by[Nx - 1][iy];
          f[2] = by[Nx - 2][iy];
          f[3] = by[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        By[ix][iy] = f[N];
        energy += (v2 + b2) / 2.;
      }
    }
    for (ix = 1; ix <= Nx; ix++) {
      for (iy = 1; iy <= Ny; iy++) {
        vx[ix][iy] = Vx[ix][iy];
        vy[ix][iy] = Vy[ix][iy];
        bx[ix][iy] = Bx[ix][iy];
        by[ix][iy] = By[ix][iy];
      }
    }
    printf("%g %g\n", t, log(energy));
  }
  return 0;
}
```