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

```asm
<matmul_sub>:
  endbr64
  movsd  (%rdi),%xmm1
  mulsd  (%rsi),%xmm1
  movsd  (%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x28(%rdi),%xmm1
  mulsd  0x8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x50(%rdi),%xmm1
  mulsd  0x10(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x78(%rdi),%xmm1
  mulsd  0x18(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa0(%rdi),%xmm1
  mulsd  0x20(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  movsd  0x8(%rdi),%xmm1
  mulsd  (%rsi),%xmm1
  movsd  0x8(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x30(%rdi),%xmm1
  mulsd  0x8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x58(%rdi),%xmm1
  mulsd  0x10(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x80(%rdi),%xmm1
  mulsd  0x18(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa8(%rdi),%xmm1
  mulsd  0x20(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%rdx)
  movsd  0x10(%rdi),%xmm1
  mulsd  (%rsi),%xmm1
  movsd  0x10(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x38(%rdi),%xmm1
  mulsd  0x8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x60(%rdi),%xmm1
  mulsd  0x10(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x88(%rdi),%xmm1
  mulsd  0x18(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb0(%rdi),%xmm1
  mulsd  0x20(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rdx)
  movsd  0x18(%rdi),%xmm1
  mulsd  (%rsi),%xmm1
  movsd  0x18(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x40(%rdi),%xmm1
  mulsd  0x8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x68(%rdi),%xmm1
  mulsd  0x10(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x90(%rdi),%xmm1
  mulsd  0x18(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb8(%rdi),%xmm1
  mulsd  0x20(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rdx)
  movsd  0x20(%rdi),%xmm1
  mulsd  (%rsi),%xmm1
  movsd  0x20(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x48(%rdi),%xmm1
  mulsd  0x8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x70(%rdi),%xmm1
  mulsd  0x10(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x98(%rdi),%xmm1
  mulsd  0x18(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xc0(%rdi),%xmm1
  mulsd  0x20(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x20(%rdx)
  movsd  (%rdi),%xmm1
  mulsd  0x28(%rsi),%xmm1
  movsd  0x28(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x28(%rdi),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x50(%rdi),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x78(%rdi),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa0(%rdi),%xmm1
  mulsd  0x48(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%rdx)
  movsd  0x8(%rdi),%xmm1
  mulsd  0x28(%rsi),%xmm1
  movsd  0x30(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x30(%rdi),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x58(%rdi),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x80(%rdi),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa8(%rdi),%xmm1
  mulsd  0x48(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x30(%rdx)
  movsd  0x10(%rdi),%xmm1
  mulsd  0x28(%rsi),%xmm1
  movsd  0x38(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x38(%rdi),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x60(%rdi),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x88(%rdi),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb0(%rdi),%xmm1
  mulsd  0x48(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%rdx)
  movsd  0x18(%rdi),%xmm1
  mulsd  0x28(%rsi),%xmm1
  movsd  0x40(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x40(%rdi),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x68(%rdi),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x90(%rdi),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb8(%rdi),%xmm1
  mulsd  0x48(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x40(%rdx)
  movsd  0x20(%rdi),%xmm1
  mulsd  0x28(%rsi),%xmm1
  movsd  0x48(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x48(%rdi),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x70(%rdi),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x98(%rdi),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xc0(%rdi),%xmm1
  mulsd  0x48(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x48(%rdx)
  movsd  (%rdi),%xmm1
  mulsd  0x50(%rsi),%xmm1
  movsd  0x50(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x28(%rdi),%xmm1
  mulsd  0x58(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x50(%rdi),%xmm1
  mulsd  0x60(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x78(%rdi),%xmm1
  mulsd  0x68(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa0(%rdi),%xmm1
  mulsd  0x70(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x50(%rdx)
  movsd  0x8(%rdi),%xmm1
  mulsd  0x50(%rsi),%xmm1
  movsd  0x58(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x30(%rdi),%xmm1
  mulsd  0x58(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x58(%rdi),%xmm1
  mulsd  0x60(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x80(%rdi),%xmm1
  mulsd  0x68(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa8(%rdi),%xmm1
  mulsd  0x70(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x58(%rdx)
  movsd  0x10(%rdi),%xmm1
  mulsd  0x50(%rsi),%xmm1
  movsd  0x60(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x38(%rdi),%xmm1
  mulsd  0x58(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x60(%rdi),%xmm1
  mulsd  0x60(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x88(%rdi),%xmm1
  mulsd  0x68(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb0(%rdi),%xmm1
  mulsd  0x70(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x60(%rdx)
  movsd  0x18(%rdi),%xmm1
  mulsd  0x50(%rsi),%xmm1
  movsd  0x68(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x40(%rdi),%xmm1
  mulsd  0x58(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x68(%rdi),%xmm1
  mulsd  0x60(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x90(%rdi),%xmm1
  mulsd  0x68(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb8(%rdi),%xmm1
  mulsd  0x70(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x68(%rdx)
  movsd  0x20(%rdi),%xmm1
  mulsd  0x50(%rsi),%xmm1
  movsd  0x70(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x48(%rdi),%xmm1
  mulsd  0x58(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x70(%rdi),%xmm1
  mulsd  0x60(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x98(%rdi),%xmm1
  mulsd  0x68(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xc0(%rdi),%xmm1
  mulsd  0x70(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x70(%rdx)
  movsd  (%rdi),%xmm1
  mulsd  0x78(%rsi),%xmm1
  movsd  0x78(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x28(%rdi),%xmm1
  mulsd  0x80(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x50(%rdi),%xmm1
  mulsd  0x88(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x78(%rdi),%xmm1
  mulsd  0x90(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa0(%rdi),%xmm1
  mulsd  0x98(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x78(%rdx)
  movsd  0x8(%rdi),%xmm1
  mulsd  0x78(%rsi),%xmm1
  movsd  0x80(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x30(%rdi),%xmm1
  mulsd  0x80(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x58(%rdi),%xmm1
  mulsd  0x88(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x80(%rdi),%xmm1
  mulsd  0x90(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa8(%rdi),%xmm1
  mulsd  0x98(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x80(%rdx)
  movsd  0x10(%rdi),%xmm1
  mulsd  0x78(%rsi),%xmm1
  movsd  0x88(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x38(%rdi),%xmm1
  mulsd  0x80(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x60(%rdi),%xmm1
  mulsd  0x88(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x88(%rdi),%xmm1
  mulsd  0x90(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb0(%rdi),%xmm1
  mulsd  0x98(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x88(%rdx)
  movsd  0x18(%rdi),%xmm1
  mulsd  0x78(%rsi),%xmm1
  movsd  0x90(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x40(%rdi),%xmm1
  mulsd  0x80(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x68(%rdi),%xmm1
  mulsd  0x88(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x90(%rdi),%xmm1
  mulsd  0x90(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb8(%rdi),%xmm1
  mulsd  0x98(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x90(%rdx)
  movsd  0x20(%rdi),%xmm1
  mulsd  0x78(%rsi),%xmm1
  movsd  0x98(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x48(%rdi),%xmm1
  mulsd  0x80(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x70(%rdi),%xmm1
  mulsd  0x88(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x98(%rdi),%xmm1
  mulsd  0x90(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xc0(%rdi),%xmm1
  mulsd  0x98(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x98(%rdx)
  movsd  (%rdi),%xmm1
  mulsd  0xa0(%rsi),%xmm1
  movsd  0xa0(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x28(%rdi),%xmm1
  mulsd  0xa8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x50(%rdi),%xmm1
  mulsd  0xb0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x78(%rdi),%xmm1
  mulsd  0xb8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa0(%rdi),%xmm1
  mulsd  0xc0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0xa0(%rdx)
  movsd  0x8(%rdi),%xmm1
  mulsd  0xa0(%rsi),%xmm1
  movsd  0xa8(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x30(%rdi),%xmm1
  mulsd  0xa8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x58(%rdi),%xmm1
  mulsd  0xb0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x80(%rdi),%xmm1
  mulsd  0xb8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xa8(%rdi),%xmm1
  mulsd  0xc0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0xa8(%rdx)
  movsd  0x10(%rdi),%xmm1
  mulsd  0xa0(%rsi),%xmm1
  movsd  0xb0(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x38(%rdi),%xmm1
  mulsd  0xa8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x60(%rdi),%xmm1
  mulsd  0xb0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x88(%rdi),%xmm1
  mulsd  0xb8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb0(%rdi),%xmm1
  mulsd  0xc0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0xb0(%rdx)
  movsd  0x18(%rdi),%xmm1
  mulsd  0xa0(%rsi),%xmm1
  movsd  0xb8(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x40(%rdi),%xmm1
  mulsd  0xa8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x68(%rdi),%xmm1
  mulsd  0xb0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x90(%rdi),%xmm1
  mulsd  0xb8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xb8(%rdi),%xmm1
  mulsd  0xc0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0xb8(%rdx)
  movsd  0x20(%rdi),%xmm1
  mulsd  0xa0(%rsi),%xmm1
  movsd  0xc0(%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x48(%rdi),%xmm1
  mulsd  0xa8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x70(%rdi),%xmm1
  mulsd  0xb0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x98(%rdi),%xmm1
  mulsd  0xb8(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0xc0(%rdi),%xmm1
  mulsd  0xc0(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0xc0(%rdx)
  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;
}
```