user: 这段汇编代码用C语言表示是什么样的:

```asm
<poly_mul2>:
  endbr64
  push   %r15
  mov    %rsi,%r10
  mov    %rcx,%rax
  pxor   %xmm0,%xmm0
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rsi,-0x30(%rsp)
  mov    (%rcx),%esi
  add    (%rdx),%esi
  mov    %r8,-0x10(%rsp)
  mov    %esi,(%r9)
  mov    0x4(%rcx),%esi
  add    0x4(%rdx),%esi
  mov    %esi,0x4(%r9)
  mov    (%rax),%r13d
  mov    0x4(%rax),%eax
  mov    (%rdx),%r11d
  movq   $0x0,0xc0(%r8)
  mov    0x4(%rdx),%ecx
  mov    %r13d,%edx
  movups %xmm0,(%r8)
  or     %eax,%edx
  mov    %r11d,-0x34(%rsp)
  or     %r11d,%edx
  movups %xmm0,0x10(%r8)
  or     %ecx,%edx
  movups %xmm0,0x20(%r8)
  movups %xmm0,0x30(%r8)
  movups %xmm0,0x40(%r8)
  movups %xmm0,0x50(%r8)
  movups %xmm0,0x60(%r8)
  movups %xmm0,0x70(%r8)
  movups %xmm0,0x80(%r8)
  movups %xmm0,0x90(%r8)
  movups %xmm0,0xa0(%r8)
  movups %xmm0,0xb0(%r8)
  js     L60
  lea    (%rax,%rax,4),%rax
  mov    %r8,-0x20(%rsp)
  lea    0x28(%r10,%rax,8),%rbp
  lea    0x1(%r13),%r10d
  mov    %rdi,-0x48(%rsp)
  mov    %ecx,%edi
  mov    %r10d,%r15d
  mov    %r10d,%r14d
  mov    %rdi,-0x18(%rsp)
  movq   $0x0,-0x28(%rsp)
  and    $0xfffffffe,%r15d
  shr    %r14d
  mov    -0x28(%rsp),%rax
  movslq %r15d,%rdi
L94:
  mov    -0x10(%rsp),%rbx
  lea    (%rax,%rax,4),%rax
  xor    %r12d,%r12d
  lea    (%rbx,%rax,8),%rax
  mov    $0x1,%ebx
  mov    %rax,-0x40(%rsp)
  mov    -0x20(%rsp),%rax
  mov    %rax,-0x68(%rsp)
  cs nopw 0x0(%rax,%rax,1)
L135:
  lea    0x3(%r12),%r9d
  mov    -0x48(%rsp),%rax
  mov    %r12d,%r8d
  lea    (%r15,%r12,1),%esi
  movslq %r9d,%r9
  add    $0x5,%r8d
  lea    0x2(%r12),%r11d
  movslq %esi,%rsi
  mov    %r9,-0x60(%rsp)
  lea    0x4(%r12),%r9d
  movsd  (%rax,%r12,8),%xmm1
  movslq %r11d,%r11
  movslq %r9d,%r9
  mov    -0x40(%rsp),%rdx
  mov    -0x68(%rsp),%rcx
  mov    %r9,-0x58(%rsp)
  movslq %r8d,%r9
  movapd %xmm1,%xmm2
  mov    -0x30(%rsp),%rax
  mov    %r9,-0x50(%rsp)
  unpcklpd %xmm2,%xmm2
  nopw   0x0(%rax,%rax,1)
L191:
  lea    0x8(%rax),%r8
  cmp    %r8,%rcx
  je     L35
  test   %r13d,%r13d
  je     L35
  movupd (%rax),%xmm0
  movupd (%rcx),%xmm3
  mulpd  %xmm2,%xmm0
  addpd  %xmm3,%xmm0
  movups %xmm0,(%rcx)
  cmp    $0x1,%r14d
  jbe    L120
  movupd 0x10(%rax),%xmm0
  movupd 0x10(%rcx),%xmm4
  mulpd  %xmm2,%xmm0
  addpd  %xmm4,%xmm0
  movups %xmm0,0x10(%rcx)
  cmp    $0x2,%r14d
  je     L120
  movupd 0x20(%rax),%xmm0
  movupd 0x20(%rcx),%xmm5
  mulpd  %xmm2,%xmm0
  addpd  %xmm5,%xmm0
  movups %xmm0,0x20(%rcx)
  cmp    $0x3,%r14d
  je     L120
  mov    $0x30,%r8d
  mov    $0x3,%r9d
L151:
  movupd (%rax,%r8,1),%xmm0
  movupd (%rcx,%r8,1),%xmm6
  add    $0x1,%r9d
  mulpd  %xmm2,%xmm0
  addpd  %xmm6,%xmm0
  movups %xmm0,(%rcx,%r8,1)
  add    $0x10,%r8
  cmp    %r9d,%r14d
  jne    L151
  nopl   0x0(%rax)
L120:
  cmp    %r15d,%r10d
  je     L177
  movsd  (%rax,%rdi,8),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%rsi,8),%xmm0
  movsd  %xmm0,(%rdx,%rsi,8)
L177:
  add    $0x28,%rax
  add    $0x28,%rcx
  add    $0x28,%rdx
  cmp    %rax,%rbp
  jne    L191
  addq   $0x8,-0x68(%rsp)
  add    $0x1,%r12
  add    $0x1,%rbx
  cmp    %r12d,-0x34(%rsp)
  jge    L135
  mov    -0x28(%rsp),%rbx
  addq   $0x28,-0x20(%rsp)
  addq   $0x28,-0x48(%rsp)
  lea    0x1(%rbx),%rax
  cmp    -0x18(%rsp),%rbx
  je     L60
  mov    %rax,-0x28(%rsp)
  jmp    L94
L35:
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  (%rcx),%xmm0
  movsd  %xmm0,(%rcx)
  test   %r13d,%r13d
  jle    L177
  movsd  0x8(%rax),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%rbx,8),%xmm0
  movsd  %xmm0,(%rdx,%rbx,8)
  cmp    $0x1,%r13d
  je     L177
  movsd  0x10(%rax),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%r11,8),%xmm0
  movsd  %xmm0,(%rdx,%r11,8)
  cmp    $0x2,%r13d
  je     L177
  movsd  0x18(%rax),%xmm0
  mov    -0x60(%rsp),%r9
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%r9,8),%xmm0
  movsd  %xmm0,(%rdx,%r9,8)
  cmp    $0x3,%r13d
  je     L177
  movsd  0x20(%rax),%xmm0
  mov    -0x58(%rsp),%r9
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%r9,8),%xmm0
  movsd  %xmm0,(%rdx,%r9,8)
  cmp    $0x4,%r13d
  je     L177
  movsd  0x28(%rax),%xmm0
  mov    -0x50(%rsp),%r9
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%r9,8),%xmm0
  movsd  %xmm0,(%rdx,%r9,8)
  cmp    $0x5,%r13d
  je     L177
  mov    %rcx,%r9
  mov    $0x6,%r8d
L109:
  movsd  (%rax,%r8,8),%xmm0
  add    $0x1,%r8
  add    $0x8,%r9
  mulsd  %xmm1,%xmm0
  addsd  0x28(%r9),%xmm0
  movsd  %xmm0,0x28(%r9)
  cmp    %r8d,%r13d
  jge    L109
  jmp    L177
L60:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void poly_mul2(double u1[5][5], double u2[5][5], int p1[2], int p2[2], double u3[5][5], int p3[2]) {
  int i1, j1, i2, j2, i3, j3, p11, p12, p21, p22;
  int i, j;
  double u1ij;
  for (i = 0; i < 2; i++)
    p3[i] = p1[i] + p2[i];
  for (i = 0; i < 5; i++)
    for (j = 0; j < 5; j++)
      u3[i][j] = 0.0e0;
  p11 = p1[0];
  p12 = p1[1];
  p21 = p2[0];
  p22 = p2[1];
  for (i1 = 0; i1 <= p12; i1++) {
    for (j1 = 0; j1 <= p11; j1++) {
      u1ij = u1[i1][j1];
      for (i2 = 0; i2 <= p22; i2++) {
        i3 = i1 + i2;
        for (j2 = 0; j2 <= p21; j2++) {
          j3 = j1 + j2;
          u3[i3][j3] = u3[i3][j3] + u1ij * u2[i2][j2];
        }
      }
    }
  }
}
```