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

```asm
<d_max_mat>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  mov    %rdx,-0x20(%rbp)
  mov    %ecx,-0x24(%rbp)
  cmpl   $0x0,-0x14(%rbp)
  jle    L34
  cmpl   $0x0,-0x18(%rbp)
  jg     L61
L34:
  pxor   %xmm0,%xmm0
  jmp    L38
L61:
  mov    -0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,D72(%rip)
  mov    -0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,D117(%rip)
  mov    -0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,D109(%rip)
  mov    -0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,D5(%rip)
  movl   $0x0,-0x4(%rbp)
  jmp    L82
L55:
  movl   $0x0,-0x8(%rbp)
  jmp    L72
L33:
  mov    -0x4(%rbp),%eax
  imul   -0x24(%rbp),%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    D72(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  mov    -0x8(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x4(%rbp),%eax
  imul   -0x24(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    D117(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  mov    -0x8(%rbp),%eax
  lea    0x2(%rax),%edx
  mov    -0x4(%rbp),%eax
  imul   -0x24(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    D109(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  mov    -0x8(%rbp),%eax
  lea    0x3(%rax),%edx
  mov    -0x4(%rbp),%eax
  imul   -0x24(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    D5(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  addl   $0x4,-0x8(%rbp)
L72:
  mov    -0x14(%rbp),%eax
  sub    $0x3,%eax
  cmp    %eax,-0x8(%rbp)
  jl     L33
  jmp    L2
L71:
  mov    -0x4(%rbp),%eax
  imul   -0x24(%rbp),%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    D80(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  addl   $0x1,-0x8(%rbp)
L2:
  mov    -0x8(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jl     L71
  addl   $0x1,-0x4(%rbp)
L82:
  mov    -0x4(%rbp),%eax
  cmp    -0x18(%rbp),%eax
  jl     L55
  movss  D80(%rip),%xmm0
  mov    D80(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  movss  D80(%rip),%xmm0
  mov    D80(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  movss  D80(%rip),%xmm0
  mov    D80(%rip),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <fmax@plt>
  movd   %xmm0,%eax
  mov    %eax,D80(%rip)
  movss  D80(%rip),%xmm0
L38:
  leave
  ret
```

assistant: ```c
float d_max_mat(int row, int col, double *A, int lda) {
  if (row <= 0 || col <= 0)
    return 0.0;
  int i, j;
  static float max_vec[4];
  max_vec[0] = A[0];
  max_vec[1] = A[0];
  max_vec[2] = A[0];
  max_vec[3] = A[0];
  for (j = 0; j < col; j++) {
    i = 0;
    for (; i < row - 3; i += 4) {
      max_vec[0] = fmax(max_vec[0], A[i + 0 + j * lda]);
      max_vec[1] = fmax(max_vec[1], A[i + 1 + j * lda]);
      max_vec[2] = fmax(max_vec[2], A[i + 2 + j * lda]);
      max_vec[3] = fmax(max_vec[3], A[i + 3 + j * lda]);
    }
    for (; i < row; i++) {
      max_vec[0] = fmax(max_vec[0], A[i + j * lda]);
    }
  }
  max_vec[0] = fmax(max_vec[0], max_vec[2]);
  max_vec[1] = fmax(max_vec[1], max_vec[3]);
  max_vec[0] = fmax(max_vec[0], max_vec[1]);
  return max_vec[0];
}
```