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

```asm
<foo>:
  endbr64
  movdqa D73(%rip),%xmm3
  movdqu (%rdx),%xmm5
  mov    %rdx,%r8
  movdqu (%rdx),%xmm4
  movdqu 0x10(%rdx),%xmm7
  movdqa %xmm3,%xmm6
  psrlq  $0x20,%xmm5
  movdqu (%rdi),%xmm2
  mov    0x30(%rdi),%eax
  psrlq  $0x20,%xmm6
  pmuludq %xmm3,%xmm4
  movdqu 0x10(%rdi),%xmm0
  movdqa D99(%rip),%xmm8
  pmuludq %xmm6,%xmm5
  pmuludq %xmm7,%xmm3
  movdqa D95(%rip),%xmm7
  movdqu 0x20(%rdi),%xmm1
  imul   $0x64,%eax,%r9d
  pshufd $0x8,%xmm4,%xmm4
  pshufd $0x8,%xmm5,%xmm5
  pshufd $0x8,%xmm3,%xmm3
  punpckldq %xmm5,%xmm4
  movdqu 0x10(%rdx),%xmm5
  mov    0x34(%rdi),%edx
  mov    0x38(%rdi),%edi
  movups %xmm4,(%rcx)
  psrlq  $0x20,%xmm5
  imul   $0x52a,%edx,%r10d
  pmuludq %xmm6,%xmm5
  add    %r10d,%r9d
  imul   $0x4a,%edi,%r10d
  pshufd $0x8,%xmm5,%xmm5
  add    %r10d,%r9d
  lea    (%rdx,%rdx,2),%r10d
  punpckldq %xmm5,%xmm3
  pshufd $0xc0,%xmm2,%xmm5
  mov    %r9d,0x30(%rsi)
  lea    (%rdx,%r10,4),%r10d
  movdqa %xmm5,%xmm6
  psrlq  $0x20,%xmm5
  movups %xmm3,0x10(%rcx)
  pmuludq %xmm7,%xmm6
  psrlq  $0x20,%xmm7
  pmuludq %xmm7,%xmm5
  imul   $0xd8,%eax,%r9d
  imul   $0x6a87,%edx,%edx
  imul   $0x17,%eax,%eax
  add    %r10d,%r9d
  imul   $0xbf,%edi,%r10d
  pshufd $0x8,%xmm6,%xmm6
  imul   $0x1f4,%edi,%edi
  pshufd $0x8,%xmm5,%xmm5
  add    %edx,%eax
  punpckldq %xmm5,%xmm6
  movdqa %xmm2,%xmm5
  add    %r10d,%r9d
  punpckldq %xmm0,%xmm5
  add    %edi,%eax
  mov    %r9d,0x34(%rsi)
  pshufd $0x6a,%xmm5,%xmm5
  mov    %eax,0x38(%rsi)
  imul   $0x195,0x20(%r8),%eax
  movdqa %xmm5,%xmm7
  psrlq  $0x20,%xmm5
  pmuludq %xmm8,%xmm7
  psrlq  $0x20,%xmm8
  pmuludq %xmm8,%xmm5
  movdqa D51(%rip),%xmm8
  pshufd $0x8,%xmm7,%xmm7
  pshufd $0x8,%xmm5,%xmm5
  punpckldq %xmm5,%xmm7
  movdqa %xmm2,%xmm5
  shufps $0xaf,%xmm0,%xmm2
  shufps $0x4e,%xmm0,%xmm5
  pshufd $0xc0,%xmm5,%xmm5
  paddd  %xmm7,%xmm6
  movdqa %xmm5,%xmm7
  psrlq  $0x20,%xmm5
  pmuludq %xmm8,%xmm7
  psrlq  $0x20,%xmm8
  pmuludq %xmm8,%xmm5
  pshufd $0x8,%xmm7,%xmm7
  pshufd $0x8,%xmm5,%xmm5
  punpckldq %xmm5,%xmm7
  movdqa %xmm2,%xmm5
  paddd  %xmm7,%xmm6
  psrlq  $0x20,%xmm2
  movdqa D70(%rip),%xmm7
  movups %xmm6,(%rsi)
  movdqa D58(%rip),%xmm6
  pmuludq %xmm6,%xmm5
  psrlq  $0x20,%xmm6
  pmuludq %xmm6,%xmm2
  pshufd $0x8,%xmm5,%xmm5
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm5
  pshufd $0xf0,%xmm0,%xmm2
  movdqa %xmm2,%xmm6
  psrlq  $0x20,%xmm2
  pmuludq %xmm7,%xmm6
  psrlq  $0x20,%xmm7
  pmuludq %xmm7,%xmm2
  movdqa D79(%rip),%xmm7
  pshufd $0x8,%xmm6,%xmm6
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm6
  movdqa %xmm5,%xmm2
  movdqa %xmm0,%xmm5
  shufps $0x5,%xmm1,%xmm5
  paddd  %xmm6,%xmm2
  movdqa %xmm5,%xmm6
  pmuludq %xmm7,%xmm6
  psrlq  $0x20,%xmm5
  psrlq  $0x20,%xmm7
  pmuludq %xmm7,%xmm5
  pshufd $0x8,%xmm6,%xmm6
  pshufd $0x8,%xmm5,%xmm5
  punpckldq %xmm5,%xmm6
  paddd  %xmm6,%xmm2
  movdqa D37(%rip),%xmm6
  movups %xmm2,0x10(%rsi)
  movdqa %xmm0,%xmm2
  punpckhdq %xmm1,%xmm0
  shufps $0x4e,%xmm1,%xmm2
  pshufd $0xfc,%xmm2,%xmm2
  pshufd $0x56,%xmm0,%xmm0
  pshufd $0xfc,%xmm1,%xmm1
  movdqa %xmm2,%xmm5
  psrlq  $0x20,%xmm2
  pmuludq %xmm6,%xmm5
  psrlq  $0x20,%xmm6
  pmuludq %xmm6,%xmm2
  movdqa D52(%rip),%xmm6
  pshufd $0x8,%xmm5,%xmm5
  pshufd $0x8,%xmm2,%xmm2
  punpckldq %xmm2,%xmm5
  movdqa %xmm0,%xmm2
  pmuludq %xmm6,%xmm2
  psrlq  $0x20,%xmm0
  psrlq  $0x20,%xmm6
  pmuludq %xmm6,%xmm0
  pshufd $0x8,%xmm2,%xmm2
  pshufd $0x8,%xmm0,%xmm0
  punpckldq %xmm0,%xmm2
  movdqa %xmm5,%xmm0
  movdqa D15(%rip),%xmm5
  paddd  %xmm2,%xmm0
  movdqa %xmm1,%xmm2
  pmuludq %xmm5,%xmm2
  psrlq  $0x20,%xmm1
  psrlq  $0x20,%xmm5
  pmuludq %xmm5,%xmm1
  pshufd $0x8,%xmm2,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  paddd  %xmm2,%xmm0
  movups %xmm0,0x20(%rsi)
  movd   %eax,%xmm0
  imul   $0x70,0x24(%r8),%eax
  movd   %eax,%xmm3
  punpckldq %xmm3,%xmm0
  movq   %xmm0,0x20(%rcx)
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D73
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D99
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D95
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D51
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D70
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D58
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D79
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D37
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D52
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D15
datatype: byte[16]

tool: {"D73": [0x95,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0x95,0x01,0x00,0x00,0x70,0x00,0x00,0x00]}

tool: {"D99": [0x2a,0x05,0x00,0x00,0x0d,0x00,0x00,0x00,0x87,0x6a,0x00,0x00,0x2a,0x05,0x00,0x00]}

tool: {"D95": [0x64,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x64,0x00,0x00,0x00]}

tool: {"D51": [0x4a,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x4a,0x00,0x00,0x00]}

tool: {"D70": [0x0d,0x00,0x00,0x00,0x87,0x6a,0x00,0x00,0x2a,0x05,0x00,0x00,0x0d,0x00,0x00,0x00]}

tool: {"D58": [0xd8,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xd8,0x00,0x00,0x00]}

tool: {"D79": [0xbf,0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,0xbf,0x00,0x00,0x00]}

tool: {"D37": [0x17,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x17,0x00,0x00,0x00]}

tool: {"D52": [0x87,0x6a,0x00,0x00,0x2a,0x05,0x00,0x00,0x0d,0x00,0x00,0x00,0x87,0x6a,0x00,0x00]}

tool: {"D15": [0xf4,0x01,0x00,0x00,0x4a,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xf4,0x01,0x00,0x00]}

assistant: ```c
void foo(int *__restrict__ pInput, int *__restrict__ pOutput, int *__restrict__ pInput2, int *__restrict__ pOutput2) {
  int i, a, b, c, d, e;
  for (i = 0; i < 16 / 3; i++) {
    a = *pInput++;
    b = *pInput++;
    c = *pInput++;
    d = *pInput2++;
    e = *pInput2++;
    *pOutput++ = 100 * a + 1322 * b + 74 * c;
    *pOutput++ = 216 * a + 13 * b + 191 * c;
    *pOutput++ = 23 * a + 27271 * b + 500 * c;
    *pOutput2++ = 405 * d;
    *pOutput2++ = 112 * e;
  }
}
```