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

```asm
<matmul_sub>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x10,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x18,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x20,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x28,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x30,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x38,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x40,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x48,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x58,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x60,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x68,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x70,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x78,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x88,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x90,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0x98,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0xa0,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0xa8,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0xb0,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0xb8,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm2
  mov    -0x10(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x18(%rbp),%rax
  add    $0xc0,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

assistant: ```c
void matmul_sub(double ablock[], double bblock[], double cblock[]) {
  cblock[(1 - 1) + 5 * (1 - 1)] = cblock[(1 - 1) + 5 * (1 - 1)] - ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] - ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] - ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] - ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] - ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(2 - 1) + 5 * (1 - 1)] = cblock[(2 - 1) + 5 * (1 - 1)] - ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] - ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] - ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] - ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] - ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(3 - 1) + 5 * (1 - 1)] = cblock[(3 - 1) + 5 * (1 - 1)] - ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] - ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] - ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] - ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] - ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(4 - 1) + 5 * (1 - 1)] = cblock[(4 - 1) + 5 * (1 - 1)] - ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] - ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] - ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] - ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] - ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(5 - 1) + 5 * (1 - 1)] = cblock[(5 - 1) + 5 * (1 - 1)] - ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] - ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] - ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] - ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] - ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(1 - 1) + 5 * (2 - 1)] = cblock[(1 - 1) + 5 * (2 - 1)] - ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] - ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] - ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] - ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] - ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(2 - 1) + 5 * (2 - 1)] = cblock[(2 - 1) + 5 * (2 - 1)] - ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] - ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] - ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] - ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] - ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(3 - 1) + 5 * (2 - 1)] = cblock[(3 - 1) + 5 * (2 - 1)] - ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] - ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] - ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] - ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] - ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(4 - 1) + 5 * (2 - 1)] = cblock[(4 - 1) + 5 * (2 - 1)] - ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] - ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] - ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] - ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] - ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(5 - 1) + 5 * (2 - 1)] = cblock[(5 - 1) + 5 * (2 - 1)] - ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] - ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] - ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] - ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] - ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(1 - 1) + 5 * (3 - 1)] = cblock[(1 - 1) + 5 * (3 - 1)] - ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] - ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] - ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] - ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] - ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(2 - 1) + 5 * (3 - 1)] = cblock[(2 - 1) + 5 * (3 - 1)] - ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] - ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] - ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] - ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] - ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(3 - 1) + 5 * (3 - 1)] = cblock[(3 - 1) + 5 * (3 - 1)] - ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] - ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] - ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] - ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] - ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(4 - 1) + 5 * (3 - 1)] = cblock[(4 - 1) + 5 * (3 - 1)] - ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] - ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] - ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] - ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] - ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(5 - 1) + 5 * (3 - 1)] = cblock[(5 - 1) + 5 * (3 - 1)] - ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] - ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] - ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] - ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] - ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(1 - 1) + 5 * (4 - 1)] = cblock[(1 - 1) + 5 * (4 - 1)] - ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] - ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] - ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] - ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] - ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(2 - 1) + 5 * (4 - 1)] = cblock[(2 - 1) + 5 * (4 - 1)] - ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] - ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] - ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] - ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] - ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(3 - 1) + 5 * (4 - 1)] = cblock[(3 - 1) + 5 * (4 - 1)] - ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] - ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] - ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] - ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] - ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(4 - 1) + 5 * (4 - 1)] = cblock[(4 - 1) + 5 * (4 - 1)] - ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] - ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] - ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] - ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] - ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(5 - 1) + 5 * (4 - 1)] = cblock[(5 - 1) + 5 * (4 - 1)] - ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] - ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] - ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] - ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] - ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(1 - 1) + 5 * (5 - 1)] = cblock[(1 - 1) + 5 * (5 - 1)] - ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] - ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] - ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] - ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] - ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(2 - 1) + 5 * (5 - 1)] = cblock[(2 - 1) + 5 * (5 - 1)] - ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] - ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] - ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] - ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] - ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(3 - 1) + 5 * (5 - 1)] = cblock[(3 - 1) + 5 * (5 - 1)] - ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] - ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] - ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] - ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] - ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(4 - 1) + 5 * (5 - 1)] = cblock[(4 - 1) + 5 * (5 - 1)] - ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] - ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] - ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] - ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] - ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(5 - 1) + 5 * (5 - 1)] = cblock[(5 - 1) + 5 * (5 - 1)] - ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] - ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] - ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] - ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] - ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  return;
}
```