user: 请从给定的汇编指令推导出C源代码：

```asm
<v4lconvert_yvyu_to_rgb24>:
  endbr64
  sub    $0x1,%ecx
  js     L70
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %edx,%ebx
  sub    $0x630,%rsp
  test   %edx,%edx
  jle    L265
  mov    %rdi,%rax
  lea    -0x1(%rdx),%edi
  mov    %ecx,%r13d
  mov    %rsi,%rbp
  mov    %edi,%edx
  mov    %edi,0x84(%rsp)
  shr    $0x5,%edi
  pxor   %xmm4,%xmm4
  shr    %edx
  pcmpgtb D354(%rip),%xmm4
  movdqa D354(%rip),%xmm3
  movdqa D103(%rip),%xmm14
  add    $0x1,%edx
  movdqa D136(%rip),%xmm7
  movdqa D146(%rip),%xmm13
  lea    -0x1(,%rdx,4),%rcx
  lea    (%rdx,%rdx,2),%r14
  mov    %rcx,0x58(%rsp)
  mov    %edi,%ecx
  lea    0x0(,%rdx,4),%r15
  lea    -0x1(%rdi),%edi
  mov    %ecx,%edx
  mov    %rdi,0x50(%rsp)
  shl    $0x5,%ecx
  punpcklbw %xmm4,%xmm3
  shl    $0x4,%edx
  mov    %ecx,0x80(%rsp)
  add    %r14,%r14
  lea    0x0(,%rdx,4),%rdi
  lea    (%rdx,%rdx,2),%rdx
  movaps %xmm4,0x68(%rsp)
  mov    %rdi,0x60(%rsp)
  lea    (%rdx,%rdx,1),%rdi
  mov    %rdi,0x78(%rsp)
  movaps %xmm3,0x38(%rsp)
L104:
  mov    0x58(%rsp),%rdi
  lea    0x2(%rbp),%rdx
  lea    (%rax,%r15,1),%r12
  lea    (%rax,%rdi,1),%rcx
  cmp    %rdx,%rcx
  setbe  %dl
  cmp    %r12,%rbp
  setae  %cl
  and    %ecx,%edx
  lea    0x0(%rbp,%r14,1),%rcx
  cmp    %rcx,%rax
  setae  %cl
  or     %dl,%cl
  je     L53
  cmpl   $0x1f,0x84(%rsp)
  jbe    L53
  mov    0x50(%rsp),%rdi
  movdqa D354(%rip),%xmm4
  mov    %rax,%rcx
  mov    %rbp,%rdx
  punpckhbw 0x68(%rsp),%xmm4
  add    $0x1,%rdi
  shl    $0x6,%rdi
  movaps %xmm4,0x28(%rsp)
  pxor   %xmm4,%xmm4
  add    %rax,%rdi
  nopl   (%rax)
L222:
  movdqu (%rcx),%xmm2
  movdqu 0x10(%rcx),%xmm6
  add    $0x40,%rcx
  add    $0x60,%rdx
  movdqu -0x20(%rcx),%xmm0
  movdqu -0x10(%rcx),%xmm5
  movdqa %xmm2,%xmm1
  movdqa %xmm6,%xmm3
  pand   %xmm14,%xmm2
  psrlw  $0x8,%xmm3
  psrlw  $0x8,%xmm1
  movdqa %xmm5,%xmm8
  packuswb %xmm3,%xmm1
  pand   %xmm14,%xmm6
  movdqa %xmm0,%xmm3
  pand   %xmm14,%xmm5
  pand   %xmm14,%xmm0
  packuswb %xmm6,%xmm2
  psrlw  $0x8,%xmm8
  packuswb %xmm5,%xmm0
  pand   %xmm14,%xmm2
  psrlw  $0x8,%xmm3
  pand   %xmm14,%xmm0
  packuswb %xmm8,%xmm3
  packuswb %xmm0,%xmm2
  movdqa %xmm1,%xmm0
  movdqa %xmm3,%xmm5
  psrlw  $0x8,%xmm0
  pand   %xmm14,%xmm3
  psrlw  $0x8,%xmm5
  pand   %xmm14,%xmm1
  packuswb %xmm5,%xmm0
  paddb  D108(%rip),%xmm0
  pxor   %xmm5,%xmm5
  packuswb %xmm3,%xmm1
  paddb  D108(%rip),%xmm1
  pxor   %xmm3,%xmm3
  pcmpgtb %xmm0,%xmm5
  movdqa %xmm0,%xmm8
  pcmpgtb %xmm1,%xmm3
  punpcklbw %xmm5,%xmm8
  punpckhbw %xmm5,%xmm0
  movdqa D322(%rip),%xmm5
  movdqa %xmm8,%xmm6
  pmulhw D322(%rip),%xmm6
  pmullw %xmm8,%xmm5
  pmullw 0x38(%rsp),%xmm8
  movdqa %xmm5,%xmm9
  punpckhwd %xmm6,%xmm5
  movdqa %xmm5,%xmm12
  movdqa D322(%rip),%xmm5
  punpcklwd %xmm6,%xmm9
  movdqa %xmm0,%xmm6
  movdqa %xmm9,%xmm15
  pmulhw D322(%rip),%xmm6
  psrad  $0x6,%xmm12
  pmullw %xmm0,%xmm5
  psrad  $0x6,%xmm15
  pmullw 0x28(%rsp),%xmm0
  movaps %xmm12,-0x68(%rsp)
  movaps %xmm15,-0x58(%rsp)
  movdqa %xmm5,%xmm9
  punpckhwd %xmm6,%xmm5
  punpcklwd %xmm6,%xmm9
  movdqa %xmm5,%xmm6
  psrad  $0x6,%xmm6
  movdqa %xmm9,%xmm11
  movaps %xmm6,-0x78(%rsp)
  movdqa %xmm1,%xmm6
  punpckhbw %xmm3,%xmm1
  punpcklbw %xmm3,%xmm6
  psrad  $0x6,%xmm11
  movdqa %xmm1,%xmm3
  movdqa %xmm6,%xmm9
  movdqa %xmm6,%xmm5
  movaps %xmm11,-0x48(%rsp)
  psllw  $0x2,%xmm9
  psllw  $0x1,%xmm5
  paddw  %xmm9,%xmm8
  psllw  $0x1,%xmm3
  movdqa %xmm1,%xmm9
  psllw  $0x2,%xmm9
  paddw  %xmm5,%xmm8
  paddw  %xmm6,%xmm5
  paddw  %xmm9,%xmm0
  movdqa %xmm5,%xmm15
  movdqa %xmm2,%xmm5
  paddw  %xmm3,%xmm0
  paddw  %xmm1,%xmm3
  psraw  $0x1,%xmm15
  pxor   %xmm1,%xmm1
  movdqa %xmm3,%xmm12
  movdqa %xmm2,%xmm3
  movaps %xmm15,-0x8(%rsp)
  psraw  $0x1,%xmm12
  punpcklbw %xmm1,%xmm3
  punpckhbw %xmm1,%xmm5
  movdqa %xmm8,%xmm10
  movdqa %xmm15,%xmm8
  movaps %xmm5,-0x18(%rsp)
  movdqa %xmm12,%xmm6
  paddw  %xmm3,%xmm8
  paddw  -0x18(%rsp),%xmm6
  pxor   %xmm9,%xmm9
  movaps %xmm12,0x8(%rsp)
  pcmpgtw %xmm8,%xmm9
  psraw  $0x3,%xmm0
  pxor   %xmm5,%xmm5
  pcmpgtw %xmm6,%xmm5
  movaps %xmm0,-0x28(%rsp)
  movdqa %xmm8,%xmm0
  psraw  $0x3,%xmm10
  punpcklwd %xmm9,%xmm0
  punpckhwd %xmm9,%xmm8
  movdqa %xmm6,%xmm9
  movaps %xmm10,-0x38(%rsp)
  punpcklwd %xmm5,%xmm9
  punpckhwd %xmm5,%xmm6
  movdqa %xmm12,%xmm5
  movdqa %xmm9,%xmm1
  movdqa %xmm15,%xmm9
  pand   %xmm14,%xmm5
  pand   %xmm14,%xmm9
  movdqa %xmm4,%xmm10
  movdqa %xmm9,%xmm11
  pcmpgtd %xmm8,%xmm10
  packuswb %xmm5,%xmm11
  movdqa %xmm4,%xmm5
  pcmpgtd %xmm0,%xmm5
  movaps %xmm11,0x18(%rsp)
  paddb  %xmm2,%xmm11
  movdqa %xmm5,%xmm9
  punpcklwd %xmm10,%xmm5
  punpckhwd %xmm10,%xmm9
  movdqa %xmm5,%xmm10
  punpckhwd %xmm9,%xmm10
  punpcklwd %xmm9,%xmm5
  movdqa %xmm4,%xmm9
  punpcklwd %xmm10,%xmm5
  pcmpgtd %xmm1,%xmm9
  movdqa %xmm4,%xmm10
  pcmpgtd %xmm6,%xmm10
  pand   %xmm14,%xmm5
  movdqa %xmm10,%xmm12
  movdqa %xmm9,%xmm10
  punpcklwd %xmm12,%xmm9
  punpckhwd %xmm12,%xmm10
  movdqa %xmm9,%xmm15
  punpcklwd %xmm10,%xmm9
  punpckhwd %xmm10,%xmm15
  movdqa %xmm8,%xmm10
  psubd  %xmm7,%xmm8
  punpcklwd %xmm15,%xmm9
  pcmpgtd %xmm13,%xmm10
  pcmpgtd D314(%rip),%xmm8
  pand   %xmm14,%xmm9
  packuswb %xmm9,%xmm5
  movdqa %xmm0,%xmm9
  psubd  %xmm7,%xmm0
  pcmpgtd %xmm13,%xmm9
  movdqa %xmm10,%xmm12
  pcmpgtd D314(%rip),%xmm0
  pcmpeqd %xmm4,%xmm8
  movdqa %xmm9,%xmm10
  punpcklwd %xmm12,%xmm9
  punpckhwd %xmm12,%xmm10
  pcmpeqd %xmm4,%xmm0
  movdqa %xmm9,%xmm15
  punpckhwd %xmm10,%xmm15
  punpcklwd %xmm10,%xmm9
  movdqa %xmm1,%xmm10
  punpcklwd %xmm15,%xmm9
  movdqa %xmm6,%xmm15
  psubd  %xmm7,%xmm1
  pcmpgtd %xmm13,%xmm15
  pcmpgtd %xmm13,%xmm10
  psubd  %xmm7,%xmm6
  pcmpgtd D314(%rip),%xmm1
  pcmpgtd D314(%rip),%xmm6
  pand   %xmm14,%xmm9
  movdqa %xmm10,%xmm12
  punpcklwd %xmm15,%xmm10
  pcmpeqd %xmm4,%xmm6
  pcmpeqd %xmm4,%xmm1
  punpckhwd %xmm15,%xmm12
  movdqa %xmm10,%xmm15
  punpcklwd %xmm12,%xmm10
  punpckhwd %xmm12,%xmm15
  punpcklwd %xmm15,%xmm10
  movdqa -0x28(%rsp),%xmm15
  pand   %xmm14,%xmm10
  packuswb %xmm10,%xmm9
  movdqa -0x38(%rsp),%xmm10
  pandn  %xmm9,%xmm5
  movdqa %xmm0,%xmm9
  punpcklwd %xmm8,%xmm0
  punpckhwd %xmm8,%xmm9
  movdqa %xmm0,%xmm8
  psubw  %xmm10,%xmm3
  punpckhwd %xmm9,%xmm8
  punpcklwd %xmm9,%xmm0
  movdqa %xmm4,%xmm9
  punpcklwd %xmm8,%xmm0
  movdqa %xmm1,%xmm8
  punpcklwd %xmm6,%xmm1
  punpckhwd %xmm6,%xmm8
  movdqa %xmm1,%xmm6
  pand   %xmm14,%xmm0
  punpckhwd %xmm8,%xmm6
  punpcklwd %xmm8,%xmm1
  movdqa %xmm10,%xmm8
  punpcklwd %xmm6,%xmm1
  movdqa -0x18(%rsp),%xmm6
  pand   %xmm14,%xmm8
  movdqa %xmm4,%xmm10
  pand   %xmm14,%xmm1
  packuswb %xmm1,%xmm0
  movdqa %xmm11,%xmm1
  psubw  %xmm15,%xmm6
  pand   %xmm0,%xmm1
  pandn  %xmm5,%xmm0
  pxor   %xmm5,%xmm5
  por    %xmm1,%xmm0
  pcmpgtw %xmm6,%xmm5
  movdqa %xmm0,%xmm11
  pxor   %xmm0,%xmm0
  pcmpgtw %xmm3,%xmm0
  movd   %xmm11,%esi
  movdqa %xmm0,%xmm1
  movdqa %xmm3,%xmm0
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm3
  movdqa %xmm6,%xmm1
  punpcklwd %xmm5,%xmm1
  pcmpgtd %xmm3,%xmm9
  punpckhwd %xmm5,%xmm6
  movdqa %xmm15,%xmm5
  pcmpgtd %xmm6,%xmm10
  movdqa %xmm8,%xmm15
  pand   %xmm14,%xmm5
  packuswb %xmm5,%xmm15
  movdqa %xmm4,%xmm5
  pcmpgtd %xmm0,%xmm5
  psubb  %xmm15,%xmm2
  movdqa %xmm5,%xmm8
  punpcklwd %xmm9,%xmm5
  punpckhwd %xmm9,%xmm8
  movdqa %xmm5,%xmm9
  punpckhwd %xmm8,%xmm9
  punpcklwd %xmm8,%xmm5
  movdqa %xmm4,%xmm8
  pcmpgtd %xmm1,%xmm8
  punpcklwd %xmm9,%xmm5
  pand   %xmm14,%xmm5
  movdqa %xmm8,%xmm9
  punpcklwd %xmm10,%xmm8
  punpckhwd %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  punpckhwd %xmm9,%xmm10
  punpcklwd %xmm9,%xmm8
  punpcklwd %xmm10,%xmm8
  movdqa %xmm3,%xmm10
  psubd  %xmm7,%xmm3
  pand   %xmm14,%xmm8
  pcmpgtd %xmm13,%xmm10
  packuswb %xmm8,%xmm5
  movdqa %xmm0,%xmm8
  psubd  %xmm7,%xmm0
  pcmpgtd %xmm13,%xmm8
  pcmpgtd D314(%rip),%xmm0
  pcmpgtd D314(%rip),%xmm3
  movdqa %xmm8,%xmm9
  pcmpeqd %xmm4,%xmm0
  punpcklwd %xmm10,%xmm8
  punpckhwd %xmm10,%xmm9
  pcmpeqd %xmm4,%xmm3
  movdqa %xmm8,%xmm10
  punpckhwd %xmm9,%xmm10
  punpcklwd %xmm9,%xmm8
  movdqa %xmm1,%xmm9
  psubd  %xmm7,%xmm1
  pcmpgtd %xmm13,%xmm9
  punpcklwd %xmm10,%xmm8
  pcmpgtd D314(%rip),%xmm1
  mov    %sil,-0x60(%rdx)
  movdqa %xmm6,%xmm10
  psubd  %xmm7,%xmm6
  movaps %xmm11,0x618(%rsp)
  pcmpgtd %xmm13,%xmm10
  pand   %xmm14,%xmm8
  movzbl 0x619(%rsp),%esi
  pcmpgtd D314(%rip),%xmm6
  mov    %sil,-0x5a(%rdx)
  pcmpeqd %xmm4,%xmm1
  movaps %xmm11,0x608(%rsp)
  movdqa %xmm10,%xmm12
  movzbl 0x60a(%rsp),%esi
  movdqa %xmm9,%xmm10
  punpcklwd %xmm12,%xmm9
  pcmpeqd %xmm4,%xmm6
  punpckhwd %xmm12,%xmm10
  mov    %sil,-0x54(%rdx)
  movdqa %xmm9,%xmm12
  punpcklwd %xmm10,%xmm9
  movaps %xmm11,0x5f8(%rsp)
  punpckhwd %xmm10,%xmm12
  movzbl 0x5fb(%rsp),%esi
  punpcklwd %xmm12,%xmm9
  mov    %sil,-0x4e(%rdx)
  pand   %xmm14,%xmm9
  movaps %xmm11,0x5e8(%rsp)
  packuswb %xmm9,%xmm8
  movzbl 0x5ec(%rsp),%esi
  pandn  %xmm8,%xmm5
  movdqa %xmm0,%xmm8
  punpcklwd %xmm3,%xmm0
  mov    %sil,-0x48(%rdx)
  punpckhwd %xmm3,%xmm8
  movdqa %xmm0,%xmm3
  movaps %xmm11,0x5d8(%rsp)
  punpckhwd %xmm8,%xmm3
  punpcklwd %xmm8,%xmm0
  movzbl 0x5dd(%rsp),%esi
  punpcklwd %xmm3,%xmm0
  movdqa %xmm1,%xmm3
  punpcklwd %xmm6,%xmm1
  mov    %sil,-0x42(%rdx)
  punpckhwd %xmm6,%xmm3
  movdqa %xmm1,%xmm6
  pand   %xmm14,%xmm0
  movaps %xmm11,0x5c8(%rsp)
  movzbl 0x5ce(%rsp),%esi
  punpckhwd %xmm3,%xmm6
  punpcklwd %xmm3,%xmm1
  punpcklwd %xmm6,%xmm1
  movdqa %xmm14,%xmm6
  mov    %sil,-0x3c(%rdx)
  pand   %xmm14,%xmm1
  movaps %xmm11,0x5b8(%rsp)
  packuswb %xmm1,%xmm0
  movzbl 0x5bf(%rsp),%esi
  pand   %xmm0,%xmm2
  pandn  %xmm5,%xmm0
  mov    %sil,-0x36(%rdx)
  por    %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  movaps %xmm11,0x5a8(%rsp)
  movzbl 0x5b0(%rsp),%esi
  mov    %sil,-0x30(%rdx)
  movaps %xmm11,0x598(%rsp)
  movzbl 0x5a1(%rsp),%esi
  mov    %sil,-0x2a(%rdx)
  movaps %xmm11,0x588(%rsp)
  movzbl 0x592(%rsp),%esi
  mov    %sil,-0x24(%rdx)
  movaps %xmm11,0x578(%rsp)
  movzbl 0x583(%rsp),%esi
  mov    %sil,-0x1e(%rdx)
  movaps %xmm11,0x568(%rsp)
  movzbl 0x574(%rsp),%esi
  mov    %sil,-0x18(%rdx)
  movaps %xmm11,0x558(%rsp)
  movzbl 0x565(%rsp),%esi
  mov    %sil,-0x12(%rdx)
  movaps %xmm11,0x548(%rsp)
  movzbl 0x556(%rsp),%esi
  mov    %sil,-0xc(%rdx)
  movaps %xmm11,0x538(%rsp)
  movzbl 0x547(%rsp),%esi
  mov    %sil,-0x6(%rdx)
  movd   %xmm0,%esi
  mov    %sil,-0x5f(%rdx)
  movaps %xmm0,0x528(%rsp)
  movzbl 0x529(%rsp),%esi
  mov    %sil,-0x59(%rdx)
  movaps %xmm0,0x518(%rsp)
  movzbl 0x51a(%rsp),%esi
  mov    %sil,-0x53(%rdx)
  movaps %xmm0,0x508(%rsp)
  movzbl 0x50b(%rsp),%esi
  mov    %sil,-0x4d(%rdx)
  movaps %xmm0,0x4f8(%rsp)
  movzbl 0x4fc(%rsp),%esi
  mov    %sil,-0x47(%rdx)
  movaps %xmm0,0x4e8(%rsp)
  movzbl 0x4ed(%rsp),%esi
  mov    %sil,-0x41(%rdx)
  movaps %xmm0,0x4d8(%rsp)
  movzbl 0x4de(%rsp),%esi
  mov    %sil,-0x3b(%rdx)
  movaps %xmm0,0x4c8(%rsp)
  movzbl 0x4cf(%rsp),%esi
  mov    %sil,-0x35(%rdx)
  movaps %xmm0,0x4b8(%rsp)
  movzbl 0x4c0(%rsp),%esi
  mov    %sil,-0x2f(%rdx)
  movaps %xmm0,0x4a8(%rsp)
  movzbl 0x4b1(%rsp),%esi
  mov    %sil,-0x29(%rdx)
  movaps %xmm0,0x498(%rsp)
  movzbl 0x4a2(%rsp),%esi
  mov    %sil,-0x23(%rdx)
  movaps %xmm0,0x488(%rsp)
  movzbl 0x493(%rsp),%esi
  mov    %sil,-0x1d(%rdx)
  movaps %xmm0,0x478(%rsp)
  movzbl 0x484(%rsp),%esi
  mov    %sil,-0x17(%rdx)
  movaps %xmm0,0x468(%rsp)
  movzbl 0x475(%rsp),%esi
  mov    %sil,-0x11(%rdx)
  movaps %xmm0,0x458(%rsp)
  movzbl 0x466(%rsp),%esi
  mov    %sil,-0xb(%rdx)
  movaps %xmm0,0x448(%rsp)
  movzbl 0x457(%rsp),%esi
  mov    %sil,-0x5(%rdx)
  movdqu -0x40(%rcx),%xmm3
  movdqu -0x30(%rcx),%xmm0
  pand   %xmm14,%xmm3
  pand   %xmm14,%xmm0
  packuswb %xmm0,%xmm3
  movdqu -0x20(%rcx),%xmm0
  movdqu -0x10(%rcx),%xmm1
  pand   %xmm3,%xmm6
  movdqa -0x58(%rsp),%xmm8
  psrlw  $0x8,%xmm3
  movdqa -0x68(%rsp),%xmm12
  pand   %xmm14,%xmm1
  pand   %xmm14,%xmm0
  movdqa %xmm6,%xmm10
  movdqa -0x48(%rsp),%xmm11
  packuswb %xmm1,%xmm0
  movdqa %xmm14,%xmm1
  movdqa %xmm8,%xmm9
  pand   %xmm0,%xmm1
  psrlw  $0x8,%xmm0
  punpcklwd -0x68(%rsp),%xmm9
  packuswb %xmm1,%xmm10
  packuswb %xmm0,%xmm3
  movdqa %xmm10,%xmm1
  movdqa %xmm10,%xmm6
  punpckhbw %xmm2,%xmm1
  punpcklbw %xmm2,%xmm6
  movdqa %xmm1,%xmm5
  movdqa %xmm6,%xmm0
  pxor   %xmm1,%xmm1
  movdqa %xmm5,%xmm2
  punpcklwd %xmm1,%xmm0
  punpckhwd %xmm1,%xmm6
  punpcklwd %xmm1,%xmm2
  punpckhwd %xmm1,%xmm5
  movdqa %xmm8,%xmm1
  paddd  %xmm8,%xmm0
  punpckhwd %xmm12,%xmm1
  movdqa %xmm9,%xmm8
  paddd  %xmm12,%xmm6
  punpckhwd %xmm1,%xmm9
  punpcklwd %xmm1,%xmm8
  movdqa -0x78(%rsp),%xmm12
  movdqa %xmm11,%xmm1
  punpcklwd %xmm9,%xmm8
  punpcklwd -0x78(%rsp),%xmm1
  movdqa %xmm11,%xmm9
  paddd  %xmm11,%xmm2
  pand   %xmm14,%xmm8
  punpckhwd %xmm12,%xmm9
  movdqa %xmm1,%xmm11
  paddd  -0x78(%rsp),%xmm5
  punpckhwd %xmm9,%xmm11
  punpcklwd %xmm9,%xmm1
  movdqa %xmm8,%xmm9
  punpcklwd %xmm11,%xmm1
  movdqa %xmm4,%xmm8
  movdqa %xmm4,%xmm11
  pcmpgtd %xmm6,%xmm8
  pcmpgtd %xmm5,%xmm11
  pand   %xmm14,%xmm1
  packuswb %xmm1,%xmm9
  movdqa %xmm4,%xmm1
  pcmpgtd %xmm0,%xmm1
  movaps %xmm9,-0x18(%rsp)
  paddb  %xmm9,%xmm10
  movdqa %xmm8,%xmm9
  movdqa %xmm1,%xmm8
  punpcklwd %xmm9,%xmm1
  punpckhwd %xmm9,%xmm8
  movdqa %xmm1,%xmm9
  punpckhwd %xmm8,%xmm9
  punpcklwd %xmm8,%xmm1
  movdqa %xmm4,%xmm8
  pcmpgtd %xmm2,%xmm8
  punpcklwd %xmm9,%xmm1
  pand   %xmm14,%xmm1
  movdqa %xmm8,%xmm9
  punpcklwd %xmm11,%xmm8
  punpckhwd %xmm11,%xmm9
  movdqa %xmm8,%xmm11
  punpckhwd %xmm9,%xmm11
  punpcklwd %xmm9,%xmm8
  punpcklwd %xmm11,%xmm8
  movdqa %xmm6,%xmm11
  psubd  %xmm7,%xmm6
  pand   %xmm14,%xmm8
  pcmpgtd %xmm13,%xmm11
  packuswb %xmm8,%xmm1
  movdqa %xmm0,%xmm8
  psubd  %xmm7,%xmm0
  pcmpgtd %xmm13,%xmm8
  pcmpgtd D314(%rip),%xmm0
  pcmpgtd D314(%rip),%xmm6
  movdqa %xmm8,%xmm9
  pcmpeqd %xmm4,%xmm0
  punpcklwd %xmm11,%xmm8
  punpckhwd %xmm11,%xmm9
  pcmpeqd %xmm4,%xmm6
  movdqa %xmm8,%xmm11
  punpckhwd %xmm9,%xmm11
  punpcklwd %xmm9,%xmm8
  movdqa %xmm2,%xmm9
  punpcklwd %xmm11,%xmm8
  movdqa %xmm5,%xmm11
  psubd  %xmm7,%xmm2
  pcmpgtd %xmm13,%xmm11
  pcmpgtd %xmm13,%xmm9
  pand   %xmm14,%xmm8
  pcmpgtd D314(%rip),%xmm2
  psubd  %xmm7,%xmm5
  pcmpgtd D314(%rip),%xmm5
  movdqa %xmm11,%xmm12
  movdqa %xmm9,%xmm11
  punpcklwd %xmm12,%xmm9
  pcmpeqd %xmm4,%xmm2
  punpckhwd %xmm12,%xmm11
  movdqa %xmm9,%xmm12
  pcmpeqd %xmm4,%xmm5
  punpcklwd %xmm11,%xmm9
  punpckhwd %xmm11,%xmm12
  movdqa %xmm4,%xmm11
  punpcklwd %xmm12,%xmm9
  pand   %xmm14,%xmm9
  packuswb %xmm9,%xmm8
  pandn  %xmm8,%xmm1
  movdqa %xmm1,%xmm9
  movdqa %xmm0,%xmm1
  punpcklwd %xmm6,%xmm0
  punpckhwd %xmm6,%xmm1
  movdqa %xmm0,%xmm6
  punpckhwd %xmm1,%xmm6
  punpcklwd %xmm1,%xmm0
  punpcklwd %xmm6,%xmm0
  movdqa %xmm2,%xmm6
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm5,%xmm6
  pand   %xmm14,%xmm0
  movdqa %xmm6,%xmm1
  movdqa %xmm2,%xmm6
  punpckhwd %xmm1,%xmm6
  punpcklwd %xmm1,%xmm2
  punpcklwd %xmm6,%xmm2
  movdqa %xmm3,%xmm6
  pand   %xmm14,%xmm2
  packuswb %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  pand   %xmm0,%xmm10
  pandn  %xmm9,%xmm0
  punpcklbw %xmm2,%xmm6
  por    %xmm10,%xmm0
  paddw  -0x8(%rsp),%xmm6
  pxor   %xmm10,%xmm10
  movdqa %xmm0,%xmm1
  movdqa %xmm3,%xmm0
  paddb  0x18(%rsp),%xmm3
  punpckhbw %xmm2,%xmm0
  movd   %xmm1,%esi
  movdqa %xmm0,%xmm5
  pxor   %xmm0,%xmm0
  paddw  0x8(%rsp),%xmm5
  pcmpgtw %xmm6,%xmm0
  pcmpgtw %xmm5,%xmm10
  movdqa %xmm0,%xmm2
  movdqa %xmm6,%xmm0
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm6
  movdqa %xmm5,%xmm2
  punpcklwd %xmm10,%xmm2
  pcmpgtd %xmm0,%xmm11
  punpckhwd %xmm10,%xmm5
  movdqa %xmm4,%xmm10
  pcmpgtd %xmm6,%xmm10
  movdqa %xmm11,%xmm8
  punpcklwd %xmm10,%xmm8
  punpckhwd %xmm10,%xmm11
  movdqa %xmm8,%xmm10
  punpcklwd %xmm11,%xmm8
  punpckhwd %xmm11,%xmm10
  movdqa %xmm4,%xmm11
  pcmpgtd %xmm2,%xmm11
  punpcklwd %xmm10,%xmm8
  pand   %xmm14,%xmm8
  movdqa %xmm11,%xmm9
  movdqa %xmm4,%xmm11
  pcmpgtd %xmm5,%xmm11
  movdqa %xmm9,%xmm10
  punpcklwd %xmm11,%xmm9
  punpckhwd %xmm11,%xmm10
  movdqa %xmm9,%xmm11
  punpcklwd %xmm10,%xmm9
  punpckhwd %xmm10,%xmm11
  punpcklwd %xmm11,%xmm9
  movdqa %xmm0,%xmm11
  psubd  %xmm7,%xmm0
  pcmpgtd %xmm13,%xmm11
  pand   %xmm14,%xmm9
  packuswb %xmm9,%xmm8
  pcmpgtd D314(%rip),%xmm0
  movdqa %xmm11,%xmm9
  movdqa %xmm6,%xmm11
  psubd  %xmm7,%xmm6
  pcmpgtd %xmm13,%xmm11
  pcmpeqd %xmm4,%xmm0
  movdqa %xmm9,%xmm10
  pcmpgtd D314(%rip),%xmm6
  punpcklwd %xmm11,%xmm9
  punpckhwd %xmm11,%xmm10
  movdqa %xmm9,%xmm11
  pcmpeqd %xmm4,%xmm6
  punpcklwd %xmm10,%xmm9
  punpckhwd %xmm10,%xmm11
  movdqa %xmm2,%xmm10
  psubd  %xmm7,%xmm2
  punpcklwd %xmm11,%xmm9
  movdqa %xmm5,%xmm11
  psubd  %xmm7,%xmm5
  pcmpgtd %xmm13,%xmm11
  pcmpgtd %xmm13,%xmm10
  pand   %xmm14,%xmm9
  pcmpgtd D314(%rip),%xmm2
  pcmpgtd D314(%rip),%xmm5
  movdqa %xmm11,%xmm12
  movdqa %xmm10,%xmm11
  punpcklwd %xmm12,%xmm10
  pcmpeqd %xmm4,%xmm5
  punpckhwd %xmm12,%xmm11
  movdqa %xmm10,%xmm12
  pcmpeqd %xmm4,%xmm2
  punpcklwd %xmm11,%xmm10
  punpckhwd %xmm11,%xmm12
  movdqa %xmm0,%xmm11
  punpcklwd %xmm6,%xmm0
  punpckhwd %xmm6,%xmm11
  movdqa %xmm0,%xmm6
  punpcklwd %xmm12,%xmm10
  punpckhwd %xmm11,%xmm6
  punpcklwd %xmm11,%xmm0
  pand   %xmm14,%xmm10
  punpcklwd %xmm6,%xmm0
  movdqa %xmm2,%xmm6
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm5,%xmm6
  movdqa %xmm2,%xmm5
  packuswb %xmm10,%xmm9
  punpckhwd %xmm6,%xmm5
  punpcklwd %xmm6,%xmm2
  pand   %xmm14,%xmm0
  movdqu -0x3e(%rcx),%xmm6
  punpcklwd %xmm5,%xmm2
  pandn  %xmm9,%xmm8
  movdqa %xmm4,%xmm11
  pand   %xmm14,%xmm2
  pand   %xmm14,%xmm6
  packuswb %xmm2,%xmm0
  movdqa %xmm6,%xmm9
  movdqu -0xe(%rcx),%xmm6
  pxor   %xmm2,%xmm2
  pand   %xmm0,%xmm3
  pandn  %xmm8,%xmm0
  por    %xmm0,%xmm3
  movdqu -0x2e(%rcx),%xmm0
  pand   %xmm14,%xmm6
  pand   %xmm14,%xmm0
  packuswb %xmm0,%xmm9
  movdqu -0x1e(%rcx),%xmm0
  pand   %xmm14,%xmm9
  pand   %xmm14,%xmm0
  packuswb %xmm6,%xmm0
  pand   %xmm14,%xmm0
  packuswb %xmm0,%xmm9
  movdqa %xmm9,%xmm6
  movdqa %xmm9,%xmm0
  movdqa %xmm9,%xmm10
  punpcklbw %xmm2,%xmm6
  punpckhbw %xmm2,%xmm0
  psubb  %xmm15,%xmm10
  movdqa %xmm0,%xmm2
  movdqa %xmm6,%xmm0
  psubw  -0x38(%rsp),%xmm0
  movaps %xmm6,-0x8(%rsp)
  movaps %xmm2,0x8(%rsp)
  movdqa %xmm0,%xmm8
  movdqa %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  movaps %xmm10,-0x38(%rsp)
  pcmpgtw %xmm8,%xmm2
  psubw  -0x28(%rsp),%xmm0
  movdqa %xmm0,%xmm6
  movdqa %xmm8,%xmm0
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm8
  pxor   %xmm2,%xmm2
  pcmpgtw %xmm6,%xmm2
  pcmpgtd %xmm8,%xmm11
  movdqa %xmm6,%xmm5
  punpcklwd %xmm2,%xmm5
  punpckhwd %xmm2,%xmm6
  movdqa %xmm4,%xmm2
  pcmpgtd %xmm0,%xmm2
  movdqa %xmm2,%xmm10
  punpcklwd %xmm11,%xmm2
  punpckhwd %xmm11,%xmm10
  movdqa %xmm2,%xmm11
  punpckhwd %xmm10,%xmm11
  punpcklwd %xmm10,%xmm2
  movdqa %xmm4,%xmm10
  punpcklwd %xmm11,%xmm2
  pcmpgtd %xmm5,%xmm10
  movdqa %xmm4,%xmm11
  pcmpgtd %xmm6,%xmm11
  pand   %xmm14,%xmm2
  movdqa %xmm11,%xmm12
  movdqa %xmm10,%xmm11
  punpcklwd %xmm12,%xmm10
  punpckhwd %xmm12,%xmm11
  movdqa %xmm10,%xmm15
  punpcklwd %xmm11,%xmm10
  punpckhwd %xmm11,%xmm15
  movdqa %xmm8,%xmm11
  psubd  %xmm7,%xmm8
  punpcklwd %xmm15,%xmm10
  pcmpgtd %xmm13,%xmm11
  pcmpgtd D314(%rip),%xmm8
  pand   %xmm14,%xmm10
  packuswb %xmm10,%xmm2
  movdqa %xmm0,%xmm10
  psubd  %xmm7,%xmm0
  pcmpgtd %xmm13,%xmm10
  movdqa %xmm11,%xmm12
  pcmpgtd D314(%rip),%xmm0
  pcmpeqd %xmm4,%xmm8
  movdqa %xmm10,%xmm11
  punpcklwd %xmm12,%xmm10
  punpckhwd %xmm12,%xmm11
  pcmpeqd %xmm4,%xmm0
  movdqa %xmm10,%xmm15
  punpckhwd %xmm11,%xmm15
  punpcklwd %xmm11,%xmm10
  movdqa %xmm5,%xmm11
  punpcklwd %xmm15,%xmm10
  movdqa %xmm6,%xmm15
  psubd  %xmm7,%xmm5
  pcmpgtd %xmm13,%xmm15
  pcmpgtd %xmm13,%xmm11
  psubd  %xmm7,%xmm6
  pcmpgtd D314(%rip),%xmm5
  pcmpgtd D314(%rip),%xmm6
  pand   %xmm14,%xmm10
  mov    %sil,-0x5e(%rdx)
  movaps %xmm1,0x438(%rsp)
  movzbl 0x439(%rsp),%esi
  movdqa %xmm11,%xmm12
  punpcklwd %xmm15,%xmm11
  punpckhwd %xmm15,%xmm12
  movdqa %xmm11,%xmm15
  mov    %sil,-0x58(%rdx)
  punpckhwd %xmm12,%xmm15
  pcmpeqd %xmm4,%xmm6
  punpcklwd %xmm12,%xmm11
  movdqa -0x18(%rsp),%xmm12
  punpcklwd %xmm15,%xmm11
  pcmpeqd %xmm4,%xmm5
  pxor   %xmm15,%xmm15
  movaps %xmm1,0x428(%rsp)
  pand   %xmm14,%xmm11
  paddb  %xmm9,%xmm12
  movdqa %xmm4,%xmm9
  movzbl 0x42a(%rsp),%esi
  packuswb %xmm11,%xmm10
  pandn  %xmm10,%xmm2
  movdqa %xmm0,%xmm10
  punpcklwd %xmm8,%xmm0
  mov    %sil,-0x52(%rdx)
  punpckhwd %xmm8,%xmm10
  movdqa %xmm2,%xmm11
  movdqa %xmm0,%xmm2
  movaps %xmm1,0x418(%rsp)
  punpckhwd %xmm10,%xmm2
  punpcklwd %xmm10,%xmm0
  movzbl 0x41b(%rsp),%esi
  punpcklwd %xmm2,%xmm0
  movdqa %xmm5,%xmm2
  punpcklwd %xmm6,%xmm5
  punpckhwd %xmm6,%xmm2
  movdqa %xmm5,%xmm10
  pand   %xmm14,%xmm0
  mov    %sil,-0x4c(%rdx)
  punpckhwd %xmm2,%xmm10
  punpcklwd %xmm2,%xmm5
  movdqa -0x8(%rsp),%xmm6
  movaps %xmm1,0x408(%rsp)
  punpcklwd %xmm10,%xmm5
  movzbl 0x40c(%rsp),%esi
  pand   %xmm14,%xmm5
  movdqa %xmm6,%xmm8
  packuswb %xmm5,%xmm0
  movdqa -0x38(%rsp),%xmm5
  punpckhwd %xmm15,%xmm8
  mov    %sil,-0x46(%rdx)
  paddd  -0x68(%rsp),%xmm8
  movaps %xmm1,0x3f8(%rsp)
  movzbl 0x3fd(%rsp),%esi
  pand   %xmm0,%xmm5
  pandn  %xmm11,%xmm0
  movdqa %xmm4,%xmm11
  por    %xmm5,%xmm0
  pcmpgtd %xmm8,%xmm11
  mov    %sil,-0x40(%rdx)
  movdqa %xmm0,%xmm2
  movdqa %xmm6,%xmm0
  movdqa 0x8(%rsp),%xmm6
  movaps %xmm1,0x3e8(%rsp)
  punpcklwd %xmm15,%xmm0
  paddd  -0x58(%rsp),%xmm0
  movdqa %xmm6,%xmm5
  punpckhwd %xmm15,%xmm6
  paddd  -0x78(%rsp),%xmm6
  movaps %xmm12,-0x78(%rsp)
  pcmpgtd %xmm0,%xmm9
  punpcklwd %xmm15,%xmm5
  paddd  -0x48(%rsp),%xmm5
  movdqa %xmm4,%xmm15
  pcmpgtd %xmm6,%xmm15
  movdqa %xmm9,%xmm10
  punpcklwd %xmm11,%xmm9
  punpckhwd %xmm11,%xmm10
  movdqa %xmm9,%xmm11
  punpckhwd %xmm10,%xmm11
  punpcklwd %xmm10,%xmm9
  movdqa %xmm4,%xmm10
  pcmpgtd %xmm5,%xmm10
  punpcklwd %xmm11,%xmm9
  pand   %xmm14,%xmm9
  movdqa %xmm10,%xmm11
  punpcklwd %xmm15,%xmm10
  punpckhwd %xmm15,%xmm11
  movdqa %xmm10,%xmm15
  punpckhwd %xmm11,%xmm15
  punpcklwd %xmm11,%xmm10
  punpcklwd %xmm15,%xmm10
  movdqa %xmm8,%xmm15
  psubd  %xmm7,%xmm8
  pand   %xmm14,%xmm10
  pcmpgtd %xmm13,%xmm15
  pcmpgtd D314(%rip),%xmm8
  packuswb %xmm10,%xmm9
  movdqa %xmm0,%xmm10
  pcmpgtd %xmm13,%xmm10
  psubd  %xmm7,%xmm0
  pcmpgtd D314(%rip),%xmm0
  pcmpeqd %xmm4,%xmm8
  movdqa %xmm10,%xmm11
  punpcklwd %xmm15,%xmm10
  punpckhwd %xmm15,%xmm11
  pcmpeqd %xmm4,%xmm0
  movdqa %xmm10,%xmm15
  punpckhwd %xmm11,%xmm15
  punpcklwd %xmm11,%xmm10
  movdqa %xmm5,%xmm11
  punpcklwd %xmm15,%xmm10
  movdqa %xmm6,%xmm15
  psubd  %xmm7,%xmm5
  pcmpgtd %xmm13,%xmm15
  pcmpgtd %xmm13,%xmm11
  psubd  %xmm7,%xmm6
  pcmpgtd D314(%rip),%xmm5
  pcmpgtd D314(%rip),%xmm6
  pand   %xmm14,%xmm10
  movdqa %xmm11,%xmm12
  punpcklwd %xmm15,%xmm11
  pcmpeqd %xmm4,%xmm6
  pcmpeqd %xmm4,%xmm5
  punpckhwd %xmm15,%xmm12
  movdqa %xmm11,%xmm15
  punpcklwd %xmm12,%xmm11
  punpckhwd %xmm12,%xmm15
  punpcklwd %xmm15,%xmm11
  pand   %xmm14,%xmm11
  packuswb %xmm11,%xmm10
  pandn  %xmm10,%xmm9
  movdqa %xmm0,%xmm10
  punpcklwd %xmm8,%xmm0
  punpckhwd %xmm8,%xmm10
  movdqa %xmm0,%xmm8
  punpckhwd %xmm10,%xmm8
  punpcklwd %xmm10,%xmm0
  punpcklwd %xmm8,%xmm0
  movdqa %xmm5,%xmm8
  punpcklwd %xmm6,%xmm5
  punpckhwd %xmm6,%xmm8
  movdqa %xmm5,%xmm6
  pand   %xmm14,%xmm0
  punpckhwd %xmm8,%xmm6
  punpcklwd %xmm8,%xmm5
  punpcklwd %xmm6,%xmm5
  pand   %xmm14,%xmm5
  packuswb %xmm5,%xmm0
  movdqa -0x78(%rsp),%xmm5
  movzbl 0x3ee(%rsp),%esi
  mov    %sil,-0x3a(%rdx)
  pand   %xmm0,%xmm5
  pandn  %xmm9,%xmm0
  movaps %xmm1,0x3d8(%rsp)
  movzbl 0x3df(%rsp),%esi
  por    %xmm5,%xmm0
  mov    %sil,-0x34(%rdx)
  movaps %xmm1,0x3c8(%rsp)
  movzbl 0x3d0(%rsp),%esi
  mov    %sil,-0x2e(%rdx)
  movaps %xmm1,0x3b8(%rsp)
  movzbl 0x3c1(%rsp),%esi
  mov    %sil,-0x28(%rdx)
  movaps %xmm1,0x3a8(%rsp)
  movzbl 0x3b2(%rsp),%esi
  mov    %sil,-0x22(%rdx)
  movaps %xmm1,0x398(%rsp)
  movzbl 0x3a3(%rsp),%esi
  mov    %sil,-0x1c(%rdx)
  movaps %xmm1,0x388(%rsp)
  movzbl 0x394(%rsp),%esi
  mov    %sil,-0x16(%rdx)
  movaps %xmm1,0x378(%rsp)
  movzbl 0x385(%rsp),%esi
  mov    %sil,-0x10(%rdx)
  movaps %xmm1,0x368(%rsp)
  movzbl 0x376(%rsp),%esi
  mov    %sil,-0xa(%rdx)
  movaps %xmm1,0x358(%rsp)
  movzbl 0x367(%rsp),%esi
  mov    %sil,-0x4(%rdx)
  movd   %xmm3,%esi
  mov    %sil,-0x5d(%rdx)
  movaps %xmm3,0x348(%rsp)
  movzbl 0x349(%rsp),%esi
  mov    %sil,-0x57(%rdx)
  movaps %xmm3,0x338(%rsp)
  movzbl 0x33a(%rsp),%esi
  mov    %sil,-0x51(%rdx)
  movaps %xmm3,0x328(%rsp)
  movzbl 0x32b(%rsp),%esi
  mov    %sil,-0x4b(%rdx)
  movaps %xmm3,0x318(%rsp)
  movzbl 0x31c(%rsp),%esi
  mov    %sil,-0x45(%rdx)
  movaps %xmm3,0x308(%rsp)
  movzbl 0x30d(%rsp),%esi
  mov    %sil,-0x3f(%rdx)
  movaps %xmm3,0x2f8(%rsp)
  movzbl 0x2fe(%rsp),%esi
  mov    %sil,-0x39(%rdx)
  movaps %xmm3,0x2e8(%rsp)
  movzbl 0x2ef(%rsp),%esi
  mov    %sil,-0x33(%rdx)
  movaps %xmm3,0x2d8(%rsp)
  movzbl 0x2e0(%rsp),%esi
  mov    %sil,-0x2d(%rdx)
  movaps %xmm3,0x2c8(%rsp)
  movzbl 0x2d1(%rsp),%esi
  mov    %sil,-0x27(%rdx)
  movaps %xmm3,0x2b8(%rsp)
  movzbl 0x2c2(%rsp),%esi
  mov    %sil,-0x21(%rdx)
  movaps %xmm3,0x2a8(%rsp)
  movzbl 0x2b3(%rsp),%esi
  mov    %sil,-0x1b(%rdx)
  movaps %xmm3,0x298(%rsp)
  movzbl 0x2a4(%rsp),%esi
  mov    %sil,-0x15(%rdx)
  movaps %xmm3,0x288(%rsp)
  movzbl 0x295(%rsp),%esi
  mov    %sil,-0xf(%rdx)
  movaps %xmm3,0x278(%rsp)
  movzbl 0x286(%rsp),%esi
  mov    %sil,-0x9(%rdx)
  movaps %xmm3,0x268(%rsp)
  movzbl 0x277(%rsp),%esi
  mov    %sil,-0x3(%rdx)
  movd   %xmm2,%esi
  mov    %sil,-0x5c(%rdx)
  movaps %xmm2,0x258(%rsp)
  movzbl 0x259(%rsp),%esi
  mov    %sil,-0x56(%rdx)
  movaps %xmm2,0x248(%rsp)
  movzbl 0x24a(%rsp),%esi
  mov    %sil,-0x50(%rdx)
  movaps %xmm2,0x238(%rsp)
  movzbl 0x23b(%rsp),%esi
  mov    %sil,-0x4a(%rdx)
  movaps %xmm2,0x228(%rsp)
  movzbl 0x22c(%rsp),%esi
  mov    %sil,-0x44(%rdx)
  movaps %xmm2,0x218(%rsp)
  movzbl 0x21d(%rsp),%esi
  mov    %sil,-0x3e(%rdx)
  movaps %xmm2,0x208(%rsp)
  movzbl 0x20e(%rsp),%esi
  mov    %sil,-0x38(%rdx)
  movaps %xmm2,0x1f8(%rsp)
  movzbl 0x1ff(%rsp),%esi
  mov    %sil,-0x32(%rdx)
  movaps %xmm2,0x1e8(%rsp)
  movzbl 0x1f0(%rsp),%esi
  mov    %sil,-0x2c(%rdx)
  movaps %xmm2,0x1d8(%rsp)
  movzbl 0x1e1(%rsp),%esi
  mov    %sil,-0x26(%rdx)
  movaps %xmm2,0x1c8(%rsp)
  movzbl 0x1d2(%rsp),%esi
  mov    %sil,-0x20(%rdx)
  movaps %xmm2,0x1b8(%rsp)
  movzbl 0x1c3(%rsp),%esi
  mov    %sil,-0x1a(%rdx)
  movaps %xmm2,0x1a8(%rsp)
  movzbl 0x1b4(%rsp),%esi
  mov    %sil,-0x14(%rdx)
  movaps %xmm2,0x198(%rsp)
  movzbl 0x1a5(%rsp),%esi
  mov    %sil,-0xe(%rdx)
  movaps %xmm2,0x188(%rsp)
  movzbl 0x196(%rsp),%esi
  mov    %sil,-0x8(%rdx)
  movaps %xmm2,0x178(%rsp)
  movzbl 0x187(%rsp),%esi
  mov    %sil,-0x2(%rdx)
  movd   %xmm0,%esi
  mov    %sil,-0x5b(%rdx)
  movaps %xmm0,0x168(%rsp)
  movzbl 0x169(%rsp),%esi
  mov    %sil,-0x55(%rdx)
  movaps %xmm0,0x158(%rsp)
  movzbl 0x15a(%rsp),%esi
  mov    %sil,-0x4f(%rdx)
  movaps %xmm0,0x148(%rsp)
  movzbl 0x14b(%rsp),%esi
  mov    %sil,-0x49(%rdx)
  movaps %xmm0,0x138(%rsp)
  movzbl 0x13c(%rsp),%esi
  mov    %sil,-0x43(%rdx)
  movaps %xmm0,0x128(%rsp)
  movzbl 0x12d(%rsp),%esi
  mov    %sil,-0x3d(%rdx)
  movaps %xmm0,0x118(%rsp)
  movzbl 0x11e(%rsp),%esi
  mov    %sil,-0x37(%rdx)
  movaps %xmm0,0x108(%rsp)
  movzbl 0x10f(%rsp),%esi
  mov    %sil,-0x31(%rdx)
  movaps %xmm0,0xf8(%rsp)
  movzbl 0x100(%rsp),%esi
  mov    %sil,-0x2b(%rdx)
  movaps %xmm0,0xe8(%rsp)
  movzbl 0xf1(%rsp),%esi
  mov    %sil,-0x25(%rdx)
  movaps %xmm0,0xd8(%rsp)
  movzbl 0xe2(%rsp),%esi
  mov    %sil,-0x1f(%rdx)
  movaps %xmm0,0xc8(%rsp)
  movzbl 0xd3(%rsp),%esi
  mov    %sil,-0x19(%rdx)
  movaps %xmm0,0xb8(%rsp)
  movzbl 0xc4(%rsp),%esi
  mov    %sil,-0x13(%rdx)
  movaps %xmm0,0xa8(%rsp)
  movzbl 0xb5(%rsp),%esi
  mov    %sil,-0xd(%rdx)
  movaps %xmm0,0x98(%rsp)
  movzbl 0xa6(%rsp),%esi
  mov    %sil,-0x7(%rdx)
  movaps %xmm0,0x88(%rsp)
  movzbl 0x97(%rsp),%esi
  mov    %sil,-0x1(%rdx)
  cmp    %rdi,%rcx
  jne    L222
  mov    0x78(%rsp),%rdi
  mov    0x80(%rsp),%r11d
  xor    %r10d,%r10d
  add    0x60(%rsp),%rax
  lea    0x0(%rbp,%rdi,1),%rcx
  jmp    L90
  nopw   0x0(%rax,%rax,1)
L203:
  mov    $0xffffffff,%r8d
L225:
  mov    %r8b,(%rcx)
  movzbl (%rax),%r9d
  mov    %r9d,%r8d
  sub    %esi,%r9d
  cmp    $0xff,%r9d
  jle    L91
  mov    $0xffffffff,%r8d
L96:
  mov    %r8b,0x1(%rcx)
  movzbl (%rax),%r9d
  mov    %r9d,%r8d
  add    %edi,%r9d
  cmp    $0xff,%r9d
  jle    L40
  mov    $0xffffffff,%r8d
L110:
  mov    %r8b,0x2(%rcx)
  movzbl 0x2(%rax),%r9d
  mov    %r9d,%r8d
  add    %edx,%r9d
  cmp    $0xff,%r9d
  jle    L143
  mov    $0xffffffff,%r8d
L159:
  mov    %r8b,0x3(%rcx)
  movzbl 0x2(%rax),%r8d
  mov    %r8d,%edx
  sub    %esi,%r8d
  cmp    $0xff,%r8d
  jle    L207
  mov    $0xffffffff,%edx
L119:
  mov    %dl,0x4(%rcx)
  movzbl 0x2(%rax),%esi
  mov    %esi,%edx
  add    %edi,%esi
  cmp    $0xff,%esi
  jle    L129
  mov    $0xffffffff,%edx
L266:
  add    $0x2,%r11d
  add    $0x6,%rcx
  add    $0x4,%rax
  mov    %dl,-0x1(%rcx)
  cmp    %r11d,%ebx
  jle    L221
L90:
  movzbl 0x3(%rax),%esi
  movzbl 0x1(%rax),%edx
  movzbl (%rax),%r9d
  add    $0xffffff80,%esi
  add    $0xffffff80,%edx
  mov    %esi,%edi
  lea    (%rdx,%rdx,1),%r8d
  shl    $0x7,%edi
  add    %esi,%edi
  lea    (%rsi,%rsi,2),%esi
  lea    (%rsi,%rdx,4),%esi
  add    %r8d,%edx
  sar    $0x6,%edi
  sar    %edx
  add    %r8d,%esi
  mov    %r9d,%r8d
  add    %edx,%r9d
  sar    $0x3,%esi
  cmp    $0xff,%r9d
  jg     L203
  add    %edx,%r8d
  test   %r9d,%r9d
  cmovs  %r10d,%r8d
  jmp    L225
  nopl   (%rax)
L129:
  add    %edi,%edx
  test   %esi,%esi
  cmovs  %r10d,%edx
  jmp    L266
  nopw   0x0(%rax,%rax,1)
L207:
  sub    %esi,%edx
  test   %r8d,%r8d
  cmovs  %r10d,%edx
  jmp    L119
  cs nopw 0x0(%rax,%rax,1)
L143:
  add    %edx,%r8d
  test   %r9d,%r9d
  cmovs  %r10d,%r8d
  jmp    L159
  nop
L40:
  add    %edi,%r8d
  test   %r9d,%r9d
  cmovs  %r10d,%r8d
  jmp    L110
  nop
L91:
  sub    %esi,%r8d
  test   %r9d,%r9d
  cmovs  %r10d,%r8d
  jmp    L96
  nop
L53:
  mov    %rbp,%rcx
  xor    %r9d,%r9d
L50:
  movzbl 0x3(%rax),%esi
  movzbl 0x1(%rax),%edx
  mov    $0xffffffff,%r11d
  add    $0xffffff80,%esi
  add    $0xffffff80,%edx
  mov    %esi,%edi
  lea    (%rdx,%rdx,1),%r8d
  shl    $0x7,%edi
  add    %esi,%edi
  lea    (%rsi,%rsi,2),%esi
  lea    (%rsi,%rdx,4),%esi
  add    %r8d,%edx
  sar    $0x6,%edi
  add    %r8d,%esi
  movzbl (%rax),%r8d
  sar    %edx
  sar    $0x3,%esi
  mov    %r8d,%r10d
  add    %edx,%r8d
  cmp    $0xff,%r8d
  jg     L184
  add    %edx,%r10d
  test   %r8d,%r8d
  mov    %r10d,%r11d
  cmovs  %r9d,%r11d
L184:
  mov    %r11b,(%rcx)
  movzbl (%rax),%r8d
  mov    $0xffffffff,%r11d
  mov    %r8d,%r10d
  sub    %esi,%r8d
  cmp    $0xff,%r8d
  jg     L197
  sub    %esi,%r10d
  test   %r8d,%r8d
  mov    %r10d,%r11d
  cmovs  %r9d,%r11d
L197:
  mov    %r11b,0x1(%rcx)
  movzbl (%rax),%r8d
  mov    $0xffffffff,%r11d
  mov    %r8d,%r10d
  add    %edi,%r8d
  cmp    $0xff,%r8d
  jg     L146
  add    %edi,%r10d
  test   %r8d,%r8d
  mov    %r10d,%r11d
  cmovs  %r9d,%r11d
L146:
  mov    %r11b,0x2(%rcx)
  movzbl 0x2(%rax),%r8d
  mov    $0xffffffff,%r11d
  mov    %r8d,%r10d
  add    %edx,%r8d
  cmp    $0xff,%r8d
  jg     L2
  add    %edx,%r10d
  test   %r8d,%r8d
  mov    %r10d,%r11d
  cmovs  %r9d,%r11d
L2:
  mov    %r11b,0x3(%rcx)
  movzbl 0x2(%rax),%edx
  mov    $0xffffffff,%r10d
  mov    %edx,%r8d
  sub    %esi,%edx
  cmp    $0xff,%edx
  jg     L183
  sub    %esi,%r8d
  test   %edx,%edx
  mov    %r8d,%r10d
  cmovs  %r9d,%r10d
L183:
  mov    %r10b,0x4(%rcx)
  movzbl 0x2(%rax),%edx
  mov    $0xffffffff,%r8d
  mov    %edx,%esi
  add    %edi,%edx
  cmp    $0xff,%edx
  jg     L175
  add    %edi,%esi
  test   %edx,%edx
  cmovs  %r9d,%esi
  mov    %esi,%r8d
L175:
  add    $0x4,%rax
  add    $0x6,%rcx
  mov    %r8b,-0x1(%rcx)
  cmp    %rax,%r12
  jne    L50
  nopl   0x0(%rax,%rax,1)
L221:
  mov    %r12,%rax
  add    %r14,%rbp
  sub    $0x1,%r13d
  jae    L104
L265:
  add    $0x630,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L70:
  ret
```

tool_calls: name: disassemble_data
arguments: label: D354
type_guessed: byte[16]
name: disassemble_data
arguments: label: D103
type_guessed: byte[16]
name: disassemble_data
arguments: label: D136
type_guessed: byte[16]
name: disassemble_data
arguments: label: D146
type_guessed: byte[16]
name: disassemble_data
arguments: label: D108
type_guessed: byte[16]
name: disassemble_data
arguments: label: D322
type_guessed: byte[16]
name: disassemble_data
arguments: label: D314
type_guessed: byte[16]

tool: {"D354": [0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03]}

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

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

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

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

tool: {"D322": [0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00]}

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

assistant: ```c
void v4lconvert_yvyu_to_rgb24(const unsigned char *src, unsigned char *dest, int width, int height) {
  int j;
  while (--height >= 0) {
    for (j = 0; j < width; j += 2) {
      int u = src[3];
      int v = src[1];
      int u1 = (((u - 128) << 7) + (u - 128)) >> 6;
      int rg = (((u - 128) << 1) + (u - 128) + ((v - 128) << 2) + ((v - 128) << 1)) >> 3;
      int v1 = (((v - 128) << 1) + (v - 128)) >> 1;
      *dest++ = (unsigned char)(((src[0] + v1) > 0xFF) ? 0xff : (((src[0] + v1) < 0) ? 0 : (src[0] + v1)));
      *dest++ = (unsigned char)(((src[0] - rg) > 0xFF) ? 0xff : (((src[0] - rg) < 0) ? 0 : (src[0] - rg)));
      *dest++ = (unsigned char)(((src[0] + u1) > 0xFF) ? 0xff : (((src[0] + u1) < 0) ? 0 : (src[0] + u1)));
      *dest++ = (unsigned char)(((src[2] + v1) > 0xFF) ? 0xff : (((src[2] + v1) < 0) ? 0 : (src[2] + v1)));
      *dest++ = (unsigned char)(((src[2] - rg) > 0xFF) ? 0xff : (((src[2] - rg) < 0) ? 0 : (src[2] - rg)));
      *dest++ = (unsigned char)(((src[2] + u1) > 0xFF) ? 0xff : (((src[2] + u1) < 0) ? 0 : (src[2] + u1)));
      src += 4;
    }
  }
}
```