user: 请将以下的汇编代码转换成C语言代码:

```asm
<fdct_int32>:
  endbr64
  add    $0xffffffffffffff80,%rsp
  movdqu (%rdi),%xmm4
  movdqu 0x10(%rdi),%xmm7
  pxor   %xmm12,%xmm12
  movdqu 0x20(%rdi),%xmm2
  movdqu 0x30(%rdi),%xmm6
  movdqa %xmm4,%xmm3
  movdqa %xmm4,%xmm5
  movdqu 0x40(%rdi),%xmm0
  punpcklwd %xmm7,%xmm4
  punpcklwd %xmm7,%xmm3
  punpckhwd %xmm7,%xmm5
  movdqa %xmm2,%xmm7
  movdqu 0x50(%rdi),%xmm8
  movdqa %xmm3,%xmm10
  punpcklwd %xmm6,%xmm7
  punpcklwd %xmm5,%xmm3
  movdqu 0x60(%rdi),%xmm1
  punpckhwd %xmm5,%xmm10
  punpcklwd %xmm5,%xmm4
  movdqa %xmm2,%xmm5
  movdqu 0x70(%rdi),%xmm9
  punpckhwd %xmm6,%xmm5
  punpcklwd %xmm10,%xmm3
  punpckhwd %xmm10,%xmm4
  punpcklwd %xmm6,%xmm2
  movdqa %xmm7,%xmm10
  movdqa %xmm0,%xmm6
  punpckhwd %xmm5,%xmm10
  punpcklwd %xmm8,%xmm6
  punpcklwd %xmm5,%xmm7
  punpcklwd %xmm5,%xmm2
  movdqa %xmm0,%xmm5
  punpcklwd %xmm10,%xmm7
  punpckhwd %xmm10,%xmm2
  punpckhwd %xmm8,%xmm5
  movdqa %xmm6,%xmm10
  punpcklwd %xmm8,%xmm0
  punpckhwd %xmm5,%xmm10
  punpcklwd %xmm5,%xmm6
  punpcklwd %xmm5,%xmm0
  movdqa %xmm1,%xmm5
  movdqa %xmm1,%xmm8
  punpcklwd %xmm9,%xmm5
  punpckhwd %xmm9,%xmm8
  punpcklwd %xmm10,%xmm6
  punpckhwd %xmm10,%xmm0
  punpcklwd %xmm9,%xmm1
  movdqa %xmm5,%xmm10
  punpckhwd %xmm8,%xmm10
  punpcklwd %xmm8,%xmm5
  punpcklwd %xmm8,%xmm1
  movdqa %xmm3,%xmm8
  movdqa %xmm3,%xmm9
  punpcklwd %xmm10,%xmm5
  punpcklwd %xmm7,%xmm8
  punpckhwd %xmm10,%xmm1
  punpckhwd %xmm7,%xmm9
  movdqa %xmm8,%xmm10
  punpcklwd %xmm7,%xmm3
  punpcklwd %xmm9,%xmm8
  punpckhwd %xmm9,%xmm10
  punpcklwd %xmm9,%xmm3
  movdqa %xmm6,%xmm9
  punpcklwd %xmm5,%xmm9
  movdqa %xmm6,%xmm7
  punpcklwd %xmm10,%xmm8
  punpckhwd %xmm5,%xmm7
  punpckhwd %xmm10,%xmm3
  punpcklwd %xmm5,%xmm6
  movdqa %xmm9,%xmm10
  punpcklwd %xmm7,%xmm6
  punpcklwd %xmm7,%xmm9
  punpckhwd %xmm7,%xmm10
  movdqa %xmm4,%xmm5
  punpcklwd %xmm10,%xmm9
  punpckhwd %xmm10,%xmm6
  movdqa %xmm4,%xmm10
  punpcklwd %xmm2,%xmm10
  punpckhwd %xmm2,%xmm5
  punpcklwd %xmm2,%xmm4
  movdqa %xmm10,%xmm7
  punpcklwd %xmm5,%xmm4
  punpcklwd %xmm5,%xmm10
  punpckhwd %xmm5,%xmm7
  movdqa %xmm0,%xmm5
  movdqa %xmm0,%xmm2
  punpcklwd %xmm1,%xmm5
  punpckhwd %xmm1,%xmm2
  punpcklwd %xmm7,%xmm10
  punpckhwd %xmm7,%xmm4
  punpcklwd %xmm1,%xmm0
  movdqa %xmm5,%xmm7
  punpckhwd %xmm2,%xmm7
  punpcklwd %xmm2,%xmm5
  punpcklwd %xmm2,%xmm0
  punpcklwd %xmm7,%xmm5
  punpckhwd %xmm7,%xmm0
  movdqa %xmm8,%xmm7
  punpcklwd %xmm9,%xmm7
  movdqa %xmm8,%xmm1
  punpcklwd %xmm9,%xmm8
  punpckhwd %xmm9,%xmm1
  movdqa %xmm7,%xmm2
  punpckhwd %xmm1,%xmm2
  punpcklwd %xmm1,%xmm7
  punpcklwd %xmm2,%xmm7
  movdqa %xmm8,%xmm2
  punpcklwd %xmm1,%xmm8
  punpckhwd %xmm1,%xmm2
  movdqa %xmm10,%xmm1
  movdqa %xmm7,%xmm11
  punpckhwd %xmm2,%xmm8
  movdqa %xmm10,%xmm2
  punpckhwd %xmm5,%xmm1
  punpcklwd %xmm5,%xmm2
  punpcklwd %xmm5,%xmm10
  movdqa %xmm2,%xmm9
  punpcklwd %xmm1,%xmm10
  punpcklwd %xmm1,%xmm2
  punpckhwd %xmm1,%xmm9
  movdqa %xmm3,%xmm1
  punpcklwd %xmm9,%xmm2
  punpckhwd %xmm9,%xmm10
  punpcklwd %xmm6,%xmm1
  movdqa %xmm3,%xmm9
  movdqa %xmm1,%xmm5
  punpcklwd %xmm6,%xmm3
  punpckhwd %xmm6,%xmm9
  movdqa %xmm4,%xmm6
  punpckhwd %xmm9,%xmm5
  punpcklwd %xmm9,%xmm1
  punpckhwd %xmm0,%xmm6
  punpcklwd %xmm5,%xmm1
  movdqa %xmm3,%xmm5
  punpckhwd %xmm9,%xmm3
  punpcklwd %xmm9,%xmm5
  punpckhwd %xmm3,%xmm5
  movdqa %xmm4,%xmm3
  punpcklwd %xmm0,%xmm4
  punpcklwd %xmm0,%xmm3
  punpcklwd %xmm6,%xmm4
  movdqa %xmm12,%xmm0
  movdqa %xmm3,%xmm9
  pcmpgtw %xmm7,%xmm0
  punpcklwd %xmm6,%xmm3
  punpckhwd %xmm6,%xmm9
  movdqa %xmm12,%xmm6
  punpckhwd %xmm9,%xmm4
  punpcklwd %xmm9,%xmm3
  pcmpgtw %xmm4,%xmm6
  punpckhwd %xmm0,%xmm7
  movdqa %xmm4,%xmm9
  punpcklwd %xmm0,%xmm11
  movdqa %xmm7,%xmm13
  movdqa %xmm11,%xmm15
  punpckhwd %xmm6,%xmm4
  punpcklwd %xmm6,%xmm9
  movdqa %xmm7,%xmm6
  movdqa %xmm4,%xmm0
  movdqa %xmm11,%xmm4
  psubd  %xmm9,%xmm15
  paddd  %xmm0,%xmm6
  psubd  %xmm0,%xmm13
  movdqa %xmm12,%xmm0
  movaps %xmm15,-0x68(%rsp)
  pcmpgtw %xmm2,%xmm0
  paddd  %xmm9,%xmm4
  movdqa %xmm2,%xmm9
  movaps %xmm13,-0x78(%rsp)
  movdqa %xmm5,%xmm11
  punpcklwd %xmm0,%xmm9
  punpckhwd %xmm0,%xmm2
  movdqa %xmm12,%xmm0
  pcmpgtw %xmm5,%xmm0
  punpckhwd %xmm0,%xmm5
  punpcklwd %xmm0,%xmm11
  movdqa %xmm2,%xmm0
  movdqa %xmm5,%xmm7
  movdqa %xmm9,%xmm5
  psubd  %xmm11,%xmm9
  paddd  %xmm11,%xmm5
  movdqa %xmm12,%xmm11
  psubd  %xmm7,%xmm2
  pcmpgtw %xmm1,%xmm11
  paddd  %xmm7,%xmm0
  movdqa %xmm1,%xmm7
  punpcklwd %xmm11,%xmm7
  punpckhwd %xmm11,%xmm1
  movdqa %xmm12,%xmm11
  pcmpgtw %xmm10,%xmm11
  movdqa %xmm7,%xmm15
  movdqa %xmm1,%xmm14
  movdqa %xmm11,%xmm13
  movdqa %xmm10,%xmm11
  punpcklwd %xmm13,%xmm11
  punpckhwd %xmm13,%xmm10
  psubd  %xmm11,%xmm7
  paddd  %xmm11,%xmm15
  movdqa %xmm12,%xmm11
  pcmpgtw %xmm3,%xmm11
  pcmpgtw %xmm8,%xmm12
  psubd  %xmm10,%xmm1
  paddd  %xmm10,%xmm14
  movdqa %xmm3,%xmm10
  punpcklwd %xmm11,%xmm10
  punpckhwd %xmm11,%xmm3
  movdqa %xmm8,%xmm11
  punpcklwd %xmm12,%xmm11
  punpckhwd %xmm12,%xmm8
  movdqa %xmm10,%xmm12
  paddd  %xmm11,%xmm12
  psubd  %xmm11,%xmm10
  movdqa %xmm12,%xmm13
  movdqa %xmm3,%xmm12
  psubd  %xmm8,%xmm3
  paddd  %xmm8,%xmm12
  movdqa %xmm13,%xmm11
  movdqa %xmm12,%xmm8
  paddd  %xmm4,%xmm11
  psubd  %xmm13,%xmm4
  paddd  %xmm6,%xmm8
  psubd  %xmm12,%xmm6
  movdqa %xmm15,%xmm12
  paddd  %xmm5,%xmm12
  psubd  %xmm15,%xmm5
  movdqa -0x68(%rsp),%xmm15
  movdqa %xmm12,%xmm13
  movdqa %xmm14,%xmm12
  paddd  %xmm0,%xmm12
  psubd  %xmm14,%xmm0
  movdqa %xmm13,%xmm14
  paddd  %xmm11,%xmm14
  psubd  %xmm13,%xmm11
  pslld  $0x2,%xmm14
  pslld  $0x2,%xmm11
  paddd  %xmm7,%xmm15
  movaps %xmm14,0x8(%rsp)
  movdqa %xmm12,%xmm14
  paddd  %xmm8,%xmm14
  psubd  %xmm12,%xmm8
  movaps %xmm11,-0x18(%rsp)
  pslld  $0x2,%xmm8
  pslld  $0x2,%xmm14
  movaps %xmm8,-0x28(%rsp)
  movdqa %xmm5,%xmm8
  paddd  %xmm4,%xmm8
  movaps %xmm14,-0x8(%rsp)
  movdqa -0x78(%rsp),%xmm14
  movdqa %xmm8,%xmm11
  pslld  $0x3,%xmm11
  paddd  %xmm1,%xmm14
  paddd  %xmm8,%xmm11
  pslld  $0x4,%xmm11
  psubd  %xmm8,%xmm11
  movdqa %xmm11,%xmm8
  pslld  $0x5,%xmm8
  psubd  %xmm11,%xmm8
  movdqa %xmm0,%xmm11
  paddd  %xmm6,%xmm11
  movdqa %xmm11,%xmm12
  pslld  $0x3,%xmm12
  paddd  %xmm11,%xmm12
  pslld  $0x4,%xmm12
  psubd  %xmm11,%xmm12
  movdqa %xmm12,%xmm11
  pslld  $0x5,%xmm11
  psubd  %xmm12,%xmm11
  movdqa %xmm4,%xmm12
  pslld  $0x1,%xmm12
  paddd  %xmm4,%xmm12
  pslld  $0x4,%xmm12
  paddd  %xmm4,%xmm12
  pslld  $0x6,%xmm12
  psubd  %xmm4,%xmm12
  movdqa D37(%rip),%xmm4
  pslld  $0x1,%xmm12
  paddd  %xmm8,%xmm12
  paddd  %xmm4,%xmm12
  psrad  $0xb,%xmm12
  movaps %xmm12,-0x38(%rsp)
  movdqa %xmm6,%xmm12
  pslld  $0x1,%xmm12
  paddd  %xmm6,%xmm12
  pslld  $0x4,%xmm12
  paddd  %xmm6,%xmm12
  pslld  $0x6,%xmm12
  psubd  %xmm6,%xmm12
  pslld  $0x1,%xmm12
  paddd  %xmm11,%xmm12
  paddd  %xmm4,%xmm12
  movdqa %xmm12,%xmm6
  movdqa %xmm3,%xmm12
  psrad  $0xb,%xmm6
  paddd  %xmm2,%xmm12
  movaps %xmm6,0x18(%rsp)
  movdqa %xmm5,%xmm6
  pslld  $0x4,%xmm6
  psubd  %xmm5,%xmm6
  pslld  $0x2,%xmm6
  psubd  %xmm5,%xmm6
  pslld  $0x3,%xmm6
  paddd  %xmm5,%xmm6
  pslld  $0x5,%xmm6
  paddd  %xmm5,%xmm6
  psubd  %xmm6,%xmm8
  paddd  %xmm4,%xmm8
  movdqa %xmm8,%xmm5
  pxor   %xmm8,%xmm8
  psrad  $0xb,%xmm5
  movaps %xmm5,0x28(%rsp)
  movdqa %xmm0,%xmm5
  pslld  $0x4,%xmm5
  psubd  %xmm0,%xmm5
  pslld  $0x2,%xmm5
  psubd  %xmm0,%xmm5
  pslld  $0x3,%xmm5
  paddd  %xmm0,%xmm5
  pslld  $0x5,%xmm5
  paddd  %xmm5,%xmm0
  movdqa %xmm10,%xmm5
  paddd  %xmm9,%xmm5
  psubd  %xmm0,%xmm11
  movdqa %xmm5,%xmm13
  paddd  %xmm15,%xmm5
  paddd  %xmm4,%xmm11
  movdqa %xmm5,%xmm6
  psrad  $0xb,%xmm11
  pslld  $0x2,%xmm6
  movaps %xmm11,0x38(%rsp)
  paddd  %xmm5,%xmm6
  movdqa %xmm6,%xmm0
  pslld  $0x4,%xmm0
  psubd  %xmm6,%xmm0
  movdqa %xmm0,%xmm6
  pslld  $0x2,%xmm6
  paddd  %xmm5,%xmm6
  pslld  $0x5,%xmm6
  paddd  %xmm5,%xmm6
  movdqa %xmm12,%xmm5
  paddd  %xmm14,%xmm5
  movdqa %xmm5,%xmm11
  pslld  $0x2,%xmm5
  paddd  %xmm11,%xmm5
  movdqa %xmm5,%xmm0
  pslld  $0x4,%xmm0
  psubd  %xmm5,%xmm0
  movdqa %xmm0,%xmm5
  pslld  $0x2,%xmm5
  paddd  %xmm11,%xmm5
  pslld  $0x5,%xmm5
  paddd  %xmm11,%xmm5
  movdqa -0x68(%rsp),%xmm11
  paddd  %xmm10,%xmm11
  movdqa %xmm11,%xmm0
  pslld  $0x3,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  movdqa %xmm8,%xmm11
  psubd  %xmm0,%xmm11
  movdqa -0x78(%rsp),%xmm0
  movaps %xmm11,0x48(%rsp)
  paddd  %xmm3,%xmm0
  movdqa %xmm0,%xmm11
  pslld  $0x3,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  movdqa %xmm8,%xmm11
  psubd  %xmm0,%xmm11
  movdqa %xmm7,%xmm0
  paddd  %xmm9,%xmm0
  movaps %xmm11,-0x58(%rsp)
  movdqa %xmm0,%xmm11
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x7,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm11,%xmm0
  movdqa %xmm8,%xmm11
  psubd  %xmm0,%xmm11
  movdqa %xmm1,%xmm0
  paddd  %xmm2,%xmm0
  movaps %xmm11,0x58(%rsp)
  movdqa %xmm0,%xmm11
  pslld  $0x2,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x7,%xmm0
  paddd  %xmm11,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm11,%xmm0
  movdqa %xmm8,%xmm11
  psubd  %xmm0,%xmm11
  movdqa %xmm13,%xmm0
  pslld  $0x6,%xmm0
  movaps %xmm11,-0x48(%rsp)
  psubd  %xmm13,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm13,%xmm0
  pslld  $0x4,%xmm0
  paddd  %xmm13,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm13,%xmm0
  movdqa %xmm6,%xmm13
  psubd  %xmm0,%xmm13
  movdqa %xmm12,%xmm0
  pslld  $0x6,%xmm0
  movdqa %xmm13,%xmm11
  psubd  %xmm12,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm12,%xmm0
  pslld  $0x4,%xmm0
  paddd  %xmm12,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm12,%xmm0
  movdqa %xmm5,%xmm12
  psubd  %xmm0,%xmm12
  movdqa %xmm15,%xmm0
  pslld  $0x1,%xmm0
  paddd  %xmm15,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm15,%xmm0
  pslld  $0x5,%xmm0
  psubd  %xmm15,%xmm0
  movdqa %xmm14,%xmm15
  pslld  $0x2,%xmm0
  pslld  $0x1,%xmm15
  psubd  %xmm0,%xmm6
  movdqa %xmm15,%xmm0
  movdqa %xmm10,%xmm15
  paddd  %xmm14,%xmm0
  pslld  $0x3,%xmm15
  movdqa %xmm6,%xmm13
  pslld  $0x3,%xmm0
  paddd  %xmm14,%xmm0
  pslld  $0x5,%xmm0
  psubd  %xmm14,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm0,%xmm5
  movdqa %xmm15,%xmm0
  movdqa %xmm3,%xmm15
  paddd  %xmm10,%xmm0
  pslld  $0x3,%xmm15
  movdqa %xmm5,%xmm14
  movdqa %xmm0,%xmm5
  pslld  $0x4,%xmm5
  paddd  %xmm5,%xmm0
  pslld  $0x3,%xmm0
  psubd  %xmm10,%xmm0
  movdqa 0x48(%rsp),%xmm10
  movdqa %xmm0,%xmm5
  movdqa %xmm15,%xmm0
  paddd  %xmm3,%xmm0
  pslld  $0x1,%xmm5
  movdqa %xmm0,%xmm6
  paddd  %xmm10,%xmm5
  pslld  $0x4,%xmm6
  paddd  %xmm11,%xmm5
  paddd  %xmm6,%xmm0
  movdqa %xmm1,%xmm6
  paddd  %xmm4,%xmm5
  pslld  $0x3,%xmm0
  pslld  $0x5,%xmm6
  psubd  %xmm3,%xmm0
  psrad  $0xb,%xmm5
  movdqa %xmm7,%xmm3
  pslld  $0x1,%xmm0
  pslld  $0x5,%xmm3
  paddd  -0x58(%rsp),%xmm0
  paddd  %xmm12,%xmm0
  paddd  %xmm4,%xmm0
  movdqa %xmm0,%xmm15
  movdqa %xmm3,%xmm0
  paddd  %xmm7,%xmm0
  psrad  $0xb,%xmm15
  pslld  $0x3,%xmm0
  psubd  %xmm7,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm7,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm7,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm7,%xmm0
  movdqa 0x58(%rsp),%xmm7
  movdqa %xmm0,%xmm3
  movdqa %xmm6,%xmm0
  movdqa %xmm9,%xmm6
  paddd  %xmm1,%xmm0
  pslld  $0x1,%xmm6
  paddd  %xmm7,%xmm3
  pslld  $0x3,%xmm0
  paddd  %xmm13,%xmm3
  psubd  %xmm1,%xmm0
  paddd  %xmm4,%xmm3
  pslld  $0x2,%xmm0
  psrad  $0xb,%xmm3
  psubd  %xmm1,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm1,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm1,%xmm0
  movdqa %xmm6,%xmm1
  paddd  -0x48(%rsp),%xmm0
  paddd  %xmm9,%xmm1
  movdqa %xmm1,%xmm6
  paddd  %xmm14,%xmm0
  pslld  $0x4,%xmm6
  paddd  %xmm4,%xmm0
  paddd  %xmm6,%xmm1
  psrad  $0xb,%xmm0
  pslld  $0x2,%xmm1
  psubd  %xmm9,%xmm1
  movdqa %xmm1,%xmm6
  pslld  $0x5,%xmm6
  psubd  %xmm1,%xmm6
  pslld  $0x2,%xmm6
  paddd  %xmm7,%xmm6
  paddd  %xmm11,%xmm6
  paddd  %xmm4,%xmm6
  movdqa %xmm6,%xmm9
  movdqa %xmm2,%xmm6
  pslld  $0x1,%xmm6
  psrad  $0xb,%xmm9
  movdqa %xmm6,%xmm1
  paddd  %xmm2,%xmm1
  movdqa %xmm1,%xmm6
  pslld  $0x4,%xmm6
  paddd  %xmm6,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm2,%xmm1
  movdqa %xmm1,%xmm2
  pslld  $0x5,%xmm2
  psubd  %xmm1,%xmm2
  pslld  $0x2,%xmm2
  paddd  -0x48(%rsp),%xmm2
  movdqa -0x68(%rsp),%xmm7
  movdqa %xmm7,%xmm1
  paddd  %xmm12,%xmm2
  pslld  $0x1,%xmm1
  paddd  %xmm4,%xmm2
  paddd  %xmm7,%xmm1
  psrad  $0xb,%xmm2
  movdqa %xmm1,%xmm6
  pslld  $0xa,%xmm6
  paddd  %xmm6,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm7,%xmm1
  paddd  %xmm10,%xmm1
  movdqa %xmm1,%xmm7
  paddd  %xmm13,%xmm7
  movdqa -0x78(%rsp),%xmm13
  paddd  %xmm4,%xmm7
  movdqa %xmm13,%xmm1
  psrad  $0xb,%xmm7
  pslld  $0x1,%xmm1
  paddd  %xmm13,%xmm1
  movdqa %xmm1,%xmm6
  pslld  $0xa,%xmm6
  paddd  %xmm6,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm13,%xmm1
  paddd  -0x58(%rsp),%xmm1
  movdqa -0x18(%rsp),%xmm13
  paddd  %xmm14,%xmm1
  paddd  %xmm4,%xmm1
  movdqa 0x8(%rsp),%xmm4
  psrad  $0xb,%xmm1
  movdqa %xmm4,%xmm10
  punpckhdq %xmm13,%xmm4
  movdqa %xmm4,%xmm6
  movdqa %xmm7,%xmm4
  punpckhdq %xmm3,%xmm7
  punpckldq %xmm3,%xmm4
  movdqa -0x38(%rsp),%xmm3
  punpckldq %xmm13,%xmm10
  movdqa %xmm4,%xmm14
  movdqa 0x28(%rsp),%xmm4
  movdqa %xmm3,%xmm12
  punpckhdq %xmm4,%xmm3
  punpckldq %xmm4,%xmm12
  movdqa %xmm3,%xmm4
  movdqa %xmm9,%xmm3
  punpckldq %xmm5,%xmm3
  movdqa %xmm3,%xmm11
  movdqa %xmm9,%xmm3
  punpckhdq %xmm5,%xmm3
  movdqa %xmm10,%xmm5
  punpckhdq %xmm12,%xmm10
  punpckldq %xmm12,%xmm5
  movdqa %xmm6,%xmm12
  punpckhdq %xmm4,%xmm6
  movdqa %xmm5,%xmm13
  movdqa %xmm14,%xmm5
  punpckldq %xmm4,%xmm12
  punpckhdq %xmm11,%xmm5
  movdqa %xmm14,%xmm4
  movdqa -0x8(%rsp),%xmm14
  movdqa %xmm5,%xmm9
  movdqa %xmm7,%xmm5
  punpckldq %xmm11,%xmm4
  punpckldq %xmm3,%xmm5
  punpckhdq %xmm3,%xmm7
  movdqa %xmm12,%xmm3
  movdqa %xmm5,%xmm11
  movdqa %xmm13,%xmm5
  punpckhdq %xmm4,%xmm13
  punpckldq %xmm4,%xmm5
  movdqa %xmm10,%xmm4
  punpckhdq %xmm9,%xmm10
  movaps %xmm13,-0x18(%rsp)
  punpckldq %xmm9,%xmm4
  movdqa -0x28(%rsp),%xmm9
  punpckldq %xmm11,%xmm3
  punpckhdq %xmm11,%xmm12
  movdqa %xmm6,%xmm11
  punpckhdq %xmm7,%xmm6
  movdqa 0x38(%rsp),%xmm13
  movaps %xmm10,0x8(%rsp)
  punpckldq %xmm7,%xmm11
  movdqa %xmm14,%xmm7
  punpckhdq %xmm9,%xmm14
  movaps %xmm12,0x28(%rsp)
  punpckldq %xmm9,%xmm7
  movdqa %xmm14,%xmm9
  movdqa %xmm1,%xmm14
  punpckldq %xmm0,%xmm14
  punpckhdq %xmm0,%xmm1
  movdqa 0x18(%rsp),%xmm0
  movdqa %xmm14,%xmm10
  movdqa %xmm0,%xmm14
  punpckhdq %xmm13,%xmm0
  punpckldq %xmm13,%xmm14
  movdqa %xmm0,%xmm13
  movdqa %xmm2,%xmm0
  punpckldq %xmm15,%xmm0
  punpckhdq %xmm15,%xmm2
  movdqa %xmm0,%xmm12
  movdqa %xmm7,%xmm0
  punpckhdq %xmm14,%xmm7
  punpckldq %xmm14,%xmm0
  movdqa %xmm9,%xmm14
  punpckhdq %xmm13,%xmm9
  punpckldq %xmm13,%xmm14
  movdqa %xmm10,%xmm13
  punpckhdq %xmm12,%xmm10
  punpckldq %xmm12,%xmm13
  movdqa %xmm1,%xmm12
  punpckhdq %xmm2,%xmm1
  punpckldq %xmm2,%xmm12
  movdqa %xmm0,%xmm2
  punpckhdq %xmm13,%xmm0
  punpckldq %xmm13,%xmm2
  movdqa %xmm12,%xmm15
  movdqa %xmm2,%xmm12
  movdqa %xmm7,%xmm2
  punpckhdq %xmm10,%xmm7
  punpckldq %xmm10,%xmm2
  movdqa %xmm2,%xmm13
  movdqa %xmm14,%xmm2
  punpckhdq %xmm15,%xmm14
  punpckldq %xmm15,%xmm2
  movdqa %xmm2,%xmm10
  movdqa %xmm9,%xmm2
  punpckhdq %xmm1,%xmm9
  punpckldq %xmm1,%xmm2
  movdqa %xmm5,%xmm1
  movdqa %xmm2,%xmm15
  paddd  %xmm2,%xmm1
  movdqa %xmm5,%xmm2
  movdqa %xmm4,%xmm5
  psubd  %xmm10,%xmm4
  psubd  %xmm15,%xmm2
  paddd  %xmm10,%xmm5
  movdqa %xmm3,%xmm10
  psubd  %xmm13,%xmm3
  paddd  %xmm13,%xmm10
  movdqa %xmm11,%xmm13
  psubd  %xmm12,%xmm11
  paddd  %xmm12,%xmm13
  movdqa %xmm3,%xmm15
  movdqa %xmm13,%xmm12
  paddd  %xmm2,%xmm15
  paddd  %xmm1,%xmm12
  psubd  %xmm13,%xmm1
  movdqa %xmm10,%xmm13
  paddd  %xmm5,%xmm13
  psubd  %xmm10,%xmm5
  movdqa %xmm1,%xmm10
  movaps %xmm1,0x38(%rsp)
  paddd  %xmm5,%xmm10
  movaps %xmm13,-0x68(%rsp)
  movdqa %xmm10,%xmm1
  movaps %xmm12,-0x78(%rsp)
  pslld  $0x3,%xmm1
  paddd  %xmm10,%xmm1
  pslld  $0x4,%xmm1
  psubd  %xmm10,%xmm1
  movdqa %xmm1,%xmm10
  pslld  $0x5,%xmm10
  movdqa %xmm10,%xmm13
  psubd  %xmm1,%xmm13
  movaps %xmm13,0x58(%rsp)
  movdqa %xmm4,%xmm13
  paddd  %xmm11,%xmm13
  movdqa %xmm13,%xmm12
  paddd  %xmm15,%xmm12
  movdqa %xmm12,%xmm10
  pslld  $0x2,%xmm10
  paddd  %xmm12,%xmm10
  movdqa %xmm10,%xmm1
  pslld  $0x4,%xmm1
  psubd  %xmm10,%xmm1
  movdqa %xmm1,%xmm10
  pslld  $0x2,%xmm10
  paddd  %xmm12,%xmm10
  pslld  $0x5,%xmm10
  paddd  %xmm12,%xmm10
  movdqa %xmm11,%xmm12
  paddd  %xmm2,%xmm12
  movdqa %xmm12,%xmm1
  pslld  $0x3,%xmm1
  psubd  %xmm12,%xmm1
  pslld  $0x2,%xmm1
  paddd  %xmm12,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm12,%xmm1
  pslld  $0x2,%xmm1
  paddd  %xmm12,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm12,%xmm1
  pslld  $0x2,%xmm1
  paddd  %xmm12,%xmm1
  movdqa %xmm8,%xmm12
  psubd  %xmm1,%xmm12
  movaps %xmm12,-0x28(%rsp)
  movdqa %xmm4,%xmm12
  paddd  %xmm3,%xmm12
  movdqa %xmm12,%xmm1
  pslld  $0x2,%xmm1
  paddd  %xmm12,%xmm1
  pslld  $0x3,%xmm1
  paddd  %xmm12,%xmm1
  pslld  $0x7,%xmm1
  paddd  %xmm12,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm12,%xmm1
  movdqa %xmm8,%xmm12
  psubd  %xmm1,%xmm12
  movdqa %xmm13,%xmm1
  pslld  $0x6,%xmm1
  movaps %xmm12,-0x38(%rsp)
  psubd  %xmm13,%xmm1
  pslld  $0x2,%xmm1
  psubd  %xmm13,%xmm1
  pslld  $0x4,%xmm1
  paddd  %xmm13,%xmm1
  pslld  $0x2,%xmm1
  paddd  %xmm13,%xmm1
  movdqa %xmm10,%xmm13
  psubd  %xmm1,%xmm13
  movdqa %xmm15,%xmm1
  pslld  $0x1,%xmm1
  movaps %xmm13,-0x48(%rsp)
  paddd  %xmm15,%xmm1
  pslld  $0x3,%xmm1
  paddd  %xmm15,%xmm1
  pslld  $0x5,%xmm1
  psubd  %xmm15,%xmm1
  movdqa -0x18(%rsp),%xmm15
  pslld  $0x2,%xmm1
  psubd  %xmm1,%xmm10
  movdqa %xmm15,%xmm13
  psubd  %xmm9,%xmm15
  movaps %xmm10,-0x58(%rsp)
  movdqa %xmm15,%xmm10
  paddd  %xmm9,%xmm13
  movdqa 0x8(%rsp),%xmm15
  movdqa %xmm15,%xmm9
  psubd  %xmm14,%xmm15
  paddd  %xmm14,%xmm9
  movdqa %xmm9,%xmm1
  movdqa %xmm15,%xmm9
  movdqa 0x28(%rsp),%xmm15
  movdqa %xmm15,%xmm14
  psubd  %xmm7,%xmm15
  paddd  %xmm7,%xmm14
  movdqa %xmm6,%xmm7
  movdqa %xmm15,%xmm12
  paddd  %xmm0,%xmm7
  psubd  %xmm0,%xmm6
  movdqa %xmm7,%xmm15
  movaps %xmm6,0x28(%rsp)
  paddd  %xmm13,%xmm15
  psubd  %xmm7,%xmm13
  movdqa %xmm14,%xmm7
  paddd  %xmm1,%xmm7
  movaps %xmm15,0x18(%rsp)
  movaps %xmm7,0x8(%rsp)
  movdqa %xmm1,%xmm7
  psubd  %xmm14,%xmm7
  movdqa %xmm6,%xmm14
  movdqa %xmm7,%xmm0
  paddd  %xmm9,%xmm14
  paddd  %xmm13,%xmm0
  movdqa %xmm0,%xmm1
  pslld  $0x3,%xmm0
  paddd  %xmm1,%xmm0
  pslld  $0x4,%xmm0
  psubd  %xmm1,%xmm0
  movdqa %xmm0,%xmm15
  pslld  $0x5,%xmm15
  psubd  %xmm0,%xmm15
  movdqa %xmm12,%xmm0
  paddd  %xmm10,%xmm0
  movaps %xmm15,0x68(%rsp)
  movdqa %xmm0,%xmm6
  movdqa %xmm0,%xmm15
  paddd  %xmm14,%xmm6
  movdqa %xmm6,%xmm0
  pslld  $0x2,%xmm0
  movdqa %xmm0,%xmm1
  paddd  %xmm6,%xmm1
  movdqa %xmm1,%xmm0
  pslld  $0x4,%xmm0
  psubd  %xmm1,%xmm0
  pslld  $0x2,%xmm0
  movdqa %xmm0,%xmm1
  paddd  %xmm6,%xmm1
  pslld  $0x5,%xmm1
  paddd  %xmm6,%xmm1
  movdqa 0x28(%rsp),%xmm6
  paddd  %xmm10,%xmm6
  movdqa %xmm6,%xmm0
  pslld  $0x3,%xmm0
  psubd  %xmm6,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm6,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm6,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm6,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm6,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm6,%xmm0
  movdqa %xmm8,%xmm6
  psubd  %xmm0,%xmm6
  movdqa %xmm12,%xmm0
  paddd  %xmm9,%xmm0
  movaps %xmm6,-0x8(%rsp)
  movdqa %xmm0,%xmm6
  pslld  $0x2,%xmm0
  paddd  %xmm6,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm6,%xmm0
  pslld  $0x7,%xmm0
  paddd  %xmm6,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm6,%xmm0
  psubd  %xmm0,%xmm8
  movdqa %xmm14,%xmm0
  pslld  $0x6,%xmm0
  movaps %xmm8,-0x18(%rsp)
  movdqa %xmm1,%xmm8
  movdqa D11(%rip),%xmm6
  psubd  %xmm14,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm14,%xmm0
  pslld  $0x4,%xmm0
  paddd  %xmm14,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm14,%xmm0
  psubd  %xmm0,%xmm8
  movdqa %xmm15,%xmm0
  pslld  $0x1,%xmm0
  movaps %xmm8,0x48(%rsp)
  movdqa D12(%rip),%xmm8
  paddd  %xmm15,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm15,%xmm0
  pslld  $0x5,%xmm0
  psubd  %xmm15,%xmm0
  movdqa %xmm1,%xmm15
  movdqa 0x8(%rsp),%xmm1
  paddd  0x18(%rsp),%xmm1
  pslld  $0x2,%xmm0
  psubd  %xmm0,%xmm15
  movdqa -0x78(%rsp),%xmm0
  paddd  %xmm8,%xmm1
  paddd  -0x68(%rsp),%xmm0
  psrad  $0x2,%xmm1
  paddd  %xmm6,%xmm1
  paddd  %xmm8,%xmm0
  psrad  $0x3,%xmm1
  psrad  $0x2,%xmm0
  paddd  %xmm6,%xmm0
  psrad  $0x3,%xmm0
  movdqa %xmm0,%xmm14
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm14
  movdqa %xmm0,%xmm1
  punpckhwd %xmm14,%xmm1
  punpcklwd %xmm14,%xmm0
  punpcklwd %xmm1,%xmm0
  movups %xmm0,(%rdi)
  movdqa %xmm2,%xmm0
  pslld  $0x1,%xmm0
  paddd  %xmm2,%xmm0
  movdqa %xmm0,%xmm14
  pslld  $0xa,%xmm14
  paddd  %xmm14,%xmm0
  movdqa %xmm10,%xmm14
  pslld  $0x1,%xmm14
  pslld  $0x2,%xmm0
  movdqa %xmm14,%xmm1
  psubd  %xmm2,%xmm0
  paddd  -0x28(%rsp),%xmm0
  movdqa D33(%rip),%xmm2
  paddd  %xmm10,%xmm1
  paddd  -0x58(%rsp),%xmm0
  movdqa %xmm1,%xmm14
  pslld  $0xa,%xmm14
  paddd  %xmm2,%xmm0
  paddd  %xmm14,%xmm1
  psrad  $0xf,%xmm0
  pslld  $0x2,%xmm1
  paddd  %xmm6,%xmm0
  psubd  %xmm10,%xmm1
  paddd  -0x8(%rsp),%xmm1
  psrad  $0x3,%xmm0
  movdqa %xmm0,%xmm10
  paddd  %xmm15,%xmm1
  paddd  %xmm2,%xmm1
  psrad  $0xf,%xmm1
  paddd  %xmm6,%xmm1
  psrad  $0x3,%xmm1
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm10
  movdqa 0x38(%rsp),%xmm1
  movdqa %xmm0,%xmm14
  punpcklwd %xmm10,%xmm0
  punpckhwd %xmm10,%xmm14
  movdqa %xmm13,%xmm10
  punpcklwd %xmm14,%xmm0
  pslld  $0x1,%xmm10
  movdqa 0x58(%rsp),%xmm14
  movups %xmm0,0x10(%rdi)
  movdqa %xmm1,%xmm0
  pslld  $0x1,%xmm0
  paddd  %xmm1,%xmm0
  pslld  $0x4,%xmm0
  paddd  %xmm1,%xmm0
  pslld  $0x6,%xmm0
  psubd  %xmm1,%xmm0
  movdqa %xmm10,%xmm1
  paddd  %xmm13,%xmm1
  pslld  $0x1,%xmm0
  pslld  $0x4,%xmm1
  paddd  %xmm14,%xmm0
  paddd  %xmm13,%xmm1
  paddd  %xmm2,%xmm0
  pslld  $0x6,%xmm1
  psrad  $0xf,%xmm0
  psubd  %xmm13,%xmm1
  movdqa 0x68(%rsp),%xmm13
  paddd  %xmm6,%xmm0
  pslld  $0x1,%xmm1
  psrad  $0x3,%xmm0
  paddd  %xmm13,%xmm1
  movdqa %xmm0,%xmm10
  paddd  %xmm2,%xmm1
  psrad  $0xf,%xmm1
  paddd  %xmm6,%xmm1
  psrad  $0x3,%xmm1
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm10
  movdqa %xmm0,%xmm1
  punpcklwd %xmm10,%xmm0
  punpckhwd %xmm10,%xmm1
  punpcklwd %xmm1,%xmm0
  movups %xmm0,0x20(%rdi)
  movdqa %xmm4,%xmm0
  pslld  $0x1,%xmm0
  paddd  %xmm4,%xmm0
  movdqa %xmm0,%xmm10
  pslld  $0x4,%xmm10
  paddd  %xmm10,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm4,%xmm0
  movdqa %xmm0,%xmm10
  pslld  $0x5,%xmm10
  movdqa %xmm10,%xmm1
  movdqa 0x48(%rsp),%xmm10
  psubd  %xmm0,%xmm1
  movdqa %xmm1,%xmm0
  movdqa %xmm9,%xmm1
  pslld  $0x1,%xmm1
  pslld  $0x2,%xmm0
  paddd  -0x38(%rsp),%xmm0
  paddd  %xmm9,%xmm1
  paddd  -0x48(%rsp),%xmm0
  movdqa %xmm1,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm2,%xmm0
  paddd  %xmm4,%xmm1
  psrad  $0xf,%xmm0
  pslld  $0x2,%xmm1
  paddd  %xmm6,%xmm0
  psubd  %xmm9,%xmm1
  psrad  $0x3,%xmm0
  movdqa %xmm1,%xmm9
  pslld  $0x5,%xmm9
  movdqa %xmm9,%xmm4
  psubd  %xmm1,%xmm4
  movdqa -0x18(%rsp),%xmm1
  movdqa %xmm4,%xmm9
  pslld  $0x2,%xmm9
  paddd  %xmm9,%xmm1
  movdqa %xmm0,%xmm9
  paddd  %xmm10,%xmm1
  paddd  %xmm2,%xmm1
  psrad  $0xf,%xmm1
  paddd  %xmm6,%xmm1
  psrad  $0x3,%xmm1
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm9
  movdqa %xmm0,%xmm1
  punpcklwd %xmm9,%xmm0
  punpckhwd %xmm9,%xmm1
  punpcklwd %xmm1,%xmm0
  movdqa 0x18(%rsp),%xmm1
  psubd  0x8(%rsp),%xmm1
  movups %xmm0,0x30(%rdi)
  movdqa -0x78(%rsp),%xmm0
  psubd  -0x68(%rsp),%xmm0
  paddd  %xmm8,%xmm1
  paddd  %xmm8,%xmm0
  psrad  $0x2,%xmm1
  psrad  $0x2,%xmm0
  paddd  %xmm6,%xmm1
  paddd  %xmm6,%xmm0
  psrad  $0x3,%xmm1
  psrad  $0x3,%xmm0
  movdqa %xmm0,%xmm8
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm8
  movdqa %xmm0,%xmm1
  punpckhwd %xmm8,%xmm1
  punpcklwd %xmm8,%xmm0
  punpcklwd %xmm1,%xmm0
  movdqa -0x58(%rsp),%xmm1
  movups %xmm0,0x40(%rdi)
  movdqa %xmm3,%xmm0
  pslld  $0x5,%xmm0
  paddd  %xmm3,%xmm0
  pslld  $0x3,%xmm0
  psubd  %xmm3,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm3,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm3,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm3,%xmm0
  paddd  -0x38(%rsp),%xmm0
  paddd  %xmm0,%xmm1
  movdqa %xmm12,%xmm0
  pslld  $0x5,%xmm0
  paddd  %xmm2,%xmm1
  paddd  %xmm12,%xmm0
  psrad  $0xf,%xmm1
  pslld  $0x3,%xmm0
  paddd  %xmm6,%xmm1
  psubd  %xmm12,%xmm0
  psrad  $0x3,%xmm1
  pslld  $0x2,%xmm0
  movdqa %xmm1,%xmm3
  psubd  %xmm12,%xmm0
  pslld  $0x2,%xmm0
  paddd  %xmm12,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm12,%xmm0
  paddd  -0x18(%rsp),%xmm0
  paddd  %xmm15,%xmm0
  paddd  %xmm2,%xmm0
  psrad  $0xf,%xmm0
  paddd  %xmm6,%xmm0
  psrad  $0x3,%xmm0
  punpcklwd %xmm0,%xmm1
  punpckhwd %xmm0,%xmm3
  movdqa %xmm1,%xmm0
  punpcklwd %xmm3,%xmm1
  punpckhwd %xmm3,%xmm0
  movdqa %xmm13,%xmm3
  punpcklwd %xmm0,%xmm1
  movdqa %xmm5,%xmm0
  pslld  $0x4,%xmm0
  movups %xmm1,0x50(%rdi)
  movdqa %xmm14,%xmm1
  psubd  %xmm5,%xmm0
  pslld  $0x2,%xmm0
  psubd  %xmm5,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm5,%xmm0
  pslld  $0x5,%xmm0
  paddd  %xmm5,%xmm0
  psubd  %xmm0,%xmm1
  paddd  %xmm2,%xmm1
  movdqa %xmm1,%xmm0
  movdqa %xmm7,%xmm1
  pslld  $0x4,%xmm1
  psrad  $0xf,%xmm0
  psubd  %xmm7,%xmm1
  paddd  %xmm6,%xmm0
  pslld  $0x2,%xmm1
  psrad  $0x3,%xmm0
  psubd  %xmm7,%xmm1
  pslld  $0x3,%xmm1
  paddd  %xmm7,%xmm1
  pslld  $0x5,%xmm1
  paddd  %xmm7,%xmm1
  psubd  %xmm1,%xmm3
  paddd  %xmm2,%xmm3
  movdqa %xmm3,%xmm1
  movdqa %xmm0,%xmm3
  psrad  $0xf,%xmm1
  paddd  %xmm6,%xmm1
  psrad  $0x3,%xmm1
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm3
  movdqa %xmm0,%xmm1
  punpcklwd %xmm3,%xmm0
  punpckhwd %xmm3,%xmm1
  punpcklwd %xmm1,%xmm0
  movups %xmm0,0x60(%rdi)
  movdqa %xmm11,%xmm0
  pslld  $0x3,%xmm0
  paddd  %xmm11,%xmm0
  movdqa %xmm0,%xmm1
  pslld  $0x4,%xmm1
  paddd  %xmm1,%xmm0
  pslld  $0x3,%xmm0
  psubd  %xmm11,%xmm0
  pslld  $0x1,%xmm0
  paddd  -0x28(%rsp),%xmm0
  movdqa 0x28(%rsp),%xmm4
  paddd  -0x48(%rsp),%xmm0
  movdqa %xmm4,%xmm1
  pslld  $0x3,%xmm1
  paddd  %xmm2,%xmm0
  paddd  %xmm4,%xmm1
  psrad  $0xf,%xmm0
  movdqa %xmm1,%xmm3
  paddd  %xmm6,%xmm0
  pslld  $0x4,%xmm3
  psrad  $0x3,%xmm0
  paddd  %xmm3,%xmm1
  pslld  $0x3,%xmm1
  psubd  %xmm4,%xmm1
  pslld  $0x1,%xmm1
  paddd  -0x8(%rsp),%xmm1
  paddd  %xmm10,%xmm1
  paddd  %xmm2,%xmm1
  movdqa %xmm0,%xmm2
  psrad  $0xf,%xmm1
  paddd  %xmm6,%xmm1
  psrad  $0x3,%xmm1
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm1
  punpcklwd %xmm1,%xmm0
  movups %xmm0,0x70(%rdi)
  sub    $0xffffffffffffff80,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D37
type: byte[16]
name: retrieve_data
arguments: data_tag: D11
type: byte[16]
name: retrieve_data
arguments: data_tag: D12
type: byte[16]
name: retrieve_data
arguments: data_tag: D33
type: byte[16]

tool: {"D37": [0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00]}

tool: {"D11": [0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

tool: {"D12": [0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00]}

tool: {"D33": [0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00]}

assistant: ```c
void fdct_int32(short *const block) {
  int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
  int tmp10, tmp11, tmp12, tmp13;
  int z1, z2, z3, z4, z5;
  short *blkptr;
  int *dataptr;
  int data[64];
  int i;
  dataptr = data;
  blkptr = block;
  for (i = 0; i < 8; i++) {
    tmp0 = blkptr[0] + blkptr[7];
    tmp7 = blkptr[0] - blkptr[7];
    tmp1 = blkptr[1] + blkptr[6];
    tmp6 = blkptr[1] - blkptr[6];
    tmp2 = blkptr[2] + blkptr[5];
    tmp5 = blkptr[2] - blkptr[5];
    tmp3 = blkptr[3] + blkptr[4];
    tmp4 = blkptr[3] - blkptr[4];
    tmp10 = tmp0 + tmp3;
    tmp13 = tmp0 - tmp3;
    tmp11 = tmp1 + tmp2;
    tmp12 = tmp1 - tmp2;
    dataptr[0] = (tmp10 + tmp11) << 2;
    dataptr[4] = (tmp10 - tmp11) << 2;
    z1 = (tmp12 + tmp13) * ((int)4433);
    dataptr[2] = (((z1 + tmp13 * ((int)6270)) + (((int)1) << ((13 - 2) - 1))) >> (13 - 2));
    dataptr[6] = (((z1 + tmp12 * (-((int)15137))) + (((int)1) << ((13 - 2) - 1))) >> (13 - 2));
    z1 = tmp4 + tmp7;
    z2 = tmp5 + tmp6;
    z3 = tmp4 + tmp6;
    z4 = tmp5 + tmp7;
    z5 = (z3 + z4) * ((int)9633);
    tmp4 *= ((int)2446);
    tmp5 *= ((int)16819);
    tmp6 *= ((int)25172);
    tmp7 *= ((int)12299);
    z1 *= -((int)7373);
    z2 *= -((int)20995);
    z3 *= -((int)16069);
    z4 *= -((int)3196);
    z3 += z5;
    z4 += z5;
    dataptr[7] = (((tmp4 + z1 + z3) + (((int)1) << ((13 - 2) - 1))) >> (13 - 2));
    dataptr[5] = (((tmp5 + z2 + z4) + (((int)1) << ((13 - 2) - 1))) >> (13 - 2));
    dataptr[3] = (((tmp6 + z2 + z3) + (((int)1) << ((13 - 2) - 1))) >> (13 - 2));
    dataptr[1] = (((tmp7 + z1 + z4) + (((int)1) << ((13 - 2) - 1))) >> (13 - 2));
    dataptr += 8;
    blkptr += 8;
  }
  dataptr = data;
  for (i = 0; i < 8; i++) {
    tmp0 = dataptr[0] + dataptr[56];
    tmp7 = dataptr[0] - dataptr[56];
    tmp1 = dataptr[8] + dataptr[48];
    tmp6 = dataptr[8] - dataptr[48];
    tmp2 = dataptr[16] + dataptr[40];
    tmp5 = dataptr[16] - dataptr[40];
    tmp3 = dataptr[24] + dataptr[32];
    tmp4 = dataptr[24] - dataptr[32];
    tmp10 = tmp0 + tmp3;
    tmp13 = tmp0 - tmp3;
    tmp11 = tmp1 + tmp2;
    tmp12 = tmp1 - tmp2;
    dataptr[0] = (((tmp10 + tmp11) + (((int)1) << ((2) - 1))) >> (2));
    dataptr[32] = (((tmp10 - tmp11) + (((int)1) << ((2) - 1))) >> (2));
    z1 = (tmp12 + tmp13) * ((int)4433);
    dataptr[16] = (((z1 + tmp13 * ((int)6270)) + (((int)1) << ((13 + 2) - 1))) >> (13 + 2));
    dataptr[48] = (((z1 + tmp12 * (-((int)15137))) + (((int)1) << ((13 + 2) - 1))) >> (13 + 2));
    z1 = tmp4 + tmp7;
    z2 = tmp5 + tmp6;
    z3 = tmp4 + tmp6;
    z4 = tmp5 + tmp7;
    z5 = (z3 + z4) * ((int)9633);
    tmp4 *= ((int)2446);
    tmp5 *= ((int)16819);
    tmp6 *= ((int)25172);
    tmp7 *= ((int)12299);
    z1 *= -((int)7373);
    z2 *= -((int)20995);
    z3 *= -((int)16069);
    z4 *= -((int)3196);
    z3 += z5;
    z4 += z5;
    dataptr[56] = (((tmp4 + z1 + z3) + (((int)1) << ((13 + 2) - 1))) >> (13 + 2));
    dataptr[40] = (((tmp5 + z2 + z4) + (((int)1) << ((13 + 2) - 1))) >> (13 + 2));
    dataptr[24] = (((tmp6 + z2 + z3) + (((int)1) << ((13 + 2) - 1))) >> (13 + 2));
    dataptr[8] = (((tmp7 + z1 + z4) + (((int)1) << ((13 + 2) - 1))) >> (13 + 2));
    dataptr++;
  }
  for (i = 0; i < 64; i++)
    block[i] = (short int)(((data[i]) + (((int)1) << ((3) - 1))) >> (3));
}
```