user: 下面的汇编指令对应的C源代码是什么：

```asm
<highbd_idct16_4col_stage7>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    -0x20(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x18(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x4(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x8(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0xc(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x10(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x14(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x18(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x1c(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_add_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x20(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x24(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x28(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x2c(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x30(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x34(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x38(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  mov    -0x18(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%edx
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x20(%rbp),%rcx
  lea    0x3c(%rcx),%rbx
  mov    %edx,%esi
  mov    %eax,%edi
  call   <_mm_sub_epi32@plt>
  mov    %eax,(%rbx)
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

assistant: ```c
void highbd_idct16_4col_stage7(const __m128i *const in, __m128i *const out) {
  out[0] = _mm_add_epi32(in[0], in[15]);
  out[1] = _mm_add_epi32(in[1], in[14]);
  out[2] = _mm_add_epi32(in[2], in[13]);
  out[3] = _mm_add_epi32(in[3], in[12]);
  out[4] = _mm_add_epi32(in[4], in[11]);
  out[5] = _mm_add_epi32(in[5], in[10]);
  out[6] = _mm_add_epi32(in[6], in[9]);
  out[7] = _mm_add_epi32(in[7], in[8]);
  out[8] = _mm_sub_epi32(in[7], in[8]);
  out[9] = _mm_sub_epi32(in[6], in[9]);
  out[10] = _mm_sub_epi32(in[5], in[10]);
  out[11] = _mm_sub_epi32(in[4], in[11]);
  out[12] = _mm_sub_epi32(in[3], in[12]);
  out[13] = _mm_sub_epi32(in[2], in[13]);
  out[14] = _mm_sub_epi32(in[1], in[14]);
  out[15] = _mm_sub_epi32(in[0], in[15]);
}
```