user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<SKP_Silk_LTP_analysis_filter_FIX>:
  endbr64
  push   %r15
  mov    %rdx,%rax
  mov    %rsi,%r11
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xc0,%rsp
  mov    0xf8(%rsp),%ebx
  mov    %rcx,0x40(%rsp)
  mov    %r8,0x48(%rsp)
  add    %r9d,%ebx
  movslq %r9d,%r9
  movslq %ebx,%rdx
  mov    %ebx,0x24(%rsp)
  lea    (%rdx,%rdx,1),%rsi
  mov    %rsi,0x30(%rsp)
  lea    (%r9,%r9,1),%rsi
  mov    %rsi,0x38(%rsp)
  test   %ebx,%ebx
  jle    L117
  mov    %rax,%r15
  mov    %ebx,%eax
  mov    %ebx,%esi
  movdqa D40(%rip),%xmm0
  shr    $0x3,%eax
  and    $0xfffffff8,%esi
  mov    %rdi,%r10
  mov    %r15,%r14
  sub    $0x1,%eax
  mov    %esi,0x68(%rsp)
  psubd  D36(%rip),%xmm0
  movq   $0x0,0x28(%rsp)
  add    $0x1,%rax
  movdqa D8(%rip),%xmm12
  shl    $0x4,%rax
  movaps %xmm0,0x8(%rsp)
  movdqa D35(%rip),%xmm11
  mov    %rax,0x60(%rsp)
  mov    %esi,%eax
  add    %rax,%rax
  mov    %rax,0x50(%rsp)
  lea    0x1(%rsi),%eax
  mov    %eax,0x6c(%rsp)
  add    %rax,%rax
  mov    %rax,0x78(%rsp)
  lea    0x2(%rsi),%eax
  mov    %eax,0x74(%rsp)
  add    %rax,%rax
  mov    %rax,0x80(%rsp)
  lea    0x3(%rsi),%eax
  mov    %eax,0x88(%rsp)
  add    %rax,%rax
  mov    %rax,0x90(%rsp)
  lea    0x4(%rsi),%eax
  mov    %eax,0x8c(%rsp)
  add    %rax,%rax
  mov    %rax,0x98(%rsp)
  lea    0x5(%rsi),%eax
  mov    %eax,0xa0(%rsp)
  add    %rax,%rax
  mov    %rax,0xa8(%rsp)
  lea    0x6(%rsi),%eax
  mov    %eax,0xa4(%rsp)
  add    %rax,%rax
  mov    %rax,0xb0(%rsp)
  lea    -0x1(%rbx),%eax
  mov    %eax,0x70(%rsp)
  mov    %ebx,%eax
  add    %rax,%rax
  mov    %rax,0x58(%rsp)
L402:
  mov    0x28(%rsp),%rbx
  mov    0x40(%rsp),%rax
  mov    %r10,-0x38(%rsp)
  mov    0x48(%rsp),%rdx
  movswl (%r14),%esi
  movslq (%rax,%rbx,4),%rcx
  mov    %r11,%rax
  movzwl 0x2(%r14),%r15d
  mov    (%rdx,%rbx,4),%edx
  movzwl 0x6(%r14),%ebp
  mov    %si,-0x58(%rsp)
  add    %rcx,%rcx
  mov    %esi,0x20(%rsp)
  movswl %r15w,%esi
  movzwl 0x8(%r14),%edi
  sub    %rcx,%rax
  movzwl %dx,%ebx
  mov    %edx,%r8d
  mov    $0xfffffffffffffffc,%rdx
  mov    %rax,%r13
  sub    %rcx,%rdx
  sar    $0x10,%r8d
  mov    %esi,0x1c(%rsp)
  add    $0x14,%r13
  add    %r11,%rdx
  mov    %ebx,0x18(%rsp)
  movswl 0x4(%r14),%r12d
  cmp    %r13,%r10
  lea    0x10(%r10),%r13
  mov    %r15w,-0x68(%rsp)
  movswl %bp,%ebx
  setae  -0x38(%rsp)
  cmp    %r13,%rdx
  movzbl -0x38(%rsp),%esi
  movswl %di,%r15d
  setae  %r13b
  mov    %bp,-0x48(%rsp)
  mov    %r11,%rbp
  or     %sil,%r13b
  mov    %r8w,-0x78(%rsp)
  je     L104
  lea    0x2(%r11),%r13
  mov    %r10,%rsi
  sub    %r13,%rsi
  cmp    $0xc,%rsi
  seta   -0x38(%rsp)
  cmpl   $0x6,0x70(%rsp)
  movzbl -0x38(%rsp),%esi
  seta   %r13b
  test   %r13b,%sil
  je     L104
  movd   -0x68(%rsp),%xmm0
  mov    %rax,%rsi
  mov    %rax,%rbp
  mov    0x60(%rsp),%r9
  punpcklwd %xmm0,%xmm0
  add    $0x4,%rsi
  lea    -0x2(%rax),%rcx
  add    $0x2,%rbp
  pshufd $0x0,%xmm0,%xmm2
  movd   %r12d,%xmm0
  movd   -0x58(%rsp),%xmm14
  punpcklwd %xmm0,%xmm0
  movaps %xmm2,-0x68(%rsp)
  punpcklwd %xmm14,%xmm14
  pxor   %xmm15,%xmm15
  pshufd $0x0,%xmm0,%xmm2
  movd   -0x48(%rsp),%xmm0
  pshufd $0x0,%xmm14,%xmm14
  punpcklwd %xmm0,%xmm0
  movaps %xmm2,-0x58(%rsp)
  pshufd $0x0,%xmm0,%xmm2
  movd   %edi,%xmm0
  xor    %edi,%edi
  punpcklwd %xmm0,%xmm0
  movaps %xmm2,-0x48(%rsp)
  pshufd $0x0,%xmm0,%xmm7
  movd   %r8d,%xmm0
  movaps %xmm7,-0x38(%rsp)
  punpcklwd %xmm0,%xmm0
  movd   0x18(%rsp),%xmm7
  pshufd $0x0,%xmm0,%xmm2
  movaps %xmm2,-0x28(%rsp)
  pshufd $0x0,%xmm7,%xmm2
  movaps %xmm2,-0x18(%rsp)
  psrlq  $0x20,%xmm2
  movaps %xmm2,-0x8(%rsp)
  nopl   0x0(%rax)
L115:
  movdqu (%r11,%rdi,1),%xmm2
  movdqa -0x68(%rsp),%xmm7
  movdqa -0x58(%rsp),%xmm5
  movdqa -0x48(%rsp),%xmm4
  movups %xmm2,(%r10,%rdi,1)
  movdqu (%rsi,%rdi,1),%xmm3
  movdqu (%rax,%rdi,1),%xmm6
  movdqu 0x0(%rbp,%rdi,1),%xmm13
  movdqu 0x0(%rbp,%rdi,1),%xmm8
  pmullw %xmm14,%xmm3
  movdqu (%rax,%rdi,1),%xmm10
  pmulhw %xmm5,%xmm6
  pmulhw %xmm7,%xmm8
  pmullw %xmm7,%xmm13
  movdqu (%rsi,%rdi,1),%xmm7
  pmullw %xmm5,%xmm10
  movdqu (%rcx,%rdi,1),%xmm5
  pmulhw %xmm14,%xmm7
  pmulhw %xmm4,%xmm5
  movdqa %xmm3,%xmm0
  movdqa %xmm13,%xmm1
  punpckhwd %xmm8,%xmm13
  punpcklwd %xmm8,%xmm1
  movdqa %xmm10,%xmm9
  punpckhwd %xmm6,%xmm10
  punpcklwd %xmm7,%xmm0
  punpcklwd %xmm6,%xmm9
  punpckhwd %xmm7,%xmm3
  paddd  %xmm1,%xmm0
  movdqu (%rcx,%rdi,1),%xmm1
  paddd  %xmm13,%xmm3
  movdqa 0x8(%rsp),%xmm13
  pmullw %xmm4,%xmm1
  movdqa %xmm1,%xmm4
  punpckhwd %xmm5,%xmm1
  punpcklwd %xmm5,%xmm4
  paddd  %xmm10,%xmm1
  movdqa %xmm2,%xmm5
  paddd  %xmm9,%xmm4
  movdqu (%rdx,%rdi,1),%xmm9
  paddd  %xmm3,%xmm1
  movdqa %xmm15,%xmm3
  paddd  %xmm4,%xmm0
  movdqa -0x38(%rsp),%xmm4
  pcmpgtw %xmm2,%xmm3
  movaps %xmm0,-0x78(%rsp)
  movdqu (%rdx,%rdi,1),%xmm0
  pmullw %xmm4,%xmm9
  pmulhw %xmm4,%xmm0
  punpcklwd %xmm3,%xmm5
  movdqa %xmm0,%xmm4
  movdqa %xmm9,%xmm0
  punpcklwd %xmm4,%xmm0
  paddd  -0x78(%rsp),%xmm0
  punpckhwd %xmm4,%xmm9
  paddd  %xmm9,%xmm1
  movdqa %xmm2,%xmm4
  psrad  $0xd,%xmm0
  psrad  $0xd,%xmm1
  punpckhwd %xmm3,%xmm4
  paddd  D43(%rip),%xmm0
  paddd  D43(%rip),%xmm1
  psrad  $0x1,%xmm0
  psrad  $0x1,%xmm1
  psubd  %xmm0,%xmm5
  psubd  %xmm1,%xmm4
  movdqa %xmm0,%xmm3
  movdqa %xmm5,%xmm8
  movdqa %xmm4,%xmm7
  punpcklwd %xmm1,%xmm0
  pcmpgtd %xmm12,%xmm8
  pcmpgtd %xmm12,%xmm7
  punpckhwd %xmm1,%xmm3
  movdqa %xmm0,%xmm1
  punpcklwd %xmm3,%xmm0
  punpckhwd %xmm3,%xmm1
  movdqa %xmm8,%xmm3
  movdqa %xmm8,%xmm6
  punpcklwd %xmm1,%xmm0
  movdqa D70(%rip),%xmm1
  punpcklwd %xmm7,%xmm3
  punpckhwd %xmm7,%xmm6
  psubw  %xmm0,%xmm2
  movdqa D70(%rip),%xmm0
  movdqa %xmm3,%xmm9
  punpcklwd %xmm6,%xmm3
  paddd  %xmm5,%xmm1
  punpckhwd %xmm6,%xmm9
  movdqa D13(%rip),%xmm6
  paddd  %xmm4,%xmm0
  psubd  D36(%rip),%xmm1
  punpcklwd %xmm9,%xmm3
  psubd  D36(%rip),%xmm0
  pand   %xmm3,%xmm6
  pandn  D22(%rip),%xmm3
  pcmpgtd %xmm13,%xmm1
  pcmpgtd %xmm13,%xmm0
  por    %xmm6,%xmm3
  movdqa %xmm11,%xmm6
  pcmpgtd %xmm5,%xmm6
  movdqa %xmm11,%xmm5
  pcmpgtd %xmm4,%xmm5
  movdqa %xmm6,%xmm4
  movdqa %xmm6,%xmm9
  punpcklwd %xmm5,%xmm4
  punpckhwd %xmm5,%xmm9
  movdqa %xmm4,%xmm10
  punpcklwd %xmm9,%xmm4
  punpckhwd %xmm9,%xmm10
  movdqa D22(%rip),%xmm9
  punpcklwd %xmm10,%xmm4
  pxor   %xmm10,%xmm10
  pand   %xmm4,%xmm9
  pcmpeqd %xmm0,%xmm10
  pandn  %xmm3,%xmm4
  pxor   %xmm3,%xmm3
  por    %xmm9,%xmm4
  pcmpeqd %xmm1,%xmm3
  movdqa %xmm3,%xmm9
  punpcklwd %xmm10,%xmm3
  punpckhwd %xmm10,%xmm9
  movdqa %xmm3,%xmm10
  punpckhwd %xmm9,%xmm10
  punpcklwd %xmm9,%xmm3
  movdqa %xmm2,%xmm9
  punpcklwd %xmm10,%xmm3
  pand   %xmm3,%xmm9
  pandn  %xmm4,%xmm3
  movdqa %xmm12,%xmm4
  pand   %xmm8,%xmm4
  pandn  %xmm11,%xmm8
  por    %xmm9,%xmm3
  pmullw -0x28(%rsp),%xmm3
  por    %xmm4,%xmm8
  movdqa %xmm12,%xmm4
  pand   %xmm7,%xmm4
  pandn  %xmm11,%xmm7
  por    %xmm4,%xmm7
  movdqa %xmm11,%xmm4
  pand   %xmm6,%xmm4
  pandn  %xmm8,%xmm6
  por    %xmm4,%xmm6
  movdqa %xmm11,%xmm4
  pand   %xmm5,%xmm4
  pandn  %xmm7,%xmm5
  movdqa %xmm2,%xmm7
  por    %xmm4,%xmm5
  movdqa %xmm15,%xmm4
  pand   %xmm1,%xmm6
  pcmpgtw %xmm2,%xmm4
  pand   %xmm0,%xmm5
  punpcklwd %xmm4,%xmm7
  punpckhwd %xmm4,%xmm2
  pandn  %xmm7,%xmm1
  movdqa -0x8(%rsp),%xmm7
  pandn  %xmm2,%xmm0
  por    %xmm6,%xmm1
  movdqa -0x18(%rsp),%xmm6
  por    %xmm5,%xmm0
  movdqa %xmm6,%xmm4
  pmuludq %xmm1,%xmm4
  psrlq  $0x20,%xmm1
  pmuludq %xmm7,%xmm1
  pshufd $0x8,%xmm4,%xmm4
  pshufd $0x8,%xmm1,%xmm2
  movdqa %xmm4,%xmm1
  punpckldq %xmm2,%xmm1
  movdqa %xmm6,%xmm2
  pmuludq %xmm0,%xmm2
  psrlq  $0x20,%xmm0
  pmuludq %xmm7,%xmm0
  psrad  $0x10,%xmm1
  movdqa %xmm1,%xmm4
  pshufd $0x8,%xmm2,%xmm2
  pshufd $0x8,%xmm0,%xmm0
  punpckldq %xmm0,%xmm2
  movdqa %xmm1,%xmm0
  psrad  $0x10,%xmm2
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm4
  movdqa %xmm0,%xmm1
  punpcklwd %xmm4,%xmm0
  punpckhwd %xmm4,%xmm1
  punpcklwd %xmm1,%xmm0
  paddw  %xmm3,%xmm0
  movups %xmm0,(%r10,%rdi,1)
  add    $0x10,%rdi
  cmp    %r9,%rdi
  jne    L115
  mov    0x50(%rsp),%rcx
  mov    0x68(%rsp),%edx
  add    %rcx,%rax
  cmp    %edx,0x24(%rsp)
  je     L52
  lea    (%r10,%rcx,1),%rsi
  movzwl (%r11,%rcx,1),%ecx
  mov    %cx,(%rsi)
  movswl (%rax),%edi
  movswl 0x4(%rax),%edx
  imul   0x20(%rsp),%edx
  imul   %r12d,%edi
  add    %edi,%edx
  movswl -0x2(%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl -0x4(%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl 0x2(%rax),%edi
  imul   0x1c(%rsp),%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jg     L292
  cmp    $0xffff8000,%edi
  jl     L239
  sub    %edx,%ecx
  movswl %cx,%edx
L159:
  imul   0x18(%rsp),%edx
  imul   %r8d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,(%rsi)
  mov    0x6c(%rsp),%ecx
  cmp    %ecx,0x24(%rsp)
  jle    L52
  mov    0x78(%rsp),%rcx
  lea    (%r10,%rcx,1),%rsi
  movzwl (%r11,%rcx,1),%ecx
  mov    %cx,(%rsi)
  movswl 0x2(%rax),%edi
  movswl 0x6(%rax),%edx
  imul   0x20(%rsp),%edx
  imul   %r12d,%edi
  add    %edi,%edx
  movswl (%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl -0x2(%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl 0x4(%rax),%edi
  imul   0x1c(%rsp),%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jg     L304
  cmp    $0xffff8000,%edi
  jl     L220
  sub    %edx,%ecx
  movswl %cx,%edx
L277:
  imul   0x18(%rsp),%edx
  imul   %r8d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,(%rsi)
  mov    0x24(%rsp),%ecx
  cmp    %ecx,0x74(%rsp)
  jge    L52
  mov    0x80(%rsp),%rcx
  lea    (%r10,%rcx,1),%rsi
  movzwl (%r11,%rcx,1),%ecx
  mov    %cx,(%rsi)
  movswl 0x4(%rax),%edi
  movswl 0x8(%rax),%edx
  imul   0x20(%rsp),%edx
  imul   %r12d,%edi
  add    %edi,%edx
  movswl 0x2(%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl (%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl 0x6(%rax),%edi
  imul   0x1c(%rsp),%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jg     L192
  cmp    $0xffff8000,%edi
  jl     L289
  sub    %edx,%ecx
  movswl %cx,%edx
L235:
  imul   0x18(%rsp),%edx
  imul   %r8d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,(%rsi)
  mov    0x88(%rsp),%ecx
  cmp    %ecx,0x24(%rsp)
  jle    L52
  mov    0x90(%rsp),%rcx
  lea    (%r10,%rcx,1),%rsi
  movzwl (%r11,%rcx,1),%ecx
  mov    %cx,(%rsi)
  movswl 0x6(%rax),%edx
  movswl 0xa(%rax),%edi
  imul   0x20(%rsp),%edi
  imul   %r12d,%edx
  add    %edi,%edx
  movswl 0x4(%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl 0x2(%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl 0x8(%rax),%edi
  imul   0x1c(%rsp),%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jg     L386
  cmp    $0xffff8000,%edi
  jl     L362
  sub    %edx,%ecx
  movswl %cx,%edx
L378:
  imul   0x18(%rsp),%edx
  imul   %r8d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,(%rsi)
  mov    0x8c(%rsp),%ecx
  cmp    %ecx,0x24(%rsp)
  jle    L52
  mov    0x98(%rsp),%rcx
  lea    (%r10,%rcx,1),%rsi
  movzwl (%r11,%rcx,1),%ecx
  mov    %cx,(%rsi)
  movswl 0x8(%rax),%edi
  movswl 0xc(%rax),%edx
  imul   0x20(%rsp),%edx
  imul   %r12d,%edi
  add    %edi,%edx
  movswl 0x6(%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl 0x4(%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl 0xa(%rax),%edi
  imul   0x1c(%rsp),%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jg     L394
  cmp    $0xffff8000,%edi
  jl     L357
  sub    %edx,%ecx
  movswl %cx,%edx
  jmp    L256
L104:
  mov    0x58(%rsp),%rsi
  movzwl -0x78(%rsp),%r13d
  lea    (%rax,%rsi,1),%r9
  mov    %r10,%rsi
  jmp    L284
  nopl   0x0(%rax)
L46:
  cmp    $0xffff8000,%edi
  jl     L435
  sub    %edx,%ecx
  movswl %cx,%edx
L70:
  imul   0x18(%rsp),%edx
  add    $0x2,%rbp
  add    $0x2,%rsi
  imul   %r13d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,-0x2(%rsi)
  cmp    %r9,%rax
  je     L52
L284:
  movzwl 0x0(%rbp),%ecx
  add    $0x2,%rax
  mov    %cx,(%rsi)
  movswl 0x2(%rax),%edi
  movswl -0x2(%rax),%r8d
  movswl (%rax),%edx
  imul   0x1c(%rsp),%edx
  imul   %r12d,%r8d
  imul   0x20(%rsp),%edi
  add    %r8d,%edx
  add    %edi,%edx
  movswl -0x4(%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl -0x6(%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jle    L46
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
  jmp    L70
L49:
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
L65:
  imul   0x18(%rsp),%edx
  imul   %r8d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,(%rsi)
  mov    0xa4(%rsp),%ecx
  cmp    %ecx,0x24(%rsp)
  jle    L52
  mov    0xb0(%rsp),%rcx
  movzwl (%r11,%rcx,1),%edx
  lea    (%r10,%rcx,1),%rsi
  mov    %dx,(%rsi)
  movswl 0xc(%rax),%ecx
  movswl 0x10(%rax),%edi
  imul   0x20(%rsp),%edi
  imul   %r12d,%ecx
  add    %ecx,%edi
  movswl 0xa(%rax),%ecx
  imul   %ebx,%ecx
  add    %ecx,%edi
  movswl 0x8(%rax),%ecx
  movswl 0xe(%rax),%eax
  imul   0x1c(%rsp),%eax
  imul   %r15d,%ecx
  add    %edi,%ecx
  add    %ecx,%eax
  movswl %dx,%ecx
  sar    $0xd,%eax
  lea    0x1(%rax),%eax
  sar    %eax
  sub    %eax,%ecx
  cmp    $0x7fff,%ecx
  jle    L97
  mov    $0x7fff,%eax
  mov    $0x7fff,%edx
L360:
  imul   0x18(%rsp),%eax
  imul   %r8d,%edx
  sar    $0x10,%eax
  add    %eax,%edx
  mov    %dx,(%rsi)
L52:
  addq   $0x1,0x28(%rsp)
  mov    0x28(%rsp),%rax
  add    $0xa,%r14
  add    0x30(%rsp),%r10
  add    0x38(%rsp),%r11
  cmp    $0x4,%rax
  jne    L402
L117:
  add    $0xc0,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L435:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L70
L292:
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
  jmp    L159
L304:
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
  jmp    L277
L192:
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
  jmp    L235
L386:
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
  jmp    L378
L394:
  mov    $0x7fff,%edx
  mov    $0x7fff,%ecx
L256:
  imul   0x18(%rsp),%edx
  imul   %r8d,%ecx
  sar    $0x10,%edx
  add    %edx,%ecx
  mov    %cx,(%rsi)
  mov    0xa0(%rsp),%ecx
  cmp    %ecx,0x24(%rsp)
  jle    L52
  mov    0xa8(%rsp),%rcx
  lea    (%r10,%rcx,1),%rsi
  movzwl (%r11,%rcx,1),%ecx
  mov    %cx,(%rsi)
  movswl 0xa(%rax),%edi
  movswl 0xe(%rax),%edx
  imul   0x20(%rsp),%edx
  imul   %r12d,%edi
  add    %edi,%edx
  movswl 0x8(%rax),%edi
  imul   %ebx,%edi
  add    %edi,%edx
  movswl 0x6(%rax),%edi
  imul   %r15d,%edi
  add    %edi,%edx
  movswl 0xc(%rax),%edi
  imul   0x1c(%rsp),%edi
  add    %edi,%edx
  movswl %cx,%edi
  sar    $0xd,%edx
  add    $0x1,%edx
  sar    %edx
  sub    %edx,%edi
  cmp    $0x7fff,%edi
  jg     L49
  cmp    $0xffff8000,%edi
  jl     L9
  sub    %edx,%ecx
  movswl %cx,%edx
  jmp    L65
L239:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L159
L97:
  cmp    $0xffff8000,%ecx
  jl     L53
  sub    %eax,%edx
  movswl %dx,%eax
  jmp    L360
L220:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L277
L289:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L235
L362:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L378
L357:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L256
L9:
  mov    $0xffff8000,%edx
  mov    $0xffff8000,%ecx
  jmp    L65
L53:
  mov    $0xffff8000,%eax
  mov    $0xffff8000,%edx
  jmp    L360
```

tool_calls: name: retrieve_data
arguments: label: D40
type_infered: byte[16]
name: retrieve_data
arguments: label: D36
type_infered: byte[16]
name: retrieve_data
arguments: label: D8
type_infered: byte[16]
name: retrieve_data
arguments: label: D35
type_infered: byte[16]
name: retrieve_data
arguments: label: D43
type_infered: byte[16]
name: retrieve_data
arguments: label: D70
type_infered: byte[16]
name: retrieve_data
arguments: label: D13
type_infered: byte[16]
name: retrieve_data
arguments: label: D22
type_infered: byte[16]

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

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

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

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

tool: {"D43": [0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00]}

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

tool: {"D13": [0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f,0xff,0x7f]}

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

assistant: ```c
void SKP_Silk_LTP_analysis_filter_FIX(short *LTP_res, const short *x, const short LTPCoef_Q14[5 * 4], const int pitchL[4], const int invGains_Q16[4], const int subfr_length, const int pre_length) {
  const short *x_ptr, *x_lag_ptr;
  short Btmp_Q14[5];
  short *LTP_res_ptr;
  int k, i, j;
  int LTP_est;
  x_ptr = x;
  LTP_res_ptr = LTP_res;
  for (k = 0; k < 4; k++) {
    x_lag_ptr = x_ptr - pitchL[k];
    for (i = 0; i < 5; i++) {
      Btmp_Q14[i] = LTPCoef_Q14[k * 5 + i];
    }
    for (i = 0; i < subfr_length + pre_length; i++) {
      LTP_res_ptr[i] = x_ptr[i];
      LTP_est = ((int)((short)(x_lag_ptr[5 / 2])) * (int)((short)(Btmp_Q14[0])));
      for (j = 1; j < 5; j++) {
        LTP_est = ((int)((unsigned int)((LTP_est)) + (unsigned int)(((int)((short)((x_lag_ptr[5 / 2 - j]))) * (int)((short)((Btmp_Q14[j])))))));
      }
      LTP_est = ((14) == 1 ? ((LTP_est) >> 1) + ((LTP_est)&1) : (((LTP_est) >> ((14) - 1)) + 1) >> 1);
      LTP_res_ptr[i] = (short)(((int)x_ptr[i] - LTP_est) > 0x7FFF ? 0x7FFF : (((int)x_ptr[i] - LTP_est) < ((short)0x8000) ? ((short)0x8000) : ((int)x_ptr[i] - LTP_est)));
      LTP_res_ptr[i] = ((((invGains_Q16[k]) >> 16) * (int)((short)(LTP_res_ptr[i]))) + ((((invGains_Q16[k]) & 0x0000FFFF) * (int)((short)(LTP_res_ptr[i]))) >> 16));
      x_lag_ptr++;
    }
    LTP_res_ptr += subfr_length + pre_length;
    x_ptr += subfr_length;
  }
}
```