user: Please show me the C implementation that matches the assembly code listed below:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x458,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  mov    %rsp,%rax
  cmp    %rax,%rsp
  je     L251
L106:
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  cmp    %rax,%rsp
  jne    L106
L251:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1b8(%rbp)
  mov    %rsp,%rax
L972:
  cmp    %rax,%rsp
  je     L447
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L972
L447:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1c0(%rbp)
  mov    %rsp,%rax
L231:
  cmp    %rax,%rsp
  je     L481
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L231
L481:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x2f8(%rbp)
  mov    %rsp,%rax
L212:
  cmp    %rax,%rsp
  je     L473
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L212
L473:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x300(%rbp)
  mov    %rsp,%rax
L433:
  cmp    %rax,%rsp
  je     L797
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L433
L797:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1c8(%rbp)
  mov    %rsp,%rax
L757:
  cmp    %rax,%rsp
  je     L656
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L757
L656:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x1d0(%rbp)
  mov    %rsp,%rax
L392:
  cmp    %rax,%rsp
  je     L112
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L392
L112:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x308(%rbp)
  mov    %rsp,%rax
L202:
  cmp    %rax,%rsp
  je     L186
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L202
L186:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x310(%rbp)
  mov    %rsp,%rax
L250:
  cmp    %rax,%rsp
  je     L476
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L250
L476:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r15
  mov    %rsp,%rax
L971:
  cmp    %rax,%rsp
  je     L547
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L971
L547:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r14
  mov    %rsp,%rax
L902:
  cmp    %rax,%rsp
  je     L332
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L902
L332:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r8
  mov    %rsp,%rax
L264:
  cmp    %rax,%rsp
  je     L252
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L264
L252:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,%r11
  mov    %rsp,%rax
L617:
  cmp    %rax,%rsp
  je     L896
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L617
L896:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x208(%rbp)
  mov    %rsp,%rax
L673:
  cmp    %rax,%rsp
  je     L391
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L673
L391:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x210(%rbp)
  mov    %rsp,%rax
L346:
  cmp    %rax,%rsp
  je     L979
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L346
L979:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  mov    %rsp,-0x218(%rbp)
  mov    %rsp,%rax
L434:
  cmp    %rax,%rsp
  je     L22
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L434
L22:
  sub    $0xa20,%rsp
  orq    $0x0,0xa18(%rsp)
  movapd D193(%rip),%xmm0
  movsd  D193(%rip),%xmm1
  mov    -0x1d0(%rbp),%rdi
  mov    -0x1c8(%rbp),%rbx
  lea    0x98(%rdi),%rdx
  mov    -0x1b8(%rbp),%rdi
  lea    0x98(%rbx),%rax
  lea    0x98(%rdi),%rcx
  mov    -0x1c0(%rbp),%rdi
  mov    %rsp,-0x220(%rbp)
  mov    %rax,-0x348(%rbp)
  lea    0x98(%rdi),%rsi
  mov    %rdx,-0x350(%rbp)
  lea    0xa28(%rbx),%rdi
  mov    %rcx,-0x358(%rbp)
  mov    %rsi,-0x360(%rbp)
  nopl   0x0(%rax,%rax,1)
L780:
  movups %xmm0,(%rax)
  add    $0x90,%rax
  add    $0x90,%rdx
  add    $0x90,%rcx
  movups %xmm0,(%rsi)
  add    $0x90,%rsi
  movups %xmm0,-0x90(%rdx)
  movups %xmm0,-0x90(%rcx)
  movups %xmm0,-0x80(%rax)
  movups %xmm0,-0x80(%rdx)
  movups %xmm0,-0x80(%rcx)
  movups %xmm0,-0x80(%rsi)
  movups %xmm0,-0x70(%rax)
  movups %xmm0,-0x70(%rdx)
  movups %xmm0,-0x70(%rcx)
  movups %xmm0,-0x70(%rsi)
  movups %xmm0,-0x60(%rax)
  movups %xmm0,-0x60(%rdx)
  movups %xmm0,-0x60(%rcx)
  movups %xmm0,-0x60(%rsi)
  movups %xmm0,-0x50(%rax)
  movups %xmm0,-0x50(%rdx)
  movups %xmm0,-0x50(%rcx)
  movups %xmm0,-0x50(%rsi)
  movups %xmm0,-0x40(%rax)
  movups %xmm0,-0x40(%rdx)
  movups %xmm0,-0x40(%rcx)
  movups %xmm0,-0x40(%rsi)
  movups %xmm0,-0x30(%rax)
  movups %xmm0,-0x30(%rdx)
  movups %xmm0,-0x30(%rcx)
  movups %xmm0,-0x30(%rsi)
  movups %xmm0,-0x20(%rax)
  movups %xmm0,-0x20(%rdx)
  movups %xmm0,-0x20(%rcx)
  movups %xmm0,-0x20(%rsi)
  movsd  %xmm1,-0x10(%rax)
  movsd  %xmm1,-0x10(%rdx)
  movsd  %xmm1,-0x10(%rcx)
  movsd  %xmm1,-0x10(%rsi)
  cmp    %rdi,%rax
  jne    L780
  lea    0x98(%r14),%rax
  lea    -0x100(%rbp),%rdx
  pxor   %xmm13,%xmm13
  mov    %r11,%r10
  mov    %rax,-0x170(%rbp)
  lea    0x98(%r15),%rax
  lea    -0x130(%rbp),%rsi
  mov    %rdx,%rcx
  mov    %rax,-0x168(%rbp)
  lea    0x98(%r11),%rax
  mov    %rsi,%rdx
  mov    %r14,%r11
  mov    %rax,-0x158(%rbp)
  lea    0x98(%r8),%rax
  mov    %rax,-0x150(%rbp)
  lea    0x758(%r14),%rax
  mov    %r15,%r14
  mov    %r8,%r15
  mov    %rax,-0x160(%rbp)
  lea    -0xd0(%rbp),%rax
  movl   $0x227,-0x13c(%rbp)
  mov    %rax,-0x148(%rbp)
  movsd  %xmm13,-0x138(%rbp)
L624:
  mov    $0x1,%r9d
  mov    -0x148(%rbp),%rsi
  movq   $0x0,-0x190(%rbp)
  mov    %r11,-0x280(%rbp)
  mov    -0x1b8(%rbp),%r8
  mov    %r9,%r11
  mov    %r15,-0x290(%rbp)
  mov    -0x1c8(%rbp),%r9
  mov    %rdx,-0x1e0(%rbp)
  mov    -0x1c0(%rbp),%r15
  mov    -0x1d0(%rbp),%rdx
  mov    %r14,-0x270(%rbp)
  mov    %rcx,%r14
  movq   $0x0,-0x180(%rbp)
  mov    %r10,-0x320(%rbp)
  mov    %rsi,%r10
L846:
  lea    -0x1(%r11),%eax
  pxor   %xmm0,%xmm0
  cmp    $0xb,%r11d
  mov    %r11d,-0x178(%rbp)
  cvtsi2sd %eax,%xmm0
  setle  %cl
  cmp    $0x1,%r11d
  mov    %r11,-0x1f0(%rbp)
  mulsd  D28(%rip),%xmm0
  setne  %al
  mov    $0x1,%r12d
  subsd  D81(%rip),%xmm0
  and    %eax,%ecx
  mov    -0x190(%rbp),%rax
  mov    %cl,-0x200(%rbp)
  lea    0x1b8(%rax),%rsi
  mov    %rax,-0x1a0(%rbp)
  lea    0x98(%rax),%rbx
  movapd %xmm0,%xmm7
  lea    0x6(%r11),%eax
  movapd %xmm0,%xmm13
  mov    %rsi,-0x1b0(%rbp)
  mulsd  %xmm0,%xmm7
  mov    %eax,-0x230(%rbp)
  movsd  %xmm0,0x8(%r10)
  movsd  %xmm7,-0x240(%rbp)
L578:
  lea    -0x1(%r12),%eax
  pxor   %xmm0,%xmm0
  pxor   %xmm7,%xmm7
  mov    %r12d,%ecx
  cvtsi2sd %eax,%xmm0
  mulsd  D28(%rip),%xmm0
  subsd  D81(%rip),%xmm0
  movapd %xmm0,%xmm3
  movapd %xmm0,%xmm12
  mulsd  %xmm0,%xmm3
  addsd  -0x240(%rbp),%xmm3
  ucomisd %xmm3,%xmm7
  ja     L283
  movapd %xmm3,%xmm6
  sqrtsd %xmm6,%xmm6
L705:
  ucomisd %xmm7,%xmm6
  jp     L280
  je     L760
L280:
  movapd %xmm13,%xmm14
  movapd %xmm12,%xmm0
  divsd  %xmm6,%xmm14
  divsd  %xmm6,%xmm0
L66:
  movsd  (%r8,%rbx,1),%xmm11
  pxor   %xmm7,%xmm7
  movsd  D27(%rip),%xmm1
  movapd %xmm14,%xmm4
  mov    -0x2f8(%rbp),%rax
  movsd  (%rdx,%rbx,1),%xmm8
  addsd  %xmm14,%xmm4
  lea    0x420(%rbx),%rdi
  mulsd  %xmm3,%xmm1
  mov    $0x90,%r11d
  mov    %rdi,-0x260(%rbp)
  lea    0x6(%rcx),%edi
  mov    %edi,-0x250(%rbp)
  movapd %xmm8,%xmm9
  movapd %xmm11,%xmm10
  mulsd  %xmm0,%xmm4
  movsd  %xmm0,-0x330(%rbp)
  mulsd  D94(%rip),%xmm3
  movapd %xmm1,%xmm2
  mulsd  %xmm11,%xmm2
  addsd  %xmm7,%xmm2
  movsd  (%r15,%rbx,1),%xmm7
  mulsd  %xmm7,%xmm1
  movsd  %xmm7,-0x2b0(%rbp)
  pxor   %xmm7,%xmm7
  movsd  %xmm2,(%rax,%rbx,1)
  mov    -0x300(%rbp),%rax
  movsd  %xmm2,-0x2a0(%rbp)
  movapd %xmm8,%xmm2
  mulsd  %xmm14,%xmm2
  addsd  %xmm11,%xmm1
  addsd  %xmm7,%xmm1
  movsd  %xmm1,(%rax,%rbx,1)
  mov    -0x308(%rbp),%rax
  movsd  %xmm1,-0x2c0(%rbp)
  movsd  (%r9,%rbx,1),%xmm1
  mulsd  %xmm1,%xmm4
  movapd %xmm1,%xmm5
  mulsd  %xmm0,%xmm5
  subsd  %xmm2,%xmm5
  movapd %xmm7,%xmm2
  mulsd  %xmm14,%xmm2
  mulsd  %xmm5,%xmm2
  addsd  %xmm2,%xmm4
  movapd %xmm7,%xmm2
  mulsd  %xmm8,%xmm2
  addsd  %xmm2,%xmm4
  movapd %xmm1,%xmm2
  mulsd  %xmm3,%xmm2
  mulsd  %xmm8,%xmm3
  movapd %xmm1,%xmm8
  subsd  %xmm2,%xmm4
  movapd %xmm0,%xmm2
  addsd  %xmm0,%xmm2
  addsd  %xmm7,%xmm4
  mulsd  %xmm0,%xmm2
  movsd  %xmm4,(%rax,%rbx,1)
  mov    -0x310(%rbp),%rax
  movsd  %xmm4,-0x2d0(%rbp)
  movapd %xmm7,%xmm4
  mulsd  %xmm0,%xmm4
  mulsd  %xmm1,%xmm2
  mulsd  %xmm5,%xmm4
  subsd  %xmm1,%xmm2
  addsd  %xmm4,%xmm2
  movapd %xmm7,%xmm4
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm2
  subsd  %xmm3,%xmm2
  pxor   %xmm3,%xmm3
  movapd %xmm3,%xmm4
  addsd  %xmm7,%xmm2
  movsd  %xmm2,(%rax,%rbx,1)
  mov    -0x220(%rbp),%rax
  movsd  %xmm2,-0x2e0(%rbp)
  movq   $0x0,(%rax,%rbx,1)
  mov    -0x218(%rbp),%rax
  movq   $0x0,(%rax,%rbx,1)
  mov    -0x210(%rbp),%rax
  movq   $0x0,(%rax,%rbx,1)
  mov    -0x208(%rbp),%rax
  movq   $0x0,(%rax,%rbx,1)
  xor    %eax,%eax
L509:
  mov    -0x230(%rbp),%ecx
  sub    %eax,%ecx
  cmp    $0xd,%ecx
  jbe    L716
L139:
  add    $0x1,%eax
  add    $0x90,%r11
  cmp    $0xd,%eax
  jne    L509
  pxor   %xmm7,%xmm7
  movapd %xmm8,%xmm1
  movapd %xmm10,%xmm11
  movsd  -0x330(%rbp),%xmm0
  ucomisd %xmm7,%xmm6
  movapd %xmm9,%xmm8
  jp     L616
  je     L104
L616:
  mov    -0x208(%rbp),%rax
  mov    -0x210(%rbp),%rdi
  movsd  0xab0(%rax),%xmm5
  movsd  0xab0(%rdi),%xmm2
  mulsd  %xmm14,%xmm5
  mulsd  %xmm0,%xmm2
  addsd  %xmm2,%xmm5
  movapd %xmm14,%xmm2
  mulsd  %xmm5,%xmm2
  mulsd  %xmm5,%xmm0
  movsd  %xmm2,0xab0(%rax)
  movsd  %xmm0,0xab0(%rdi)
L104:
  mov    -0x208(%rbp),%rax
  movsd  -0x2d0(%rbp),%xmm5
  movsd  -0x2e0(%rbp),%xmm6
  movsd  -0x2a0(%rbp),%xmm2
  addsd  (%rax,%rbx,1),%xmm5
  mov    -0x210(%rbp),%rax
  mulsd  D72(%rip),%xmm5
  addsd  %xmm4,%xmm2
  cmpq   $0x1,-0x1f0(%rbp)
  addsd  (%rax,%rbx,1),%xmm6
  mulsd  D72(%rip),%xmm6
  mulsd  D72(%rip),%xmm2
  addsd  %xmm1,%xmm5
  movsd  -0x2c0(%rbp),%xmm1
  addsd  %xmm8,%xmm6
  addsd  %xmm3,%xmm1
  mulsd  D72(%rip),%xmm1
  addsd  %xmm11,%xmm2
  movapd %xmm5,%xmm4
  addsd  -0x2b0(%rbp),%xmm1
  movsd  %xmm5,(%r9,%rbx,1)
  mulsd  %xmm5,%xmm4
  movapd %xmm6,%xmm0
  movsd  %xmm6,(%rdx,%rbx,1)
  mulsd  %xmm6,%xmm0
  movsd  %xmm2,(%r8,%rbx,1)
  movapd %xmm1,%xmm7
  movsd  %xmm1,(%r15,%rbx,1)
  mulsd  %xmm1,%xmm7
  addsd  %xmm0,%xmm4
  movapd %xmm2,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm7
  movsd  D72(%rip),%xmm0
  mulsd  %xmm12,%xmm0
  addsd  %xmm13,%xmm0
  je     L435
  cmpb   $0x0,-0x200(%rbp)
  je     L861
  movupd 0x10(%r10),%xmm3
  mov    -0x1b0(%rbp),%rax
  movsd  (%r10),%xmm8
  movaps %xmm3,-0xf0(%rbp)
  movsd  0x90(%r9,%rbx,1),%xmm3
  unpcklpd %xmm13,%xmm8
  movhpd (%r9,%rax,1),%xmm3
  mov    -0x1a0(%rbp),%rax
  movaps %xmm8,-0x100(%rbp)
  movaps %xmm3,-0x120(%rbp)
  movsd  0x8(%r9,%rax,1),%xmm8
  unpcklpd %xmm5,%xmm8
  movaps %xmm8,-0x130(%rbp)
L913:
  mov    -0x1e0(%rbp),%r11
  movapd %xmm0,%xmm9
  mov    $0x1,%eax
  unpcklpd %xmm9,%xmm9
  mov    %r11,%rcx
  mov    %r11,%rsi
L679:
  movsd  -0x8(%r14,%rax,8),%xmm3
  subsd  %xmm0,%xmm3
  cmp    $0x3,%rax
  je     L400
  movupd (%r14,%rax,8),%xmm11
  movsd  (%rsi),%xmm10
  movapd %xmm3,%xmm8
  lea    0x2(%rax),%edi
  movupd 0x8(%rsi),%xmm5
  unpcklpd %xmm8,%xmm8
  subpd  %xmm9,%xmm11
  movapd %xmm10,%xmm12
  mulpd  %xmm8,%xmm5
  unpcklpd %xmm12,%xmm12
  mulpd  %xmm11,%xmm12
  subpd  %xmm11,%xmm8
  subpd  %xmm12,%xmm5
  divpd  %xmm8,%xmm5
  movups %xmm5,0x8(%rsi)
  cmp    $0x2,%eax
  je     L512
  movslq %edi,%rdi
  movsd  -0x100(%rbp,%rdi,8),%xmm8
  movsd  -0x130(%rbp,%rdi,8),%xmm5
  subsd  %xmm0,%xmm8
  mulsd  %xmm3,%xmm5
  mulsd  %xmm8,%xmm10
  subsd  %xmm8,%xmm3
  subsd  %xmm10,%xmm5
  divsd  %xmm3,%xmm5
  movsd  %xmm5,-0x130(%rbp,%rdi,8)
L512:
  add    $0x1,%rax
  add    $0x8,%rsi
  cmp    $0x4,%rax
  jne    L679
  movsd  -0x118(%rbp),%xmm3
  mov    -0x270(%rbp),%rax
  cmpq   $0x1,-0x1f0(%rbp)
  movsd  %xmm3,(%rax,%rbx,1)
  je     L354
  cmpb   $0x0,-0x200(%rbp)
  je     L420
  movupd 0x10(%r10),%xmm3
  mov    -0x1b0(%rbp),%rax
  movsd  (%r10),%xmm5
  movaps %xmm3,-0xf0(%rbp)
  movsd  0x90(%r8,%rbx,1),%xmm3
  unpcklpd %xmm13,%xmm5
  movhpd (%r8,%rax,1),%xmm3
  mov    -0x1a0(%rbp),%rax
  movaps %xmm5,-0x100(%rbp)
  movaps %xmm3,-0x120(%rbp)
  movsd  0x8(%r8,%rax,1),%xmm5
  unpcklpd %xmm2,%xmm5
  movaps %xmm5,-0x130(%rbp)
L954:
  mov    -0x1e0(%rbp),%r11
  movapd %xmm0,%xmm8
  mov    $0x1,%eax
  unpcklpd %xmm8,%xmm8
  mov    %r11,%rsi
L961:
  movsd  -0x8(%r14,%rax,8),%xmm2
  subsd  %xmm0,%xmm2
  cmp    $0x3,%rax
  je     L544
  movupd (%r14,%rax,8),%xmm10
  movsd  (%rsi),%xmm9
  movapd %xmm2,%xmm5
  lea    0x2(%rax),%edi
  movupd 0x8(%rsi),%xmm3
  unpcklpd %xmm5,%xmm5
  subpd  %xmm8,%xmm10
  movapd %xmm9,%xmm11
  mulpd  %xmm5,%xmm3
  unpcklpd %xmm11,%xmm11
  mulpd  %xmm10,%xmm11
  subpd  %xmm10,%xmm5
  subpd  %xmm11,%xmm3
  divpd  %xmm5,%xmm3
  movups %xmm3,0x8(%rsi)
  cmp    $0x2,%eax
  je     L285
  movslq %edi,%rdi
  movsd  -0x100(%rbp,%rdi,8),%xmm5
  movsd  -0x130(%rbp,%rdi,8),%xmm3
  subsd  %xmm0,%xmm5
  mulsd  %xmm2,%xmm3
  mulsd  %xmm5,%xmm9
  subsd  %xmm5,%xmm2
  subsd  %xmm9,%xmm3
  divsd  %xmm2,%xmm3
  movsd  %xmm3,-0x130(%rbp,%rdi,8)
L285:
  add    $0x1,%rax
  add    $0x8,%rsi
  cmp    $0x4,%rax
  jne    L961
  movsd  -0x118(%rbp),%xmm2
  mov    -0x290(%rbp),%rax
  cmpq   $0x1,-0x1f0(%rbp)
  movsd  %xmm2,(%rax,%rbx,1)
  je     L956
  cmpb   $0x0,-0x200(%rbp)
  je     L835
  movupd 0x10(%r10),%xmm2
  mov    -0x1b0(%rbp),%rax
  movsd  (%r10),%xmm3
  movaps %xmm2,-0xf0(%rbp)
  movsd  0x90(%rdx,%rbx,1),%xmm2
  unpcklpd %xmm13,%xmm3
  movhpd (%rdx,%rax,1),%xmm2
  mov    -0x1a0(%rbp),%rax
  movaps %xmm3,-0x100(%rbp)
  movaps %xmm2,-0x120(%rbp)
  movsd  0x8(%rdx,%rax,1),%xmm3
  unpcklpd %xmm6,%xmm3
  movaps %xmm3,-0x130(%rbp)
L612:
  mov    -0x1e0(%rbp),%r11
  movapd %xmm0,%xmm6
  mov    $0x1,%eax
  unpcklpd %xmm6,%xmm6
  mov    %r11,%rsi
L732:
  movsd  -0x8(%r14,%rax,8),%xmm2
  subsd  %xmm0,%xmm2
  cmp    $0x3,%rax
  je     L241
  movupd (%r14,%rax,8),%xmm9
  movsd  (%rsi),%xmm8
  movapd %xmm2,%xmm5
  lea    0x2(%rax),%edi
  movupd 0x8(%rsi),%xmm3
  unpcklpd %xmm5,%xmm5
  subpd  %xmm6,%xmm9
  movapd %xmm8,%xmm10
  mulpd  %xmm5,%xmm3
  unpcklpd %xmm10,%xmm10
  mulpd  %xmm9,%xmm10
  subpd  %xmm9,%xmm5
  subpd  %xmm10,%xmm3
  divpd  %xmm5,%xmm3
  movups %xmm3,0x8(%rsi)
  cmp    $0x2,%eax
  je     L470
  movslq %edi,%rdi
  movsd  -0x100(%rbp,%rdi,8),%xmm5
  movsd  -0x130(%rbp,%rdi,8),%xmm3
  subsd  %xmm0,%xmm5
  mulsd  %xmm2,%xmm3
  mulsd  %xmm5,%xmm8
  subsd  %xmm5,%xmm2
  subsd  %xmm8,%xmm3
  divsd  %xmm2,%xmm3
  movsd  %xmm3,-0x130(%rbp,%rdi,8)
L470:
  add    $0x1,%rax
  add    $0x8,%rsi
  cmp    $0x4,%rax
  jne    L732
  movsd  -0x118(%rbp),%xmm2
  mov    -0x280(%rbp),%rax
  cmpq   $0x1,-0x1f0(%rbp)
  movsd  %xmm2,(%rax,%rbx,1)
  je     L806
  cmpb   $0x0,-0x200(%rbp)
  je     L427
  movupd 0x10(%r10),%xmm2
  mov    -0x1b0(%rbp),%rax
  movsd  (%r10),%xmm3
  movaps %xmm2,-0xf0(%rbp)
  movsd  0x90(%r15,%rbx,1),%xmm2
  unpcklpd %xmm13,%xmm3
  movhpd (%r15,%rax,1),%xmm2
  mov    -0x1a0(%rbp),%rax
  movaps %xmm3,-0x100(%rbp)
  movaps %xmm2,-0x120(%rbp)
  movsd  0x8(%r15,%rax,1),%xmm3
  unpcklpd %xmm1,%xmm3
  movaps %xmm3,-0x130(%rbp)
L613:
  movapd %xmm0,%xmm5
  mov    -0x1e0(%rbp),%rdi
  mov    $0x1,%eax
  unpcklpd %xmm5,%xmm5
L390:
  movsd  -0x8(%r14,%rax,8),%xmm1
  subsd  %xmm0,%xmm1
  cmp    $0x3,%rax
  je     L49
  movsd  (%rcx),%xmm6
  movupd 0x8(%rcx),%xmm2
  movapd %xmm1,%xmm3
  lea    0x2(%rax),%esi
  movupd (%r14,%rax,8),%xmm8
  unpcklpd %xmm3,%xmm3
  mulpd  %xmm3,%xmm2
  movapd %xmm6,%xmm9
  subpd  %xmm5,%xmm8
  unpcklpd %xmm9,%xmm9
  mulpd  %xmm8,%xmm9
  subpd  %xmm8,%xmm3
  subpd  %xmm9,%xmm2
  divpd  %xmm3,%xmm2
  movups %xmm2,0x8(%rcx)
  cmp    $0x2,%eax
  je     L869
  movslq %esi,%rsi
  movsd  -0x100(%rbp,%rsi,8),%xmm3
  movsd  -0x130(%rbp,%rsi,8),%xmm2
  subsd  %xmm0,%xmm3
  mulsd  %xmm1,%xmm2
  mulsd  %xmm3,%xmm6
  subsd  %xmm3,%xmm1
  subsd  %xmm6,%xmm2
  divsd  %xmm1,%xmm2
  movsd  %xmm2,-0x130(%rbp,%rsi,8)
L869:
  add    $0x1,%rax
  add    $0x8,%rcx
  cmp    $0x4,%rax
  jne    L390
  addsd  %xmm7,%xmm4
  mulsd  D28(%rip),%xmm4
  movsd  -0x118(%rbp),%xmm0
  add    $0x1,%r12
  addsd  -0x180(%rbp),%xmm4
  mov    -0x320(%rbp),%rdi
  addq   $0x8,-0x1a0(%rbp)
  movsd  %xmm0,(%rdi,%rbx,1)
  add    $0x8,%rbx
  addq   $0x8,-0x1b0(%rbp)
  movsd  %xmm4,-0x180(%rbp)
  cmp    $0xe,%r12
  jne    L578
  addq   $0x90,-0x190(%rbp)
  mov    -0x1f0(%rbp),%r11
  add    $0x8,%r10
  mov    -0x190(%rbp),%rax
  add    $0x1,%r11
  cmp    $0x750,%rax
  jne    L846
  mov    -0x350(%rbp),%r13
  mov    %r14,%rcx
  mov    -0x270(%rbp),%r14
  mov    %rdi,%r10
  mov    -0x280(%rbp),%r11
  mov    -0x290(%rbp),%r15
  mov    -0x1e0(%rbp),%rdx
  mov    -0x170(%rbp),%rax
  mov    %r14,-0x178(%rbp)
  mov    %r13,%r14
  mov    -0x168(%rbp),%r8
  mov    -0x158(%rbp),%rdi
  mov    -0x150(%rbp),%rsi
  mov    -0x358(%rbp),%r12
  mov    -0x360(%rbp),%r9
  mov    -0x348(%rbp),%rbx
L417:
  movupd 0x10(%rax),%xmm0
  movupd 0x10(%r8),%xmm15
  add    $0x120,%rax
  add    $0x120,%rbx
  movupd 0xb0(%r8),%xmm6
  movupd 0x20(%r8),%xmm13
  add    $0x120,%r9
  add    $0x120,%r8
  movaps %xmm0,-0x190(%rbp)
  movupd -0x80(%r8),%xmm7
  movupd -0xf0(%rax),%xmm0
  add    $0x120,%rdi
  movupd -0xf0(%r8),%xmm12
  movupd -0x60(%r8),%xmm5
  add    $0x120,%r12
  add    $0x120,%rsi
  movaps %xmm0,-0x1a0(%rbp)
  movupd -0x50(%r8),%xmm4
  movupd -0xe0(%rax),%xmm0
  add    $0x120,%r14
  movupd -0xe0(%r8),%xmm11
  movupd -0x40(%r8),%xmm3
  movaps %xmm0,-0x1b0(%rbp)
  movupd -0x30(%r8),%xmm2
  movupd -0xd0(%rax),%xmm0
  movupd -0xd0(%r8),%xmm10
  movupd -0x120(%rax),%xmm1
  movupd -0xc0(%r8),%xmm9
  movaps %xmm0,-0x1e0(%rbp)
  movupd -0xc0(%rax),%xmm0
  movupd -0x90(%r8),%xmm8
  movupd -0x100(%rax),%xmm14
  movaps %xmm0,-0x1f0(%rbp)
  movupd -0x90(%rax),%xmm0
  movaps %xmm0,-0x200(%rbp)
  movupd -0x80(%rax),%xmm0
  movaps %xmm0,-0x230(%rbp)
  movupd -0x70(%rax),%xmm0
  movaps %xmm0,-0x240(%rbp)
  movupd -0x60(%rax),%xmm0
  movaps %xmm0,-0x250(%rbp)
  movupd -0x50(%rax),%xmm0
  movaps %xmm0,-0x260(%rbp)
  movupd -0x40(%rax),%xmm0
  movaps %xmm0,-0x270(%rbp)
  movupd -0x30(%rax),%xmm0
  movaps %xmm0,-0x280(%rbp)
  movupd -0x120(%rsi),%xmm0
  movaps %xmm0,-0x290(%rbp)
  movupd -0x110(%rsi),%xmm0
  movaps %xmm0,-0x2a0(%rbp)
  movupd -0x100(%rsi),%xmm0
  movaps %xmm0,-0x2b0(%rbp)
  movupd -0xf0(%rsi),%xmm0
  movaps %xmm0,-0x2c0(%rbp)
  movupd -0xe0(%rsi),%xmm0
  movaps %xmm0,-0x2d0(%rbp)
  movupd -0xd0(%rsi),%xmm0
  movaps %xmm0,-0x2e0(%rbp)
  movupd -0xc0(%rsi),%xmm0
  movaps %xmm0,-0x2f0(%rbp)
  movupd -0x90(%rsi),%xmm0
  movaps %xmm0,-0x320(%rbp)
  movupd -0x80(%rsi),%xmm0
  movaps %xmm0,-0x330(%rbp)
  movupd -0x70(%rsi),%xmm0
  movaps %xmm0,-0x340(%rbp)
  movupd -0x60(%rsi),%xmm0
  movaps %xmm0,-0x370(%rbp)
  movupd -0x50(%rsi),%xmm0
  movaps %xmm0,-0x380(%rbp)
  movupd -0x40(%rsi),%xmm0
  movaps %xmm0,-0x390(%rbp)
  movupd -0x30(%rsi),%xmm0
  movaps %xmm0,-0x3a0(%rbp)
  movupd -0x120(%rdi),%xmm0
  movaps %xmm0,-0x3b0(%rbp)
  movupd -0x110(%rdi),%xmm0
  movaps %xmm0,-0x3c0(%rbp)
  movupd -0x100(%rdi),%xmm0
  movaps %xmm0,-0x3d0(%rbp)
  movupd -0xf0(%rdi),%xmm0
  movaps %xmm0,-0x3e0(%rbp)
  movupd -0xe0(%rdi),%xmm0
  movaps %xmm0,-0x3f0(%rbp)
  movupd -0xd0(%rdi),%xmm0
  movaps %xmm0,-0x400(%rbp)
  movupd -0xc0(%rdi),%xmm0
  movaps %xmm0,-0x410(%rbp)
  movupd -0x90(%rdi),%xmm0
  movaps %xmm0,-0x420(%rbp)
  movupd -0x80(%rdi),%xmm0
  movaps %xmm0,-0x430(%rbp)
  movupd -0x70(%rdi),%xmm0
  movaps %xmm0,-0x440(%rbp)
  movupd -0x60(%rdi),%xmm0
  movaps %xmm0,-0x450(%rbp)
  movupd -0x50(%rdi),%xmm0
  movaps %xmm0,-0x460(%rbp)
  movupd -0x40(%rdi),%xmm0
  movaps %xmm0,-0x470(%rbp)
  movupd -0x30(%rdi),%xmm0
  movaps %xmm0,-0x480(%rbp)
  movupd -0x120(%r8),%xmm0
  movups %xmm0,-0x120(%rbx)
  movups %xmm15,-0x110(%rbx)
  movapd -0x1a0(%rbp),%xmm0
  movups %xmm6,-0x70(%rbx)
  movapd -0x190(%rbp),%xmm6
  movups %xmm13,-0x100(%rbx)
  movups %xmm12,-0xf0(%rbx)
  movups %xmm11,-0xe0(%rbx)
  movups %xmm10,-0xd0(%rbx)
  movlpd %xmm9,-0xc0(%rbx)
  movups %xmm8,-0x90(%rbx)
  movups %xmm7,-0x80(%rbx)
  movups %xmm5,-0x60(%rbx)
  movups %xmm4,-0x50(%rbx)
  movups %xmm3,-0x40(%rbx)
  movlpd %xmm2,-0x30(%rbx)
  movups %xmm0,-0xf0(%r14)
  movapd -0x1b0(%rbp),%xmm0
  movups %xmm1,-0x120(%r14)
  movups %xmm0,-0xe0(%r14)
  movapd -0x1e0(%rbp),%xmm0
  movups %xmm6,-0x110(%r14)
  movups %xmm0,-0xd0(%r14)
  movapd -0x1f0(%rbp),%xmm0
  movups %xmm14,-0x100(%r14)
  movlpd %xmm0,-0xc0(%r14)
  movapd -0x200(%rbp),%xmm0
  movups %xmm0,-0x90(%r14)
  movapd -0x230(%rbp),%xmm0
  movups %xmm0,-0x80(%r14)
  movapd -0x240(%rbp),%xmm0
  movups %xmm0,-0x70(%r14)
  movapd -0x250(%rbp),%xmm0
  movups %xmm0,-0x60(%r14)
  movapd -0x260(%rbp),%xmm0
  movups %xmm0,-0x50(%r14)
  movapd -0x270(%rbp),%xmm0
  movups %xmm0,-0x40(%r14)
  movapd -0x280(%rbp),%xmm0
  movlpd %xmm0,-0x30(%r14)
  movapd -0x290(%rbp),%xmm0
  movups %xmm0,-0x120(%r12)
  movapd -0x2a0(%rbp),%xmm0
  movups %xmm0,-0x110(%r12)
  movapd -0x2b0(%rbp),%xmm0
  movups %xmm0,-0x100(%r12)
  movapd -0x2c0(%rbp),%xmm0
  movups %xmm0,-0xf0(%r12)
  movapd -0x2d0(%rbp),%xmm0
  movups %xmm0,-0xe0(%r12)
  movapd -0x2e0(%rbp),%xmm0
  movups %xmm0,-0xd0(%r12)
  movapd -0x2f0(%rbp),%xmm0
  movlpd %xmm0,-0xc0(%r12)
  movapd -0x320(%rbp),%xmm0
  movups %xmm0,-0x90(%r12)
  movapd -0x330(%rbp),%xmm0
  movups %xmm0,-0x80(%r12)
  movapd -0x340(%rbp),%xmm0
  movups %xmm0,-0x70(%r12)
  movapd -0x370(%rbp),%xmm0
  movups %xmm0,-0x60(%r12)
  movapd -0x380(%rbp),%xmm0
  movups %xmm0,-0x50(%r12)
  movapd -0x390(%rbp),%xmm0
  movups %xmm0,-0x40(%r12)
  movapd -0x3a0(%rbp),%xmm0
  movlpd %xmm0,-0x30(%r12)
  movapd -0x3b0(%rbp),%xmm0
  movups %xmm0,-0x120(%r9)
  movapd -0x3c0(%rbp),%xmm0
  movups %xmm0,-0x110(%r9)
  movapd -0x3d0(%rbp),%xmm0
  movups %xmm0,-0x100(%r9)
  movapd -0x3e0(%rbp),%xmm0
  movups %xmm0,-0xf0(%r9)
  movapd -0x3f0(%rbp),%xmm0
  movups %xmm0,-0xe0(%r9)
  movapd -0x400(%rbp),%xmm0
  movups %xmm0,-0xd0(%r9)
  movapd -0x410(%rbp),%xmm0
  movlpd %xmm0,-0xc0(%r9)
  movapd -0x420(%rbp),%xmm0
  movups %xmm0,-0x90(%r9)
  movapd -0x430(%rbp),%xmm0
  movups %xmm0,-0x80(%r9)
  movapd -0x440(%rbp),%xmm0
  movups %xmm0,-0x70(%r9)
  movapd -0x450(%rbp),%xmm0
  movups %xmm0,-0x60(%r9)
  movapd -0x460(%rbp),%xmm0
  movups %xmm0,-0x50(%r9)
  movapd -0x470(%rbp),%xmm0
  movups %xmm0,-0x40(%r9)
  movapd -0x480(%rbp),%xmm0
  movlpd %xmm0,-0x30(%r9)
  cmp    %rax,-0x160(%rbp)
  jne    L417
  mov    -0x178(%rbp),%r14
  mov    -0x1c8(%rbp),%rax
  mov    %rdx,-0x1b0(%rbp)
  mov    -0x1d0(%rbp),%rbx
  mov    -0x1b8(%rbp),%rdi
  mov    %rcx,-0x1a0(%rbp)
  movupd 0x758(%r14),%xmm6
  movupd 0x758(%r11),%xmm7
  movupd 0x788(%r11),%xmm5
  movups %xmm6,0x758(%rax)
  movupd 0x768(%r14),%xmm6
  movups %xmm7,0x758(%rbx)
  movupd 0x778(%r11),%xmm7
  movups %xmm6,0x768(%rax)
  movupd 0x778(%r14),%xmm6
  movups %xmm7,0x778(%rbx)
  movupd 0x7a8(%r11),%xmm7
  movups %xmm6,0x778(%rax)
  movupd 0x788(%r14),%xmm6
  movups %xmm5,0x788(%rbx)
  movupd 0x758(%r15),%xmm5
  movups %xmm6,0x788(%rax)
  movupd 0x798(%r14),%xmm6
  movups %xmm5,0x758(%rdi)
  movups %xmm6,0x798(%rax)
  movupd 0x7a8(%r14),%xmm6
  movups %xmm7,0x7a8(%rbx)
  movups %xmm6,0x7a8(%rax)
  movupd 0x768(%r11),%xmm6
  movups %xmm6,0x768(%rbx)
  movupd 0x798(%r11),%xmm6
  movups %xmm6,0x798(%rbx)
  movupd 0x768(%r15),%xmm6
  mov    -0x1c0(%rbp),%rcx
  movupd 0x778(%r15),%xmm7
  mov    %r11,-0x190(%rbp)
  movsd  0x7b8(%r14),%xmm0
  movups %xmm6,0x768(%rdi)
  movupd 0x788(%r15),%xmm5
  movupd 0x798(%r15),%xmm6
  movups %xmm7,0x778(%rdi)
  movupd 0x7a8(%r15),%xmm7
  movsd  %xmm0,0x7b8(%rax)
  movsd  0x7b8(%r11),%xmm0
  movups %xmm5,0x788(%rdi)
  movupd 0x758(%r10),%xmm5
  movups %xmm6,0x798(%rdi)
  movupd 0x768(%r10),%xmm6
  movups %xmm7,0x7a8(%rdi)
  movupd 0x778(%r10),%xmm7
  movsd  %xmm0,0x7b8(%rbx)
  movsd  0x7b8(%r15),%xmm0
  movups %xmm5,0x758(%rcx)
  movupd 0x788(%r10),%xmm5
  movups %xmm6,0x768(%rcx)
  movupd 0x798(%r10),%xmm6
  movups %xmm7,0x778(%rcx)
  movupd 0x7a8(%r10),%xmm7
  movsd  %xmm0,0x7b8(%rdi)
  movsd  0x7b8(%r10),%xmm0
  movups %xmm7,0x7a8(%rcx)
  mov    %r10,-0x178(%rbp)
  movups %xmm5,0x788(%rcx)
  movups %xmm6,0x798(%rcx)
  movsd  %xmm0,0x7b8(%rcx)
  movsd  -0x180(%rbp),%xmm0
  call   <log@plt>
  lea    D163(%rip),%rdi
  mov    $0x2,%eax
  movapd %xmm0,%xmm1
  movsd  -0x138(%rbp),%xmm0
  call   <printf@plt>
  subl   $0x1,-0x13c(%rbp)
  movsd  D72(%rip),%xmm7
  addsd  -0x138(%rbp),%xmm7
  mov    -0x178(%rbp),%r10
  mov    -0x190(%rbp),%r11
  mov    -0x1a0(%rbp),%rcx
  mov    -0x1b0(%rbp),%rdx
  movsd  %xmm7,-0x138(%rbp)
  jne    L624
  mov    -0x38(%rbp),%rax
  sub    %fs:0x28,%rax
  jne    L664
  lea    -0x28(%rbp),%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
L716:
  mov    -0x218(%rbp),%r13
  pxor   %xmm1,%xmm1
  mov    %r11,%rsi
  xor    %ecx,%ecx
  cvtsi2sd %eax,%xmm1
  mulsd  D28(%rip),%xmm1
  mov    -0x260(%rbp),%rdi
  mov    %r12,-0x340(%rbp)
  subsd  D81(%rip),%xmm1
  movsd  0x0(%r13,%rbx,1),%xmm0
  mov    -0x220(%rbp),%r13
  sub    %r11,%rdi
  movsd  0x0(%r13,%rbx,1),%xmm11
  movsd  %xmm1,-0x2f0(%rbp)
L460:
  mov    -0x250(%rbp),%r12d
  sub    %ecx,%r12d
  cmp    $0xd,%r12d
  ja     L778
  movsd  0x8(%rdx,%rsi,1),%xmm1
  movsd  0x8(%r9,%rsi,1),%xmm2
  pxor   %xmm4,%xmm4
  movsd  (%r8,%rdi,1),%xmm5
  cvtsi2sd %ecx,%xmm4
  mulsd  D28(%rip),%xmm4
  mulsd  %xmm12,%xmm1
  subsd  D81(%rip),%xmm4
  movsd  -0x2f0(%rbp),%xmm7
  mulsd  %xmm13,%xmm2
  movsd  (%r8,%rdi,1),%xmm3
  mov    -0x208(%rbp),%r13
  mulsd  %xmm13,%xmm5
  mulsd  (%r8,%rdi,1),%xmm7
  mulsd  0x8(%r8,%rsi,1),%xmm3
  addsd  %xmm1,%xmm2
  movsd  (%r15,%rdi,1),%xmm1
  mulsd  %xmm12,%xmm1
  addsd  %xmm1,%xmm5
  movsd  (%r15,%rdi,1),%xmm1
  mulsd  %xmm4,%xmm1
  addsd  %xmm1,%xmm7
  movsd  (%r15,%rdi,1),%xmm1
  mulsd  0x8(%r15,%rsi,1),%xmm1
  addsd  %xmm1,%xmm3
  movsd  (%r9,%rdi,1),%xmm1
  mulsd  %xmm2,%xmm1
  movapd %xmm1,%xmm15
  movsd  0x8(%r8,%rsi,1),%xmm1
  mulsd  %xmm7,%xmm1
  mulsd  0x8(%r15,%rsi,1),%xmm7
  addsd  %xmm15,%xmm1
  movsd  -0x2f0(%rbp),%xmm15
  mulsd  %xmm3,%xmm15
  mulsd  %xmm4,%xmm3
  subsd  %xmm15,%xmm1
  addsd  0x0(%r13,%rbx,1),%xmm1
  movsd  (%rdx,%rdi,1),%xmm15
  movsd  %xmm1,0x0(%r13,%rbx,1)
  movapd %xmm15,%xmm1
  mov    -0x210(%rbp),%r13
  mulsd  %xmm2,%xmm1
  mulsd  %xmm5,%xmm15
  addsd  %xmm7,%xmm1
  subsd  %xmm3,%xmm1
  addsd  0x0(%r13,%rbx,1),%xmm1
  movsd  (%r9,%rdi,1),%xmm3
  mulsd  %xmm5,%xmm3
  movsd  %xmm1,0x0(%r13,%rbx,1)
  movsd  (%r8,%rdi,1),%xmm1
  mov    -0x218(%rbp),%r13
  mulsd  %xmm2,%xmm1
  mulsd  (%r15,%rdi,1),%xmm2
  subsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm2,%xmm1
  subsd  %xmm15,%xmm1
  movsd  %xmm0,0x0(%r13,%rbx,1)
  mov    -0x220(%rbp),%r13
  addsd  %xmm1,%xmm11
  movsd  %xmm11,0x0(%r13,%rbx,1)
L778:
  add    $0x1,%ecx
  add    $0x8,%rsi
  sub    $0x8,%rdi
  cmp    $0xd,%ecx
  jne    L460
  mov    -0x340(%rbp),%r12
  movapd %xmm0,%xmm4
  movapd %xmm11,%xmm3
  jmp    L139
L760:
  pxor   %xmm0,%xmm0
  movapd %xmm0,%xmm14
  jmp    L66
L49:
  mov    $0x3,%esi
L410:
  movsd  (%r14,%rsi,8),%xmm3
  movsd  (%rdi,%rsi,8),%xmm2
  movsd  (%rcx),%xmm6
  subsd  %xmm0,%xmm3
  mulsd  %xmm1,%xmm2
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm2
  movapd %xmm1,%xmm6
  subsd  %xmm3,%xmm6
  divsd  %xmm6,%xmm2
  movsd  %xmm2,(%rdi,%rsi,8)
  add    $0x1,%rsi
  cmp    $0x4,%esi
  jne    L410
  jmp    L869
L427:
  cmpl   $0xc,-0x178(%rbp)
  jne    L121
  movsd  -0x70(%rbp),%xmm1
  movapd %xmm1,%xmm2
  movhpd -0x68(%rbp),%xmm1
  movaps %xmm1,-0x100(%rbp)
  movhpd -0x78(%rbp),%xmm2
  movsd  0x6c0(%r15,%r12,8),%xmm1
  movaps %xmm2,-0xf0(%rbp)
  movapd %xmm1,%xmm2
  movhpd 0x750(%r15,%r12,8),%xmm1
  movhpd 0x630(%r15,%r12,8),%xmm2
  movaps %xmm1,-0x130(%rbp)
  movaps %xmm2,-0x120(%rbp)
  jmp    L613
L241:
  mov    $0x3,%edi
L577:
  movsd  (%r14,%rdi,8),%xmm5
  movsd  (%r11,%rdi,8),%xmm3
  movsd  (%rsi),%xmm8
  subsd  %xmm0,%xmm5
  mulsd  %xmm2,%xmm3
  mulsd  %xmm5,%xmm8
  subsd  %xmm8,%xmm3
  movapd %xmm2,%xmm8
  subsd  %xmm5,%xmm8
  divsd  %xmm8,%xmm3
  movsd  %xmm3,(%r11,%rdi,8)
  add    $0x1,%rdi
  cmp    $0x4,%edi
  jne    L577
  jmp    L470
L835:
  cmpl   $0xc,-0x178(%rbp)
  jne    L419
  movsd  -0x70(%rbp),%xmm2
  movapd %xmm2,%xmm3
  movhpd -0x68(%rbp),%xmm2
  movaps %xmm2,-0x100(%rbp)
  movhpd -0x78(%rbp),%xmm3
  movsd  0x6c0(%rdx,%r12,8),%xmm2
  movaps %xmm3,-0xf0(%rbp)
  movapd %xmm2,%xmm3
  movhpd 0x750(%rdx,%r12,8),%xmm2
  movhpd 0x630(%rdx,%r12,8),%xmm3
  movaps %xmm2,-0x130(%rbp)
  movaps %xmm3,-0x120(%rbp)
  jmp    L612
L544:
  mov    $0x3,%edi
L320:
  movsd  (%r14,%rdi,8),%xmm5
  movsd  (%r11,%rdi,8),%xmm3
  movsd  (%rsi),%xmm9
  subsd  %xmm0,%xmm5
  mulsd  %xmm2,%xmm3
  mulsd  %xmm5,%xmm9
  subsd  %xmm9,%xmm3
  movapd %xmm2,%xmm9
  subsd  %xmm5,%xmm9
  divsd  %xmm9,%xmm3
  movsd  %xmm3,(%r11,%rdi,8)
  add    $0x1,%rdi
  cmp    $0x4,%edi
  jne    L320
  jmp    L285
L861:
  cmpl   $0xc,-0x178(%rbp)
  jne    L228
  movsd  -0x70(%rbp),%xmm3
  movapd %xmm3,%xmm5
  movhpd -0x68(%rbp),%xmm3
  movaps %xmm3,-0x100(%rbp)
  movhpd -0x78(%rbp),%xmm5
  movsd  0x6c0(%r9,%r12,8),%xmm3
  movaps %xmm5,-0xf0(%rbp)
  movapd %xmm3,%xmm5
  movhpd 0x750(%r9,%r12,8),%xmm3
  movhpd 0x630(%r9,%r12,8),%xmm5
  movaps %xmm3,-0x130(%rbp)
  movaps %xmm5,-0x120(%rbp)
  jmp    L913
L400:
  mov    $0x3,%edi
L536:
  movsd  (%r14,%rdi,8),%xmm8
  movsd  (%r11,%rdi,8),%xmm5
  movsd  (%rsi),%xmm10
  subsd  %xmm0,%xmm8
  mulsd  %xmm3,%xmm5
  mulsd  %xmm8,%xmm10
  subsd  %xmm10,%xmm5
  movapd %xmm3,%xmm10
  subsd  %xmm8,%xmm10
  divsd  %xmm10,%xmm5
  movsd  %xmm5,(%r11,%rdi,8)
  add    $0x1,%rdi
  cmp    $0x4,%edi
  jne    L536
  jmp    L512
L420:
  cmpl   $0xc,-0x178(%rbp)
  jne    L931
  movsd  -0x70(%rbp),%xmm2
  movapd %xmm2,%xmm3
  movhpd -0x68(%rbp),%xmm2
  movaps %xmm2,-0x100(%rbp)
  movhpd -0x78(%rbp),%xmm3
  movsd  0x6c0(%r8,%r12,8),%xmm2
  movaps %xmm3,-0xf0(%rbp)
  movapd %xmm2,%xmm3
  movhpd 0x750(%r8,%r12,8),%xmm2
  movhpd 0x630(%r8,%r12,8),%xmm3
  movaps %xmm2,-0x130(%rbp)
  movaps %xmm3,-0x120(%rbp)
  jmp    L954
L435:
  movupd -0xc8(%rbp),%xmm5
  movsd  0x1b0(%r9,%r12,8),%xmm3
  movaps %xmm5,-0x100(%rbp)
  movupd -0xb8(%rbp),%xmm5
  movhpd 0x240(%r9,%r12,8),%xmm3
  movaps %xmm3,-0x120(%rbp)
  movaps %xmm5,-0xf0(%rbp)
  movsd  0x90(%r9,%r12,8),%xmm5
  movhpd 0x120(%r9,%r12,8),%xmm5
  movaps %xmm5,-0x130(%rbp)
  jmp    L913
L956:
  movupd -0xc8(%rbp),%xmm6
  movsd  0x1b0(%rdx,%r12,8),%xmm2
  movsd  0x90(%rdx,%r12,8),%xmm3
  movaps %xmm6,-0x100(%rbp)
  movupd -0xb8(%rbp),%xmm6
  movhpd 0x240(%rdx,%r12,8),%xmm2
  movhpd 0x120(%rdx,%r12,8),%xmm3
  movaps %xmm2,-0x120(%rbp)
  movaps %xmm6,-0xf0(%rbp)
  movaps %xmm3,-0x130(%rbp)
  jmp    L612
L806:
  movupd -0xc8(%rbp),%xmm6
  movsd  0x1b0(%r15,%r12,8),%xmm1
  movsd  0x90(%r15,%r12,8),%xmm2
  movaps %xmm6,-0x100(%rbp)
  movupd -0xb8(%rbp),%xmm6
  movhpd 0x240(%r15,%r12,8),%xmm1
  movhpd 0x120(%r15,%r12,8),%xmm2
  movaps %xmm1,-0x120(%rbp)
  movaps %xmm6,-0xf0(%rbp)
  movaps %xmm2,-0x130(%rbp)
  jmp    L613
L121:
  cmpl   $0xd,-0x178(%rbp)
  jne    L613
  movsd  0x750(%r15,%r12,8),%xmm2
  movapd -0x70(%rbp),%xmm1
  movhpd 0x6c0(%r15,%r12,8),%xmm2
  shufpd $0x1,%xmm1,%xmm1
  movaps %xmm1,-0x100(%rbp)
  movapd -0x80(%rbp),%xmm1
  movaps %xmm2,-0x130(%rbp)
  shufpd $0x1,%xmm1,%xmm1
  movaps %xmm1,-0xf0(%rbp)
  movsd  0x630(%r15,%r12,8),%xmm1
  movhpd 0x5a0(%r15,%r12,8),%xmm1
  movaps %xmm1,-0x120(%rbp)
  jmp    L613
L354:
  movupd -0xc8(%rbp),%xmm5
  movsd  0x1b0(%r8,%r12,8),%xmm2
  movsd  0x90(%r8,%r12,8),%xmm3
  movaps %xmm5,-0x100(%rbp)
  movupd -0xb8(%rbp),%xmm5
  movhpd 0x240(%r8,%r12,8),%xmm2
  movhpd 0x120(%r8,%r12,8),%xmm3
  movaps %xmm2,-0x120(%rbp)
  movaps %xmm5,-0xf0(%rbp)
  movaps %xmm3,-0x130(%rbp)
  jmp    L954
L228:
  cmpl   $0xd,-0x178(%rbp)
  jne    L913
  movsd  0x750(%r9,%r12,8),%xmm5
  movapd -0x70(%rbp),%xmm3
  movhpd 0x6c0(%r9,%r12,8),%xmm5
  shufpd $0x1,%xmm3,%xmm3
  movaps %xmm3,-0x100(%rbp)
  movapd -0x80(%rbp),%xmm3
  movaps %xmm5,-0x130(%rbp)
  shufpd $0x1,%xmm3,%xmm3
  movaps %xmm3,-0xf0(%rbp)
  movsd  0x630(%r9,%r12,8),%xmm3
  movhpd 0x5a0(%r9,%r12,8),%xmm3
  movaps %xmm3,-0x120(%rbp)
  jmp    L913
L419:
  cmpl   $0xd,-0x178(%rbp)
  jne    L612
  movsd  0x750(%rdx,%r12,8),%xmm3
  movapd -0x70(%rbp),%xmm2
  movhpd 0x6c0(%rdx,%r12,8),%xmm3
  shufpd $0x1,%xmm2,%xmm2
  movaps %xmm2,-0x100(%rbp)
  movapd -0x80(%rbp),%xmm2
  movaps %xmm3,-0x130(%rbp)
  shufpd $0x1,%xmm2,%xmm2
  movaps %xmm2,-0xf0(%rbp)
  movsd  0x630(%rdx,%r12,8),%xmm2
  movhpd 0x5a0(%rdx,%r12,8),%xmm2
  movaps %xmm2,-0x120(%rbp)
  jmp    L612
L931:
  cmpl   $0xd,-0x178(%rbp)
  jne    L954
  movsd  0x750(%r8,%r12,8),%xmm3
  movapd -0x70(%rbp),%xmm2
  movhpd 0x6c0(%r8,%r12,8),%xmm3
  shufpd $0x1,%xmm2,%xmm2
  movaps %xmm2,-0x100(%rbp)
  movapd -0x80(%rbp),%xmm2
  movaps %xmm3,-0x130(%rbp)
  shufpd $0x1,%xmm2,%xmm2
  movaps %xmm2,-0xf0(%rbp)
  movsd  0x630(%r8,%r12,8),%xmm2
  movhpd 0x5a0(%r8,%r12,8),%xmm2
  movaps %xmm2,-0x120(%rbp)
  jmp    L954
L664:
  call   <__stack_chk_fail@plt>
L283:
  movsd  %xmm0,-0x260(%rbp)
  movapd %xmm3,%xmm0
  mov    %rdx,-0x2f0(%rbp)
  mov    %r9,-0x2e0(%rbp)
  mov    %r8,-0x2d0(%rbp)
  mov    %r10,-0x2c0(%rbp)
  movsd  %xmm13,-0x2b0(%rbp)
  movsd  %xmm3,-0x250(%rbp)
  mov    %r12d,-0x2a0(%rbp)
  call   <sqrt@plt>
  mov    -0x2f0(%rbp),%rdx
  pxor   %xmm7,%xmm7
  mov    -0x2e0(%rbp),%r9
  mov    -0x2d0(%rbp),%r8
  mov    -0x2a0(%rbp),%ecx
  movapd %xmm0,%xmm6
  mov    -0x2c0(%rbp),%r10
  movsd  -0x250(%rbp),%xmm3
  movsd  -0x2b0(%rbp),%xmm13
  movsd  -0x260(%rbp),%xmm12
  jmp    L705
```

tool_calls: name: parse_data
arguments: data_tag: D193
datatype: byte[16]
name: parse_data
arguments: data_tag: D28
datatype: f32[2]
name: parse_data
arguments: data_tag: D81
datatype: f64
name: parse_data
arguments: data_tag: D27
datatype: byte[8]
name: parse_data
arguments: data_tag: D94
datatype: byte[8]
name: parse_data
arguments: data_tag: D72
datatype: byte[8]
name: parse_data
arguments: data_tag: D163
datatype: string

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

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

tool: D81: 3

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

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

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

tool: D163: %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;
}
```