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

```asm
<mulmm>:
  endbr64
  lea    0x10(%rdi),%r10
  lea    0x40(%rsi),%r11
  mov    %rsi,%rax
  push   %rbp
  lea    0x20(%rdi),%r9
  cmp    %r10,%r11
  push   %rbx
  lea    0x30(%rdi),%rsi
  setbe  %cl
  cmp    %r9,%rax
  lea    0x40(%rdx),%r8
  setae  %bl
  or     %ebx,%ecx
  cmp    %r11,%rdi
  setae  %bl
  cmp    %r10,%rax
  setae  %bpl
  or     %ebp,%ebx
  and    %ebx,%ecx
  cmp    %r11,%r9
  setae  %r11b
  cmp    %rsi,%rax
  setae  %bl
  or     %ebx,%r11d
  and    %r11d,%ecx
  cmp    %r8,%rdi
  setae  %r11b
  cmp    %r10,%rdx
  setae  %bl
  or     %ebx,%r11d
  and    %r11d,%ecx
  cmp    %r10,%r8
  setbe  %r10b
  cmp    %r9,%rdx
  setae  %r11b
  or     %r11d,%r10d
  and    %r10d,%ecx
  cmp    %r9,%r8
  setbe  %r9b
  cmp    %rsi,%rdx
  setae  %r10b
  or     %r10d,%r9d
  and    %r9d,%ecx
  lea    0x40(%rdi),%r9
  cmp    %r9,%rdx
  setae  %r9b
  cmp    %rsi,%r8
  setbe  %r8b
  or     %r9d,%r8d
  test   %r8b,%cl
  je     L26
  lea    0x4(%rax),%r8
  sub    %r8,%rsi
  cmp    $0x38,%rsi
  jbe    L26
  movss  (%rdx),%xmm0
  movups (%rax),%xmm6
  pxor   %xmm1,%xmm1
  movups 0x10(%rax),%xmm5
  movups 0x20(%rax),%xmm2
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm6
  movss  0x4(%rdx),%xmm0
  movups 0x30(%rax),%xmm4
  mov    0x10(%rdx),%r8d
  mov    0x14(%rdx),%esi
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm5
  mov    0x18(%rdx),%ecx
  movss  0x8(%rdx),%xmm0
  movss  0x1c(%rdx),%xmm15
  movss  0x20(%rdx),%xmm14
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm2
  movss  0xc(%rdx),%xmm0
  movss  0x24(%rdx),%xmm13
  cvtps2pd %xmm6,%xmm3
  addpd  %xmm1,%xmm3
  movss  0x28(%rdx),%xmm12
  movss  0x2c(%rdx),%xmm11
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm4
  movss  0x30(%rdx),%xmm10
  movss  0x34(%rdx),%xmm9
  movss  0x38(%rdx),%xmm8
  movss  0x3c(%rdx),%xmm7
  movapd %xmm3,%xmm0
  cvtps2pd %xmm5,%xmm3
  addpd  %xmm3,%xmm0
  cvtps2pd %xmm2,%xmm3
  addpd  %xmm3,%xmm0
  cvtps2pd %xmm4,%xmm3
  addpd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  movhlps %xmm6,%xmm0
  cvtps2pd %xmm0,%xmm6
  addpd  %xmm1,%xmm6
  pxor   %xmm0,%xmm0
  movhlps %xmm5,%xmm0
  cvtps2pd %xmm0,%xmm5
  pxor   %xmm0,%xmm0
  addpd  %xmm6,%xmm5
  movhlps %xmm2,%xmm0
  cvtps2pd %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  movhlps %xmm4,%xmm0
  addpd  %xmm5,%xmm2
  cvtps2pd %xmm0,%xmm0
  addpd  %xmm0,%xmm2
  cvtpd2ps %xmm3,%xmm0
  cvtpd2ps %xmm2,%xmm2
  movlhps %xmm2,%xmm0
  movups %xmm0,(%rdi)
  movups (%rax),%xmm3
  movd   %r8d,%xmm0
  movups 0x10(%rax),%xmm6
  shufps $0x0,%xmm0,%xmm0
  movups 0x20(%rax),%xmm5
  movups 0x30(%rax),%xmm4
  mulps  %xmm0,%xmm3
  movd   %esi,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm6
  movd   %ecx,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm5
  movaps %xmm15,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm4
  cvtps2pd %xmm3,%xmm0
  addpd  %xmm1,%xmm0
  cvtps2pd %xmm6,%xmm2
  addpd  %xmm2,%xmm0
  cvtps2pd %xmm5,%xmm2
  addpd  %xmm2,%xmm0
  cvtps2pd %xmm4,%xmm2
  addpd  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  movhlps %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  cvtps2pd %xmm0,%xmm0
  addpd  %xmm1,%xmm0
  movhlps %xmm6,%xmm3
  cvtps2pd %xmm3,%xmm3
  cvtpd2ps %xmm2,%xmm2
  addpd  %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  movhlps %xmm5,%xmm3
  cvtps2pd %xmm3,%xmm3
  addpd  %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  movhlps %xmm4,%xmm3
  cvtps2pd %xmm3,%xmm3
  addpd  %xmm3,%xmm0
  cvtpd2ps %xmm0,%xmm0
  movlhps %xmm0,%xmm2
  movaps %xmm14,%xmm0
  movups %xmm2,0x10(%rdi)
  movups (%rax),%xmm3
  shufps $0x0,%xmm0,%xmm0
  movups 0x10(%rax),%xmm6
  movups 0x20(%rax),%xmm5
  movups 0x30(%rax),%xmm4
  mulps  %xmm0,%xmm3
  movaps %xmm13,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm6
  movaps %xmm12,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm5
  movaps %xmm11,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm4
  cvtps2pd %xmm3,%xmm0
  addpd  %xmm1,%xmm0
  cvtps2pd %xmm6,%xmm2
  addpd  %xmm2,%xmm0
  cvtps2pd %xmm5,%xmm2
  addpd  %xmm2,%xmm0
  cvtps2pd %xmm4,%xmm2
  addpd  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  movhlps %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  cvtps2pd %xmm0,%xmm0
  addpd  %xmm1,%xmm0
  movhlps %xmm6,%xmm3
  cvtps2pd %xmm3,%xmm3
  cvtpd2ps %xmm2,%xmm2
  addpd  %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  movhlps %xmm5,%xmm3
  cvtps2pd %xmm3,%xmm3
  addpd  %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  movhlps %xmm4,%xmm3
  cvtps2pd %xmm3,%xmm3
  addpd  %xmm3,%xmm0
  cvtpd2ps %xmm0,%xmm0
  movlhps %xmm0,%xmm2
  movaps %xmm10,%xmm0
  movups %xmm2,0x20(%rdi)
  movups (%rax),%xmm6
  shufps $0x0,%xmm0,%xmm0
  movups 0x10(%rax),%xmm5
  movups 0x20(%rax),%xmm4
  movups 0x30(%rax),%xmm3
  mulps  %xmm0,%xmm6
  movaps %xmm9,%xmm0
  pop    %rbx
  pop    %rbp
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm5
  movaps %xmm8,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm4
  movaps %xmm7,%xmm0
  shufps $0x0,%xmm0,%xmm0
  mulps  %xmm0,%xmm3
  cvtps2pd %xmm6,%xmm0
  addpd  %xmm1,%xmm0
  cvtps2pd %xmm5,%xmm2
  addpd  %xmm2,%xmm0
  cvtps2pd %xmm4,%xmm2
  addpd  %xmm2,%xmm0
  cvtps2pd %xmm3,%xmm2
  addpd  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  movhlps %xmm6,%xmm0
  cvtps2pd %xmm0,%xmm0
  addpd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  movhlps %xmm5,%xmm1
  cvtps2pd %xmm1,%xmm1
  addpd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  movhlps %xmm4,%xmm1
  cvtps2pd %xmm1,%xmm1
  addpd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  movhlps %xmm3,%xmm1
  cvtps2pd %xmm1,%xmm1
  addpd  %xmm1,%xmm0
  cvtpd2ps %xmm2,%xmm1
  cvtpd2ps %xmm0,%xmm0
  movlhps %xmm0,%xmm1
  movups %xmm1,0x30(%rdi)
  ret
L26:
  lea    0x10(%rax),%rcx
  pxor   %xmm2,%xmm2
L6:
  movss  (%rax),%xmm1
  mulss  (%rdx),%xmm1
  add    $0x4,%rax
  add    $0x4,%rdi
  movss  0xc(%rax),%xmm0
  mulss  0x4(%rdx),%xmm0
  movss  0x1c(%rax),%xmm3
  mulss  0x8(%rdx),%xmm3
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm2,%xmm1
  cvtss2sd %xmm0,%xmm0
  cvtss2sd %xmm3,%xmm3
  addsd  %xmm1,%xmm0
  movss  0x2c(%rax),%xmm1
  mulss  0xc(%rdx),%xmm1
  addsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  cvtss2sd %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x4(%rdi)
  movss  -0x4(%rax),%xmm1
  mulss  0x10(%rdx),%xmm1
  movss  0xc(%rax),%xmm0
  mulss  0x14(%rdx),%xmm0
  movss  0x1c(%rax),%xmm3
  mulss  0x18(%rdx),%xmm3
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm2,%xmm1
  cvtss2sd %xmm0,%xmm0
  cvtss2sd %xmm3,%xmm3
  addsd  %xmm1,%xmm0
  movss  0x2c(%rax),%xmm1
  mulss  0x1c(%rdx),%xmm1
  addsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  cvtss2sd %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0xc(%rdi)
  movss  -0x4(%rax),%xmm1
  mulss  0x20(%rdx),%xmm1
  movss  0xc(%rax),%xmm0
  mulss  0x24(%rdx),%xmm0
  movss  0x1c(%rax),%xmm3
  mulss  0x28(%rdx),%xmm3
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm2,%xmm1
  cvtss2sd %xmm0,%xmm0
  cvtss2sd %xmm3,%xmm3
  addsd  %xmm1,%xmm0
  movss  0x2c(%rax),%xmm1
  mulss  0x2c(%rdx),%xmm1
  addsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  cvtss2sd %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x1c(%rdi)
  movss  -0x4(%rax),%xmm1
  mulss  0x30(%rdx),%xmm1
  movss  0xc(%rax),%xmm0
  mulss  0x34(%rdx),%xmm0
  movss  0x1c(%rax),%xmm3
  mulss  0x38(%rdx),%xmm3
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm2,%xmm1
  cvtss2sd %xmm0,%xmm0
  cvtss2sd %xmm3,%xmm3
  addsd  %xmm1,%xmm0
  movss  0x2c(%rax),%xmm1
  mulss  0x3c(%rdx),%xmm1
  addsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  cvtss2sd %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x2c(%rdi)
  cmp    %rcx,%rax
  jne    L6
  pop    %rbx
  pop    %rbp
  ret
```

assistant: ```c
void mulmm(float *result, const float *s1, const float *s2) {
  int i, j, k;
  for (i = 0; i < 4; i++)
    for (j = 0; j < 4; j++) {
      double dest = 0;
      for (k = 0; k < 4; k++)
        dest += s1[(i + (k << 2))] * s2[(k + (j << 2))];
      result[(i + (j << 2))] = (float)dest;
    }
}
```