user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<apply_mask>:
  endbr64
  mov    %edi,%r9d
  push   %rbx
  mov    %esi,%edi
  mov    %rcx,%rax
  mov    %r8d,%esi
  cmp    $0x2,%r9d
  je     L573
  jg     L183
  test   %r9d,%r9d
  je     L511
  cmp    $0x1,%r9d
  jne    L711
  movb   $0x1,(%rdx)
  test   %edi,%edi
  jle    L711
  lea    -0x1(%rdi),%ecx
  cmp    $0xe,%ecx
  jbe    L404
  mov    %rdx,%rcx
  sub    %rax,%rcx
  cmp    $0xe,%rcx
  jbe    L404
  pxor   %xmm6,%xmm6
  mov    %edi,%r8d
  pxor   %xmm13,%xmm13
  xor    %ecx,%ecx
  movdqa D62(%rip),%xmm0
  movdqa %xmm6,%xmm7
  shr    $0x4,%r8d
  movdqa D111(%rip),%xmm12
  movdqa D101(%rip),%xmm14
  shl    $0x4,%r8
  pxor   %xmm11,%xmm11
  movdqa D22(%rip),%xmm10
  pcmpgtd %xmm0,%xmm7
L282:
  movdqu (%rax,%rcx,1),%xmm4
  movdqa %xmm12,%xmm5
  movdqa %xmm7,%xmm9
  movdqa D12(%rip),%xmm3
  movdqa %xmm7,%xmm15
  paddd  %xmm14,%xmm12
  movdqa %xmm4,%xmm2
  paddd  %xmm5,%xmm3
  punpckhbw %xmm13,%xmm4
  punpcklbw %xmm13,%xmm2
  movdqa %xmm4,%xmm8
  punpckhwd %xmm11,%xmm4
  movdqa %xmm2,%xmm1
  punpckhwd %xmm11,%xmm2
  punpcklwd %xmm11,%xmm8
  paddd  %xmm2,%xmm3
  movdqa D97(%rip),%xmm2
  punpcklwd %xmm11,%xmm1
  paddd  %xmm5,%xmm1
  paddd  %xmm5,%xmm2
  paddd  D82(%rip),%xmm5
  paddd  %xmm8,%xmm2
  movdqa %xmm1,%xmm8
  paddd  %xmm4,%xmm5
  punpckldq %xmm1,%xmm8
  movdqa %xmm6,%xmm4
  pcmpgtd %xmm8,%xmm4
  pmuludq %xmm8,%xmm9
  pmuludq %xmm0,%xmm8
  pmuludq %xmm0,%xmm4
  paddq  %xmm9,%xmm4
  movdqa %xmm6,%xmm9
  psllq  $0x20,%xmm4
  paddq  %xmm4,%xmm8
  movdqa %xmm1,%xmm4
  punpckhdq %xmm1,%xmm4
  pcmpgtd %xmm4,%xmm9
  pmuludq %xmm4,%xmm15
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm9
  paddq  %xmm15,%xmm9
  movdqa %xmm7,%xmm15
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm4
  movdqa %xmm7,%xmm9
  shufps $0xdd,%xmm4,%xmm8
  psrad  $0x5,%xmm8
  movdqa %xmm8,%xmm4
  pslld  $0x3,%xmm4
  psubd  %xmm8,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm8,%xmm4
  movdqa %xmm6,%xmm8
  psubd  %xmm4,%xmm1
  movdqa %xmm3,%xmm4
  punpckldq %xmm3,%xmm4
  pcmpgtd %xmm4,%xmm8
  pmuludq %xmm4,%xmm9
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  movdqa %xmm6,%xmm9
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm4
  movdqa %xmm3,%xmm8
  punpckhdq %xmm3,%xmm8
  pcmpgtd %xmm8,%xmm9
  pmuludq %xmm8,%xmm15
  pmuludq %xmm0,%xmm8
  pmuludq %xmm0,%xmm9
  paddq  %xmm15,%xmm9
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm8
  movdqa %xmm7,%xmm9
  shufps $0xdd,%xmm8,%xmm4
  psrad  $0x5,%xmm4
  movdqa %xmm4,%xmm8
  pslld  $0x3,%xmm8
  psubd  %xmm4,%xmm8
  pslld  $0x4,%xmm8
  paddd  %xmm4,%xmm8
  psubd  %xmm8,%xmm3
  movdqa %xmm7,%xmm8
  movdqa %xmm3,%xmm4
  movdqa %xmm1,%xmm3
  punpcklwd %xmm4,%xmm1
  punpckhwd %xmm4,%xmm3
  movdqa %xmm1,%xmm4
  punpcklwd %xmm3,%xmm1
  punpckhwd %xmm3,%xmm4
  movdqa %xmm6,%xmm3
  punpcklwd %xmm4,%xmm1
  movdqa %xmm2,%xmm4
  punpckldq %xmm2,%xmm4
  pand   %xmm10,%xmm1
  pcmpgtd %xmm4,%xmm3
  pmuludq %xmm4,%xmm8
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm3
  paddq  %xmm8,%xmm3
  movdqa %xmm6,%xmm8
  psllq  $0x20,%xmm3
  paddq  %xmm3,%xmm4
  movdqa %xmm2,%xmm3
  punpckhdq %xmm2,%xmm3
  pcmpgtd %xmm3,%xmm8
  pmuludq %xmm3,%xmm9
  pmuludq %xmm0,%xmm3
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  movdqa %xmm7,%xmm9
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm3
  movdqa %xmm7,%xmm8
  shufps $0xdd,%xmm3,%xmm4
  psrad  $0x5,%xmm4
  movdqa %xmm4,%xmm3
  pslld  $0x3,%xmm3
  psubd  %xmm4,%xmm3
  pslld  $0x4,%xmm3
  paddd  %xmm4,%xmm3
  movdqa %xmm6,%xmm4
  psubd  %xmm3,%xmm2
  movdqa %xmm5,%xmm3
  punpckldq %xmm5,%xmm3
  pcmpgtd %xmm3,%xmm4
  pmuludq %xmm3,%xmm8
  pmuludq %xmm0,%xmm3
  pmuludq %xmm0,%xmm4
  paddq  %xmm8,%xmm4
  movdqa %xmm6,%xmm8
  psllq  $0x20,%xmm4
  paddq  %xmm4,%xmm3
  movdqa %xmm5,%xmm4
  punpckhdq %xmm5,%xmm4
  pcmpgtd %xmm4,%xmm8
  pmuludq %xmm4,%xmm9
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm4
  shufps $0xdd,%xmm4,%xmm3
  psrad  $0x5,%xmm3
  movdqa %xmm3,%xmm4
  pslld  $0x3,%xmm4
  psubd  %xmm3,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm3,%xmm4
  psubd  %xmm4,%xmm5
  movdqa %xmm2,%xmm4
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm5,%xmm4
  movdqa %xmm2,%xmm3
  punpcklwd %xmm4,%xmm2
  punpckhwd %xmm4,%xmm3
  punpcklwd %xmm3,%xmm2
  pand   %xmm10,%xmm2
  packuswb %xmm2,%xmm1
  movups %xmm1,0x1(%rdx,%rcx,1)
  add    $0x10,%rcx
  cmp    %r8,%rcx
  jne    L282
  mov    %edi,%r8d
  and    $0xfffffff0,%r8d
  lea    (%r8,%r8,2),%r10d
  cmp    %r8d,%edi
  je     L711
  mov    %r8d,%ecx
  movzbl (%rax,%rcx,1),%r11d
  add    %r10d,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x3(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x1(%r8),%r9d
  mov    %r11b,0x1(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x1(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x6(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x2(%r8),%r9d
  mov    %r11b,0x2(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x2(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x9(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x3(%r8),%r9d
  mov    %r11b,0x3(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x3(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0xc(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x4(%r8),%r9d
  mov    %r11b,0x4(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x4(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0xf(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x5(%r8),%r9d
  mov    %r11b,0x5(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x5(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x12(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x6(%r8),%r9d
  mov    %r11b,0x6(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x6(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x15(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x7(%r8),%r9d
  mov    %r11b,0x7(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x7(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x18(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x8(%r8),%r9d
  mov    %r11b,0x8(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x8(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x1b(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0x9(%r8),%r9d
  mov    %r11b,0x9(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x9(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x1e(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0xa(%r8),%r9d
  mov    %r11b,0xa(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0xa(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x21(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0xb(%r8),%r9d
  mov    %r11b,0xb(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0xb(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x24(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0xc(%r8),%r9d
  mov    %r11b,0xc(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0xc(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  lea    0x27(%r10),%ebx
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  lea    0xd(%r8),%r9d
  mov    %r11b,0xd(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0xd(%rax,%rcx,1),%r11d
  add    $0xe,%r8d
  add    $0x2a,%r10d
  add    %ebx,%r11d
  movslq %r11d,%r9
  mov    %r11d,%ebx
  imul   $0x487ede05,%r9,%r9
  sar    $0x1f,%ebx
  sar    $0x25,%r9
  sub    %ebx,%r9d
  imul   $0x71,%r9d,%r9d
  sub    %r9d,%r11d
  mov    %r11b,0xe(%rdx,%rcx,1)
  cmp    %r8d,%edi
  jle    L711
  movzbl 0xe(%rax,%rcx,1),%r8d
  add    %r10d,%r8d
L607:
  movslq %r8d,%rax
  mov    %r8d,%r9d
  imul   $0x487ede05,%rax,%rax
  sar    $0x1f,%r9d
  sar    $0x25,%rax
  sub    %r9d,%eax
  imul   $0x71,%eax,%eax
  sub    %eax,%r8d
  mov    %r8b,0xf(%rdx,%rcx,1)
L711:
  add    $0x1,%edi
  pop    %rbx
  jmp    1050 <rsencode@plt>
  nopl   0x0(%rax)
L183:
  cmp    $0x3,%r9d
  jne    L711
  movb   $0x3,(%rdx)
  test   %edi,%edi
  jle    L711
  lea    -0x1(%rdi),%ecx
  cmp    $0xe,%ecx
  jbe    L235
  mov    %rdx,%rcx
  sub    %rax,%rcx
  cmp    $0xe,%rcx
  jbe    L235
  pxor   %xmm6,%xmm6
  mov    %edi,%r8d
  pxor   %xmm13,%xmm13
  xor    %ecx,%ecx
  movdqa D62(%rip),%xmm0
  movdqa %xmm6,%xmm7
  shr    $0x4,%r8d
  movdqa D133(%rip),%xmm12
  movdqa D22(%rip),%xmm10
  shl    $0x4,%r8
  pxor   %xmm11,%xmm11
  movdqa D186(%rip),%xmm14
  pcmpgtd %xmm0,%xmm7
  nop
L829:
  movdqu (%rax,%rcx,1),%xmm4
  movdqa %xmm12,%xmm5
  movdqa %xmm7,%xmm9
  movdqa D155(%rip),%xmm3
  movdqa %xmm7,%xmm15
  paddd  %xmm14,%xmm12
  movdqa %xmm4,%xmm2
  paddd  %xmm5,%xmm3
  punpckhbw %xmm13,%xmm4
  punpcklbw %xmm13,%xmm2
  movdqa %xmm4,%xmm8
  punpckhwd %xmm11,%xmm4
  movdqa %xmm2,%xmm1
  punpckhwd %xmm11,%xmm2
  punpcklwd %xmm11,%xmm8
  paddd  %xmm2,%xmm3
  movdqa D128(%rip),%xmm2
  punpcklwd %xmm11,%xmm1
  paddd  %xmm5,%xmm1
  paddd  %xmm5,%xmm2
  paddd  D2(%rip),%xmm5
  paddd  %xmm8,%xmm2
  movdqa %xmm1,%xmm8
  paddd  %xmm4,%xmm5
  punpckldq %xmm1,%xmm8
  movdqa %xmm6,%xmm4
  pcmpgtd %xmm8,%xmm4
  pmuludq %xmm8,%xmm9
  pmuludq %xmm0,%xmm8
  pmuludq %xmm0,%xmm4
  paddq  %xmm9,%xmm4
  movdqa %xmm6,%xmm9
  psllq  $0x20,%xmm4
  paddq  %xmm4,%xmm8
  movdqa %xmm1,%xmm4
  punpckhdq %xmm1,%xmm4
  pcmpgtd %xmm4,%xmm9
  pmuludq %xmm4,%xmm15
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm9
  paddq  %xmm15,%xmm9
  movdqa %xmm7,%xmm15
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm4
  movdqa %xmm7,%xmm9
  shufps $0xdd,%xmm4,%xmm8
  psrad  $0x5,%xmm8
  movdqa %xmm8,%xmm4
  pslld  $0x3,%xmm4
  psubd  %xmm8,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm8,%xmm4
  movdqa %xmm6,%xmm8
  psubd  %xmm4,%xmm1
  movdqa %xmm3,%xmm4
  punpckldq %xmm3,%xmm4
  pcmpgtd %xmm4,%xmm8
  pmuludq %xmm4,%xmm9
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  movdqa %xmm6,%xmm9
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm4
  movdqa %xmm3,%xmm8
  punpckhdq %xmm3,%xmm8
  pcmpgtd %xmm8,%xmm9
  pmuludq %xmm8,%xmm15
  pmuludq %xmm0,%xmm8
  pmuludq %xmm0,%xmm9
  paddq  %xmm15,%xmm9
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm8
  movdqa %xmm7,%xmm9
  shufps $0xdd,%xmm8,%xmm4
  psrad  $0x5,%xmm4
  movdqa %xmm4,%xmm8
  pslld  $0x3,%xmm8
  psubd  %xmm4,%xmm8
  pslld  $0x4,%xmm8
  paddd  %xmm4,%xmm8
  psubd  %xmm8,%xmm3
  movdqa %xmm7,%xmm8
  movdqa %xmm3,%xmm4
  movdqa %xmm1,%xmm3
  punpcklwd %xmm4,%xmm1
  punpckhwd %xmm4,%xmm3
  movdqa %xmm1,%xmm4
  punpcklwd %xmm3,%xmm1
  punpckhwd %xmm3,%xmm4
  movdqa %xmm6,%xmm3
  punpcklwd %xmm4,%xmm1
  movdqa %xmm2,%xmm4
  punpckldq %xmm2,%xmm4
  pand   %xmm10,%xmm1
  pcmpgtd %xmm4,%xmm3
  pmuludq %xmm4,%xmm8
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm3
  paddq  %xmm8,%xmm3
  movdqa %xmm6,%xmm8
  psllq  $0x20,%xmm3
  paddq  %xmm3,%xmm4
  movdqa %xmm2,%xmm3
  punpckhdq %xmm2,%xmm3
  pcmpgtd %xmm3,%xmm8
  pmuludq %xmm3,%xmm9
  pmuludq %xmm0,%xmm3
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  movdqa %xmm7,%xmm9
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm3
  movdqa %xmm7,%xmm8
  shufps $0xdd,%xmm3,%xmm4
  psrad  $0x5,%xmm4
  movdqa %xmm4,%xmm3
  pslld  $0x3,%xmm3
  psubd  %xmm4,%xmm3
  pslld  $0x4,%xmm3
  paddd  %xmm4,%xmm3
  movdqa %xmm6,%xmm4
  psubd  %xmm3,%xmm2
  movdqa %xmm5,%xmm3
  punpckldq %xmm5,%xmm3
  pcmpgtd %xmm3,%xmm4
  pmuludq %xmm3,%xmm8
  pmuludq %xmm0,%xmm3
  pmuludq %xmm0,%xmm4
  paddq  %xmm8,%xmm4
  movdqa %xmm6,%xmm8
  psllq  $0x20,%xmm4
  paddq  %xmm4,%xmm3
  movdqa %xmm5,%xmm4
  punpckhdq %xmm5,%xmm4
  pcmpgtd %xmm4,%xmm8
  pmuludq %xmm4,%xmm9
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm4
  shufps $0xdd,%xmm4,%xmm3
  psrad  $0x5,%xmm3
  movdqa %xmm3,%xmm4
  pslld  $0x3,%xmm4
  psubd  %xmm3,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm3,%xmm4
  psubd  %xmm4,%xmm5
  movdqa %xmm2,%xmm4
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm5,%xmm4
  movdqa %xmm2,%xmm3
  punpcklwd %xmm4,%xmm2
  punpckhwd %xmm4,%xmm3
  punpcklwd %xmm3,%xmm2
  pand   %xmm10,%xmm2
  packuswb %xmm2,%xmm1
  movups %xmm1,0x1(%rdx,%rcx,1)
  add    $0x10,%rcx
  cmp    %r8,%rcx
  jne    L829
  mov    %edi,%r8d
  and    $0xfffffff0,%r8d
  mov    %r8d,%r9d
  shl    $0x4,%r9d
  add    %r8d,%r9d
  cmp    %r8d,%edi
  je     L711
  mov    %r8d,%ecx
  movzbl (%rax,%rcx,1),%r11d
  add    %r9d,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x11(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x1(%r8),%r10d
  mov    %r11b,0x1(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x1(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x22(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x2(%r8),%r10d
  mov    %r11b,0x2(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x2(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x33(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x3(%r8),%r10d
  mov    %r11b,0x3(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x3(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x44(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x4(%r8),%r10d
  mov    %r11b,0x4(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x4(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x55(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x5(%r8),%r10d
  mov    %r11b,0x5(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x5(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x66(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x6(%r8),%r10d
  mov    %r11b,0x6(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x6(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x77(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x7(%r8),%r10d
  mov    %r11b,0x7(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x7(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x88(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x8(%r8),%r10d
  mov    %r11b,0x8(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x8(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x99(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x9(%r8),%r10d
  mov    %r11b,0x9(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x9(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0xaa(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xa(%r8),%r10d
  mov    %r11b,0xa(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xa(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0xbb(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xb(%r8),%r10d
  mov    %r11b,0xb(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xb(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0xcc(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xc(%r8),%r10d
  mov    %r11b,0xc(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xc(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0xdd(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xd(%r8),%r10d
  mov    %r11b,0xd(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xd(%rax,%rcx,1),%r11d
  add    $0xe,%r8d
  add    $0xee,%r9d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  mov    %r11b,0xe(%rdx,%rcx,1)
  cmp    %r8d,%edi
  jg     L177
  jmp    L711
  nopl   0x0(%rax)
L511:
  movb   $0x0,(%rdx)
  test   %edi,%edi
  jle    L711
  mov    %rdx,%r10
  mov    %edi,%r8d
  lea    -0x1(%rdi),%ecx
  sub    %rax,%r10
  cmp    $0xe,%r10
  jbe    L646
  cmp    $0x6,%ecx
  jbe    L646
  cmp    $0xe,%ecx
  jbe    L38
  shr    $0x4,%r8d
  xor    %ecx,%ecx
  shl    $0x4,%r8
  nopl   (%rax)
L423:
  movdqu (%rax,%rcx,1),%xmm6
  movups %xmm6,0x1(%rdx,%rcx,1)
  add    $0x10,%rcx
  cmp    %r8,%rcx
  jne    L423
  mov    %edi,%ecx
  and    $0xfffffff0,%ecx
  mov    %ecx,%r9d
  cmp    %edi,%ecx
  je     L711
  mov    %edi,%r8d
  sub    %ecx,%r8d
  lea    -0x1(%r8),%r10d
  cmp    $0x6,%r10d
  jbe    L565
L688:
  mov    (%rax,%rcx,1),%r10
  mov    %r10,0x1(%rdx,%rcx,1)
  mov    %r8d,%ecx
  and    $0xfffffff8,%ecx
  add    %ecx,%r9d
  cmp    %r8d,%ecx
  je     L711
L565:
  movslq %r9d,%rcx
  movzbl (%rax,%rcx,1),%r8d
  mov    %r8b,0x1(%rdx,%rcx,1)
  lea    0x1(%r9),%r8d
  cmp    %edi,%r8d
  jge    L711
  movzbl 0x1(%rax,%rcx,1),%r8d
  mov    %r8b,0x2(%rdx,%rcx,1)
  lea    0x2(%r9),%r8d
  cmp    %edi,%r8d
  jge    L711
  movzbl 0x2(%rax,%rcx,1),%r8d
  mov    %r8b,0x3(%rdx,%rcx,1)
  lea    0x3(%r9),%r8d
  cmp    %r8d,%edi
  jle    L711
  movzbl 0x3(%rax,%rcx,1),%r8d
  mov    %r8b,0x4(%rdx,%rcx,1)
  lea    0x4(%r9),%r8d
  cmp    %edi,%r8d
  jge    L711
  movzbl 0x4(%rax,%rcx,1),%r8d
  mov    %r8b,0x5(%rdx,%rcx,1)
  lea    0x5(%r9),%r8d
  cmp    %edi,%r8d
  jge    L711
  movzbl 0x5(%rax,%rcx,1),%r8d
  add    $0x6,%r9d
  mov    %r8b,0x6(%rdx,%rcx,1)
  cmp    %r9d,%edi
  jle    L711
  movzbl 0x6(%rax,%rcx,1),%eax
  mov    %al,0x7(%rdx,%rcx,1)
  jmp    L711
  xchg   %ax,%ax
L573:
  movb   $0x2,(%rdx)
  test   %edi,%edi
  jle    L711
  lea    -0x1(%rdi),%ecx
  cmp    $0xe,%ecx
  jbe    L370
  mov    %rdx,%rcx
  sub    %rax,%rcx
  cmp    $0xe,%rcx
  jbe    L370
  pxor   %xmm6,%xmm6
  mov    %edi,%r8d
  pxor   %xmm13,%xmm13
  xor    %ecx,%ecx
  movdqa D62(%rip),%xmm0
  movdqa %xmm6,%xmm7
  shr    $0x4,%r8d
  movdqa D189(%rip),%xmm12
  movdqa D22(%rip),%xmm10
  shl    $0x4,%r8
  pxor   %xmm11,%xmm11
  movdqa D153(%rip),%xmm14
  pcmpgtd %xmm0,%xmm7
  nopl   (%rax)
L233:
  movdqu (%rax,%rcx,1),%xmm4
  movdqa %xmm12,%xmm5
  movdqa %xmm7,%xmm9
  movdqa D92(%rip),%xmm3
  movdqa %xmm7,%xmm15
  paddd  %xmm14,%xmm12
  movdqa %xmm4,%xmm2
  paddd  %xmm5,%xmm3
  punpckhbw %xmm13,%xmm4
  punpcklbw %xmm13,%xmm2
  movdqa %xmm4,%xmm8
  punpckhwd %xmm11,%xmm4
  movdqa %xmm2,%xmm1
  punpckhwd %xmm11,%xmm2
  punpcklwd %xmm11,%xmm8
  paddd  %xmm2,%xmm3
  movdqa D182(%rip),%xmm2
  punpcklwd %xmm11,%xmm1
  paddd  %xmm5,%xmm1
  paddd  %xmm5,%xmm2
  paddd  D138(%rip),%xmm5
  paddd  %xmm8,%xmm2
  movdqa %xmm1,%xmm8
  paddd  %xmm4,%xmm5
  punpckldq %xmm1,%xmm8
  movdqa %xmm6,%xmm4
  pcmpgtd %xmm8,%xmm4
  pmuludq %xmm8,%xmm9
  pmuludq %xmm0,%xmm8
  pmuludq %xmm0,%xmm4
  paddq  %xmm9,%xmm4
  movdqa %xmm6,%xmm9
  psllq  $0x20,%xmm4
  paddq  %xmm4,%xmm8
  movdqa %xmm1,%xmm4
  punpckhdq %xmm1,%xmm4
  pcmpgtd %xmm4,%xmm9
  pmuludq %xmm4,%xmm15
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm9
  paddq  %xmm15,%xmm9
  movdqa %xmm7,%xmm15
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm4
  movdqa %xmm7,%xmm9
  shufps $0xdd,%xmm4,%xmm8
  psrad  $0x5,%xmm8
  movdqa %xmm8,%xmm4
  pslld  $0x3,%xmm4
  psubd  %xmm8,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm8,%xmm4
  movdqa %xmm6,%xmm8
  psubd  %xmm4,%xmm1
  movdqa %xmm3,%xmm4
  punpckldq %xmm3,%xmm4
  pcmpgtd %xmm4,%xmm8
  pmuludq %xmm4,%xmm9
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  movdqa %xmm6,%xmm9
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm4
  movdqa %xmm3,%xmm8
  punpckhdq %xmm3,%xmm8
  pcmpgtd %xmm8,%xmm9
  pmuludq %xmm8,%xmm15
  pmuludq %xmm0,%xmm8
  pmuludq %xmm0,%xmm9
  paddq  %xmm15,%xmm9
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm8
  movdqa %xmm7,%xmm9
  shufps $0xdd,%xmm8,%xmm4
  psrad  $0x5,%xmm4
  movdqa %xmm4,%xmm8
  pslld  $0x3,%xmm8
  psubd  %xmm4,%xmm8
  pslld  $0x4,%xmm8
  paddd  %xmm4,%xmm8
  psubd  %xmm8,%xmm3
  movdqa %xmm7,%xmm8
  movdqa %xmm3,%xmm4
  movdqa %xmm1,%xmm3
  punpcklwd %xmm4,%xmm1
  punpckhwd %xmm4,%xmm3
  movdqa %xmm1,%xmm4
  punpcklwd %xmm3,%xmm1
  punpckhwd %xmm3,%xmm4
  movdqa %xmm6,%xmm3
  punpcklwd %xmm4,%xmm1
  movdqa %xmm2,%xmm4
  punpckldq %xmm2,%xmm4
  pand   %xmm10,%xmm1
  pcmpgtd %xmm4,%xmm3
  pmuludq %xmm4,%xmm8
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm3
  paddq  %xmm8,%xmm3
  movdqa %xmm6,%xmm8
  psllq  $0x20,%xmm3
  paddq  %xmm3,%xmm4
  movdqa %xmm2,%xmm3
  punpckhdq %xmm2,%xmm3
  pcmpgtd %xmm3,%xmm8
  pmuludq %xmm3,%xmm9
  pmuludq %xmm0,%xmm3
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  movdqa %xmm7,%xmm9
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm3
  movdqa %xmm7,%xmm8
  shufps $0xdd,%xmm3,%xmm4
  psrad  $0x5,%xmm4
  movdqa %xmm4,%xmm3
  pslld  $0x3,%xmm3
  psubd  %xmm4,%xmm3
  pslld  $0x4,%xmm3
  paddd  %xmm4,%xmm3
  movdqa %xmm6,%xmm4
  psubd  %xmm3,%xmm2
  movdqa %xmm5,%xmm3
  punpckldq %xmm5,%xmm3
  pcmpgtd %xmm3,%xmm4
  pmuludq %xmm3,%xmm8
  pmuludq %xmm0,%xmm3
  pmuludq %xmm0,%xmm4
  paddq  %xmm8,%xmm4
  movdqa %xmm6,%xmm8
  psllq  $0x20,%xmm4
  paddq  %xmm4,%xmm3
  movdqa %xmm5,%xmm4
  punpckhdq %xmm5,%xmm4
  pcmpgtd %xmm4,%xmm8
  pmuludq %xmm4,%xmm9
  pmuludq %xmm0,%xmm4
  pmuludq %xmm0,%xmm8
  paddq  %xmm9,%xmm8
  psllq  $0x20,%xmm8
  paddq  %xmm8,%xmm4
  shufps $0xdd,%xmm4,%xmm3
  psrad  $0x5,%xmm3
  movdqa %xmm3,%xmm4
  pslld  $0x3,%xmm4
  psubd  %xmm3,%xmm4
  pslld  $0x4,%xmm4
  paddd  %xmm3,%xmm4
  psubd  %xmm4,%xmm5
  movdqa %xmm2,%xmm4
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm5,%xmm4
  movdqa %xmm2,%xmm3
  punpcklwd %xmm4,%xmm2
  punpckhwd %xmm4,%xmm3
  punpcklwd %xmm3,%xmm2
  pand   %xmm10,%xmm2
  packuswb %xmm2,%xmm1
  movups %xmm1,0x1(%rdx,%rcx,1)
  add    $0x10,%rcx
  cmp    %rcx,%r8
  jne    L233
  mov    %edi,%r8d
  and    $0xfffffff0,%r8d
  lea    0x0(,%r8,8),%r9d
  sub    %r8d,%r9d
  cmp    %r8d,%edi
  je     L711
  mov    %r8d,%ecx
  movzbl (%rax,%rcx,1),%r11d
  add    %r9d,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x7(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x1(%r8),%r10d
  mov    %r11b,0x1(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x1(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0xe(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x2(%r8),%r10d
  mov    %r11b,0x2(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x2(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x15(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x3(%r8),%r10d
  mov    %r11b,0x3(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x3(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x1c(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x4(%r8),%r10d
  mov    %r11b,0x4(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x4(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x23(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x5(%r8),%r10d
  mov    %r11b,0x5(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x5(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x2a(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x6(%r8),%r10d
  mov    %r11b,0x6(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x6(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x31(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x7(%r8),%r10d
  mov    %r11b,0x7(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x7(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x38(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x8(%r8),%r10d
  mov    %r11b,0x8(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x8(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x3f(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0x9(%r8),%r10d
  mov    %r11b,0x9(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0x9(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x46(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xa(%r8),%r10d
  mov    %r11b,0xa(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xa(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x4d(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xb(%r8),%r10d
  mov    %r11b,0xb(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xb(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x54(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xc(%r8),%r10d
  mov    %r11b,0xc(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xc(%rax,%rcx,1),%r11d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  lea    0x5b(%r9),%ebx
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  lea    0xd(%r8),%r10d
  mov    %r11b,0xd(%rdx,%rcx,1)
  cmp    %r10d,%edi
  jle    L711
  movzbl 0xd(%rax,%rcx,1),%r11d
  add    $0xe,%r8d
  add    $0x62,%r9d
  add    %ebx,%r11d
  movslq %r11d,%r10
  mov    %r11d,%ebx
  imul   $0x487ede05,%r10,%r10
  sar    $0x1f,%ebx
  sar    $0x25,%r10
  sub    %ebx,%r10d
  imul   $0x71,%r10d,%r10d
  sub    %r10d,%r11d
  mov    %r11b,0xe(%rdx,%rcx,1)
  cmp    %r8d,%edi
  jle    L711
L177:
  movzbl 0xe(%rax,%rcx,1),%r8d
  add    %r9d,%r8d
  jmp    L607
  nopl   0x0(%rax)
L235:
  mov    %edi,%r11d
  xor    %r10d,%r10d
  xor    %r9d,%r9d
  shl    $0x4,%r11d
  add    %edi,%r11d
  nopl   0x0(%rax,%rax,1)
L857:
  movzbl (%rax,%r10,1),%r8d
  add    %r9d,%r8d
  add    $0x11,%r9d
  movslq %r8d,%rcx
  mov    %r8d,%ebx
  imul   $0x487ede05,%rcx,%rcx
  sar    $0x1f,%ebx
  sar    $0x25,%rcx
  sub    %ebx,%ecx
  imul   $0x71,%ecx,%ecx
  sub    %ecx,%r8d
  mov    %r8b,0x1(%rdx,%r10,1)
  add    $0x1,%r10
  cmp    %r9d,%r11d
  jne    L857
  jmp    L711
  nopl   0x0(%rax,%rax,1)
L404:
  mov    %edi,%r11d
  xor    %r9d,%r9d
  cs nopw 0x0(%rax,%rax,1)
L356:
  movzbl (%rax,%r9,1),%ecx
  lea    (%r9,%r9,2),%r8d
  add    %ecx,%r8d
  movslq %r8d,%rcx
  mov    %r8d,%r10d
  imul   $0x487ede05,%rcx,%rcx
  sar    $0x1f,%r10d
  sar    $0x25,%rcx
  sub    %r10d,%ecx
  imul   $0x71,%ecx,%ecx
  sub    %ecx,%r8d
  mov    %r8b,0x1(%rdx,%r9,1)
  add    $0x1,%r9
  cmp    %r11,%r9
  jne    L356
  jmp    L711
  nopl   (%rax)
L646:
  mov    %edi,%r9d
  xor    %ecx,%ecx
  nopl   (%rax)
L108:
  movzbl (%rax,%rcx,1),%r8d
  mov    %r8b,0x1(%rdx,%rcx,1)
  add    $0x1,%rcx
  cmp    %rcx,%r9
  jne    L108
  jmp    L711
L370:
  lea    0x0(,%rdi,8),%r11d
  xor    %r10d,%r10d
  xor    %r9d,%r9d
  sub    %edi,%r11d
  nopl   0x0(%rax)
L685:
  movzbl (%rax,%r10,1),%r8d
  add    %r9d,%r8d
  add    $0x7,%r9d
  movslq %r8d,%rcx
  mov    %r8d,%ebx
  imul   $0x487ede05,%rcx,%rcx
  sar    $0x1f,%ebx
  sar    $0x25,%rcx
  sub    %ebx,%ecx
  imul   $0x71,%ecx,%ecx
  sub    %ecx,%r8d
  mov    %r8b,0x1(%rdx,%r10,1)
  add    $0x1,%r10
  cmp    %r11d,%r9d
  jne    L685
  jmp    L711
L38:
  xor    %ecx,%ecx
  jmp    L688
```

tool_calls: name: parse_data
arguments: label: D62
datatype: byte[16]
name: parse_data
arguments: label: D111
datatype: byte[16]
name: parse_data
arguments: label: D101
datatype: byte[16]
name: parse_data
arguments: label: D22
datatype: byte[16]
name: parse_data
arguments: label: D12
datatype: byte[16]
name: parse_data
arguments: label: D97
datatype: byte[16]
name: parse_data
arguments: label: D82
datatype: byte[16]
name: parse_data
arguments: label: D133
datatype: byte[16]
name: parse_data
arguments: label: D186
datatype: byte[16]
name: parse_data
arguments: label: D155
datatype: byte[16]
name: parse_data
arguments: label: D128
datatype: byte[16]
name: parse_data
arguments: label: D2
datatype: byte[16]
name: parse_data
arguments: label: D189
datatype: byte[16]
name: parse_data
arguments: label: D153
datatype: byte[16]
name: parse_data
arguments: label: D92
datatype: byte[16]
name: parse_data
arguments: label: D182
datatype: byte[16]
name: parse_data
arguments: label: D138
datatype: byte[16]

tool: {"D62": [0x05,0xde,0x7e,0x48,0x05,0xde,0x7e,0x48,0x05,0xde,0x7e,0x48,0x05,0xde,0x7e,0x48]}

tool: {"D111": [0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00]}

tool: {"D101": [0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00]}

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

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

tool: {"D97": [0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00]}

tool: {"D82": [0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00]}

tool: {"D133": [0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x33,0x00,0x00,0x00]}

tool: {"D186": [0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00,0x10,0x01,0x00,0x00]}

tool: {"D155": [0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00]}

tool: {"D128": [0x88,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x88,0x00,0x00,0x00]}

tool: {"D2": [0xcc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00]}

tool: {"D189": [0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x15,0x00,0x00,0x00]}

tool: {"D153": [0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00]}

tool: {"D92": [0x1c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1c,0x00,0x00,0x00]}

tool: {"D182": [0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00]}

tool: {"D138": [0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00]}

assistant: ```c
void apply_mask(int mask, int data_length, unsigned char *masked_codeword_array, unsigned char *codeword_array, int ecc_length) {
  int weight = 0;
  int j;
  switch (mask) {
  case 0:
    masked_codeword_array[0] = 0;
    for (j = 0; j < data_length; j++) {
      masked_codeword_array[j + 1] = codeword_array[j];
    }
    break;
  case 1:
    masked_codeword_array[0] = 1;
    for (j = 0; j < data_length; j++) {
      masked_codeword_array[j + 1] = (weight + codeword_array[j]) % 113;
      weight += 3;
    }
    break;
  case 2:
    masked_codeword_array[0] = 2;
    for (j = 0; j < data_length; j++) {
      masked_codeword_array[j + 1] = (weight + codeword_array[j]) % 113;
      weight += 7;
    }
    break;
  case 3:
    masked_codeword_array[0] = 3;
    for (j = 0; j < data_length; j++) {
      masked_codeword_array[j + 1] = (weight + codeword_array[j]) % 113;
      weight += 17;
    }
    break;
  }
  rsencode(data_length + 1, ecc_length, masked_codeword_array);
}
```