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

```asm
<int_to_SB16_pcm>:
  endbr64
  test   %edi,%edi
  je     L316
  mov    %edi,%r9d
  mov    %rsi,%r8
  lea    -0x1(%rdi),%edi
  mov    %rdx,%rcx
  mov    %r9d,%esi
  lea    (%r8,%rsi,4),%rax
  cmp    %rax,%rdx
  lea    (%rdx,%rsi,2),%rdx
  setae  %al
  cmp    %rdx,%r8
  setae  %dl
  or     %dl,%al
  je     L694
  cmp    $0xe,%edi
  jbe    L694
  mov    %r9d,%esi
  push   %rbx
  movdqa D151(%rip),%xmm0
  mov    %r8,%rax
  shr    $0x4,%esi
  psubd  D152(%rip),%xmm0
  pxor   %xmm15,%xmm15
  mov    %rcx,%rdx
  movdqa D127(%rip),%xmm14
  sub    $0x1,%esi
  shl    $0x6,%rsi
  movaps %xmm0,-0x10(%rsp)
  lea    0x40(%r8,%rsi,1),%rsi
  nopl   0x0(%rax)
L634:
  movdqu (%rax),%xmm1
  movdqu (%rax),%xmm0
  add    $0x40,%rax
  add    $0x20,%rdx
  movdqu -0x30(%rax),%xmm7
  movdqu -0x10(%rax),%xmm3
  movdqa %xmm15,%xmm9
  movdqa %xmm15,%xmm8
  movdqu -0x40(%rax),%xmm6
  paddd  D147(%rip),%xmm6
  punpcklwd %xmm7,%xmm1
  punpckhwd %xmm7,%xmm0
  movdqu -0x10(%rax),%xmm7
  movdqu -0x20(%rax),%xmm5
  movdqa %xmm1,%xmm2
  punpcklwd %xmm0,%xmm1
  movdqu -0x10(%rax),%xmm4
  paddd  D147(%rip),%xmm5
  punpckhwd %xmm0,%xmm2
  movdqu -0x20(%rax),%xmm0
  psubd  D152(%rip),%xmm5
  punpcklwd %xmm2,%xmm1
  paddd  D147(%rip),%xmm4
  psubd  D152(%rip),%xmm4
  punpckhwd %xmm3,%xmm0
  movdqu -0x20(%rax),%xmm3
  movdqu -0x20(%rax),%xmm10
  punpcklwd %xmm7,%xmm3
  movdqa %xmm3,%xmm2
  punpcklwd %xmm0,%xmm3
  punpckhwd %xmm0,%xmm2
  movdqa %xmm14,%xmm0
  punpcklwd %xmm2,%xmm3
  movdqa %xmm14,%xmm2
  pand   %xmm1,%xmm2
  psraw  $0x8,%xmm1
  pand   %xmm3,%xmm0
  movdqa %xmm2,%xmm7
  movdqu -0x40(%rax),%xmm2
  psraw  $0x8,%xmm3
  pand   %xmm14,%xmm1
  packuswb %xmm0,%xmm7
  movdqa -0x10(%rsp),%xmm0
  pand   %xmm14,%xmm3
  movaps %xmm7,-0x20(%rsp)
  movdqa %xmm6,%xmm7
  movdqu -0x30(%rax),%xmm6
  psubd  D152(%rip),%xmm7
  paddd  D147(%rip),%xmm6
  psubd  D152(%rip),%xmm6
  pcmpgtd %xmm0,%xmm5
  pcmpgtd %xmm0,%xmm7
  pcmpgtd %xmm0,%xmm4
  packuswb %xmm3,%xmm1
  pcmpgtd %xmm0,%xmm6
  movdqa %xmm15,%xmm0
  pcmpgtd %xmm2,%xmm0
  movdqu -0x30(%rax),%xmm2
  pcmpeqd %xmm15,%xmm5
  pcmpeqd %xmm15,%xmm7
  pcmpeqd %xmm15,%xmm4
  pcmpgtd %xmm2,%xmm9
  pcmpeqd %xmm15,%xmm6
  movdqa %xmm15,%xmm2
  pcmpgtd %xmm10,%xmm2
  movdqu -0x10(%rax),%xmm10
  movdqa %xmm0,%xmm13
  pand   %xmm7,%xmm13
  pcmpeqd %xmm15,%xmm0
  pcmpgtd %xmm10,%xmm8
  movdqa %xmm9,%xmm12
  movdqa %xmm13,%xmm3
  movdqa %xmm2,%xmm11
  pcmpeqd %xmm15,%xmm2
  pand   %xmm6,%xmm12
  punpcklwd %xmm12,%xmm3
  pand   %xmm5,%xmm11
  pand   %xmm7,%xmm0
  movdqa %xmm8,%xmm10
  pcmpeqd %xmm15,%xmm8
  pand   %xmm4,%xmm10
  pcmpeqd %xmm15,%xmm9
  pand   %xmm5,%xmm2
  movdqa %xmm3,%xmm5
  pand   %xmm4,%xmm8
  movdqa %xmm13,%xmm4
  punpckhwd %xmm12,%xmm4
  pand   %xmm6,%xmm9
  punpckhwd %xmm4,%xmm5
  punpcklwd %xmm4,%xmm3
  movdqa %xmm11,%xmm4
  punpcklwd %xmm10,%xmm4
  punpcklwd %xmm5,%xmm3
  movdqa %xmm11,%xmm5
  punpckhwd %xmm10,%xmm5
  movdqa %xmm4,%xmm6
  pand   %xmm14,%xmm3
  punpckhwd %xmm5,%xmm6
  punpcklwd %xmm5,%xmm4
  punpcklwd %xmm6,%xmm4
  movdqu -0x40(%rax),%xmm6
  pand   %xmm14,%xmm4
  packuswb %xmm4,%xmm3
  movdqa %xmm1,%xmm4
  movdqa %xmm3,%xmm5
  pandn  D158(%rip),%xmm5
  pand   %xmm3,%xmm4
  pand   -0x20(%rsp),%xmm3
  por    %xmm4,%xmm5
  movdqa D128(%rip),%xmm4
  pcmpgtd %xmm6,%xmm4
  movdqa D128(%rip),%xmm6
  por    %xmm13,%xmm4
  movdqu -0x30(%rax),%xmm13
  pcmpgtd %xmm13,%xmm6
  movdqa %xmm6,%xmm7
  movdqa D128(%rip),%xmm6
  por    %xmm12,%xmm7
  movdqu -0x20(%rax),%xmm12
  pcmpgtd %xmm12,%xmm6
  movdqu -0x10(%rax),%xmm12
  por    %xmm11,%xmm6
  movdqa D128(%rip),%xmm11
  pcmpgtd %xmm12,%xmm11
  por    %xmm11,%xmm10
  movdqa %xmm0,%xmm11
  punpcklwd %xmm9,%xmm0
  punpckhwd %xmm9,%xmm11
  movdqa %xmm0,%xmm9
  punpckhwd %xmm11,%xmm9
  punpcklwd %xmm11,%xmm0
  punpcklwd %xmm9,%xmm0
  movdqa %xmm2,%xmm9
  punpcklwd %xmm8,%xmm2
  punpckhwd %xmm8,%xmm9
  movdqa %xmm2,%xmm8
  pand   %xmm14,%xmm0
  punpckhwd %xmm9,%xmm8
  punpcklwd %xmm9,%xmm2
  punpcklwd %xmm8,%xmm2
  pand   %xmm14,%xmm2
  packuswb %xmm2,%xmm0
  movdqa %xmm0,%xmm2
  pand   %xmm0,%xmm1
  pandn  %xmm5,%xmm2
  por    %xmm2,%xmm1
  movdqa %xmm4,%xmm2
  punpcklwd %xmm7,%xmm4
  punpckhwd %xmm7,%xmm2
  movdqa %xmm4,%xmm12
  punpckhwd %xmm2,%xmm12
  punpcklwd %xmm2,%xmm4
  movdqa %xmm6,%xmm2
  punpcklwd %xmm10,%xmm6
  punpckhwd %xmm10,%xmm2
  punpcklwd %xmm12,%xmm4
  movdqa %xmm6,%xmm13
  punpcklwd %xmm2,%xmm6
  pand   %xmm14,%xmm4
  punpckhwd %xmm2,%xmm13
  movdqa %xmm5,%xmm2
  punpcklwd %xmm13,%xmm6
  pand   %xmm14,%xmm6
  packuswb %xmm6,%xmm4
  movdqa %xmm4,%xmm5
  pand   %xmm4,%xmm2
  pandn  %xmm1,%xmm5
  movdqu -0x30(%rax),%xmm1
  por    %xmm2,%xmm5
  movdqu -0x40(%rax),%xmm2
  pcmpgtd D88(%rip),%xmm1
  pcmpgtd D88(%rip),%xmm2
  movdqa %xmm2,%xmm6
  punpcklwd %xmm1,%xmm2
  punpckhwd %xmm1,%xmm6
  movdqa %xmm2,%xmm1
  punpckhwd %xmm6,%xmm1
  punpcklwd %xmm6,%xmm2
  movdqu -0x10(%rax),%xmm6
  punpcklwd %xmm1,%xmm2
  movdqu -0x20(%rax),%xmm1
  pcmpgtd D88(%rip),%xmm6
  pand   %xmm14,%xmm2
  pcmpgtd D88(%rip),%xmm1
  movdqa %xmm1,%xmm10
  punpcklwd %xmm6,%xmm1
  punpckhwd %xmm6,%xmm10
  movdqa %xmm1,%xmm6
  punpckhwd %xmm10,%xmm6
  punpcklwd %xmm10,%xmm1
  punpcklwd %xmm6,%xmm1
  movdqa D178(%rip),%xmm6
  pand   %xmm14,%xmm1
  packuswb %xmm1,%xmm2
  movdqa %xmm2,%xmm1
  pand   %xmm2,%xmm6
  pandn  %xmm5,%xmm1
  movdqa -0x20(%rsp),%xmm5
  por    %xmm6,%xmm1
  pand   %xmm0,%xmm5
  pandn  %xmm3,%xmm0
  pand   %xmm4,%xmm3
  por    %xmm5,%xmm0
  pandn  %xmm0,%xmm4
  movdqa %xmm2,%xmm0
  por    %xmm3,%xmm4
  pandn  %xmm4,%xmm0
  por    %xmm2,%xmm0
  movdqa %xmm1,%xmm2
  punpcklbw %xmm0,%xmm2
  punpckhbw %xmm0,%xmm1
  movups %xmm2,-0x20(%rdx)
  movups %xmm1,-0x10(%rdx)
  cmp    %rax,%rsi
  jne    L634
  mov    %r9d,%esi
  and    $0xfffffff0,%esi
  mov    %esi,%eax
  lea    (%r8,%rax,4),%rdx
  lea    (%rcx,%rax,2),%rax
  cmp    %esi,%r9d
  je     L162
  mov    (%rdx),%ecx
  cmp    $0x7fff,%ecx
  jg     L519
  cmp    $0xffff8000,%ecx
  jl     L442
  movzbl %ch,%ebx
  mov    %ecx,%r8d
  mov    %ebx,%r9d
L340:
  mov    %edi,%ecx
  mov    %r9b,(%rax)
  mov    %r8b,0x1(%rax)
  sub    %esi,%ecx
  je     L162
  mov    0x4(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L514
  cmp    $0xffff8000,%ebx
  jge    L608
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L567
  nopl   0x0(%rax,%rax,1)
L694:
  xor    %eax,%eax
L147:
  mov    (%r8,%rax,4),%edx
  cmp    $0x7fff,%edx
  jg     L237
  movzbl %dh,%edi
  cmp    $0xffff8000,%edx
  jl     L399
L572:
  mov    %dil,(%rcx,%rax,2)
  mov    %dl,0x1(%rcx,%rax,2)
  add    $0x1,%rax
  cmp    %rax,%rsi
  jne    L147
  ret
  nopl   0x0(%rax,%rax,1)
L791:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L560:
  mov    %dil,0x1a(%rax)
  mov    %sil,0x1b(%rax)
  cmp    $0xd,%ecx
  je     L162
  mov    0x38(%rdx),%edx
  cmp    $0x7fff,%edx
  jle    L695
  mov    $0xffffffff,%edx
  mov    $0x7f,%ecx
L75:
  mov    %cl,0x1c(%rax)
  mov    %dl,0x1d(%rax)
L162:
  pop    %rbx
  ret
  nopl   0x0(%rax,%rax,1)
L237:
  mov    $0xffffffff,%edx
  mov    $0x7f,%edi
  jmp    L572
  nopl   0x0(%rax)
L519:
  mov    $0xffffffff,%r8d
  mov    $0x7f,%r9d
  jmp    L340
  nopl   0x0(%rax)
L399:
  xor    %edx,%edx
  mov    $0xffffff80,%edi
  jmp    L572
  nopl   0x0(%rax)
L514:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L567:
  mov    %dil,0x2(%rax)
  mov    %sil,0x3(%rax)
  cmp    $0x1,%ecx
  je     L162
  mov    0x8(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L326
  cmp    $0xffff8000,%ebx
  jge    L271
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L119
  nop
L326:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L119:
  mov    %dil,0x4(%rax)
  mov    %sil,0x5(%rax)
  cmp    $0x2,%ecx
  je     L162
  mov    0xc(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L310
  cmp    $0xffff8000,%ebx
  jge    L732
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L650
  nopl   0x0(%rax,%rax,1)
L310:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L650:
  mov    %dil,0x6(%rax)
  mov    %sil,0x7(%rax)
  cmp    $0x3,%ecx
  je     L162
  mov    0x10(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L579
  cmp    $0xffff8000,%ebx
  jge    L829
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L386
  nopl   0x0(%rax,%rax,1)
L579:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L386:
  mov    %dil,0x8(%rax)
  mov    %sil,0x9(%rax)
  cmp    $0x4,%ecx
  je     L162
  mov    0x14(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L251
  cmp    $0xffff8000,%ebx
  jge    L825
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L640
  nopl   0x0(%rax,%rax,1)
L251:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L640:
  mov    %dil,0xa(%rax)
  mov    %sil,0xb(%rax)
  cmp    $0x5,%ecx
  je     L162
  mov    0x18(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L762
  cmp    $0xffff8000,%ebx
  jge    L129
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L132
  nopl   0x0(%rax,%rax,1)
L442:
  xor    %r8d,%r8d
  mov    $0xffffff80,%r9d
  jmp    L340
  xchg   %ax,%ax
L762:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
L132:
  mov    %dil,0xc(%rax)
  mov    %sil,0xd(%rax)
  cmp    $0x6,%ecx
  je     L162
  mov    0x1c(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L204
  cmp    $0xffff8000,%ebx
  jl     L700
  movzbl %bh,%edi
  mov    %ebx,%esi
L74:
  mov    %dil,0xe(%rax)
  mov    %sil,0xf(%rax)
  cmp    $0x7,%ecx
  je     L162
  mov    0x20(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L804
  cmp    $0xffff8000,%ebx
  jl     L339
  movzbl %bh,%edi
  mov    %ebx,%esi
L393:
  mov    %dil,0x10(%rax)
  mov    %sil,0x11(%rax)
  cmp    $0x8,%ecx
  je     L162
  mov    0x24(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L726
  cmp    $0xffff8000,%ebx
  jl     L329
  movzbl %bh,%edi
  mov    %ebx,%esi
L619:
  mov    %dil,0x12(%rax)
  mov    %sil,0x13(%rax)
  cmp    $0x9,%ecx
  je     L162
  mov    0x28(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L5
  cmp    $0xffff8000,%ebx
  jl     L130
  movzbl %bh,%edi
  mov    %ebx,%esi
L660:
  mov    %dil,0x14(%rax)
  mov    %sil,0x15(%rax)
  cmp    $0xa,%ecx
  je     L162
  mov    0x2c(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L815
  cmp    $0xffff8000,%ebx
  jl     L655
  movzbl %bh,%edi
  mov    %ebx,%esi
L80:
  mov    %dil,0x16(%rax)
  mov    %sil,0x17(%rax)
  cmp    $0xb,%ecx
  je     L162
  mov    0x30(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L676
  cmp    $0xffff8000,%ebx
  jl     L734
  movzbl %bh,%edi
  mov    %ebx,%esi
L801:
  mov    %dil,0x18(%rax)
  mov    %sil,0x19(%rax)
  cmp    $0xc,%ecx
  je     L162
  mov    0x34(%rdx),%ebx
  cmp    $0x7fff,%ebx
  jg     L791
  cmp    $0xffff8000,%ebx
  jge    L504
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L560
  nopl   0x0(%rax,%rax,1)
L608:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L567
  nopw   0x0(%rax,%rax,1)
L204:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
  jmp    L74
  nop
L271:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L119
  nopw   0x0(%rax,%rax,1)
L732:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L650
  nopw   0x0(%rax,%rax,1)
L829:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L386
  nopw   0x0(%rax,%rax,1)
L825:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L640
  nopw   0x0(%rax,%rax,1)
L129:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L132
  nopw   0x0(%rax,%rax,1)
L804:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
  jmp    L393
  nop
L726:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
  jmp    L619
  nop
L5:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
  jmp    L660
  nop
L815:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
  jmp    L80
  nop
L316:
  ret
  nopl   0x0(%rax)
L676:
  mov    $0xffffffff,%esi
  mov    $0x7f,%edi
  jmp    L801
  nopw   0x0(%rax,%rax,1)
L700:
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L74
L339:
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L393
L695:
  movzbl %dh,%ecx
  cmp    $0xffff8000,%edx
  jge    L75
  xor    %edx,%edx
  mov    $0xffffff80,%ecx
  jmp    L75
L329:
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L619
L130:
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L660
L655:
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L80
L734:
  xor    %esi,%esi
  mov    $0xffffff80,%edi
  jmp    L801
L504:
  movzbl %bh,%edi
  mov    %ebx,%esi
  jmp    L560
```

tool_calls: name: extract_symbolic_data
arguments: label: D151
type: byte[16]
name: extract_symbolic_data
arguments: label: D152
type: byte[16]
name: extract_symbolic_data
arguments: label: D127
type: byte[16]
name: extract_symbolic_data
arguments: label: D147
type: byte[16]
name: extract_symbolic_data
arguments: label: D158
type: byte[16]
name: extract_symbolic_data
arguments: label: D128
type: byte[16]
name: extract_symbolic_data
arguments: label: D88
type: byte[16]
name: extract_symbolic_data
arguments: label: D178
type: byte[16]

tool: {"D151": [0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00]}

tool: {"D152": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80]}

tool: {"D127": [0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00]}

tool: {"D147": [0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00]}

tool: {"D158": [0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80]}

tool: {"D128": [0x00,0x80,0xff,0xff,0x00,0x80,0xff,0xff,0x00,0x80,0xff,0xff,0x00,0x80,0xff,0xff]}

tool: {"D88": [0xff,0x7f,0x00,0x00,0xff,0x7f,0x00,0x00,0xff,0x7f,0x00,0x00,0xff,0x7f,0x00,0x00]}

tool: {"D178": [0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f]}

assistant: ```c
void int_to_SB16_pcm(unsigned total_samples, const int int_samples[], unsigned char pcm_samples[]) {
  for (; total_samples; total_samples--) {
    register int i = int_samples[0];
    if (i > 0x7FFF)
      i = 0x7FFF;
    else if (i < -0x8000)
      i = -0x8000;
    if (i < 0) {
      i = (1 << 16) - (-i);
    }
    pcm_samples[0] = i >> 8;
    pcm_samples[1] = i & 0xFF;
    int_samples += 1;
    pcm_samples += 2;
  }
}
```