user: Translate the below assembly code into C programming language:

```asm
<rmatmult_3_at>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x98,%rsp
  mov    %rdi,-0xf8(%rbp)
  mov    %esi,-0xfc(%rbp)
  mov    %edx,-0x100(%rbp)
  mov    %ecx,-0x104(%rbp)
  mov    %r8d,-0x108(%rbp)
  mov    %r9d,-0x10c(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    0x18(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    %rdx,%rax
  sub    %rcx,%rax
  lea    -0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xd8(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    0x18(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    %rax,%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xd0(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    0x18(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    %rdx,%rax
  sub    %rcx,%rax
  lea    0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xc8(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    $0xfffffffffffffff8,%rdx
  sub    %rax,%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xc0(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xb8(%rbp)
  mov    0x20(%rbp),%eax
  movslq %eax,%rdx
  mov    $0x1,%eax
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xb0(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  mov    0x20(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  mov    0x20(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0xa0(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  mov    0x20(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x98(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    $0xfffffffffffffff8,%rdx
  sub    %rax,%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x90(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  mov    %rax,%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x88(%rbp)
  mov    0x18(%rbp),%eax
  movslq %eax,%rdx
  mov    $0x1,%eax
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    0xf8(%rbp),%rax
  sub    $0x8,%rax
  mov    %rax,-0x78(%rbp)
  mov    0xf8(%rbp),%rax
  mov    %rax,-0x70(%rbp)
  mov    0xf8(%rbp),%rax
  add    $0x8,%rax
  mov    %rax,-0x68(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    0x18(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  mov    0x18(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x48(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  mov    0x18(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x40(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  mov    0x18(%rbp),%edx
  movslq %edx,%rdx
  sub    %rdx,%rax
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x38(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x30(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x28(%rbp)
  mov    0x20(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  mov    0x20(%rbp),%eax
  movslq %eax,%rdx
  mov    0x18(%rbp),%eax
  cltq
  add    %rdx,%rax
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x18(%rbp)
  mov    0x20(%rbp),%eax
  movslq %eax,%rdx
  mov    0x18(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x10(%rbp)
  mov    0x20(%rbp),%eax
  movslq %eax,%rdx
  mov    0x18(%rbp),%eax
  cltq
  add    %rdx,%rax
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0xf8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x8(%rbp)
  movl   $0x2,-0xe0(%rbp)
  jmp    L21
L59:
  movl   $0x2,-0xe4(%rbp)
  jmp    L12
L45:
  movl   $0x2,-0xe8(%rbp)
  jmp    L30
L14:
  mov    -0xe4(%rbp),%eax
  imul   0x18(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe8(%rbp),%eax
  add    %eax,%edx
  mov    -0xe0(%rbp),%eax
  imul   0x20(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xdc(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x60(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x90(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xa0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xa8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xc8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xd0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xd8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%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    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0xf0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x100(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xe8(%rbp)
L30:
  mov    -0xe8(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jl     L14
  addl   $0x1,-0xe4(%rbp)
L12:
  mov    -0xe4(%rbp),%eax
  cmp    -0x108(%rbp),%eax
  jl     L45
  addl   $0x1,-0xe0(%rbp)
L21:
  mov    -0xe0(%rbp),%eax
  cmp    0x10(%rbp),%eax
  jl     L59
  nop
  nop
  leave
  ret
```

assistant: ```c
void rmatmult_3_at(double *dbl, int imin, int imax, int jmin, int jmax, int kmin, int kmax, int jp, int kp, double *dbc, double *dbr, double *dcl, double *dcc, double *dcr, double *dfl, double *dfc, double *dfr, double *cbl, double *cbc, double *cbr, double *ccl, double *ccc, double *ccr, double *cfl, double *cfc, double *cfr, double *ubl, double *ubc, double *ubr, double *ucl, double *ucc, double *ucr, double *ufl, double *ufc, double *ufr, double *x, double *b) {
  int i, ii, jj, kk;
  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];
      }
    }
  }
}
```