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

```asm
<rmatmult_3_at>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x180,%rsp
  mov    %rdi,-0x1e8(%rbp)
  mov    %rsi,-0x1f0(%rbp)
  mov    %rdx,-0x1f8(%rbp)
  mov    -0x1e8(%rbp),%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1d4(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1d0(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1cc(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1c8(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1c4(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1c0(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1bc(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rax
  mov    (%rax),%eax
  mov    %eax,-0x1b8(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x1b0(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x48,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x1a8(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x1a0(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x58,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x198(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x190(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x188(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x180(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x178(%rbp)
  mov    -0x1e8(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x170(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x88,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x168(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x90,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x160(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x98,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x158(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xa0,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x150(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xa8,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x148(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xb0,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x140(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xb8,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x138(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xc0,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x130(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xc8,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x128(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xd0,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x120(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xd8,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x118(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xe0,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x110(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xe8,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x108(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xf0,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0x100(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0xf8,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0xf8(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x100,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0xf0(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x108,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0xe8(%rbp)
  mov    -0x1e8(%rbp),%rax
  add    $0x110,%rax
  mov    (%rax),%rax
  mov    (%rax),%rax
  mov    %rax,-0xe0(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    -0x1bc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    %rdx,%rax
  sub    %rcx,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xd8(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    -0x1bc(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    %rax,%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xd0(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    -0x1bc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    %rdx,%rax
  sub    %rcx,%rax
  lea    0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xc8(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    $0xfffffffffffffff8,%rdx
  sub    %rax,%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xb8(%rbp)
  mov    -0x1b8(%rbp),%eax
  movslq %eax,%rdx
  mov    $0x1,%eax
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  mov    -0x1b8(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  mov    -0x1b8(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  mov    -0x1b8(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    $0xfffffffffffffff8,%rdx
  sub    %rax,%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x1bc(%rbp),%eax
  movslq %eax,%rdx
  mov    $0x1,%eax
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x1f0(%rbp),%rax
  sub    $0x8,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x1f0(%rbp),%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x1f0(%rbp),%rax
  add    $0x8,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x1bc(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  mov    -0x1bc(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x48(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  mov    -0x1bc(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  mov    -0x1bc(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x38(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x1b8(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x1b8(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x1bc(%rbp),%eax
  cltq
  add    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x1b8(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x1bc(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x1b8(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x1bc(%rbp),%eax
  cltq
  add    %rdx,%rax
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x8(%rbp)
  movl   $0x2,-0x1d8(%rbp)
  jmp    L22
L18:
  movl   $0x2,-0x1dc(%rbp)
  jmp    L13
L35:
  movl   $0x2,-0x1e0(%rbp)
  jmp    L29
L51:
  mov    -0x1dc(%rbp),%eax
  imul   -0x1bc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x1e0(%rbp),%eax
  add    %eax,%edx
  mov    -0x1d8(%rbp),%eax
  imul   -0x1b8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x1b4(%rbp)
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x1b0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x1a8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x1a0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x198(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x190(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x188(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x180(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x178(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x170(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x168(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x90(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x160(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x158(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x140(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x138(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x60(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x130(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x128(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x120(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x118(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x110(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x108(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x100(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x1f8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x1e0(%rbp)
L29:
  mov    -0x1e0(%rbp),%eax
  cmp    -0x1d0(%rbp),%eax
  jl     L51
  addl   $0x1,-0x1dc(%rbp)
L13:
  mov    -0x1dc(%rbp),%eax
  cmp    -0x1c8(%rbp),%eax
  jl     L35
  addl   $0x1,-0x1d8(%rbp)
L22:
  mov    -0x1d8(%rbp),%eax
  cmp    -0x1c0(%rbp),%eax
  jl     L18
  nop
  nop
  leave
  ret
```

assistant: ```c
void rmatmult_3_at(void **rmatmult3_args, double *x, double *b) {
  int i, ii, jj, kk;
  int imin = *((int *)(rmatmult3_args[0]));
  int imax = *((int *)(rmatmult3_args[1]));
  int jmin = *((int *)(rmatmult3_args[2]));
  int jmax = *((int *)(rmatmult3_args[3]));
  int kmin = *((int *)(rmatmult3_args[4]));
  int kmax = *((int *)(rmatmult3_args[5]));
  int jp = *((int *)(rmatmult3_args[6]));
  int kp = *((int *)(rmatmult3_args[7]));
  const double *dbl = *((const double **)(rmatmult3_args[8]));
  const double *dbc = *((const double **)(rmatmult3_args[9]));
  const double *dbr = *((const double **)(rmatmult3_args[10]));
  const double *dcl = *((const double **)(rmatmult3_args[11]));
  const double *dcc = *((const double **)(rmatmult3_args[12]));
  const double *dcr = *((const double **)(rmatmult3_args[13]));
  const double *dfl = *((const double **)(rmatmult3_args[14]));
  const double *dfc = *((const double **)(rmatmult3_args[15]));
  const double *dfr = *((const double **)(rmatmult3_args[16]));
  const double *cbl = *((const double **)(rmatmult3_args[17]));
  const double *cbc = *((const double **)(rmatmult3_args[18]));
  const double *cbr = *((const double **)(rmatmult3_args[19]));
  const double *ccl = *((const double **)(rmatmult3_args[20]));
  const double *ccc = *((const double **)(rmatmult3_args[21]));
  const double *ccr = *((const double **)(rmatmult3_args[22]));
  const double *cfl = *((const double **)(rmatmult3_args[23]));
  const double *cfc = *((const double **)(rmatmult3_args[24]));
  const double *cfr = *((const double **)(rmatmult3_args[25]));
  const double *ubl = *((const double **)(rmatmult3_args[26]));
  const double *ubc = *((const double **)(rmatmult3_args[27]));
  const double *ubr = *((const double **)(rmatmult3_args[28]));
  const double *ucl = *((const double **)(rmatmult3_args[29]));
  const double *ucc = *((const double **)(rmatmult3_args[30]));
  const double *ucr = *((const double **)(rmatmult3_args[31]));
  const double *ufl = *((const double **)(rmatmult3_args[32]));
  const double *ufc = *((const double **)(rmatmult3_args[33]));
  const double *ufr = *((const double **)(rmatmult3_args[34]));
  double *xdbl = x - kp - jp - 1;
  double *xdbc = x - kp - jp;
  double *xdbr = x - kp - jp + 1;
  double *xdcl = x - kp - 1;
  double *xdcc = x - kp;
  double *xdcr = x - kp + 1;
  double *xdfl = x - kp + jp - 1;
  double *xdfc = x - kp + jp;
  double *xdfr = x - kp + jp + 1;
  double *xcbl = x - jp - 1;
  double *xcbc = x - jp;
  double *xcbr = x - jp + 1;
  double *xccl = x - 1;
  double *xccc = x;
  double *xccr = x + 1;
  double *xcfl = x + jp - 1;
  double *xcfc = x + jp;
  double *xcfr = x + jp + 1;
  double *xubl = x + kp - jp - 1;
  double *xubc = x + kp - jp;
  double *xubr = x + kp - jp + 1;
  double *xucl = x + kp - 1;
  double *xucc = x + kp;
  double *xucr = x + kp + 1;
  double *xufl = x + kp + jp - 1;
  double *xufc = x + kp + jp;
  double *xufr = x + kp + jp + 1;
  for (kk = 2; kk < kmax; kk++) {
    for (jj = 2; jj < jmax; jj++) {
      for (ii = 2; ii < imax; ii++) {
        i = ii + jj * jp + kk * kp;
        b[i] = dbl[i] * xdbl[i] + dbc[i] * xdbc[i] + dbr[i] * xdbr[i] + dcl[i] * xdcl[i] + dcc[i] * xdcc[i] + dcr[i] * xdcr[i] + dfl[i] * xdfl[i] + dfc[i] * xdfc[i] + dfr[i] * xdfr[i] + cbl[i] * xcbl[i] + cbc[i] * xcbc[i] + cbr[i] * xcbr[i] + ccl[i] * xccl[i] + ccc[i] * xccc[i] + ccr[i] * xccr[i] + cfl[i] * xcfl[i] + cfc[i] * xcfc[i] + cfr[i] * xcfr[i] + ubl[i] * xubl[i] + ubc[i] * xubc[i] + ubr[i] * xubr[i] + ucl[i] * xucl[i] + ucc[i] * xucc[i] + ucr[i] * xucr[i] + ufl[i] * xufl[i] + ufc[i] * xufc[i] + ufr[i] * xufr[i];
      }
    }
  }
}
```