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

```asm
<foo>:
  endbr64
  pxor   %xmm0,%xmm0
  movdqu (%rdx),%xmm1
  movdqu 0x10(%rsi),%xmm3
  movdqa %xmm0,%xmm5
  movdqu 0x10(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu (%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu (%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x10(%rdi)
  movdqu 0x30(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x10(%rdx),%xmm1
  movups %xmm2,(%rdi)
  movdqu 0x30(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0x20(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x20(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x30(%rdi)
  movdqu 0x50(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  movdqu 0x50(%rsi),%xmm4
  psrlq  $0x20,%xmm4
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x20(%rdx),%xmm1
  movups %xmm2,0x20(%rdi)
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm2
  punpckhwd %xmm5,%xmm2
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm2,%xmm3
  psrlq  $0x20,%xmm2
  pmuludq %xmm4,%xmm2
  movdqu 0x40(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x40(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x50(%rdi)
  movdqu 0x70(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x30(%rdx),%xmm1
  movups %xmm2,0x40(%rdi)
  movdqu 0x70(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0x60(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x60(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x70(%rdi)
  movdqu 0x90(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x40(%rdx),%xmm1
  movups %xmm2,0x60(%rdi)
  movdqu 0x90(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0x80(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x80(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x90(%rdi)
  movdqu 0xb0(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x50(%rdx),%xmm1
  movups %xmm2,0x80(%rdi)
  movdqu 0xb0(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0xa0(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0xa0(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0xb0(%rdi)
  movdqu 0xd0(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x60(%rdx),%xmm1
  movups %xmm2,0xa0(%rdi)
  movdqu 0xd0(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0xc0(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0xc0(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0xd0(%rdi)
  movdqu 0xf0(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x70(%rdx),%xmm1
  movups %xmm2,0xc0(%rdi)
  movdqu 0xf0(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0xe0(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0xe0(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0xf0(%rdi)
  movdqu 0x110(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x80(%rdx),%xmm1
  movups %xmm2,0xe0(%rdi)
  movdqu 0x110(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0x100(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x100(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x110(%rdi)
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0x90(%rdx),%xmm1
  movups %xmm2,0x100(%rdi)
  movdqu 0x130(%rsi),%xmm3
  movdqu 0x130(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  movswl 0xc0(%rdx),%eax
  movswl 0xc4(%rdx),%ecx
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  movdqa %xmm0,%xmm5
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0x120(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x120(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x130(%rdi)
  movdqu 0x150(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0xa0(%rdx),%xmm1
  movups %xmm2,0x120(%rdi)
  movdqu 0x150(%rsi),%xmm2
  pcmpgtw %xmm1,%xmm5
  movdqa %xmm1,%xmm4
  psrlq  $0x20,%xmm2
  punpckhwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm1
  pmuludq %xmm4,%xmm3
  psrlq  $0x20,%xmm4
  pmuludq %xmm4,%xmm2
  movdqu 0x140(%rsi),%xmm4
  pmuludq %xmm1,%xmm4
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqa %xmm1,%xmm2
  movdqu 0x140(%rsi),%xmm1
  psrlq  $0x20,%xmm2
  movups %xmm3,0x150(%rdi)
  movdqu 0x170(%rsi),%xmm3
  psrlq  $0x20,%xmm1
  pmuludq %xmm2,%xmm1
  pshufd $0x8,%xmm4,%xmm2
  movdqu 0x170(%rsi),%xmm4
  psrlq  $0x20,%xmm4
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movdqu 0xb0(%rdx),%xmm1
  movups %xmm2,0x140(%rdi)
  pcmpgtw %xmm1,%xmm0
  movdqa %xmm1,%xmm2
  punpckhwd %xmm0,%xmm2
  punpcklwd %xmm0,%xmm1
  movdqu 0x160(%rsi),%xmm0
  pmuludq %xmm2,%xmm3
  psrlq  $0x20,%xmm2
  pmuludq %xmm4,%xmm2
  psrlq  $0x20,%xmm0
  pshufd $0x8,%xmm3,%xmm3
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm3
  movdqu 0x160(%rsi),%xmm2
  movups %xmm3,0x170(%rdi)
  pmuludq %xmm1,%xmm2
  psrlq  $0x20,%xmm1
  pmuludq %xmm0,%xmm1
  pshufd $0x8,%xmm2,%xmm2
  pshufd $0x8,%xmm1,%xmm0
  movdqa %xmm2,%xmm1
  movdqu 0x180(%rsi),%xmm2
  punpckldq %xmm0,%xmm1
  movd   %eax,%xmm0
  movswl 0xc2(%rdx),%eax
  movswl 0xc6(%rdx),%edx
  movups %xmm1,0x160(%rdi)
  movd   %ecx,%xmm1
  movd   %edx,%xmm6
  movd   %eax,%xmm7
  punpckldq %xmm6,%xmm1
  punpckldq %xmm7,%xmm0
  punpcklqdq %xmm1,%xmm0
  movdqa %xmm0,%xmm1
  psrlq  $0x20,%xmm0
  pmuludq %xmm2,%xmm1
  psrlq  $0x20,%xmm2
  pmuludq %xmm2,%xmm0
  pshufd $0x8,%xmm1,%xmm1
  pshufd $0x8,%xmm0,%xmm0
  punpckldq %xmm0,%xmm1
  movups %xmm1,0x180(%rdi)
  ret
```

assistant: ```c
void foo(int *__restrict__ a, int *__restrict__ b, short *c) {
  int i;
  for (i = 0; i < 100; i += 4) {
    a[i] = b[i] * c[i];
    a[i + 1] = b[i + 1] * c[i + 1];
    a[i + 2] = b[i + 2] * c[i + 2];
    a[i + 3] = b[i + 3] * c[i + 3];
  }
}
```