user: Translate the below assembly code into C programming language:

```asm
<IntegerPacker_32>:
  endbr64
  cmp    $0x20,%edx
  jg     L553
  cmp    %ecx,%edx
  jl     L553
  push   %r15
  mov    %r9d,%eax
  mov    %rsi,%r10
  mov    %rdi,%r11
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    0x1f(%r9),%ebx
  sub    $0x170,%rsp
  test   %r9d,%r9d
  cmovns %r9d,%ebx
  sar    $0x1f,%eax
  shr    $0x1b,%eax
  add    %eax,%r9d
  sar    $0x5,%ebx
  and    $0x1f,%r9d
  movslq %ebx,%rbx
  sub    %r9d,%eax
  lea    (%rdi,%rbx,4),%rdi
  lea    0x20(%rax),%esi
  mov    $0xffffffff,%eax
  shl    %cl,%eax
  cmp    $0x20,%ecx
  mov    $0xffffffff,%ecx
  not    %eax
  cmovge %ecx,%eax
  movd   %eax,%xmm6
  pshufd $0xe0,%xmm6,%xmm6
  movq   %xmm6,-0x78(%rsp)
  cmp    $0x20,%esi
  je     L579
  xor    %r9d,%r9d
  cmp    $0x1f,%esi
  jg     L76
  mov    (%rdi),%r9d
  mov    %esi,%ecx
  shr    %cl,%r9d
L76:
  cmp    $0x1,%r8d
  jle    L742
  sub    $0x2,%r8d
  mov    %r8d,%r12d
  shr    %r12d
  lea    0x1(%r12),%ecx
  lea    (%r10,%rcx,8),%rbp
L696:
  mov    %esi,%r11d
  mov    %edx,%ecx
  mov    %eax,%ebx
  and    (%r10),%ebx
  shl    %cl,%r9
  sub    %edx,%r11d
  or     %rbx,%r9
  test   %r11d,%r11d
  jg     L387
  mov    %edx,%ecx
  sub    %esi,%ecx
  mov    %r9,%rsi
  shr    %cl,%rsi
  test   %r11d,%r11d
  cmovne %rsi,%r9
  add    $0x20,%r11d
  add    $0x4,%rdi
  mov    %r9d,-0x4(%rdi)
  mov    %rbx,%r9
L387:
  add    $0x8,%r10
  mov    %r11d,%esi
  mov    %edx,%ecx
  mov    %eax,%ebx
  shl    %cl,%r9
  and    -0x4(%r10),%ebx
  sub    %edx,%esi
  or     %rbx,%r9
  test   %esi,%esi
  jg     L488
  mov    %edx,%ecx
  mov    %r9,%r15
  sub    %r11d,%ecx
  shr    %cl,%r15
  test   %esi,%esi
  cmovne %r15,%r9
  add    $0x20,%esi
  add    $0x4,%rdi
  mov    %r9d,-0x4(%rdi)
  mov    %rbx,%r9
L488:
  cmp    %rbp,%r10
  jne    L696
  neg    %r12d
  lea    (%r8,%r12,2),%r8d
L687:
  mov    %esi,%r10d
  cmp    $0x1,%r8d
  jne    L301
  mov    %edx,%ecx
  and    0x0(%rbp),%eax
  sub    %edx,%r10d
  shl    %cl,%r9
  or     %rax,%r9
  test   %r10d,%r10d
  jg     L301
  sub    %esi,%edx
  mov    %r9,%rsi
  mov    %edx,%ecx
  shr    %cl,%rsi
  test   %r10d,%r10d
  cmovne %rsi,%r9
  add    $0x20,%r10d
  add    $0x4,%rdi
  mov    %r9d,-0x4(%rdi)
  mov    %rax,%r9
L301:
  cmp    $0x1f,%r10d
  jg     L119
  mov    %r10d,%ecx
  shl    %cl,%r9
  mov    %r9d,(%rdi)
L119:
  add    $0x170,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L579:
  cmp    $0x20,%edx
  je     L397
  cmp    $0x18,%edx
  je     L902
  cmp    $0x10,%edx
  jne    L856
  cmp    $0x3,%r8d
  jle    L409
  sub    $0x4,%r8d
  mov    %r8d,%ebp
  shr    $0x2,%ebp
  lea    0x1(%rbp),%r12d
  lea    (%rbx,%r12,2),%rbx
  mov    %r12,%rcx
  lea    (%r11,%rbx,4),%r11
  cmp    %r11,%r10
  setae  %bl
  shl    $0x4,%r12
  lea    (%r10,%r12,1),%r11
  cmp    %r11,%rdi
  setae  %r11b
  or     %r11b,%bl
  je     L442
  cmp    $0x3,%r8d
  jbe    L442
  mov    %ecx,%r12d
  movd   %eax,%xmm7
  mov    %r10,%r11
  mov    %rdi,%rbx
  shr    %r12d
  pshufd $0x0,%xmm7,%xmm2
  sub    $0x1,%r12d
  shl    $0x5,%r12
  lea    0x20(%r10,%r12,1),%r12
  nopl   0x0(%rax,%rax,1)
L611:
  movdqu (%r11),%xmm1
  movdqu 0x10(%r11),%xmm5
  add    $0x20,%r11
  add    $0x10,%rbx
  movdqa %xmm1,%xmm0
  shufps $0xdd,%xmm5,%xmm1
  pand   %xmm2,%xmm1
  shufps $0x88,%xmm5,%xmm0
  pand   %xmm2,%xmm0
  pslld  $0x10,%xmm0
  por    %xmm1,%xmm0
  movups %xmm0,-0x10(%rbx)
  cmp    %r11,%r12
  jne    L611
  mov    %ecx,%r12d
  and    $0xfffffffe,%r12d
  mov    %r12d,%ebx
  lea    (%rdi,%rbx,8),%r11
  shl    $0x4,%rbx
  add    %r10,%rbx
  cmp    %r12d,%ecx
  je     L559
  movq   (%rbx),%xmm1
  movq   0x8(%rbx),%xmm2
  movq   -0x78(%rsp),%xmm7
  movdqa %xmm1,%xmm0
  punpckldq %xmm2,%xmm1
  punpckldq %xmm2,%xmm0
  pshufd $0xe,%xmm1,%xmm1
  pand   %xmm7,%xmm0
  pand   %xmm7,%xmm1
  pslld  $0x10,%xmm0
  por    %xmm1,%xmm0
  movq   %xmm0,(%r11)
L559:
  mov    %ecx,%ecx
  neg    %ebp
  mov    %rcx,%r11
  lea    (%rdi,%rcx,8),%rdi
  lea    (%r8,%rbp,4),%r8d
  shl    $0x4,%r11
  add    %r11,%r10
  jmp    L409
  nopl   0x0(%rax)
L553:
  ret
  nopl   0x0(%rax)
L742:
  mov    %r10,%rbp
  jmp    L687
  nopl   0x0(%rax,%rax,1)
L856:
  cmp    $0xc,%edx
  jne    L683
  cmp    $0x7,%r8d
  jle    L409
  sub    $0x8,%r8d
  mov    %rdi,%rbx
  mov    %r8d,%r13d
  shr    $0x3,%r13d
  lea    0x1(%r13),%r12d
  mov    %r12,%rbp
  shl    $0x5,%rbp
  add    %r10,%rbp
  nop
L354:
  mov    (%r10),%r9d
  mov    0x4(%r10),%r14d
  add    $0x20,%r10
  add    $0xc,%rbx
  mov    -0x18(%r10),%ecx
  mov    -0x14(%r10),%r11d
  and    %eax,%r9d
  and    %eax,%r14d
  shl    $0x8,%r14d
  and    %eax,%ecx
  shl    $0x14,%r9d
  and    %eax,%r11d
  or     %r14d,%r9d
  mov    %ecx,%r14d
  shl    $0x10,%r11d
  shr    $0x4,%r14d
  shl    $0x1c,%ecx
  or     %r14d,%r9d
  or     %r11d,%ecx
  mov    %r9d,-0xc(%rbx)
  mov    -0x10(%r10),%r11d
  mov    -0xc(%r10),%r9d
  and    %eax,%r11d
  and    %eax,%r9d
  shl    $0x4,%r11d
  or     %r11d,%ecx
  mov    %r9d,%r11d
  shl    $0x18,%r9d
  shr    $0x8,%r11d
  or     %r11d,%ecx
  mov    %ecx,-0x8(%rbx)
  mov    -0x8(%r10),%ecx
  and    %eax,%ecx
  shl    $0xc,%ecx
  or     %ecx,%r9d
  mov    -0x4(%r10),%ecx
  and    %eax,%ecx
  or     %ecx,%r9d
  mov    %r9d,-0x4(%rbx)
  cmp    %r10,%rbp
  jne    L354
  lea    (%r12,%r12,2),%rcx
  neg    %r13d
  lea    (%rdi,%rcx,4),%rdi
  lea    (%r8,%r13,8),%r8d
L409:
  mov    %r10,%r15
  cmp    $0x2,%edx
  jne    L405
  cmp    $0xf,%r8d
  jle    L80
  sub    $0x10,%r8d
  mov    %r8d,%r12d
  shr    $0x4,%r12d
  lea    0x1(%r12),%ecx
  lea    (%rdi,%rcx,4),%rbx
  mov    %rcx,%r11
  cmp    %rbx,%r10
  setae  %bl
  shl    $0x6,%rcx
  add    %r10,%rcx
  cmp    %rcx,%rdi
  setae  %cl
  or     %cl,%bl
  je     L145
  cmp    $0xf,%r8d
  jbe    L145
  cmp    $0x2f,%r8d
  jbe    L896
  mov    %r11d,%ebp
  movd   %eax,%xmm5
  mov    %rdi,%rbx
  mov    %r10,%rcx
  shr    $0x2,%ebp
  pshufd $0x0,%xmm5,%xmm15
  sub    $0x1,%ebp
  shl    $0x4,%rbp
  lea    0x10(%rdi,%rbp,1),%rbp
  nopw   0x0(%rax,%rax,1)
L582:
  movdqu (%rcx),%xmm0
  movdqu 0x10(%rcx),%xmm2
  add    $0x10,%rbx
  add    $0x100,%rcx
  movdqu -0xe0(%rcx),%xmm7
  movdqu -0xc0(%rcx),%xmm4
  movdqa %xmm0,%xmm14
  shufps $0xdd,%xmm2,%xmm0
  movdqu -0xa0(%rcx),%xmm6
  movdqu -0x80(%rcx),%xmm1
  shufps $0x88,%xmm2,%xmm14
  movdqa %xmm7,%xmm13
  movdqu -0xd0(%rcx),%xmm2
  movdqa %xmm4,%xmm12
  movdqu -0x70(%rcx),%xmm8
  movdqa %xmm6,%xmm11
  movdqu -0x60(%rcx),%xmm5
  movaps %xmm0,-0x38(%rsp)
  shufps $0x88,%xmm2,%xmm13
  shufps $0xdd,%xmm2,%xmm7
  movdqu -0x40(%rcx),%xmm3
  movdqu -0xb0(%rcx),%xmm2
  movdqa %xmm5,%xmm10
  movdqu -0x10(%rcx),%xmm0
  shufps $0x88,%xmm2,%xmm12
  shufps $0xdd,%xmm2,%xmm4
  movdqa %xmm3,%xmm9
  movdqu -0x90(%rcx),%xmm2
  shufps $0x88,%xmm2,%xmm11
  shufps $0xdd,%xmm2,%xmm6
  movdqa %xmm1,%xmm2
  shufps $0xdd,%xmm8,%xmm1
  shufps $0x88,%xmm8,%xmm2
  movdqu -0x50(%rcx),%xmm8
  shufps $0x88,%xmm8,%xmm10
  shufps $0xdd,%xmm8,%xmm5
  movdqu -0x30(%rcx),%xmm8
  shufps $0x88,%xmm8,%xmm9
  shufps $0xdd,%xmm8,%xmm3
  movdqu -0x20(%rcx),%xmm8
  movaps %xmm3,-0x58(%rsp)
  movdqu -0x10(%rcx),%xmm3
  shufps $0x88,%xmm3,%xmm8
  movdqu -0x20(%rcx),%xmm3
  shufps $0xdd,%xmm0,%xmm3
  movaps %xmm3,-0x48(%rsp)
  movdqa %xmm14,%xmm3
  shufps $0xdd,%xmm13,%xmm14
  shufps $0x88,%xmm13,%xmm3
  movdqa %xmm12,%xmm13
  shufps $0xdd,%xmm11,%xmm12
  movdqa -0x38(%rsp),%xmm0
  shufps $0x88,%xmm11,%xmm13
  movdqa %xmm2,%xmm11
  shufps $0xdd,%xmm10,%xmm2
  movaps %xmm3,-0x68(%rsp)
  shufps $0x88,%xmm10,%xmm11
  movdqa %xmm9,%xmm10
  shufps $0xdd,%xmm8,%xmm9
  movdqa -0x48(%rsp),%xmm3
  shufps $0x88,%xmm8,%xmm10
  movdqa %xmm0,%xmm8
  movaps %xmm14,-0x28(%rsp)
  shufps $0xdd,%xmm7,%xmm0
  movdqa -0x58(%rsp),%xmm14
  shufps $0x88,%xmm7,%xmm8
  movdqa %xmm4,%xmm7
  shufps $0xdd,%xmm6,%xmm4
  shufps $0x88,%xmm6,%xmm7
  movdqa %xmm1,%xmm6
  shufps $0xdd,%xmm5,%xmm1
  shufps $0x88,%xmm5,%xmm6
  shufps $0x88,%xmm3,%xmm14
  movdqa %xmm14,%xmm5
  movdqa -0x58(%rsp),%xmm14
  shufps $0xdd,%xmm3,%xmm14
  movdqa -0x68(%rsp),%xmm3
  shufps $0x88,%xmm13,%xmm3
  movaps %xmm3,-0x48(%rsp)
  movdqa -0x68(%rsp),%xmm3
  shufps $0xdd,%xmm13,%xmm3
  movdqa %xmm11,%xmm13
  shufps $0xdd,%xmm10,%xmm11
  movaps %xmm3,-0x38(%rsp)
  shufps $0x88,%xmm10,%xmm13
  movdqa %xmm8,%xmm10
  shufps $0xdd,%xmm7,%xmm8
  movaps %xmm11,-0x58(%rsp)
  shufps $0x88,%xmm7,%xmm10
  movdqa %xmm6,%xmm7
  shufps $0xdd,%xmm5,%xmm6
  shufps $0x88,%xmm5,%xmm7
  movaps %xmm7,-0x68(%rsp)
  movdqa -0x28(%rsp),%xmm7
  movdqa -0x48(%rsp),%xmm11
  movdqa %xmm7,%xmm5
  shufps $0xdd,%xmm12,%xmm7
  shufps $0x88,%xmm13,%xmm11
  movdqa %xmm11,%xmm3
  shufps $0x88,%xmm12,%xmm5
  movdqa %xmm2,%xmm12
  shufps $0xdd,%xmm9,%xmm2
  pand   %xmm15,%xmm3
  shufps $0x88,%xmm9,%xmm12
  movdqa %xmm0,%xmm9
  shufps $0xdd,%xmm4,%xmm0
  movdqa %xmm10,%xmm11
  shufps $0x88,%xmm4,%xmm9
  movdqa %xmm1,%xmm4
  pslld  $0x2,%xmm3
  shufps $0xdd,%xmm14,%xmm1
  shufps $0x88,%xmm14,%xmm4
  shufps $0x88,-0x68(%rsp),%xmm11
  movdqa %xmm5,%xmm14
  pand   %xmm15,%xmm11
  por    %xmm11,%xmm3
  shufps $0x88,%xmm12,%xmm14
  movdqa %xmm14,%xmm11
  movdqa %xmm9,%xmm14
  pand   %xmm15,%xmm11
  pslld  $0x2,%xmm3
  shufps $0x88,%xmm4,%xmm14
  shufps $0xdd,-0x68(%rsp),%xmm10
  por    %xmm11,%xmm3
  movdqa %xmm14,%xmm11
  pand   %xmm15,%xmm10
  movdqa -0x38(%rsp),%xmm14
  pand   %xmm15,%xmm11
  pslld  $0x2,%xmm3
  shufps $0xdd,%xmm12,%xmm5
  pand   %xmm15,%xmm5
  por    %xmm11,%xmm3
  movdqa %xmm14,%xmm11
  shufps $0xdd,%xmm4,%xmm9
  shufps $0x88,-0x58(%rsp),%xmm11
  pslld  $0x2,%xmm3
  pand   %xmm15,%xmm11
  pand   %xmm15,%xmm9
  por    %xmm11,%xmm3
  movdqa %xmm8,%xmm11
  movdqa %xmm14,%xmm4
  shufps $0xdd,-0x58(%rsp),%xmm4
  pslld  $0x2,%xmm3
  shufps $0x88,%xmm6,%xmm11
  pand   %xmm15,%xmm11
  pand   %xmm15,%xmm4
  por    %xmm11,%xmm3
  movdqa %xmm7,%xmm11
  shufps $0xdd,%xmm6,%xmm8
  pand   %xmm15,%xmm8
  shufps $0x88,%xmm2,%xmm11
  pslld  $0x2,%xmm3
  pand   %xmm15,%xmm11
  shufps $0xdd,%xmm2,%xmm7
  por    %xmm11,%xmm3
  movdqa %xmm0,%xmm11
  pand   %xmm15,%xmm7
  shufps $0xdd,%xmm1,%xmm0
  pslld  $0x2,%xmm3
  shufps $0x88,%xmm1,%xmm11
  pand   %xmm15,%xmm11
  pand   %xmm15,%xmm0
  por    %xmm11,%xmm3
  movdqa -0x48(%rsp),%xmm11
  pslld  $0x2,%xmm3
  shufps $0xdd,%xmm13,%xmm11
  pand   %xmm15,%xmm11
  por    %xmm11,%xmm3
  pslld  $0x2,%xmm3
  por    %xmm10,%xmm3
  pslld  $0x2,%xmm3
  por    %xmm5,%xmm3
  pslld  $0x2,%xmm3
  por    %xmm9,%xmm3
  pslld  $0x2,%xmm3
  por    %xmm4,%xmm3
  pslld  $0x2,%xmm3
  por    %xmm3,%xmm8
  pslld  $0x2,%xmm8
  movdqa %xmm8,%xmm2
  por    %xmm7,%xmm2
  pslld  $0x2,%xmm2
  por    %xmm2,%xmm0
  movups %xmm0,-0x10(%rbx)
  cmp    %rbx,%rbp
  jne    L582
  mov    %r11d,%ebx
  and    $0xfffffffc,%ebx
  mov    %ebx,%ecx
  lea    (%rdi,%rcx,4),%rbp
  shl    $0x6,%rcx
  add    %r10,%rcx
  cmp    %r11d,%ebx
  je     L474
L428:
  mov    %r11d,%r13d
  sub    %ebx,%r13d
  cmp    %r12d,%ebx
  je     L224
  mov    %rbx,%r14
  shl    $0x6,%r14
  add    %r10,%r14
  mov    0x8(%r14),%r15
  movq   (%r14),%xmm1
  movq   0x10(%r14),%xmm14
  movq   0x18(%r14),%xmm12
  movq   %r15,%xmm0
  movdqa %xmm1,%xmm2
  mov    0x60(%r14),%r9
  movq   0x20(%r14),%xmm10
  punpckldq %xmm0,%xmm1
  movq   0x28(%r14),%xmm8
  punpckldq %xmm0,%xmm2
  movq   0x30(%r14),%xmm7
  pshufd $0xe,%xmm1,%xmm1
  movq   0x38(%r14),%xmm5
  movq   0x40(%r14),%xmm3
  movq   %r9,%xmm0
  movq   %xmm1,%r15
  movdqa %xmm14,%xmm1
  punpckldq %xmm12,%xmm14
  movq   0x48(%r14),%xmm13
  punpckldq %xmm12,%xmm1
  movdqa %xmm10,%xmm12
  movq   0x50(%r14),%xmm15
  punpckldq %xmm8,%xmm10
  punpckldq %xmm8,%xmm12
  movdqa %xmm7,%xmm8
  punpckldq %xmm5,%xmm7
  movq   0x58(%r14),%xmm9
  punpckldq %xmm5,%xmm8
  movdqa %xmm3,%xmm5
  movq   0x68(%r14),%xmm4
  movq   0x70(%r14),%xmm11
  punpckldq %xmm13,%xmm5
  punpckldq %xmm13,%xmm3
  movdqa %xmm15,%xmm13
  movq   0x78(%r14),%xmm6
  punpckldq %xmm9,%xmm13
  punpckldq %xmm9,%xmm15
  punpckldq %xmm4,%xmm0
  movq   %r9,%xmm9
  pshufd $0xe,%xmm14,%xmm14
  pshufd $0xe,%xmm10,%xmm10
  punpckldq %xmm4,%xmm9
  movdqa %xmm11,%xmm4
  punpckldq %xmm6,%xmm11
  punpckldq %xmm6,%xmm4
  movdqa %xmm2,%xmm6
  punpckldq %xmm1,%xmm2
  punpckldq %xmm1,%xmm6
  movdqa %xmm12,%xmm1
  punpckldq %xmm8,%xmm12
  punpckldq %xmm8,%xmm1
  movdqa %xmm5,%xmm8
  punpckldq %xmm13,%xmm5
  punpckldq %xmm13,%xmm8
  movdqa %xmm9,%xmm13
  movq   %xmm1,%r14
  punpckldq %xmm4,%xmm13
  punpckldq %xmm4,%xmm9
  movq   %r15,%xmm1
  movq   %r15,%xmm4
  pshufd $0xe,%xmm7,%xmm7
  pshufd $0xe,%xmm3,%xmm3
  punpckldq %xmm14,%xmm4
  punpckldq %xmm14,%xmm1
  movdqa %xmm10,%xmm14
  punpckldq %xmm7,%xmm14
  pshufd $0xe,%xmm15,%xmm15
  pshufd $0xe,%xmm0,%xmm0
  punpckldq %xmm7,%xmm10
  movdqa %xmm3,%xmm7
  pshufd $0xe,%xmm11,%xmm11
  punpckldq %xmm15,%xmm7
  punpckldq %xmm15,%xmm3
  movdqa %xmm0,%xmm15
  punpckldq %xmm11,%xmm15
  punpckldq %xmm11,%xmm0
  movq   %r14,%xmm11
  movq   %xmm15,%r15
  movdqa %xmm6,%xmm15
  punpckldq %xmm11,%xmm6
  punpckldq %xmm11,%xmm15
  movdqa %xmm8,%xmm11
  punpckldq %xmm13,%xmm8
  punpckldq %xmm13,%xmm11
  movdqa %xmm4,%xmm13
  pshufd $0xe,%xmm2,%xmm2
  movq   %xmm11,%r14
  punpckldq %xmm14,%xmm13
  movq   %r15,%xmm11
  punpckldq %xmm14,%xmm4
  movdqa %xmm7,%xmm14
  pshufd $0xe,%xmm12,%xmm12
  punpckldq %xmm11,%xmm14
  pshufd $0xe,%xmm5,%xmm5
  punpckldq %xmm11,%xmm7
  movdqa %xmm2,%xmm11
  pshufd $0xe,%xmm1,%xmm1
  pshufd $0xe,%xmm9,%xmm9
  punpckldq %xmm12,%xmm11
  punpckldq %xmm12,%xmm2
  movdqa %xmm5,%xmm12
  pshufd $0xe,%xmm10,%xmm10
  pshufd $0xe,%xmm0,%xmm0
  punpckldq %xmm9,%xmm12
  pshufd $0xe,%xmm3,%xmm3
  punpckldq %xmm9,%xmm5
  movdqa %xmm1,%xmm9
  punpckldq %xmm10,%xmm9
  punpckldq %xmm10,%xmm1
  movdqa %xmm3,%xmm10
  punpckldq %xmm0,%xmm3
  punpckldq %xmm0,%xmm10
  pshufd $0xe,%xmm1,%xmm1
  pshufd $0xe,%xmm3,%xmm3
  movdqa %xmm15,%xmm0
  pshufd $0xe,%xmm6,%xmm6
  movq   %xmm1,-0x58(%rsp)
  movq   %xmm3,%r9
  movq   %r14,%xmm1
  movq   %xmm10,-0x68(%rsp)
  movdqa %xmm13,%xmm3
  movq   -0x78(%rsp),%xmm10
  punpckldq %xmm1,%xmm0
  punpckldq %xmm14,%xmm3
  pshufd $0xe,%xmm8,%xmm8
  movdqa %xmm3,%xmm1
  pshufd $0xe,%xmm4,%xmm4
  pshufd $0xe,%xmm7,%xmm7
  pand   %xmm10,%xmm0
  pand   %xmm10,%xmm1
  movdqa %xmm10,%xmm3
  pslld  $0x2,%xmm0
  pshufd $0xe,%xmm2,%xmm2
  pshufd $0xe,%xmm5,%xmm5
  por    %xmm1,%xmm0
  movdqa %xmm11,%xmm1
  punpckldq %xmm14,%xmm13
  punpckldq %xmm12,%xmm1
  pslld  $0x2,%xmm0
  pshufd $0xe,%xmm13,%xmm13
  pand   %xmm10,%xmm1
  pand   %xmm3,%xmm13
  punpckldq %xmm12,%xmm11
  movq   -0x68(%rsp),%xmm10
  por    %xmm1,%xmm0
  movdqa %xmm9,%xmm1
  pshufd $0xe,%xmm11,%xmm11
  punpckldq %xmm10,%xmm1
  pslld  $0x2,%xmm0
  movq   %r9,%xmm10
  pand   %xmm3,%xmm1
  pand   %xmm3,%xmm11
  por    %xmm1,%xmm0
  movdqa %xmm6,%xmm1
  punpckldq %xmm8,%xmm6
  punpckldq %xmm8,%xmm1
  pslld  $0x2,%xmm0
  pshufd $0xe,%xmm6,%xmm6
  pand   %xmm3,%xmm1
  pand   %xmm3,%xmm6
  por    %xmm1,%xmm0
  movdqa %xmm4,%xmm1
  punpckldq %xmm7,%xmm4
  punpckldq %xmm7,%xmm1
  pslld  $0x2,%xmm0
  pshufd $0xe,%xmm4,%xmm4
  pand   %xmm3,%xmm1
  pand   %xmm3,%xmm4
  por    %xmm1,%xmm0
  movdqa %xmm2,%xmm1
  punpckldq %xmm5,%xmm2
  punpckldq %xmm5,%xmm1
  pslld  $0x2,%xmm0
  movq   %r9,%xmm5
  pand   %xmm3,%xmm1
  pshufd $0xe,%xmm2,%xmm2
  por    %xmm1,%xmm0
  movq   -0x58(%rsp),%xmm1
  pand   %xmm3,%xmm2
  pslld  $0x2,%xmm0
  punpckldq %xmm10,%xmm1
  pand   %xmm3,%xmm1
  por    %xmm1,%xmm0
  movq   %r14,%xmm1
  punpckldq %xmm1,%xmm15
  pslld  $0x2,%xmm0
  movq   -0x68(%rsp),%xmm1
  pshufd $0xe,%xmm15,%xmm15
  pand   %xmm3,%xmm15
  punpckldq %xmm1,%xmm9
  movq   -0x58(%rsp),%xmm1
  por    %xmm15,%xmm0
  pshufd $0xe,%xmm9,%xmm9
  pslld  $0x2,%xmm0
  pand   %xmm3,%xmm9
  punpckldq %xmm5,%xmm1
  por    %xmm13,%xmm0
  pshufd $0xe,%xmm1,%xmm1
  pslld  $0x2,%xmm0
  pand   %xmm3,%xmm1
  por    %xmm11,%xmm0
  pslld  $0x2,%xmm0
  por    %xmm9,%xmm0
  pslld  $0x2,%xmm0
  por    %xmm6,%xmm0
  pslld  $0x2,%xmm0
  por    %xmm4,%xmm0
  pslld  $0x2,%xmm0
  por    %xmm2,%xmm0
  pslld  $0x2,%xmm0
  por    %xmm1,%xmm0
  movq   %xmm0,(%rdi,%rbx,4)
  mov    %r13d,%ebx
  and    $0xfffffffe,%ebx
  mov    %ebx,%r9d
  lea    0x0(%rbp,%r9,4),%rbp
  shl    $0x6,%r9
  add    %r9,%rcx
  cmp    %r13d,%ebx
  je     L474
L224:
  mov    (%rcx),%r9d
  mov    0x4(%rcx),%ebx
  and    %eax,%r9d
  and    %eax,%ebx
  shl    $0x2,%r9d
  or     %r9d,%ebx
  mov    0x8(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0xc(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x10(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x14(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x18(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x1c(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x20(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x24(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x28(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x2c(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x30(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x34(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x38(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x3c(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  mov    %ebx,%ecx
  or     %r9d,%ecx
  mov    %ecx,0x0(%rbp)
L474:
  mov    %r11d,%r11d
  shl    $0x4,%r12d
  mov    %r11,%rcx
  lea    (%rdi,%r11,4),%rdi
  sub    %r12d,%r8d
  shl    $0x6,%rcx
  add    %rcx,%r10
L80:
  xor    %r9d,%r9d
  jmp    L76
  nop
L902:
  cmp    $0x3,%r8d
  jle    L645
  sub    $0x4,%r8d
  mov    %rdi,%rbp
  mov    %r8d,%r9d
  shr    $0x2,%r9d
  lea    0x1(%r9),%r14d
  mov    %r14,%rcx
  shl    $0x4,%rcx
  lea    (%r10,%rcx,1),%r15
  nopw   0x0(%rax,%rax,1)
L34:
  mov    0x4(%r10),%r12d
  mov    (%r10),%ecx
  add    $0x10,%r10
  add    $0xc,%rbp
  mov    -0x8(%r10),%r11d
  mov    -0x4(%r10),%ebx
  and    %eax,%r12d
  and    %eax,%ecx
  mov    %r12d,%r13d
  and    %eax,%r11d
  shl    $0x8,%ecx
  and    %eax,%ebx
  shr    $0x10,%r13d
  shl    $0x10,%r12d
  or     %r13d,%ecx
  mov    %r11d,%r13d
  shl    $0x18,%r11d
  shr    $0x8,%r13d
  movd   %ecx,%xmm0
  or     %ebx,%r11d
  or     %r13d,%r12d
  movd   %r12d,%xmm7
  punpckldq %xmm7,%xmm0
  movq   %xmm0,-0xc(%rbp)
  mov    %r11d,-0x4(%rbp)
  cmp    %r15,%r10
  jne    L34
  lea    (%r14,%r14,2),%rcx
  lea    (%rdi,%rcx,4),%rdi
  mov    %r9d,%ecx
  neg    %ecx
  lea    (%r8,%rcx,4),%r8d
L824:
  mov    %r15,%r10
  cmp    $0x6,%edx
  jne    L767
  cmp    $0xf,%r8d
  jle    L80
  sub    $0x10,%r8d
  mov    %r8d,%ebx
  shr    $0x4,%ebx
  lea    0x1(%rbx),%ecx
  mov    %ebx,0x8(%rsp)
  mov    %rcx,%r10
  mov    %rcx,%r11
  lea    (%rcx,%rcx,2),%rcx
  shl    $0x6,%r10
  lea    (%rdi,%rcx,4),%rcx
  add    %r15,%r10
  cmp    %r10,%rdi
  setae  %r10b
  cmp    %rcx,%r15
  setae  %cl
  or     %cl,%r10b
  je     L44
  cmp    $0xf,%r8d
  jbe    L44
  cmp    $0x2f,%r8d
  jbe    L750
  mov    %r11d,%ebx
  movd   %eax,%xmm7
  mov    %r15,%rcx
  mov    %rdi,%r10
  shr    $0x2,%ebx
  pshufd $0x0,%xmm7,%xmm15
  sub    $0x1,%ebx
  shl    $0x8,%rbx
  lea    0x100(%r15,%rbx,1),%rbx
  nopw   0x0(%rax,%rax,1)
L814:
  movdqu (%rcx),%xmm0
  movdqu 0x10(%rcx),%xmm2
  add    $0x30,%r10
  add    $0x100,%rcx
  movdqu -0xe0(%rcx),%xmm7
  movdqu -0xc0(%rcx),%xmm4
  movdqa %xmm0,%xmm14
  shufps $0xdd,%xmm2,%xmm0
  movdqu -0xa0(%rcx),%xmm6
  movdqu -0x80(%rcx),%xmm1
  shufps $0x88,%xmm2,%xmm14
  movdqa %xmm7,%xmm13
  movdqu -0xd0(%rcx),%xmm2
  movdqa %xmm4,%xmm12
  movdqu -0x70(%rcx),%xmm8
  movdqa %xmm6,%xmm11
  movdqu -0x60(%rcx),%xmm5
  movaps %xmm0,-0x58(%rsp)
  shufps $0x88,%xmm2,%xmm13
  shufps $0xdd,%xmm2,%xmm7
  movdqu -0x40(%rcx),%xmm3
  movdqu -0xb0(%rcx),%xmm2
  movdqa %xmm5,%xmm10
  movdqu -0x10(%rcx),%xmm0
  shufps $0x88,%xmm2,%xmm12
  shufps $0xdd,%xmm2,%xmm4
  movdqa %xmm3,%xmm9
  movdqu -0x90(%rcx),%xmm2
  shufps $0x88,%xmm2,%xmm11
  shufps $0xdd,%xmm2,%xmm6
  movdqa %xmm1,%xmm2
  shufps $0xdd,%xmm8,%xmm1
  shufps $0x88,%xmm8,%xmm2
  movdqu -0x50(%rcx),%xmm8
  shufps $0x88,%xmm8,%xmm10
  shufps $0xdd,%xmm8,%xmm5
  movdqu -0x30(%rcx),%xmm8
  shufps $0x88,%xmm8,%xmm9
  shufps $0xdd,%xmm8,%xmm3
  movdqu -0x20(%rcx),%xmm8
  movaps %xmm3,-0x68(%rsp)
  movdqu -0x10(%rcx),%xmm3
  shufps $0x88,%xmm3,%xmm8
  movdqu -0x20(%rcx),%xmm3
  shufps $0xdd,%xmm0,%xmm3
  movaps %xmm3,-0x48(%rsp)
  movdqa %xmm14,%xmm3
  shufps $0xdd,%xmm13,%xmm14
  shufps $0x88,%xmm13,%xmm3
  movdqa %xmm12,%xmm13
  movaps %xmm3,-0x38(%rsp)
  shufps $0xdd,%xmm11,%xmm12
  movdqa -0x58(%rsp),%xmm3
  shufps $0x88,%xmm11,%xmm13
  movdqa %xmm2,%xmm11
  shufps $0xdd,%xmm10,%xmm2
  shufps $0x88,%xmm10,%xmm11
  movdqa %xmm9,%xmm10
  shufps $0xdd,%xmm8,%xmm9
  movdqa -0x68(%rsp),%xmm0
  shufps $0x88,%xmm8,%xmm10
  movdqa %xmm3,%xmm8
  shufps $0xdd,%xmm7,%xmm3
  movaps %xmm3,-0x18(%rsp)
  shufps $0x88,%xmm7,%xmm8
  movdqa -0x48(%rsp),%xmm3
  movdqa %xmm4,%xmm7
  shufps $0xdd,%xmm6,%xmm4
  shufps $0x88,%xmm6,%xmm7
  movdqa %xmm1,%xmm6
  shufps $0xdd,%xmm5,%xmm1
  shufps $0x88,%xmm5,%xmm6
  shufps $0x88,%xmm3,%xmm0
  movdqa %xmm0,%xmm5
  movdqa -0x68(%rsp),%xmm0
  shufps $0xdd,%xmm3,%xmm0
  movaps %xmm0,-0x8(%rsp)
  movdqa -0x38(%rsp),%xmm0
  movdqa %xmm0,%xmm3
  shufps $0x88,%xmm13,%xmm3
  movaps %xmm3,-0x68(%rsp)
  movdqa %xmm0,%xmm3
  movdqa %xmm2,%xmm0
  shufps $0xdd,%xmm13,%xmm3
  movdqa %xmm11,%xmm13
  movaps %xmm3,-0x58(%rsp)
  shufps $0xdd,%xmm10,%xmm11
  shufps $0x88,%xmm10,%xmm13
  movaps %xmm13,-0x48(%rsp)
  shufps $0x88,%xmm9,%xmm0
  movdqa %xmm8,%xmm10
  movaps %xmm11,-0x38(%rsp)
  movdqa -0x18(%rsp),%xmm3
  movdqa %xmm0,%xmm11
  shufps $0x88,%xmm7,%xmm10
  shufps $0xdd,%xmm7,%xmm8
  movdqa %xmm6,%xmm7
  shufps $0xdd,%xmm5,%xmm6
  movdqa %xmm6,%xmm13
  movdqa %xmm3,%xmm0
  shufps $0xdd,%xmm4,%xmm3
  shufps $0x88,%xmm5,%xmm7
  movdqa %xmm14,%xmm6
  shufps $0x88,%xmm4,%xmm0
  movdqa -0x8(%rsp),%xmm4
  movdqa %xmm14,%xmm5
  movdqa %xmm1,%xmm14
  movaps %xmm7,-0x28(%rsp)
  movdqa %xmm0,%xmm7
  movdqa %xmm3,%xmm0
  movdqa -0x68(%rsp),%xmm3
  shufps $0xdd,%xmm4,%xmm1
  shufps $0x88,%xmm4,%xmm14
  shufps $0x88,-0x48(%rsp),%xmm3
  movdqa %xmm10,%xmm4
  pand   %xmm15,%xmm3
  shufps $0x88,-0x28(%rsp),%xmm4
  pand   %xmm15,%xmm4
  shufps $0x88,%xmm12,%xmm6
  pslld  $0x14,%xmm4
  pslld  $0x1a,%xmm3
  shufps $0xdd,%xmm12,%xmm5
  movdqa %xmm7,%xmm12
  por    %xmm4,%xmm3
  movdqa %xmm6,%xmm4
  shufps $0x88,%xmm14,%xmm12
  pand   %xmm15,%xmm12
  shufps $0x88,%xmm11,%xmm4
  pand   %xmm15,%xmm4
  shufps $0xdd,%xmm9,%xmm2
  pslld  $0x8,%xmm12
  movdqa %xmm8,%xmm9
  pslld  $0xe,%xmm4
  shufps $0xdd,%xmm11,%xmm6
  movdqa -0x68(%rsp),%xmm11
  por    %xmm12,%xmm4
  shufps $0x88,%xmm13,%xmm9
  pand   %xmm15,%xmm9
  shufps $0xdd,-0x48(%rsp),%xmm11
  por    %xmm3,%xmm4
  movdqa %xmm9,%xmm12
  movdqa -0x58(%rsp),%xmm3
  shufps $0x88,-0x38(%rsp),%xmm3
  pand   %xmm15,%xmm3
  psrld  $0x4,%xmm12
  pand   %xmm15,%xmm11
  shufps $0xdd,-0x28(%rsp),%xmm10
  pslld  $0x2,%xmm3
  pand   %xmm15,%xmm6
  pand   %xmm15,%xmm10
  shufps $0xdd,%xmm13,%xmm8
  por    %xmm12,%xmm3
  pand   %xmm15,%xmm8
  shufps $0xdd,%xmm14,%xmm7
  pand   %xmm15,%xmm7
  pslld  $0xa,%xmm11
  pslld  $0x1c,%xmm9
  por    %xmm4,%xmm3
  movdqa %xmm0,%xmm4
  pslld  $0x4,%xmm10
  shufps $0xdd,%xmm1,%xmm0
  movd   %xmm3,-0x30(%r10)
  shufps $0x88,%xmm1,%xmm4
  pand   %xmm15,%xmm4
  pslld  $0xc,%xmm8
  pand   %xmm15,%xmm0
  pslld  $0x10,%xmm4
  pslld  $0x18,%xmm7
  por    %xmm4,%xmm11
  movdqa %xmm5,%xmm4
  shufps $0xdd,%xmm2,%xmm5
  pand   %xmm15,%xmm5
  shufps $0x88,%xmm2,%xmm4
  pand   %xmm15,%xmm4
  pslld  $0x6,%xmm5
  pslld  $0x16,%xmm4
  por    %xmm5,%xmm0
  por    %xmm9,%xmm4
  movdqa %xmm6,%xmm9
  psrld  $0x2,%xmm9
  pslld  $0x1e,%xmm6
  por    %xmm11,%xmm4
  por    %xmm9,%xmm10
  pshufd $0x55,%xmm3,%xmm9
  por    %xmm7,%xmm6
  movd   %xmm9,-0x24(%r10)
  movdqa %xmm3,%xmm9
  por    %xmm10,%xmm4
  punpckhdq %xmm3,%xmm9
  pshufd $0xff,%xmm3,%xmm3
  movd   %xmm4,-0x2c(%r10)
  movd   %xmm3,-0xc(%r10)
  pshufd $0x55,%xmm4,%xmm3
  movd   %xmm3,-0x20(%r10)
  movdqa -0x58(%rsp),%xmm3
  shufps $0xdd,-0x38(%rsp),%xmm3
  pand   %xmm15,%xmm3
  pslld  $0x12,%xmm3
  movd   %xmm9,-0x18(%r10)
  movdqa %xmm4,%xmm9
  por    %xmm8,%xmm3
  punpckhdq %xmm4,%xmm9
  pshufd $0xff,%xmm4,%xmm4
  por    %xmm6,%xmm3
  movd   %xmm9,-0x14(%r10)
  por    %xmm3,%xmm0
  movd   %xmm4,-0x8(%r10)
  pshufd $0x55,%xmm0,%xmm1
  movd   %xmm0,-0x28(%r10)
  movd   %xmm1,-0x1c(%r10)
  movdqa %xmm0,%xmm1
  punpckhdq %xmm0,%xmm1
  pshufd $0xff,%xmm0,%xmm0
  movd   %xmm1,-0x10(%r10)
  movd   %xmm0,-0x4(%r10)
  cmp    %rbx,%rcx
  jne    L814
  mov    %r11d,%ebx
  and    $0xfffffffc,%ebx
  mov    %ebx,%ecx
  lea    (%rcx,%rcx,2),%r10
  shl    $0x6,%rcx
  lea    (%rdi,%r10,4),%r10
  add    %r15,%rcx
  cmp    %ebx,%r11d
  je     L413
L243:
  mov    %r11d,%r12d
  sub    %ebx,%r12d
  cmp    %ebx,0x8(%rsp)
  je     L368
  mov    %rbx,%rbp
  lea    (%rbx,%rbx,2),%rbx
  shl    $0x6,%rbp
  add    %r15,%rbp
  mov    0x8(%rbp),%r9
  movq   0x0(%rbp),%xmm2
  movq   0x10(%rbp),%xmm15
  movq   0x18(%rbp),%xmm12
  movq   %r9,%xmm0
  movdqa %xmm2,%xmm1
  mov    0x78(%rbp),%r13
  movq   0x20(%rbp),%xmm10
  punpckldq %xmm0,%xmm2
  movq   0x28(%rbp),%xmm14
  punpckldq %xmm0,%xmm1
  movq   0x30(%rbp),%xmm13
  pshufd $0xe,%xmm2,%xmm2
  movq   0x38(%rbp),%xmm11
  movdqa %xmm1,%xmm0
  movq   0x40(%rbp),%xmm4
  movq   %xmm2,%r14
  movdqa %xmm15,%xmm2
  punpckldq %xmm12,%xmm15
  movq   0x48(%rbp),%xmm8
  punpckldq %xmm12,%xmm2
  movdqa %xmm10,%xmm12
  movq   0x50(%rbp),%xmm9
  punpckldq %xmm14,%xmm10
  punpckldq %xmm14,%xmm12
  movdqa %xmm13,%xmm14
  movq   0x58(%rbp),%xmm6
  movq   0x60(%rbp),%xmm7
  punpckldq %xmm11,%xmm14
  punpckldq %xmm11,%xmm13
  movdqa %xmm4,%xmm11
  movq   0x68(%rbp),%xmm5
  movq   0x70(%rbp),%xmm3
  punpckldq %xmm8,%xmm11
  punpckldq %xmm8,%xmm4
  movdqa %xmm9,%xmm8
  punpckldq %xmm6,%xmm8
  punpckldq %xmm6,%xmm9
  movdqa %xmm7,%xmm6
  movq   %xmm2,%rbp
  punpckldq %xmm5,%xmm6
  punpckldq %xmm5,%xmm7
  movq   %r13,%xmm2
  movdqa %xmm3,%xmm5
  pshufd $0xe,%xmm15,%xmm15
  punpckldq %xmm2,%xmm5
  punpckldq %xmm2,%xmm3
  movq   %rbp,%xmm2
  punpckldq %xmm2,%xmm0
  punpckldq %xmm2,%xmm1
  movdqa %xmm12,%xmm2
  punpckldq %xmm14,%xmm2
  punpckldq %xmm14,%xmm12
  movdqa %xmm11,%xmm14
  punpckldq %xmm8,%xmm14
  punpckldq %xmm8,%xmm11
  movdqa %xmm6,%xmm8
  movq   %xmm2,%rbp
  punpckldq %xmm5,%xmm8
  pshufd $0xe,%xmm10,%xmm10
  punpckldq %xmm5,%xmm6
  movq   %r14,%xmm2
  movq   %r14,%xmm5
  pshufd $0xe,%xmm13,%xmm13
  punpckldq %xmm15,%xmm5
  pshufd $0xe,%xmm4,%xmm4
  punpckldq %xmm15,%xmm2
  movdqa %xmm10,%xmm15
  pshufd $0xe,%xmm9,%xmm9
  punpckldq %xmm13,%xmm15
  pshufd $0xe,%xmm7,%xmm7
  punpckldq %xmm13,%xmm10
  movdqa %xmm4,%xmm13
  pshufd $0xe,%xmm3,%xmm3
  punpckldq %xmm9,%xmm4
  punpckldq %xmm9,%xmm13
  movdqa %xmm7,%xmm9
  movq   %xmm0,%r9
  punpckldq %xmm3,%xmm9
  punpckldq %xmm3,%xmm7
  movdqa %xmm0,%xmm3
  movq   %rbp,%xmm0
  pshufd $0xe,%xmm11,%xmm11
  pshufd $0xe,%xmm6,%xmm6
  punpckldq %xmm0,%xmm3
  movq   %r9,%xmm0
  pshufd $0xe,%xmm1,%xmm1
  pshufd $0xe,%xmm2,%xmm2
  pshufd $0xe,%xmm4,%xmm4
  pshufd $0xe,%xmm7,%xmm7
  movq   %xmm3,-0x68(%rsp)
  movq   %rbp,%xmm3
  pshufd $0xe,%xmm12,%xmm12
  pshufd $0xe,%xmm10,%xmm10
  punpckldq %xmm3,%xmm0
  pshufd $0xe,%xmm0,%xmm0
  movq   %xmm0,-0x58(%rsp)
  movdqa %xmm14,%xmm0
  punpckldq %xmm8,%xmm14
  punpckldq %xmm8,%xmm0
  movdqa %xmm5,%xmm8
  punpckldq %xmm15,%xmm5
  movq   %xmm0,%r9
  movdqa %xmm13,%xmm0
  punpckldq %xmm9,%xmm13
  punpckldq %xmm9,%xmm0
  movdqa %xmm1,%xmm9
  punpckldq %xmm15,%xmm8
  movq   %xmm0,%rbp
  movdqa %xmm11,%xmm0
  punpckldq %xmm6,%xmm11
  punpckldq %xmm6,%xmm0
  movdqa %xmm2,%xmm6
  punpckldq %xmm12,%xmm9
  punpckldq %xmm10,%xmm6
  pshufd $0xe,%xmm5,%xmm5
  movdqa %xmm4,%xmm15
  punpckldq %xmm7,%xmm15
  movdqa %xmm0,%xmm3
  pshufd $0xe,%xmm13,%xmm13
  punpckldq %xmm12,%xmm1
  movq   %xmm0,%r13
  punpckldq %xmm10,%xmm2
  movq   -0x78(%rsp),%xmm10
  punpckldq %xmm7,%xmm4
  movdqa %xmm5,%xmm12
  movdqa %xmm9,%xmm7
  movdqa %xmm6,%xmm0
  punpckldq %xmm3,%xmm7
  punpckldq %xmm13,%xmm12
  punpckldq %xmm15,%xmm0
  movdqa %xmm10,%xmm3
  pand   %xmm10,%xmm12
  pand   %xmm10,%xmm7
  movdqa %xmm0,%xmm10
  pshufd $0xe,%xmm1,%xmm1
  pand   %xmm3,%xmm10
  pslld  $0xe,%xmm7
  movdqa %xmm8,%xmm0
  movq   %xmm1,-0x48(%rsp)
  pslld  $0x8,%xmm10
  movdqa %xmm3,%xmm1
  movq   %r9,%xmm3
  por    %xmm10,%xmm7
  pshufd $0xe,%xmm14,%xmm14
  pshufd $0xe,%xmm2,%xmm2
  movq   -0x68(%rsp),%xmm10
  pshufd $0xe,%xmm4,%xmm4
  pshufd $0xe,%xmm11,%xmm11
  punpckldq %xmm13,%xmm5
  punpckldq %xmm3,%xmm10
  movq   %rbp,%xmm3
  punpckldq %xmm15,%xmm6
  punpckldq %xmm3,%xmm0
  pand   %xmm1,%xmm10
  pshufd $0xe,%xmm5,%xmm5
  movdqa %xmm0,%xmm3
  pslld  $0x1a,%xmm10
  movdqa %xmm1,%xmm0
  pand   %xmm1,%xmm3
  pshufd $0xe,%xmm6,%xmm6
  pslld  $0x14,%xmm3
  por    %xmm3,%xmm10
  movdqa %xmm12,%xmm3
  psrld  $0x4,%xmm3
  pslld  $0x1c,%xmm12
  por    %xmm7,%xmm10
  movq   -0x58(%rsp),%xmm7
  punpckldq %xmm14,%xmm7
  pand   %xmm1,%xmm7
  pslld  $0x2,%xmm7
  por    %xmm3,%xmm7
  movq   %r13,%xmm3
  por    %xmm10,%xmm7
  punpckldq %xmm3,%xmm9
  movdqa %xmm2,%xmm10
  pshufd $0xe,%xmm9,%xmm9
  punpckldq %xmm4,%xmm10
  movq   %r9,%xmm3
  movd   %xmm7,(%rdi,%rbx,4)
  pand   %xmm1,%xmm9
  pand   %xmm1,%xmm10
  punpckldq %xmm4,%xmm2
  movq   -0x68(%rsp),%xmm1
  pslld  $0x10,%xmm10
  pshufd $0xe,%xmm2,%xmm2
  pshufd $0xe5,%xmm7,%xmm7
  movd   %xmm7,0xc(%rdi,%rbx,4)
  punpckldq %xmm3,%xmm1
  pshufd $0xe,%xmm1,%xmm1
  movdqa %xmm1,%xmm3
  movq   -0x48(%rsp),%xmm1
  pand   %xmm0,%xmm3
  pslld  $0xa,%xmm3
  punpckldq %xmm11,%xmm1
  por    %xmm10,%xmm3
  movq   -0x48(%rsp),%xmm10
  pshufd $0xe,%xmm1,%xmm1
  punpckldq %xmm11,%xmm10
  pand   %xmm0,%xmm10
  pslld  $0x16,%xmm10
  por    %xmm10,%xmm12
  movdqa %xmm0,%xmm10
  por    %xmm3,%xmm12
  movq   %rbp,%xmm3
  pand   %xmm10,%xmm5
  punpckldq %xmm3,%xmm8
  pand   %xmm10,%xmm6
  movdqa %xmm9,%xmm3
  pshufd $0xe,%xmm8,%xmm8
  pslld  $0xc,%xmm5
  pand   %xmm10,%xmm1
  pand   %xmm0,%xmm8
  pslld  $0x18,%xmm6
  pand   %xmm10,%xmm2
  movq   -0x58(%rsp),%xmm0
  pslld  $0x1e,%xmm9
  pslld  $0x4,%xmm8
  punpckldq %xmm14,%xmm0
  psrld  $0x2,%xmm3
  por    %xmm6,%xmm9
  pshufd $0xe,%xmm0,%xmm0
  pslld  $0x6,%xmm1
  por    %xmm3,%xmm8
  pand   %xmm10,%xmm0
  por    %xmm1,%xmm2
  por    %xmm8,%xmm12
  pslld  $0x12,%xmm0
  pshufd $0xe5,%xmm12,%xmm7
  movd   %xmm12,0x4(%rdi,%rbx,4)
  por    %xmm5,%xmm0
  movd   %xmm7,0x10(%rdi,%rbx,4)
  por    %xmm9,%xmm0
  por    %xmm2,%xmm0
  movd   %xmm0,0x8(%rdi,%rbx,4)
  pshufd $0xe5,%xmm0,%xmm7
  movd   %xmm7,0x14(%rdi,%rbx,4)
  mov    %r12d,%ebx
  and    $0xfffffffe,%ebx
  mov    %ebx,%r9d
  lea    (%r9,%r9,2),%rbp
  shl    $0x6,%r9
  lea    (%r10,%rbp,4),%r10
  add    %r9,%rcx
  cmp    %ebx,%r12d
  je     L413
L368:
  mov    (%rcx),%ebx
  mov    0x4(%rcx),%r13d
  mov    0x14(%rcx),%r9d
  mov    0x18(%rcx),%r12d
  and    %eax,%ebx
  and    %eax,%r13d
  mov    0x1c(%rcx),%ebp
  shl    $0x14,%r13d
  shl    $0x1a,%ebx
  and    %eax,%r9d
  and    %eax,%r12d
  or     %r13d,%ebx
  mov    0x8(%rcx),%r13d
  and    %eax,%ebp
  shl    $0x16,%r12d
  shl    $0x10,%ebp
  and    %eax,%r13d
  shl    $0xe,%r13d
  or     %r13d,%ebx
  mov    0xc(%rcx),%r13d
  and    %eax,%r13d
  shl    $0x8,%r13d
  or     %r13d,%ebx
  mov    0x10(%rcx),%r13d
  and    %eax,%r13d
  shl    $0x2,%r13d
  or     %r13d,%ebx
  mov    %r9d,%r13d
  shl    $0x1c,%r9d
  shr    $0x4,%r13d
  or     %r12d,%r9d
  or     %r13d,%ebx
  or     %ebp,%r9d
  mov    %ebx,(%r10)
  mov    0x20(%rcx),%ebp
  mov    0x28(%rcx),%ebx
  and    %eax,%ebp
  shl    $0xa,%ebp
  and    %eax,%ebx
  or     %ebp,%r9d
  mov    0x24(%rcx),%ebp
  and    %eax,%ebp
  shl    $0x4,%ebp
  or     %ebp,%r9d
  mov    %ebx,%ebp
  shr    $0x2,%ebp
  or     %ebp,%r9d
  shl    $0x1e,%ebx
  mov    %r9d,0x4(%r10)
  mov    0x2c(%rcx),%r9d
  and    %eax,%r9d
  shl    $0x18,%r9d
  or     %ebx,%r9d
  mov    0x3c(%rcx),%ebx
  and    %eax,%ebx
  or     %ebx,%r9d
  mov    0x30(%rcx),%ebx
  and    %eax,%ebx
  shl    $0x12,%ebx
  or     %ebx,%r9d
  mov    0x34(%rcx),%ebx
  and    %eax,%ebx
  shl    $0xc,%ebx
  or     %ebx,%r9d
  mov    0x38(%rcx),%ebx
  and    %eax,%ebx
  mov    %ebx,%ecx
  shl    $0x6,%ecx
  or     %r9d,%ecx
  mov    %ecx,0x8(%r10)
L413:
  mov    %r11d,%r11d
  lea    (%r11,%r11,2),%rcx
  mov    %r11,%r10
  lea    (%rdi,%rcx,4),%rdi
  mov    0x8(%rsp),%ecx
  shl    $0x6,%r10
  add    %r15,%r10
  shl    $0x4,%ecx
  sub    %ecx,%r8d
  jmp    L80
L767:
  cmp    $0x4,%edx
  jne    L409
  cmp    $0x7,%r8d
  jle    L80
  sub    $0x8,%r8d
  mov    %r8d,%ebx
  shr    $0x3,%ebx
  lea    0x1(%rbx),%r11d
  mov    %r11,%rcx
  mov    %r11,%r10
  lea    (%rdi,%r11,4),%r11
  shl    $0x5,%rcx
  add    %r15,%rcx
  cmp    %rcx,%rdi
  setae  %cl
  cmp    %r11,%r15
  setae  %r11b
  or     %r11b,%cl
  je     L608
  cmp    $0x7,%r8d
  jbe    L608
  cmp    $0x17,%r8d
  jbe    L847
  mov    %r10d,%ebp
  movd   %eax,%xmm7
  mov    %r15,%rcx
  mov    %rdi,%r11
  shr    $0x2,%ebp
  pshufd $0x0,%xmm7,%xmm2
  sub    $0x1,%ebp
  shl    $0x7,%rbp
  lea    0x80(%r15,%rbp,1),%rbp
  nopl   0x0(%rax,%rax,1)
L222:
  movdqu (%rcx),%xmm1
  movdqu 0x10(%rcx),%xmm5
  sub    $0xffffffffffffff80,%rcx
  add    $0x10,%r11
  movdqu -0x60(%rcx),%xmm7
  movdqu -0x40(%rcx),%xmm3
  movdqa %xmm1,%xmm4
  shufps $0xdd,%xmm5,%xmm1
  movdqu -0x30(%rcx),%xmm6
  movdqu -0x20(%rcx),%xmm0
  shufps $0x88,%xmm5,%xmm4
  movdqu -0x50(%rcx),%xmm5
  movdqa %xmm7,%xmm9
  movdqu -0x10(%rcx),%xmm15
  movdqa %xmm4,%xmm8
  shufps $0x88,%xmm5,%xmm9
  shufps $0xdd,%xmm5,%xmm7
  movdqa %xmm3,%xmm5
  shufps $0x88,%xmm9,%xmm8
  shufps $0x88,%xmm6,%xmm5
  shufps $0xdd,%xmm6,%xmm3
  shufps $0xdd,%xmm9,%xmm4
  movdqa %xmm0,%xmm6
  movdqa %xmm5,%xmm9
  shufps $0x88,%xmm15,%xmm6
  shufps $0xdd,%xmm6,%xmm5
  shufps $0xdd,%xmm15,%xmm0
  shufps $0x88,%xmm6,%xmm9
  movdqa %xmm1,%xmm6
  shufps $0xdd,%xmm7,%xmm1
  shufps $0x88,%xmm7,%xmm6
  movdqa %xmm3,%xmm7
  shufps $0xdd,%xmm0,%xmm3
  movdqa %xmm6,%xmm10
  shufps $0x88,%xmm0,%xmm7
  movdqa %xmm8,%xmm0
  shufps $0x88,%xmm7,%xmm10
  shufps $0xdd,%xmm7,%xmm6
  shufps $0x88,%xmm9,%xmm0
  pand   %xmm2,%xmm0
  pand   %xmm2,%xmm10
  pand   %xmm2,%xmm6
  pslld  $0x4,%xmm0
  shufps $0xdd,%xmm9,%xmm8
  pand   %xmm2,%xmm8
  por    %xmm10,%xmm0
  movdqa %xmm4,%xmm10
  shufps $0xdd,%xmm5,%xmm4
  pand   %xmm2,%xmm4
  pslld  $0x4,%xmm0
  shufps $0x88,%xmm5,%xmm10
  pand   %xmm2,%xmm10
  por    %xmm10,%xmm0
  movdqa %xmm1,%xmm10
  shufps $0xdd,%xmm3,%xmm1
  pand   %xmm2,%xmm1
  pslld  $0x4,%xmm0
  shufps $0x88,%xmm3,%xmm10
  pand   %xmm2,%xmm10
  por    %xmm10,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm8,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm6,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm4,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm1,%xmm0
  movups %xmm0,-0x10(%r11)
  cmp    %rbp,%rcx
  jne    L222
  mov    %r10d,%r11d
  and    $0xfffffffc,%r11d
  mov    %r11d,%ecx
  lea    (%rdi,%rcx,4),%rbp
  shl    $0x5,%rcx
  add    %r15,%rcx
  cmp    %r11d,%r10d
  je     L190
L595:
  mov    %r10d,%r12d
  sub    %r11d,%r12d
  cmp    %r11d,%ebx
  je     L227
  mov    %r11,%r13
  movq   -0x78(%rsp),%xmm15
  shl    $0x5,%r13
  add    %r15,%r13
  movq   0x0(%r13),%xmm1
  movq   0x8(%r13),%xmm8
  movq   0x10(%r13),%xmm6
  movq   0x18(%r13),%xmm4
  movq   0x20(%r13),%xmm3
  movdqa %xmm1,%xmm2
  movq   0x28(%r13),%xmm5
  punpckldq %xmm8,%xmm1
  movq   0x30(%r13),%xmm0
  punpckldq %xmm8,%xmm2
  movdqa %xmm6,%xmm8
  movq   0x38(%r13),%xmm7
  punpckldq %xmm4,%xmm8
  punpckldq %xmm4,%xmm6
  movdqa %xmm3,%xmm4
  punpckldq %xmm5,%xmm4
  punpckldq %xmm5,%xmm3
  movdqa %xmm0,%xmm5
  punpckldq %xmm7,%xmm5
  punpckldq %xmm7,%xmm0
  movdqa %xmm2,%xmm7
  punpckldq %xmm8,%xmm7
  pshufd $0xe,%xmm1,%xmm1
  punpckldq %xmm8,%xmm2
  movdqa %xmm4,%xmm8
  pshufd $0xe,%xmm6,%xmm6
  pshufd $0xe,%xmm3,%xmm3
  punpckldq %xmm5,%xmm8
  punpckldq %xmm5,%xmm4
  movdqa %xmm1,%xmm5
  pshufd $0xe,%xmm0,%xmm0
  punpckldq %xmm6,%xmm5
  punpckldq %xmm6,%xmm1
  movdqa %xmm3,%xmm6
  punpckldq %xmm0,%xmm3
  movdqa %xmm5,%xmm9
  punpckldq %xmm0,%xmm6
  movdqa %xmm7,%xmm0
  pshufd $0xe,%xmm2,%xmm2
  punpckldq %xmm8,%xmm0
  punpckldq %xmm6,%xmm9
  pshufd $0xe,%xmm4,%xmm4
  pand   %xmm15,%xmm0
  pand   %xmm15,%xmm9
  pshufd $0xe,%xmm1,%xmm1
  pslld  $0x4,%xmm0
  pshufd $0xe,%xmm3,%xmm3
  punpckldq %xmm8,%xmm7
  por    %xmm9,%xmm0
  movdqa %xmm2,%xmm9
  pshufd $0xe,%xmm7,%xmm7
  punpckldq %xmm4,%xmm9
  pslld  $0x4,%xmm0
  pand   %xmm15,%xmm7
  pand   %xmm15,%xmm9
  punpckldq %xmm6,%xmm5
  punpckldq %xmm4,%xmm2
  por    %xmm9,%xmm0
  movdqa %xmm1,%xmm9
  pshufd $0xe,%xmm5,%xmm5
  punpckldq %xmm3,%xmm9
  pslld  $0x4,%xmm0
  pand   %xmm15,%xmm5
  pand   %xmm15,%xmm9
  pshufd $0xe,%xmm2,%xmm2
  punpckldq %xmm3,%xmm1
  por    %xmm9,%xmm0
  pand   %xmm15,%xmm2
  pshufd $0xe,%xmm1,%xmm1
  pslld  $0x4,%xmm0
  pand   %xmm15,%xmm1
  por    %xmm7,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm5,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm2,%xmm0
  pslld  $0x4,%xmm0
  por    %xmm1,%xmm0
  movq   %xmm0,(%rdi,%r11,4)
  mov    %r12d,%r11d
  and    $0xfffffffe,%r11d
  mov    %r11d,%r9d
  lea    0x0(%rbp,%r9,4),%rbp
  shl    $0x5,%r9
  add    %r9,%rcx
  cmp    %r11d,%r12d
  je     L190
L227:
  mov    (%rcx),%r9d
  mov    0x4(%rcx),%r11d
  mov    0x1c(%rcx),%r14d
  and    %eax,%r9d
  and    %eax,%r11d
  shl    $0x4,%r9d
  and    %eax,%r14d
  or     %r9d,%r11d
  mov    0x8(%rcx),%r9d
  shl    $0x4,%r11d
  and    %eax,%r9d
  or     %r11d,%r9d
  mov    0xc(%rcx),%r11d
  shl    $0x4,%r9d
  and    %eax,%r11d
  or     %r9d,%r11d
  mov    0x10(%rcx),%r9d
  shl    $0x4,%r11d
  and    %eax,%r9d
  or     %r11d,%r9d
  mov    0x14(%rcx),%r11d
  shl    $0x4,%r9d
  and    %eax,%r11d
  or     %r9d,%r11d
  mov    0x18(%rcx),%r9d
  mov    %r14d,%ecx
  shl    $0x4,%r11d
  and    %eax,%r9d
  or     %r11d,%r9d
  shl    $0x4,%r9d
  or     %r9d,%ecx
  mov    %ecx,0x0(%rbp)
L190:
  mov    %r10d,%ecx
  neg    %ebx
  mov    %rcx,%r10
  lea    (%rdi,%rcx,4),%rdi
  lea    (%r8,%rbx,8),%r8d
  shl    $0x5,%r10
  add    %r15,%r10
  jmp    L80
L397:
  add    $0x170,%rsp
  movslq %r8d,%r8
  mov    %r10,%rsi
  mov    %r11,%rdi
  pop    %rbx
  lea    0x0(,%r8,4),%rdx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1050 <memcpy@plt>
L145:
  mov    %r11d,%ecx
  mov    %rdi,%rbp
  lea    (%rdi,%rcx,4),%r13
  mov    %r10,%rcx
  nopw   0x0(%rax,%rax,1)
L443:
  mov    (%rcx),%r9d
  mov    0x4(%rcx),%ebx
  and    %eax,%r9d
  and    %eax,%ebx
  shl    $0x2,%r9d
  or     %r9d,%ebx
  mov    0x8(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0xc(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x10(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x14(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x18(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x1c(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x20(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x24(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    0x28(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    0x2c(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  add    $0x40,%rcx
  add    $0x4,%rbp
  or     %r9d,%ebx
  mov    -0x10(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    -0xc(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %r9d,%ebx
  mov    -0x8(%rcx),%r9d
  shl    $0x2,%ebx
  and    %eax,%r9d
  or     %ebx,%r9d
  mov    -0x4(%rcx),%ebx
  shl    $0x2,%r9d
  and    %eax,%ebx
  or     %ebx,%r9d
  mov    %r9d,-0x4(%rbp)
  cmp    %r13,%rbp
  jne    L443
  jmp    L474
L442:
  mov    %ecx,%r11d
  movq   -0x78(%rsp),%xmm3
  mov    %r10,%rbx
  lea    (%rdi,%r11,8),%r12
  mov    %rdi,%r11
  cs nopw 0x0(%rax,%rax,1)
L150:
  movq   (%rbx),%xmm1
  movq   0x8(%rbx),%xmm2
  add    $0x8,%r11
  add    $0x10,%rbx
  movdqa %xmm1,%xmm0
  punpckldq %xmm2,%xmm1
  punpckldq %xmm2,%xmm0
  pshufd $0xe,%xmm1,%xmm1
  pand   %xmm3,%xmm0
  pand   %xmm3,%xmm1
  pslld  $0x10,%xmm0
  por    %xmm1,%xmm0
  movq   %xmm0,-0x8(%r11)
  cmp    %r12,%r11
  jne    L150
  jmp    L559
L44:
  mov    %r11d,%ecx
  mov    %rdi,%r10
  lea    (%rcx,%rcx,2),%rcx
  lea    (%rdi,%rcx,4),%r13
  mov    %r15,%rcx
  nopl   0x0(%rax)
L276:
  mov    (%rcx),%r9d
  mov    0x4(%rcx),%r14d
  mov    0x14(%rcx),%ebx
  mov    0x18(%rcx),%r12d
  and    %eax,%r9d
  and    %eax,%r14d
  mov    0x1c(%rcx),%ebp
  shl    $0x14,%r14d
  shl    $0x1a,%r9d
  and    %eax,%ebx
  and    %eax,%r12d
  or     %r14d,%r9d
  mov    0x8(%rcx),%r14d
  shl    $0x16,%r12d
  and    %eax,%ebp
  shl    $0x10,%ebp
  and    %eax,%r14d
  shl    $0xe,%r14d
  or     %r14d,%r9d
  mov    0xc(%rcx),%r14d
  and    %eax,%r14d
  shl    $0x8,%r14d
  or     %r14d,%r9d
  mov    0x10(%rcx),%r14d
  and    %eax,%r14d
  shl    $0x2,%r14d
  or     %r14d,%r9d
  mov    %ebx,%r14d
  shl    $0x1c,%ebx
  shr    $0x4,%r14d
  or     %r12d,%ebx
  or     %r14d,%r9d
  or     %ebp,%ebx
  mov    %r9d,(%r10)
  mov    0x20(%rcx),%ebp
  mov    0x28(%rcx),%r9d
  and    %eax,%ebp
  shl    $0xa,%ebp
  and    %eax,%r9d
  or     %ebp,%ebx
  mov    0x24(%rcx),%ebp
  and    %eax,%ebp
  shl    $0x4,%ebp
  or     %ebp,%ebx
  mov    %r9d,%ebp
  shr    $0x2,%ebp
  or     %ebp,%ebx
  shl    $0x1e,%r9d
  add    $0x40,%rcx
  add    $0xc,%r10
  mov    %ebx,-0x8(%r10)
  mov    -0x14(%rcx),%r14d
  mov    -0x10(%rcx),%r12d
  mov    -0xc(%rcx),%ebp
  and    %eax,%r14d
  mov    -0x8(%rcx),%ebx
  and    %eax,%r12d
  shl    $0x18,%r14d
  and    %eax,%ebp
  shl    $0x12,%r12d
  or     %r14d,%r9d
  and    %eax,%ebx
  shl    $0xc,%ebp
  or     %r12d,%r9d
  shl    $0x6,%ebx
  or     %ebp,%r9d
  or     %ebx,%r9d
  mov    -0x4(%rcx),%ebx
  and    %eax,%ebx
  or     %ebx,%r9d
  mov    %r9d,-0x4(%r10)
  cmp    %r13,%r10
  jne    L276
  jmp    L413
L608:
  mov    %r10d,%ecx
  mov    %rdi,%rbp
  lea    (%rdi,%rcx,4),%r12
  mov    %r15,%rcx
  nopl   0x0(%rax,%rax,1)
L698:
  mov    (%rcx),%r9d
  mov    0x4(%rcx),%r11d
  add    $0x20,%rcx
  add    $0x4,%rbp
  and    %eax,%r9d
  and    %eax,%r11d
  shl    $0x4,%r9d
  or     %r9d,%r11d
  mov    -0x18(%rcx),%r9d
  shl    $0x4,%r11d
  and    %eax,%r9d
  or     %r11d,%r9d
  mov    -0x14(%rcx),%r11d
  shl    $0x4,%r9d
  and    %eax,%r11d
  or     %r9d,%r11d
  mov    -0x10(%rcx),%r9d
  shl    $0x4,%r11d
  and    %eax,%r9d
  or     %r11d,%r9d
  mov    -0xc(%rcx),%r11d
  shl    $0x4,%r9d
  and    %eax,%r11d
  or     %r9d,%r11d
  mov    -0x8(%rcx),%r9d
  shl    $0x4,%r11d
  and    %eax,%r9d
  or     %r11d,%r9d
  mov    -0x4(%rcx),%r11d
  shl    $0x4,%r9d
  and    %eax,%r11d
  or     %r11d,%r9d
  mov    %r9d,-0x4(%rbp)
  cmp    %rbp,%r12
  jne    L698
  jmp    L190
L645:
  mov    %r10,%r15
  jmp    L824
L896:
  mov    %r10,%rcx
  mov    %rdi,%rbp
  xor    %ebx,%ebx
  jmp    L428
L750:
  mov    %r15,%rcx
  mov    %rdi,%r10
  xor    %ebx,%ebx
  jmp    L243
L847:
  mov    %r15,%rcx
  mov    %rdi,%rbp
  xor    %r11d,%r11d
  jmp    L595
L683:
  mov    %r10,%r15
  cmp    $0x8,%edx
  jne    L824
  cmp    $0x7,%r8d
  jle    L405
  sub    $0x8,%r8d
  mov    %r8d,%ebx
  shr    $0x3,%ebx
  lea    0x1(%rbx),%r11d
  mov    %r11,%rcx
  mov    %r11,%rbp
  shl    $0x5,%rcx
  add    %r10,%rcx
  cmp    %rcx,%rdi
  jae    L357
  lea    (%rdi,%r11,8),%r11
  cmp    %r11,%r10
  jb     L290
L357:
  cmp    $0x17,%r8d
  jbe    L503
  mov    %ebp,%r12d
  movd   %eax,%xmm7
  mov    %r10,%rcx
  mov    %rdi,%r11
  shr    $0x2,%r12d
  pshufd $0x0,%xmm7,%xmm5
  sub    $0x1,%r12d
  shl    $0x7,%r12
  lea    0x80(%r10,%r12,1),%r12
  nopl   0x0(%rax)
L148:
  movdqu (%rcx),%xmm3
  movdqu 0x10(%rcx),%xmm7
  sub    $0xffffffffffffff80,%rcx
  add    $0x20,%r11
  movdqu -0x60(%rcx),%xmm8
  movdqu -0x40(%rcx),%xmm4
  movdqa %xmm3,%xmm1
  shufps $0xdd,%xmm7,%xmm3
  movdqu -0x30(%rcx),%xmm6
  movdqu -0x20(%rcx),%xmm2
  shufps $0x88,%xmm7,%xmm1
  movdqu -0x50(%rcx),%xmm7
  movdqa %xmm8,%xmm9
  movdqu -0x10(%rcx),%xmm0
  shufps $0x88,%xmm7,%xmm9
  shufps $0xdd,%xmm7,%xmm8
  movdqa %xmm4,%xmm7
  shufps $0xdd,%xmm6,%xmm4
  shufps $0x88,%xmm6,%xmm7
  movdqa %xmm2,%xmm6
  movdqa %xmm7,%xmm10
  shufps $0xdd,%xmm0,%xmm2
  shufps $0x88,%xmm0,%xmm6
  movdqa %xmm1,%xmm0
  shufps $0x88,%xmm6,%xmm10
  shufps $0xdd,%xmm9,%xmm1
  shufps $0x88,%xmm9,%xmm0
  shufps $0xdd,%xmm6,%xmm7
  movdqa %xmm4,%xmm9
  movdqa %xmm3,%xmm6
  shufps $0x88,%xmm2,%xmm9
  shufps $0xdd,%xmm8,%xmm3
  shufps $0xdd,%xmm2,%xmm4
  shufps $0x88,%xmm8,%xmm6
  movdqa %xmm0,%xmm2
  movdqa %xmm6,%xmm8
  movdqa %xmm3,%xmm11
  shufps $0xdd,%xmm10,%xmm0
  shufps $0x88,%xmm10,%xmm2
  shufps $0x88,%xmm9,%xmm8
  pand   %xmm5,%xmm2
  pand   %xmm5,%xmm8
  pslld  $0x10,%xmm8
  pslld  $0x18,%xmm2
  pand   %xmm5,%xmm0
  shufps $0x88,%xmm4,%xmm11
  por    %xmm8,%xmm2
  movdqa %xmm1,%xmm8
  pand   %xmm5,%xmm11
  shufps $0xdd,%xmm9,%xmm6
  shufps $0x88,%xmm7,%xmm8
  pand   %xmm5,%xmm8
  pand   %xmm5,%xmm6
  shufps $0xdd,%xmm7,%xmm1
  pslld  $0x8,%xmm8
  pand   %xmm5,%xmm1
  shufps $0xdd,%xmm4,%xmm3
  pand   %xmm5,%xmm3
  pslld  $0x18,%xmm0
  pslld  $0x10,%xmm6
  por    %xmm11,%xmm8
  pslld  $0x8,%xmm1
  por    %xmm8,%xmm2
  por    %xmm6,%xmm0
  por    %xmm3,%xmm1
  por    %xmm1,%xmm0
  movdqa %xmm2,%xmm1
  punpckldq %xmm0,%xmm1
  punpckhdq %xmm0,%xmm2
  movups %xmm1,-0x20(%r11)
  movups %xmm2,-0x10(%r11)
  cmp    %rcx,%r12
  jne    L148
  mov    %ebp,%ecx
  and    $0xfffffffc,%ecx
  test   $0xc0000003,%ebp
  je     L238
L445:
  mov    %ecx,%r11d
  mov    %ebp,%r12d
  movq   -0x78(%rsp),%xmm5
  sub    %ecx,%r12d
  mov    %r11,%rcx
  lea    (%rdi,%r11,8),%r11
  shl    $0x5,%rcx
  add    %r10,%rcx
  movq   (%rcx),%xmm1
  movq   0x10(%rcx),%xmm4
  movq   0x8(%rcx),%xmm2
  movq   0x18(%rcx),%xmm3
  movdqa %xmm1,%xmm0
  punpckldq %xmm4,%xmm1
  punpckldq %xmm4,%xmm0
  pand   %xmm5,%xmm1
  pshufd $0xe,%xmm0,%xmm0
  pslld  $0x18,%xmm1
  pand   %xmm5,%xmm0
  pslld  $0x10,%xmm0
  por    %xmm1,%xmm0
  movdqa %xmm2,%xmm1
  punpckldq %xmm3,%xmm2
  punpckldq %xmm3,%xmm1
  pshufd $0xe,%xmm2,%xmm2
  pand   %xmm5,%xmm1
  pand   %xmm5,%xmm2
  pslld  $0x8,%xmm1
  por    %xmm2,%xmm1
  por    %xmm1,%xmm0
  movq   %xmm0,(%r11)
  cmp    $0x1,%r12d
  je     L238
  movq   0x20(%rcx),%xmm1
  movq   0x30(%rcx),%xmm4
  movq   0x28(%rcx),%xmm2
  movq   0x38(%rcx),%xmm3
  movdqa %xmm1,%xmm0
  punpckldq %xmm4,%xmm1
  punpckldq %xmm4,%xmm0
  pshufd $0xe,%xmm1,%xmm1
  pand   %xmm5,%xmm0
  pand   %xmm5,%xmm1
  pslld  $0x10,%xmm1
  pslld  $0x18,%xmm0
  por    %xmm1,%xmm0
  movdqa %xmm2,%xmm1
  punpckldq %xmm3,%xmm2
  punpckldq %xmm3,%xmm1
  pshufd $0xe,%xmm2,%xmm2
  pand   %xmm5,%xmm1
  pand   %xmm5,%xmm2
  pslld  $0x8,%xmm1
  por    %xmm2,%xmm1
  por    %xmm1,%xmm0
  movq   %xmm0,0x8(%r11)
  cmp    $0x2,%r12d
  je     L238
  movq   0x40(%rcx),%xmm1
  movq   0x50(%rcx),%xmm4
  movq   0x48(%rcx),%xmm2
  movq   0x58(%rcx),%xmm3
  movdqa %xmm1,%xmm0
  punpckldq %xmm4,%xmm1
  punpckldq %xmm4,%xmm0
  pshufd $0xe,%xmm1,%xmm1
  pand   %xmm5,%xmm0
  pand   %xmm5,%xmm1
  pslld  $0x10,%xmm1
  pslld  $0x18,%xmm0
  por    %xmm1,%xmm0
  movdqa %xmm2,%xmm1
  punpckldq %xmm3,%xmm2
  punpckldq %xmm3,%xmm1
  pshufd $0xe,%xmm2,%xmm2
  pand   %xmm5,%xmm1
  pand   %xmm5,%xmm2
  pslld  $0x8,%xmm1
  por    %xmm2,%xmm1
  por    %xmm1,%xmm0
  movq   %xmm0,0x10(%r11)
L238:
  mov    %ebp,%ebp
  neg    %ebx
  mov    %rbp,%rcx
  lea    (%rdi,%rbp,8),%rdi
  lea    (%r8,%rbx,8),%r8d
  shl    $0x5,%rcx
  lea    (%r10,%rcx,1),%r15
L405:
  mov    %r15,%r10
  cmp    $0x1,%edx
  jne    L80
  cmp    $0x1f,%r8d
  jle    L80
  lea    -0x20(%r8),%r14d
  mov    %r14d,%r12d
  shr    $0x5,%r12d
  lea    0x1(%r12),%ecx
  lea    (%rdi,%rcx,4),%r9
  mov    %rcx,%r13
  cmp    %r9,%r15
  setae  %r9b
  shl    $0x7,%rcx
  add    %r15,%rcx
  cmp    %rcx,%rdi
  setae  %cl
  or     %cl,%r9b
  je     L130
  cmp    $0x3f,%r14d
  jbe    L130
  cmp    $0x5f,%r14d
  jbe    L84
  mov    %r13d,%r10d
  mov    %rdi,%r9
  mov    %r15,%rcx
  movdqa D9(%rip),%xmm14
  shr    $0x2,%r10d
  sub    $0x1,%r10d
  shl    $0x4,%r10
  lea    0x10(%rdi,%r10,1),%r10
  nopw   0x0(%rax,%rax,1)
L650:
  movdqu 0x10(%rcx),%xmm6
  movdqu (%rcx),%xmm4
  add    $0x10,%r9
  add    $0x200,%rcx
  movdqu -0x1e0(%rcx),%xmm8
  movdqu -0x1c0(%rcx),%xmm7
  movdqa %xmm4,%xmm15
  shufps $0xdd,%xmm6,%xmm4
  movdqa %xmm4,%xmm12
  movdqu -0x1d0(%rcx),%xmm4
  shufps $0x88,%xmm6,%xmm15
  movdqa %xmm8,%xmm6
  movdqu -0x1a0(%rcx),%xmm2
  movdqu -0x180(%rcx),%xmm5
  shufps $0x88,%xmm4,%xmm6
  shufps $0xdd,%xmm4,%xmm8
  movdqu -0x1b0(%rcx),%xmm4
  movaps %xmm6,-0x78(%rsp)
  movdqa %xmm7,%xmm6
  movdqa %xmm2,%xmm11
  movdqu -0x160(%rcx),%xmm3
  movaps %xmm8,0xf8(%rsp)
  shufps $0x88,%xmm4,%xmm6
  shufps $0xdd,%xmm4,%xmm7
  movdqu -0x190(%rcx),%xmm4
  movdqu -0x150(%rcx),%xmm8
  movdqa %xmm5,%xmm10
  movdqu -0x40(%rcx),%xmm13
  movdqu -0x140(%rcx),%xmm1
  shufps $0x88,%xmm4,%xmm11
  shufps $0xdd,%xmm4,%xmm2
  movdqu -0x170(%rcx),%xmm4
  movaps %xmm2,0x98(%rsp)
  movdqa %xmm5,%xmm2
  movdqu -0x120(%rcx),%xmm0
  movdqu -0x100(%rcx),%xmm9
  shufps $0x88,%xmm4,%xmm10
  shufps $0xdd,%xmm4,%xmm2
  movdqa %xmm3,%xmm4
  shufps $0xdd,%xmm8,%xmm3
  movaps %xmm3,0x88(%rsp)
  movdqu -0x130(%rcx),%xmm3
  shufps $0x88,%xmm8,%xmm4
  movdqa %xmm0,%xmm8
  movaps %xmm4,-0x18(%rsp)
  movdqa %xmm1,%xmm4
  shufps $0xdd,%xmm3,%xmm1
  movaps %xmm1,0xe8(%rsp)
  shufps $0x88,%xmm3,%xmm4
  movdqu -0x110(%rcx),%xmm1
  movdqu -0xf0(%rcx),%xmm3
  shufps $0x88,%xmm1,%xmm8
  shufps $0xdd,%xmm1,%xmm0
  movdqa %xmm9,%xmm1
  movaps %xmm0,0x78(%rsp)
  shufps $0x88,%xmm3,%xmm1
  shufps $0xdd,%xmm3,%xmm9
  movdqa %xmm1,%xmm0
  movdqu -0xd0(%rcx),%xmm3
  movdqu -0xe0(%rcx),%xmm1
  movaps %xmm9,0x68(%rsp)
  shufps $0x88,%xmm3,%xmm1
  movdqu -0xe0(%rcx),%xmm3
  movaps %xmm1,0x58(%rsp)
  movdqu -0xd0(%rcx),%xmm1
  shufps $0xdd,%xmm1,%xmm3
  movaps %xmm3,0x48(%rsp)
  movdqu -0x70(%rcx),%xmm9
  movdqu -0xb0(%rcx),%xmm3
  movdqu -0xc0(%rcx),%xmm1
  shufps $0x88,%xmm3,%xmm1
  movdqu -0xc0(%rcx),%xmm3
  movdqa %xmm1,%xmm5
  movdqu -0xb0(%rcx),%xmm1
  shufps $0xdd,%xmm1,%xmm3
  movdqu -0xa0(%rcx),%xmm1
  movaps %xmm3,0x38(%rsp)
  movdqu -0x90(%rcx),%xmm3
  shufps $0x88,%xmm3,%xmm1
  movaps %xmm1,-0x28(%rsp)
  movdqu -0xa0(%rcx),%xmm1
  shufps $0xdd,%xmm3,%xmm1
  movdqu -0x80(%rcx),%xmm3
  movaps %xmm1,0x28(%rsp)
  movdqu -0x70(%rcx),%xmm1
  shufps $0x88,%xmm1,%xmm3
  movdqu -0x80(%rcx),%xmm1
  shufps $0xdd,%xmm9,%xmm1
  movdqu -0x50(%rcx),%xmm9
  movaps %xmm1,0x18(%rsp)
  movdqu -0x60(%rcx),%xmm1
  shufps $0x88,%xmm9,%xmm1
  movaps %xmm1,-0x38(%rsp)
  movdqu -0x60(%rcx),%xmm1
  shufps $0xdd,%xmm9,%xmm1
  movdqu -0x30(%rcx),%xmm9
  movaps %xmm1,0x8(%rsp)
  movdqa %xmm13,%xmm1
  shufps $0x88,%xmm9,%xmm1
  shufps $0xdd,%xmm9,%xmm13
  movdqu -0x10(%rcx),%xmm9
  movaps %xmm13,-0x68(%rsp)
  movdqu -0x20(%rcx),%xmm13
  shufps $0x88,%xmm9,%xmm13
  movaps %xmm13,-0x48(%rsp)
  movdqu -0x20(%rcx),%xmm13
  shufps $0xdd,%xmm9,%xmm13
  movdqa -0x78(%rsp),%xmm9
  movaps %xmm13,-0x58(%rsp)
  movdqa %xmm15,%xmm13
  shufps $0xdd,%xmm9,%xmm15
  shufps $0x88,%xmm9,%xmm13
  movaps %xmm13,-0x8(%rsp)
  movaps %xmm15,0x158(%rsp)
  movdqa %xmm6,%xmm15
  shufps $0xdd,%xmm11,%xmm6
  shufps $0x88,%xmm11,%xmm15
  movaps %xmm15,-0x78(%rsp)
  movdqa %xmm10,%xmm11
  movdqa %xmm0,%xmm15
  movaps %xmm6,0x148(%rsp)
  movdqa -0x18(%rsp),%xmm6
  movdqa 0x48(%rsp),%xmm13
  shufps $0x88,%xmm6,%xmm11
  shufps $0xdd,%xmm6,%xmm10
  movdqa %xmm4,%xmm6
  shufps $0xdd,%xmm8,%xmm4
  shufps $0x88,%xmm8,%xmm6
  movaps %xmm6,-0x18(%rsp)
  movdqa 0x58(%rsp),%xmm6
  movdqa %xmm0,%xmm8
  movaps %xmm4,0xd8(%rsp)
  movdqa -0x28(%rsp),%xmm4
  movdqa -0x38(%rsp),%xmm0
  shufps $0x88,%xmm6,%xmm8
  shufps $0xdd,%xmm6,%xmm15
  movdqa %xmm5,%xmm6
  shufps $0xdd,%xmm4,%xmm5
  movaps %xmm5,0xc8(%rsp)
  movdqa %xmm3,%xmm5
  shufps $0xdd,%xmm0,%xmm3
  shufps $0x88,%xmm0,%xmm5
  movdqa -0x48(%rsp),%xmm0
  shufps $0x88,%xmm4,%xmm6
  movaps %xmm3,0xb8(%rsp)
  movdqa %xmm5,%xmm4
  movdqa %xmm1,%xmm3
  movdqa 0xf8(%rsp),%xmm5
  shufps $0x88,%xmm0,%xmm3
  shufps $0xdd,%xmm0,%xmm1
  movdqa %xmm12,%xmm0
  movaps %xmm1,0xa8(%rsp)
  shufps $0xdd,%xmm5,%xmm12
  shufps $0x88,%xmm5,%xmm0
  movaps %xmm0,-0x38(%rsp)
  movdqa 0x98(%rsp),%xmm5
  movdqa %xmm7,%xmm0
  movaps %xmm3,-0x28(%rsp)
  shufps $0x88,%xmm5,%xmm0
  shufps $0xdd,%xmm5,%xmm7
  movaps %xmm7,0x98(%rsp)
  movdqa 0x88(%rsp),%xmm5
  movdqa %xmm2,%xmm7
  movaps %xmm0,-0x48(%rsp)
  movdqa 0x78(%rsp),%xmm0
  shufps $0x88,%xmm5,%xmm7
  shufps $0xdd,%xmm5,%xmm2
  movdqa %xmm7,%xmm1
  movdqa 0xe8(%rsp),%xmm5
  movdqa 0x68(%rsp),%xmm7
  movaps %xmm2,0x88(%rsp)
  movdqa %xmm5,%xmm2
  shufps $0xdd,%xmm0,%xmm5
  movaps %xmm5,0x78(%rsp)
  movdqa %xmm7,%xmm5
  shufps $0xdd,%xmm13,%xmm7
  movdqa %xmm7,%xmm9
  movdqa 0x38(%rsp),%xmm7
  shufps $0x88,%xmm13,%xmm5
  movdqa 0x28(%rsp),%xmm13
  shufps $0x88,%xmm0,%xmm2
  movdqa %xmm5,%xmm3
  movdqa 0x18(%rsp),%xmm0
  movdqa %xmm7,%xmm5
  shufps $0x88,%xmm13,%xmm5
  shufps $0xdd,%xmm13,%xmm7
  movaps %xmm7,0x68(%rsp)
  movdqa 0x8(%rsp),%xmm13
  movdqa %xmm0,%xmm7
  shufps $0x88,%xmm13,%xmm7
  shufps $0xdd,%xmm13,%xmm0
  movaps %xmm0,0x58(%rsp)
  movdqa -0x58(%rsp),%xmm13
  movdqa -0x68(%rsp),%xmm0
  shufps $0x88,%xmm13,%xmm0
  movaps %xmm0,-0x58(%rsp)
  movdqa -0x68(%rsp),%xmm0
  shufps $0xdd,%xmm13,%xmm0
  movaps %xmm0,0x48(%rsp)
  movdqa -0x8(%rsp),%xmm0
  movdqa %xmm0,%xmm13
  shufps $0xdd,-0x78(%rsp),%xmm0
  movaps %xmm0,0x138(%rsp)
  movdqa -0x18(%rsp),%xmm0
  shufps $0x88,-0x78(%rsp),%xmm13
  movaps %xmm13,0x38(%rsp)
  movdqa %xmm11,%xmm13
  shufps $0x88,%xmm0,%xmm13
  movaps %xmm13,0x28(%rsp)
  movdqa %xmm11,%xmm13
  movdqa %xmm8,%xmm11
  shufps $0x88,%xmm6,%xmm11
  shufps $0xdd,%xmm0,%xmm13
  shufps $0xdd,%xmm6,%xmm8
  movdqa -0x38(%rsp),%xmm0
  movaps %xmm13,0x128(%rsp)
  movdqa -0x28(%rsp),%xmm6
  movdqa %xmm4,%xmm13
  movaps %xmm8,0x118(%rsp)
  movdqa -0x48(%rsp),%xmm8
  shufps $0x88,%xmm6,%xmm13
  shufps $0xdd,%xmm6,%xmm4
  movdqa %xmm0,%xmm6
  movaps %xmm4,0x8(%rsp)
  movdqa %xmm0,%xmm4
  shufps $0xdd,%xmm8,%xmm6
  movaps %xmm13,0x18(%rsp)
  movdqa 0x98(%rsp),%xmm0
  shufps $0x88,%xmm8,%xmm4
  movdqa %xmm1,%xmm8
  shufps $0xdd,%xmm2,%xmm1
  movaps %xmm6,0x108(%rsp)
  shufps $0x88,%xmm2,%xmm8
  movdqa -0x58(%rsp),%xmm6
  movaps %xmm8,-0x8(%rsp)
  movdqa 0x158(%rsp),%xmm2
  movaps %xmm1,0xf8(%rsp)
  movdqa %xmm7,%xmm8
  movdqa %xmm3,%xmm1
  shufps $0xdd,%xmm5,%xmm3
  shufps $0x88,%xmm5,%xmm1
  shufps $0xdd,%xmm6,%xmm8
  movaps %xmm8,-0x18(%rsp)
  movdqa 0xb8(%rsp),%xmm8
  movaps %xmm3,0xe8(%rsp)
  movdqa %xmm7,%xmm3
  movdqa 0x148(%rsp),%xmm7
  movdqa %xmm9,%xmm13
  shufps $0x88,%xmm6,%xmm3
  movdqa %xmm2,%xmm6
  shufps $0xdd,%xmm7,%xmm2
  movdqa %xmm2,%xmm5
  shufps $0x88,%xmm7,%xmm6
  movdqa 0xd8(%rsp),%xmm2
  movdqa %xmm10,%xmm7
  shufps $0xdd,%xmm2,%xmm10
  movaps %xmm10,-0x38(%rsp)
  shufps $0x88,%xmm2,%xmm7
  movdqa 0xc8(%rsp),%xmm10
  movdqa %xmm15,%xmm2
  movaps %xmm7,-0x28(%rsp)
  movdqa %xmm8,%xmm7
  shufps $0x88,%xmm10,%xmm2
  shufps $0xdd,%xmm10,%xmm15
  movdqa 0xa8(%rsp),%xmm10
  shufps $0x88,%xmm10,%xmm7
  shufps $0xdd,%xmm10,%xmm8
  movdqa %xmm12,%xmm10
  movaps %xmm8,-0x48(%rsp)
  shufps $0xdd,%xmm0,%xmm10
  movdqa %xmm12,%xmm8
  movaps %xmm10,0xd8(%rsp)
  movdqa 0x88(%rsp),%xmm10
  shufps $0x88,%xmm0,%xmm8
  movdqa 0x78(%rsp),%xmm0
  movdqa %xmm10,%xmm12
  shufps $0x88,%xmm0,%xmm12
  movaps %xmm12,-0x58(%rsp)
  shufps $0xdd,%xmm0,%xmm10
  movdqa 0x68(%rsp),%xmm12
  movaps %xmm10,0xc8(%rsp)
  movdqa %xmm9,%xmm0
  movdqa 0x48(%rsp),%xmm9
  shufps $0x88,%xmm12,%xmm13
  movdqa %xmm13,%xmm10
  shufps $0xdd,%xmm12,%xmm0
  movdqa 0x58(%rsp),%xmm13
  movaps %xmm0,-0x68(%rsp)
  movdqa %xmm13,%xmm12
  movdqa %xmm13,%xmm0
  movdqa 0x28(%rsp),%xmm13
  shufps $0x88,%xmm9,%xmm12
  shufps $0xdd,%xmm9,%xmm0
  movaps %xmm0,-0x78(%rsp)
  movdqa 0x38(%rsp),%xmm9
  movdqa %xmm9,%xmm0
  shufps $0xdd,%xmm13,%xmm9
  shufps $0x88,%xmm13,%xmm0
  movaps %xmm0,0xb8(%rsp)
  movdqa 0x18(%rsp),%xmm0
  movdqa %xmm9,%xmm13
  movdqa %xmm11,%xmm9
  shufps $0x88,%xmm0,%xmm9
  movaps %xmm9,0xa8(%rsp)
  movdqa %xmm11,%xmm9
  movdqa %xmm4,%xmm11
  shufps $0xdd,%xmm0,%xmm9
  movaps %xmm9,0x98(%rsp)
  movdqa -0x8(%rsp),%xmm9
  shufps $0x88,%xmm9,%xmm11
  shufps $0xdd,%xmm9,%xmm4
  movdqa %xmm1,%xmm9
  shufps $0xdd,%xmm3,%xmm1
  movaps %xmm1,0x68(%rsp)
  movdqa -0x28(%rsp),%xmm1
  shufps $0x88,%xmm3,%xmm9
  movdqa %xmm6,%xmm3
  movaps %xmm4,0x88(%rsp)
  movdqa 0x138(%rsp),%xmm4
  shufps $0x88,%xmm1,%xmm3
  shufps $0xdd,%xmm1,%xmm6
  movdqa %xmm2,%xmm1
  shufps $0xdd,%xmm7,%xmm2
  movaps %xmm2,0x48(%rsp)
  movdqa -0x58(%rsp),%xmm2
  movdqa %xmm3,%xmm0
  shufps $0x88,%xmm7,%xmm1
  movdqa %xmm10,%xmm3
  movdqa %xmm8,%xmm7
  movaps %xmm1,0x58(%rsp)
  shufps $0x88,%xmm2,%xmm7
  shufps $0xdd,%xmm12,%xmm3
  movdqa %xmm7,%xmm1
  movaps %xmm3,0x28(%rsp)
  movdqa %xmm8,%xmm7
  movaps %xmm9,0x78(%rsp)
  movdqa 0x128(%rsp),%xmm3
  movdqa %xmm5,%xmm9
  shufps $0xdd,%xmm2,%xmm7
  movdqa %xmm10,%xmm2
  shufps $0x88,%xmm12,%xmm2
  movaps %xmm2,0x38(%rsp)
  movdqa %xmm4,%xmm2
  shufps $0xdd,%xmm3,%xmm4
  movaps %xmm4,0x18(%rsp)
  movdqa 0x8(%rsp),%xmm12
  shufps $0x88,%xmm3,%xmm2
  movdqa 0x118(%rsp),%xmm4
  movdqa %xmm4,%xmm3
  shufps $0xdd,%xmm12,%xmm4
  movaps %xmm4,-0x8(%rsp)
  shufps $0x88,%xmm12,%xmm3
  movaps %xmm3,0x8(%rsp)
  movdqa 0x108(%rsp),%xmm12
  movdqa 0xf8(%rsp),%xmm4
  movdqa -0x18(%rsp),%xmm8
  movdqa %xmm12,%xmm3
  shufps $0xdd,%xmm4,%xmm12
  shufps $0x88,%xmm4,%xmm3
  movdqa 0xe8(%rsp),%xmm4
  movdqa %xmm4,%xmm10
  shufps $0xdd,%xmm8,%xmm4
  movaps %xmm4,-0x28(%rsp)
  shufps $0x88,%xmm8,%xmm10
  movaps %xmm10,-0x18(%rsp)
  movdqa -0x38(%rsp),%xmm10
  movdqa -0x68(%rsp),%xmm8
  shufps $0xdd,%xmm10,%xmm5
  movaps %xmm5,-0x38(%rsp)
  movdqa -0x48(%rsp),%xmm5
  shufps $0x88,%xmm10,%xmm9
  movdqa 0xd8(%rsp),%xmm10
  movdqa %xmm9,%xmm4
  movdqa %xmm15,%xmm9
  shufps $0xdd,%xmm5,%xmm15
  movaps %xmm15,-0x58(%rsp)
  shufps $0x88,%xmm5,%xmm9
  movdqa 0xc8(%rsp),%xmm15
  movdqa %xmm10,%xmm5
  movaps %xmm9,-0x48(%rsp)
  movdqa %xmm8,%xmm9
  shufps $0x88,%xmm15,%xmm5
  shufps $0xdd,%xmm15,%xmm10
  movdqa %xmm10,%xmm15
  movdqa -0x78(%rsp),%xmm10
  shufps $0x88,%xmm10,%xmm9
  movaps %xmm9,-0x68(%rsp)
  movdqa %xmm8,%xmm9
  movdqa %xmm11,%xmm8
  shufps $0xdd,%xmm10,%xmm9
  shufps $0x88,0x78(%rsp),%xmm8
  movdqa %xmm8,%xmm10
  movaps %xmm9,-0x78(%rsp)
  movdqa 0xb8(%rsp),%xmm9
  pand   %xmm14,%xmm10
  movdqa %xmm0,%xmm8
  shufps $0x88,0xa8(%rsp),%xmm9
  pslld  $0x1,%xmm9
  shufps $0x88,0x58(%rsp),%xmm8
  pand   D37(%rip),%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm1,%xmm8
  shufps $0x88,0x38(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm2,%xmm8
  shufps $0x88,0x8(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm3,%xmm8
  shufps $0x88,-0x18(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm4,%xmm8
  shufps $0x88,-0x48(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm5,%xmm8
  shufps $0x88,-0x68(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm13,%xmm8
  shufps $0x88,0x98(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm6,%xmm8
  shufps $0x88,0x48(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa 0x88(%rsp),%xmm10
  shufps $0x88,0x68(%rsp),%xmm10
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm7,%xmm8
  shufps $0x88,0x28(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa 0x18(%rsp),%xmm8
  shufps $0xdd,0x58(%rsp),%xmm0
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  shufps $0x88,-0x8(%rsp),%xmm8
  shufps $0xdd,0x78(%rsp),%xmm11
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm12,%xmm8
  shufps $0x88,-0x28(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  pand   %xmm14,%xmm11
  shufps $0xdd,0x38(%rsp),%xmm1
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  movdqa %xmm15,%xmm8
  shufps $0x88,-0x78(%rsp),%xmm8
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  pand   %xmm14,%xmm0
  shufps $0xdd,0x8(%rsp),%xmm2
  por    %xmm10,%xmm9
  pand   %xmm14,%xmm1
  movdqa -0x38(%rsp),%xmm10
  shufps $0x88,-0x58(%rsp),%xmm10
  pslld  $0x1,%xmm9
  pand   %xmm14,%xmm10
  pand   %xmm14,%xmm2
  shufps $0xdd,-0x18(%rsp),%xmm3
  por    %xmm10,%xmm9
  movdqa %xmm8,%xmm10
  pand   %xmm14,%xmm3
  shufps $0xdd,-0x48(%rsp),%xmm4
  pand   %xmm14,%xmm10
  pslld  $0x1,%xmm9
  pand   %xmm14,%xmm4
  shufps $0xdd,-0x68(%rsp),%xmm5
  por    %xmm10,%xmm9
  pand   %xmm14,%xmm5
  movdqa 0xb8(%rsp),%xmm10
  shufps $0xdd,0xa8(%rsp),%xmm10
  pslld  $0x1,%xmm9
  pand   %xmm14,%xmm10
  shufps $0xdd,0x98(%rsp),%xmm13
  pand   %xmm14,%xmm13
  por    %xmm10,%xmm9
  shufps $0xdd,0x48(%rsp),%xmm6
  pand   %xmm14,%xmm6
  shufps $0xdd,0x28(%rsp),%xmm7
  pslld  $0x1,%xmm9
  pand   %xmm14,%xmm7
  movdqa 0x18(%rsp),%xmm8
  shufps $0xdd,-0x8(%rsp),%xmm8
  por    %xmm11,%xmm9
  pand   %xmm14,%xmm8
  shufps $0xdd,-0x28(%rsp),%xmm12
  pand   %xmm14,%xmm12
  pslld  $0x1,%xmm9
  shufps $0xdd,-0x78(%rsp),%xmm15
  pand   %xmm14,%xmm15
  por    %xmm0,%xmm9
  pslld  $0x1,%xmm9
  por    %xmm1,%xmm9
  movdqa 0x88(%rsp),%xmm1
  shufps $0xdd,0x68(%rsp),%xmm1
  pand   %xmm14,%xmm1
  pslld  $0x1,%xmm9
  por    %xmm2,%xmm9
  pslld  $0x1,%xmm9
  por    %xmm3,%xmm9
  pslld  $0x1,%xmm9
  por    %xmm4,%xmm9
  pslld  $0x1,%xmm9
  por    %xmm5,%xmm9
  pslld  $0x1,%xmm9
  movdqa %xmm9,%xmm0
  por    %xmm13,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  movdqa -0x38(%rsp),%xmm1
  shufps $0xdd,-0x58(%rsp),%xmm1
  pand   %xmm14,%xmm1
  pslld  $0x1,%xmm0
  por    %xmm6,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm7,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm8,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm12,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm0,%xmm15
  movups %xmm15,-0x10(%r9)
  cmp    %r9,%r10
  jne    L650
  mov    %r13d,%ecx
  and    $0xfffffffc,%ecx
  mov    %ecx,%r9d
  shl    $0x5,%r9d
  sub    %r9d,%r8d
  mov    %ecx,%r9d
  lea    (%rdi,%r9,4),%rbx
  shl    $0x7,%r9
  mov    %r8d,0x98(%rsp)
  mov    %rbx,-0x78(%rsp)
  add    %r15,%r9
  cmp    %r13d,%ecx
  je     L408
L587:
  mov    %r12d,%r8d
  sub    %ecx,%r8d
  lea    0x1(%r8),%r10d
  mov    %r10d,0x108(%rsp)
  cmp    $0x1,%r8d
  jbe    L622
  mov    %ecx,%r8d
  mov    %r8,%rcx
  shl    $0x7,%rcx
  add    %r15,%rcx
  mov    (%rcx),%r10
  mov    0x70(%rcx),%rbx
  mov    0x40(%rcx),%rbp
  movq   0x48(%rcx),%xmm15
  movq   %r10,%xmm3
  mov    0x8(%rcx),%r10
  mov    %rbx,0x18(%rsp)
  movq   0x58(%rcx),%xmm13
  movq   0x68(%rcx),%xmm11
  movdqa %xmm3,%xmm0
  mov    %rbp,0x8(%rsp)
  movq   %r10,%xmm10
  mov    0x10(%rcx),%r10
  mov    0xa8(%rcx),%rbx
  movq   0x78(%rcx),%xmm9
  movq   0x50(%rcx),%xmm14
  punpckldq %xmm10,%xmm0
  mov    %r10,-0x58(%rsp)
  mov    0x18(%rcx),%r10
  movq   0x88(%rcx),%xmm7
  movq   0x60(%rcx),%xmm12
  mov    %rbx,0x28(%rsp)
  movq   0x98(%rcx),%xmm5
  mov    %r10,-0x48(%rsp)
  movq   0xb8(%rcx),%xmm1
  mov    0x20(%rcx),%r10
  movq   0x80(%rcx),%xmm8
  movq   0x90(%rcx),%xmm6
  movq   0xa0(%rcx),%xmm4
  mov    %r10,-0x38(%rsp)
  movq   0xb0(%rcx),%xmm2
  mov    0x28(%rcx),%r10
  mov    %r10,-0x28(%rsp)
  mov    0x30(%rcx),%r10
  mov    %r10,-0x18(%rsp)
  mov    0x38(%rcx),%r10
  mov    0xc0(%rcx),%rbx
  mov    0xc8(%rcx),%rbp
  mov    0xf0(%rcx),%r11
  mov    %rbx,0x58(%rsp)
  mov    0xe0(%rcx),%rbx
  mov    %rbp,0x68(%rsp)
  mov    0xd0(%rcx),%rbp
  mov    %rbx,0x88(%rsp)
  mov    0xe8(%rcx),%rbx
  mov    %rbp,0x78(%rsp)
  mov    0xd8(%rcx),%rbp
  mov    0xf8(%rcx),%rcx
  mov    %r11,0xa8(%rsp)
  mov    %rcx,%r11
  movq   %xmm0,%rcx
  movdqa %xmm3,%xmm0
  movq   -0x48(%rsp),%xmm3
  punpckldq %xmm10,%xmm0
  movq   -0x58(%rsp),%xmm10
  pshufd $0xe,%xmm0,%xmm0
  movq   %xmm0,-0x68(%rsp)
  movdqa %xmm10,%xmm0
  punpckldq %xmm3,%xmm10
  punpckldq %xmm3,%xmm0
  pshufd $0xe,%xmm10,%xmm10
  movq   -0x28(%rsp),%xmm3
  movq   %xmm0,-0x58(%rsp)
  movq   -0x38(%rsp),%xmm0
  movq   %xmm10,-0x48(%rsp)
  movdqa %xmm0,%xmm10
  punpckldq %xmm3,%xmm0
  punpckldq %xmm3,%xmm10
  pshufd $0xe,%xmm0,%xmm0
  movq   %r10,%xmm3
  movq   %xmm10,-0x38(%rsp)
  movq   -0x18(%rsp),%xmm10
  movq   %xmm0,-0x28(%rsp)
  movdqa %xmm10,%xmm0
  punpckldq %xmm3,%xmm10
  pshufd $0xe,%xmm10,%xmm10
  punpckldq %xmm3,%xmm0
  movdqa %xmm12,%xmm3
  movq   %xmm10,-0x8(%rsp)
  punpckldq %xmm11,%xmm3
  punpckldq %xmm11,%xmm12
  movq   0x8(%rsp),%xmm10
  movq   %xmm0,-0x18(%rsp)
  pshufd $0xe,%xmm12,%xmm12
  movdqa %xmm10,%xmm0
  punpckldq %xmm15,%xmm10
  punpckldq %xmm15,%xmm0
  movdqa %xmm14,%xmm15
  punpckldq %xmm13,%xmm14
  punpckldq %xmm13,%xmm15
  movdqa %xmm3,%xmm13
  movq   0x18(%rsp),%xmm3
  movq   %xmm0,%r10
  pshufd $0xe,%xmm10,%xmm10
  pshufd $0xe,%xmm14,%xmm14
  movdqa %xmm3,%xmm11
  movdqa %xmm3,%xmm0
  movdqa %xmm8,%xmm3
  movq   %xmm10,0x8(%rsp)
  punpckldq %xmm7,%xmm3
  punpckldq %xmm9,%xmm11
  punpckldq %xmm9,%xmm0
  punpckldq %xmm7,%xmm8
  movdqa %xmm3,%xmm9
  movdqa %xmm6,%xmm7
  movq   0x28(%rsp),%xmm3
  punpckldq %xmm5,%xmm7
  punpckldq %xmm5,%xmm6
  movdqa %xmm4,%xmm5
  punpckldq %xmm3,%xmm5
  punpckldq %xmm3,%xmm4
  movdqa %xmm2,%xmm3
  punpckldq %xmm1,%xmm2
  punpckldq %xmm1,%xmm3
  pshufd $0xe,%xmm0,%xmm0
  pshufd $0xe,%xmm4,%xmm4
  pshufd $0xe,%xmm2,%xmm2
  movq   %xmm0,0x18(%rsp)
  movq   %rcx,%xmm10
  movq   %xmm4,0x28(%rsp)
  movq   %rbp,%xmm4
  pshufd $0xe,%xmm6,%xmm6
  pshufd $0xe,%xmm8,%xmm8
  movq   %xmm3,0x38(%rsp)
  movq   %xmm2,0x48(%rsp)
  movq   0x58(%rsp),%xmm2
  movq   0x68(%rsp),%xmm3
  movdqa %xmm2,%xmm1
  punpckldq %xmm3,%xmm2
  punpckldq %xmm3,%xmm1
  movq   0x78(%rsp),%xmm3
  pshufd $0xe,%xmm2,%xmm2
  movq   %xmm1,0x58(%rsp)
  movdqa %xmm3,%xmm1
  punpckldq %xmm4,%xmm3
  movq   %xmm2,0x68(%rsp)
  punpckldq %xmm4,%xmm1
  pshufd $0xe,%xmm3,%xmm3
  movdqa %xmm1,%xmm0
  movq   %xmm3,%rbp
  movq   %rbx,%xmm3
  movq   0x88(%rsp),%xmm1
  movdqa %xmm1,%xmm2
  punpckldq %xmm3,%xmm1
  punpckldq %xmm3,%xmm2
  pshufd $0xe,%xmm1,%xmm1
  movq   0xa8(%rsp),%xmm3
  movq   %xmm1,0x78(%rsp)
  movq   %r11,%xmm1
  movdqa %xmm3,%xmm4
  punpckldq %xmm1,%xmm3
  punpckldq %xmm1,%xmm4
  pshufd $0xe,%xmm3,%xmm3
  movq   -0x58(%rsp),%xmm1
  movq   %xmm3,%r11
  movq   %rcx,%xmm3
  punpckldq %xmm1,%xmm10
  punpckldq %xmm1,%xmm3
  movq   %xmm10,-0x58(%rsp)
  pshufd $0xe,%xmm3,%xmm3
  movq   -0x38(%rsp),%xmm10
  movq   %xmm3,%rcx
  movq   -0x18(%rsp),%xmm3
  movdqa %xmm10,%xmm1
  punpckldq %xmm3,%xmm1
  punpckldq %xmm3,%xmm10
  movq   %r10,%xmm3
  punpckldq %xmm15,%xmm3
  pshufd $0xe,%xmm10,%xmm10
  movq   %xmm1,-0x38(%rsp)
  movq   0x38(%rsp),%xmm1
  movq   %xmm10,-0x18(%rsp)
  movdqa %xmm3,%xmm10
  movq   %r10,%xmm3
  punpckldq %xmm15,%xmm3
  movdqa %xmm13,%xmm15
  punpckldq %xmm11,%xmm13
  punpckldq %xmm11,%xmm15
  movdqa %xmm9,%xmm11
  punpckldq %xmm7,%xmm9
  punpckldq %xmm7,%xmm11
  movdqa %xmm5,%xmm7
  punpckldq %xmm1,%xmm5
  pshufd $0xe,%xmm5,%xmm5
  pshufd $0xe,%xmm3,%xmm3
  pshufd $0xe,%xmm9,%xmm9
  movq   %xmm5,0x38(%rsp)
  movq   %xmm3,%r10
  pshufd $0xe,%xmm13,%xmm13
  movq   0x58(%rsp),%xmm5
  movq   %xmm9,0xa8(%rsp)
  movdqa %xmm2,%xmm9
  punpckldq %xmm4,%xmm2
  punpckldq %xmm1,%xmm7
  movdqa %xmm5,%xmm3
  punpckldq %xmm0,%xmm5
  pshufd $0xe,%xmm2,%xmm2
  movq   %xmm13,0x88(%rsp)
  pshufd $0xe,%xmm5,%xmm5
  punpckldq %xmm4,%xmm9
  punpckldq %xmm0,%xmm3
  movq   -0x28(%rsp),%xmm4
  movq   %xmm5,0x58(%rsp)
  movq   -0x68(%rsp),%xmm5
  movdqa %xmm9,%xmm0
  movq   -0x8(%rsp),%xmm13
  movq   %xmm2,0xb8(%rsp)
  movq   -0x48(%rsp),%xmm2
  movdqa %xmm5,%xmm1
  punpckldq %xmm2,%xmm1
  punpckldq %xmm2,%xmm5
  movdqa %xmm4,%xmm2
  punpckldq %xmm13,%xmm2
  punpckldq %xmm13,%xmm4
  pshufd $0xe,%xmm5,%xmm5
  movq   0x8(%rsp),%xmm13
  pshufd $0xe,%xmm4,%xmm4
  movq   %xmm5,-0x68(%rsp)
  movdqa %xmm12,%xmm5
  movq   %xmm1,%rbx
  movdqa %xmm13,%xmm9
  movq   %xmm4,-0x48(%rsp)
  punpckldq %xmm14,%xmm13
  punpckldq %xmm14,%xmm9
  pshufd $0xe,%xmm13,%xmm13
  movdqa %xmm9,%xmm4
  movq   0x18(%rsp),%xmm9
  movq   %xmm13,-0x28(%rsp)
  punpckldq %xmm9,%xmm5
  punpckldq %xmm9,%xmm12
  movdqa %xmm8,%xmm9
  punpckldq %xmm6,%xmm8
  pshufd $0xe,%xmm12,%xmm12
  punpckldq %xmm6,%xmm9
  pshufd $0xe,%xmm8,%xmm8
  movq   %xmm12,-0x8(%rsp)
  movq   %xmm8,0x8(%rsp)
  movq   0x28(%rsp),%xmm13
  movq   0x48(%rsp),%xmm14
  movq   %rbp,%xmm8
  movq   0x68(%rsp),%xmm6
  movq   -0x38(%rsp),%xmm1
  movdqa %xmm13,%xmm12
  punpckldq %xmm14,%xmm13
  pshufd $0xe,%xmm13,%xmm13
  punpckldq %xmm14,%xmm12
  movq   %xmm13,0x18(%rsp)
  movdqa %xmm6,%xmm13
  punpckldq %xmm8,%xmm6
  punpckldq %xmm8,%xmm13
  movq   0x78(%rsp),%xmm8
  pshufd $0xe,%xmm6,%xmm6
  movq   %xmm6,%rbp
  movq   %r11,%xmm6
  movdqa %xmm8,%xmm14
  punpckldq %xmm6,%xmm8
  punpckldq %xmm6,%xmm14
  movq   -0x58(%rsp),%xmm6
  pshufd $0xe,%xmm8,%xmm8
  movq   %xmm8,0x28(%rsp)
  movdqa %xmm6,%xmm8
  punpckldq %xmm1,%xmm6
  pshufd $0xe,%xmm6,%xmm6
  punpckldq %xmm1,%xmm8
  movq   %rbx,%xmm1
  movq   %xmm6,0x48(%rsp)
  movdqa %xmm10,%xmm6
  punpckldq %xmm15,%xmm10
  punpckldq %xmm2,%xmm1
  punpckldq %xmm15,%xmm6
  movdqa %xmm11,%xmm15
  movq   %xmm8,-0x58(%rsp)
  pshufd $0xe,%xmm1,%xmm1
  punpckldq %xmm7,%xmm15
  movq   %xmm1,0x78(%rsp)
  movq   0xb8(%rsp),%xmm1
  pshufd $0xe,%xmm10,%xmm10
  movdqa %xmm15,%xmm8
  movdqa %xmm11,%xmm15
  movq   -0x18(%rsp),%xmm11
  punpckldq %xmm7,%xmm15
  movdqa %xmm3,%xmm7
  punpckldq %xmm0,%xmm3
  pshufd $0xe,%xmm3,%xmm3
  punpckldq %xmm0,%xmm7
  movq   -0x28(%rsp),%xmm0
  pshufd $0xe,%xmm15,%xmm15
  movq   %xmm3,0x68(%rsp)
  movq   %rbx,%xmm3
  punpckldq %xmm2,%xmm3
  movq   %xmm3,%r11
  movdqa %xmm4,%xmm3
  punpckldq %xmm5,%xmm4
  punpckldq %xmm5,%xmm3
  pshufd $0xe,%xmm4,%xmm4
  movq   %xmm4,0xc8(%rsp)
  movq   %xmm3,%rbx
  movdqa %xmm9,%xmm3
  punpckldq %xmm12,%xmm3
  movdqa %xmm3,%xmm2
  movdqa %xmm9,%xmm3
  movq   %rcx,%xmm9
  punpckldq %xmm11,%xmm9
  punpckldq %xmm12,%xmm3
  movq   -0x48(%rsp),%xmm12
  movdqa %xmm9,%xmm4
  movq   %rcx,%xmm9
  pshufd $0xe,%xmm3,%xmm3
  movq   %xmm3,0xd8(%rsp)
  punpckldq %xmm11,%xmm9
  movq   0x88(%rsp),%xmm11
  movdqa %xmm13,%xmm3
  pshufd $0xe,%xmm9,%xmm9
  punpckldq %xmm14,%xmm3
  punpckldq %xmm14,%xmm13
  movq   0x38(%rsp),%xmm14
  movq   %xmm9,%rcx
  movq   %r10,%xmm9
  pshufd $0xe,%xmm13,%xmm13
  punpckldq %xmm11,%xmm9
  movdqa %xmm9,%xmm5
  movq   %r10,%xmm9
  punpckldq %xmm11,%xmm9
  movq   0xa8(%rsp),%xmm11
  pshufd $0xe,%xmm9,%xmm9
  movq   %xmm9,%r10
  movdqa %xmm11,%xmm9
  punpckldq %xmm14,%xmm11
  punpckldq %xmm14,%xmm9
  movq   0x58(%rsp),%xmm14
  pshufd $0xe,%xmm11,%xmm11
  movq   %xmm11,0x88(%rsp)
  movdqa %xmm14,%xmm11
  punpckldq %xmm1,%xmm14
  pshufd $0xe,%xmm14,%xmm14
  punpckldq %xmm1,%xmm11
  movq   -0x8(%rsp),%xmm1
  movq   %xmm14,0x58(%rsp)
  movq   -0x68(%rsp),%xmm14
  movq   %xmm11,-0x18(%rsp)
  movdqa %xmm14,%xmm11
  punpckldq %xmm12,%xmm14
  punpckldq %xmm12,%xmm11
  movdqa %xmm0,%xmm12
  punpckldq %xmm1,%xmm0
  pshufd $0xe,%xmm0,%xmm0
  punpckldq %xmm1,%xmm12
  pshufd $0xe,%xmm14,%xmm14
  movq   0x18(%rsp),%xmm1
  movq   %xmm0,0xb8(%rsp)
  movq   0x8(%rsp),%xmm0
  movq   %xmm14,0xa8(%rsp)
  movdqa %xmm0,%xmm14
  punpckldq %xmm1,%xmm0
  punpckldq %xmm1,%xmm14
  pshufd $0xe,%xmm0,%xmm0
  movq   %xmm14,0x8(%rsp)
  movq   %rbp,%xmm14
  movq   %xmm0,0xe8(%rsp)
  movq   %rbp,%xmm0
  movq   0x28(%rsp),%xmm1
  punpckldq %xmm1,%xmm14
  punpckldq %xmm1,%xmm0
  movq   -0x58(%rsp),%xmm1
  pshufd $0xe,%xmm0,%xmm0
  movq   %xmm0,0xf8(%rsp)
  movdqa %xmm1,%xmm0
  punpckldq %xmm6,%xmm0
  movq   %xmm0,-0x68(%rsp)
  movdqa %xmm1,%xmm0
  movdqa %xmm8,%xmm1
  punpckldq %xmm7,%xmm8
  punpckldq %xmm7,%xmm1
  punpckldq %xmm6,%xmm0
  movq   %rbx,%xmm6
  movq   %xmm1,%rbp
  movq   %r11,%xmm1
  movq   %r11,%xmm7
  punpckldq %xmm6,%xmm1
  pshufd $0xe,%xmm0,%xmm0
  pshufd $0xe,%xmm8,%xmm8
  pshufd $0xe,%xmm1,%xmm1
  movq   %xmm0,-0x58(%rsp)
  punpckldq %xmm6,%xmm7
  movq   0x58(%rsp),%xmm6
  movq   %xmm1,%r11
  movdqa %xmm2,%xmm1
  punpckldq %xmm3,%xmm2
  movq   %xmm8,-0x48(%rsp)
  punpckldq %xmm3,%xmm1
  movq   -0x18(%rsp),%xmm3
  pshufd $0xe,%xmm2,%xmm2
  movq   %r10,%xmm8
  movdqa %xmm1,%xmm0
  movdqa %xmm4,%xmm1
  punpckldq %xmm5,%xmm4
  movq   %xmm2,-0x38(%rsp)
  punpckldq %xmm5,%xmm1
  movdqa %xmm9,%xmm5
  punpckldq %xmm3,%xmm9
  movq   0x48(%rsp),%xmm2
  punpckldq %xmm3,%xmm5
  pshufd $0xe,%xmm9,%xmm9
  movdqa %xmm11,%xmm3
  punpckldq %xmm12,%xmm3
  punpckldq %xmm12,%xmm11
  movdqa %xmm15,%xmm12
  movq   %xmm5,-0x28(%rsp)
  movq   0x8(%rsp),%xmm5
  pshufd $0xe,%xmm11,%xmm11
  pshufd $0xe,%xmm4,%xmm4
  movq   %xmm9,-0x18(%rsp)
  movq   %xmm11,-0x8(%rsp)
  movdqa %xmm5,%xmm9
  punpckldq %xmm14,%xmm5
  pshufd $0xe,%xmm5,%xmm5
  punpckldq %xmm14,%xmm9
  movq   0xa8(%rsp),%xmm14
  movq   %xmm5,0x8(%rsp)
  movdqa %xmm2,%xmm5
  punpckldq %xmm10,%xmm2
  punpckldq %xmm10,%xmm5
  movq   0x68(%rsp),%xmm10
  pshufd $0xe,%xmm2,%xmm2
  movq   %xmm2,0x18(%rsp)
  movq   0xc8(%rsp),%xmm2
  punpckldq %xmm10,%xmm12
  punpckldq %xmm10,%xmm15
  movq   %xmm12,0x28(%rsp)
  movq   0x78(%rsp),%xmm12
  pshufd $0xe,%xmm15,%xmm15
  movdqa %xmm12,%xmm10
  punpckldq %xmm2,%xmm10
  movq   %xmm10,%rbx
  movdqa %xmm2,%xmm10
  movq   0xe8(%rsp),%xmm2
  punpckldq %xmm10,%xmm12
  pshufd $0xe,%xmm12,%xmm12
  movq   %xmm12,0x38(%rsp)
  movq   0xd8(%rsp),%xmm12
  movdqa %xmm12,%xmm10
  punpckldq %xmm13,%xmm12
  punpckldq %xmm13,%xmm10
  movq   %rcx,%xmm13
  pshufd $0xe,%xmm12,%xmm12
  punpckldq %xmm8,%xmm13
  movq   %xmm12,0x48(%rsp)
  movdqa %xmm13,%xmm11
  movq   %rcx,%xmm13
  punpckldq %xmm8,%xmm13
  movdqa %xmm1,%xmm8
  pshufd $0xe,%xmm13,%xmm13
  movq   %xmm13,%rcx
  movq   0x88(%rsp),%xmm13
  movdqa %xmm13,%xmm12
  punpckldq %xmm6,%xmm13
  punpckldq %xmm6,%xmm12
  pshufd $0xe,%xmm13,%xmm13
  movq   0xb8(%rsp),%xmm6
  movq   %xmm13,0x58(%rsp)
  movdqa %xmm14,%xmm13
  punpckldq %xmm6,%xmm13
  punpckldq %xmm6,%xmm14
  movq   0xf8(%rsp),%xmm6
  pshufd $0xe,%xmm14,%xmm14
  movq   %xmm14,0x68(%rsp)
  movdqa %xmm2,%xmm14
  punpckldq %xmm6,%xmm2
  punpckldq %xmm6,%xmm14
  pshufd $0xe,%xmm2,%xmm2
  movq   %rbp,%xmm6
  movq   %xmm2,0x88(%rsp)
  movq   %xmm14,0x78(%rsp)
  movq   -0x68(%rsp),%xmm14
  movq   D37(%rip),%xmm2
  movq   %xmm9,0xa8(%rsp)
  punpckldq %xmm6,%xmm14
  movdqa %xmm7,%xmm6
  punpckldq %xmm0,%xmm7
  pslld  $0x1,%xmm14
  punpckldq %xmm0,%xmm6
  pshufd $0xe,%xmm7,%xmm7
  movq   -0x28(%rsp),%xmm0
  pand   %xmm2,%xmm14
  movq   D9(%rip),%xmm2
  punpckldq %xmm0,%xmm1
  movq   0x28(%rsp),%xmm0
  pand   %xmm2,%xmm6
  pand   %xmm2,%xmm7
  pshufd $0xe,%xmm1,%xmm1
  por    %xmm6,%xmm14
  movq   -0x28(%rsp),%xmm6
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm14
  punpckldq %xmm6,%xmm8
  movq   0x28(%rsp),%xmm6
  pand   %xmm2,%xmm8
  por    %xmm8,%xmm14
  movdqa %xmm3,%xmm8
  punpckldq %xmm9,%xmm8
  pslld  $0x1,%xmm14
  movq   0x78(%rsp),%xmm9
  pand   %xmm2,%xmm8
  por    %xmm8,%xmm14
  movdqa %xmm5,%xmm8
  punpckldq %xmm0,%xmm5
  punpckldq %xmm6,%xmm8
  pslld  $0x1,%xmm14
  pshufd $0xe,%xmm5,%xmm5
  movq   -0x48(%rsp),%xmm6
  pand   %xmm2,%xmm8
  pand   %xmm2,%xmm5
  por    %xmm8,%xmm14
  movq   %rbx,%xmm8
  punpckldq %xmm10,%xmm8
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm8
  por    %xmm8,%xmm14
  movdqa %xmm11,%xmm8
  punpckldq %xmm12,%xmm11
  punpckldq %xmm12,%xmm8
  pslld  $0x1,%xmm14
  pshufd $0xe,%xmm11,%xmm11
  pand   %xmm2,%xmm8
  pand   %xmm2,%xmm11
  por    %xmm8,%xmm14
  movdqa %xmm13,%xmm8
  punpckldq %xmm9,%xmm8
  movq   -0x58(%rsp),%xmm9
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm8
  punpckldq %xmm6,%xmm9
  por    %xmm8,%xmm14
  movq   %r11,%xmm6
  movdqa %xmm9,%xmm8
  movq   -0x38(%rsp),%xmm9
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm8
  punpckldq %xmm9,%xmm6
  por    %xmm8,%xmm14
  movq   0x8(%rsp),%xmm9
  movdqa %xmm6,%xmm8
  pslld  $0x1,%xmm14
  movq   -0x18(%rsp),%xmm6
  pand   %xmm2,%xmm8
  por    %xmm8,%xmm14
  movdqa %xmm4,%xmm8
  punpckldq %xmm6,%xmm8
  movq   -0x8(%rsp),%xmm6
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm8
  punpckldq %xmm9,%xmm6
  movq   0x18(%rsp),%xmm9
  por    %xmm8,%xmm14
  movdqa %xmm6,%xmm8
  pslld  $0x1,%xmm14
  movq   0x38(%rsp),%xmm6
  pand   %xmm2,%xmm8
  punpckldq %xmm15,%xmm9
  por    %xmm8,%xmm14
  movdqa %xmm9,%xmm8
  movq   0x48(%rsp),%xmm9
  pand   %xmm2,%xmm8
  pslld  $0x1,%xmm14
  punpckldq %xmm9,%xmm6
  por    %xmm8,%xmm14
  movq   0x68(%rsp),%xmm9
  movdqa %xmm6,%xmm8
  pslld  $0x1,%xmm14
  movq   0x58(%rsp),%xmm6
  pand   %xmm2,%xmm8
  por    %xmm8,%xmm14
  movq   %rcx,%xmm8
  punpckldq %xmm6,%xmm8
  pslld  $0x1,%xmm14
  movq   0x88(%rsp),%xmm6
  pand   %xmm2,%xmm8
  punpckldq %xmm6,%xmm9
  por    %xmm8,%xmm14
  movdqa %xmm9,%xmm8
  pslld  $0x1,%xmm14
  movq   -0x68(%rsp),%xmm9
  pand   %xmm2,%xmm8
  por    %xmm8,%xmm14
  movq   %rbp,%xmm8
  punpckldq %xmm8,%xmm9
  pslld  $0x1,%xmm14
  pshufd $0xe,%xmm9,%xmm9
  movdqa %xmm9,%xmm8
  movq   %rbx,%xmm9
  pand   %xmm2,%xmm8
  punpckldq %xmm10,%xmm9
  por    %xmm8,%xmm14
  pshufd $0xe,%xmm9,%xmm9
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm9
  por    %xmm7,%xmm14
  movq   0xa8(%rsp),%xmm7
  pslld  $0x1,%xmm14
  punpckldq %xmm7,%xmm3
  por    %xmm1,%xmm14
  movq   0x78(%rsp),%xmm7
  movq   -0x58(%rsp),%xmm1
  pshufd $0xe,%xmm3,%xmm3
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm3
  punpckldq %xmm7,%xmm13
  movq   %r11,%xmm7
  por    %xmm3,%xmm14
  pshufd $0xe,%xmm13,%xmm13
  movq   -0x38(%rsp),%xmm3
  pslld  $0x1,%xmm14
  pand   %xmm2,%xmm13
  por    %xmm5,%xmm14
  movq   -0x48(%rsp),%xmm5
  punpckldq %xmm3,%xmm7
  movq   -0x18(%rsp),%xmm3
  pslld  $0x1,%xmm14
  pshufd $0xe,%xmm7,%xmm7
  por    %xmm9,%xmm14
  punpckldq %xmm5,%xmm1
  punpckldq %xmm3,%xmm4
  movq   0x8(%rsp),%xmm5
  pslld  $0x1,%xmm14
  pshufd $0xe,%xmm1,%xmm1
  pshufd $0xe,%xmm4,%xmm4
  por    %xmm11,%xmm14
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm14
  movdqa %xmm14,%xmm0
  por    %xmm13,%xmm0
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  movdqa %xmm7,%xmm1
  movq   -0x8(%rsp),%xmm7
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  punpckldq %xmm5,%xmm7
  movdqa %xmm4,%xmm1
  movq   0x38(%rsp),%xmm5
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm0
  pshufd $0xe,%xmm7,%xmm7
  por    %xmm1,%xmm0
  movdqa %xmm7,%xmm1
  movq   %rcx,%xmm7
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  movq   0x18(%rsp),%xmm1
  movq   0x48(%rsp),%xmm12
  movq   0x58(%rsp),%xmm13
  pslld  $0x1,%xmm0
  movq   0x88(%rsp),%xmm6
  punpckldq %xmm15,%xmm1
  punpckldq %xmm12,%xmm5
  mov    -0x78(%rsp),%rbx
  mov    0x108(%rsp),%r10d
  pshufd $0xe,%xmm1,%xmm1
  pshufd $0xe,%xmm5,%xmm5
  punpckldq %xmm13,%xmm7
  pand   %xmm2,%xmm1
  pshufd $0xe,%xmm7,%xmm7
  por    %xmm1,%xmm0
  movdqa %xmm5,%xmm1
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  movdqa %xmm7,%xmm1
  pand   %xmm2,%xmm1
  pslld  $0x1,%xmm0
  por    %xmm1,%xmm0
  movq   0x68(%rsp),%xmm1
  pslld  $0x1,%xmm0
  punpckldq %xmm6,%xmm1
  pshufd $0xe,%xmm1,%xmm1
  pand   %xmm2,%xmm1
  por    %xmm1,%xmm0
  movq   %xmm0,(%rdi,%r8,4)
  mov    %r10d,%r8d
  and    $0xfffffffe,%r8d
  mov    %r8d,%ecx
  shl    $0x5,%ecx
  sub    %ecx,0x98(%rsp)
  mov    %r8d,%ecx
  lea    (%rbx,%rcx,4),%rbx
  shl    $0x7,%rcx
  mov    %rbx,-0x78(%rsp)
  add    %rcx,%r9
  cmp    %r8d,%r10d
  je     L408
L622:
  mov    (%r9),%ebx
  mov    0x4(%r9),%r8d
  lea    (%rbx,%rbx,1),%ecx
  and    $0x1,%r8d
  and    $0x2,%ecx
  or     %r8d,%ecx
  mov    0x8(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %r8d,%ecx
  mov    0xc(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x10(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x14(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x18(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x1c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x20(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x24(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x28(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x2c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x30(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x34(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x38(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x3c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x40(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x44(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x48(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x4c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x50(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x54(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x58(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x5c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x60(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x64(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x68(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x6c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x70(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x74(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x78(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x7c(%r9),%r8d
  mov    -0x78(%rsp),%r10
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %r8d,%ecx
  cmpl   $0x3f,0x98(%rsp)
  mov    %ecx,(%r10)
  jle    L408
  mov    0x80(%r9),%ebx
  mov    0x84(%r9),%r8d
  lea    (%rbx,%rbx,1),%ecx
  and    $0x1,%r8d
  and    $0x2,%ecx
  or     %r8d,%ecx
  mov    0x88(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %r8d,%ecx
  mov    0x8c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x90(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x94(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0x98(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0x9c(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xa0(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xa4(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xa8(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xac(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xb0(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xb4(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xb8(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xbc(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xc0(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xc4(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xc8(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xcc(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xd0(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xd4(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xd8(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xdc(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xe0(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xe4(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xe8(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xec(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xf0(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xf4(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %ecx,%r8d
  mov    0xf8(%r9),%ecx
  add    %r8d,%r8d
  and    $0x1,%ecx
  or     %r8d,%ecx
  mov    0xfc(%r9),%r8d
  add    %ecx,%ecx
  and    $0x1,%r8d
  or     %r8d,%ecx
  mov    %ecx,0x4(%r10)
L408:
  mov    %r12d,%ecx
  mov    %r13d,%r10d
  xor    %r9d,%r9d
  shl    $0x5,%ecx
  lea    (%rdi,%r10,4),%rdi
  shl    $0x7,%r10
  sub    %ecx,%r14d
  add    %r15,%r10
  mov    %r14d,%r8d
  jmp    L76
L130:
  mov    %r13d,%ecx
  mov    %rdi,%r9
  lea    (%rdi,%rcx,4),%r10
  mov    %r15,%rcx
  nopl   0x0(%rax,%rax,1)
L242:
  mov    (%rcx),%ebx
  mov    0x4(%rcx),%r11d
  lea    (%rbx,%rbx,1),%r8d
  and    $0x1,%r11d
  and    $0x2,%r8d
  or     %r11d,%r8d
  mov    0x8(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r11d,%r8d
  mov    0xc(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x10(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x14(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x18(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x1c(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x20(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x24(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x28(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x2c(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x30(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x34(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x38(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x3c(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x40(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x44(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x48(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x4c(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x50(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    0x54(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    0x58(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  sub    $0xffffffffffffff80,%rcx
  add    $0x4,%r9
  or     %r11d,%r8d
  mov    -0x24(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    -0x20(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    -0x1c(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    -0x18(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    -0x14(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    -0x10(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    -0xc(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r8d,%r11d
  mov    -0x8(%rcx),%r8d
  add    %r11d,%r11d
  and    $0x1,%r8d
  or     %r11d,%r8d
  mov    -0x4(%rcx),%r11d
  add    %r8d,%r8d
  and    $0x1,%r11d
  or     %r11d,%r8d
  mov    %r8d,-0x4(%r9)
  cmp    %r10,%r9
  jne    L242
  jmp    L408
L84:
  mov    %rdi,-0x78(%rsp)
  mov    %r15,%r9
  xor    %ecx,%ecx
  mov    %r8d,0x98(%rsp)
  jmp    L587
L290:
  mov    %r10,%rcx
  mov    %rdi,%r12
L158:
  mov    (%rcx),%r9d
  mov    0x4(%rcx),%r13d
  add    $0x20,%rcx
  add    $0x8,%r12
  and    %eax,%r9d
  and    %eax,%r13d
  shl    $0x10,%r13d
  shl    $0x18,%r9d
  or     %r13d,%r9d
  mov    -0x14(%rcx),%r13d
  and    %eax,%r13d
  or     %r13d,%r9d
  mov    -0x18(%rcx),%r13d
  and    %eax,%r13d
  shl    $0x8,%r13d
  or     %r13d,%r9d
  mov    %r9d,-0x8(%r12)
  mov    -0x10(%rcx),%r9d
  mov    -0xc(%rcx),%r14d
  mov    -0x8(%rcx),%r13d
  and    %eax,%r9d
  and    %eax,%r14d
  and    %eax,%r13d
  shl    $0x18,%r9d
  shl    $0x10,%r14d
  shl    $0x8,%r13d
  or     %r14d,%r9d
  or     %r13d,%r9d
  mov    -0x4(%rcx),%r13d
  and    %eax,%r13d
  or     %r13d,%r9d
  mov    %r9d,-0x4(%r12)
  cmp    %r12,%r11
  jne    L158
  jmp    L238
L503:
  xor    %ecx,%ecx
  jmp    L445
```

tool_calls: name: retrieve_data
arguments: data_tag: D9
type: byte[16]
name: retrieve_data
arguments: data_tag: D37
type: byte[16]

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

tool: {"D37": [0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00]}

assistant: ```c
void IntegerPacker_32(void *stream, void *src, int nbits, int nbitt, int n, int offset) {
  unsigned int *packed = (unsigned int *)stream;
  unsigned int *unpacked = (unsigned int *)src;
  unsigned long long temp;
  unsigned int maskk, token, token1, token2, token3, token4, token5, token6, token7, token8;
  int bleft, i;
  if (nbits > 32 || nbitt > nbits)
    return;
  packed += offset / 32;
  bleft = 32 - (offset % 32);
  maskk = 0xFFFFFFFF;
  if (nbitt < 32)
    maskk = ~(0xFFFFFFFF << nbitt);
  if (bleft == 32) {
    const unsigned int mask = maskk;
    if (nbits == 32) {
      packed = (unsigned int *)memcpy(stream, src, n * sizeof(unsigned int));
      return;
    }
    temp = 0;
    if (nbits == 24) {
      while (n > 3) {
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        *packed++ = (token1 << 8) | (token2 >> 16);
        *packed++ = (token2 << 16) | (token3 >> 8);
        *packed++ = (token3 << 24) | token4;
        n -= 4;
      }
    }
    if (nbits == 16) {
      while (n > 3) {
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        *packed++ = (token1 << 16) | token2;
        *packed++ = (token3 << 16) | token4;
        n -= 4;
      }
    }
    if (nbits == 12) {
      while (n > 7) {
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        *packed++ = (token1 << 20) | (token2 << 8) | (token3 >> 4);
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        *packed++ = (token3 << 28) | (token4 << 16) | (token1 << 4) | (token2 >> 8);
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        *packed++ = (token2 << 24) | (token3 << 12) | token4;
        n -= 8;
      }
    }
    if (nbits == 8) {
      while (n > 7) {
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        *packed++ = (token1 << 24) | (token2 << 16) | (token3 << 8) | token4;
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        *packed++ = (token1 << 24) | (token2 << 16) | (token3 << 8) | token4;
        n -= 8;
      }
    }
    if (nbits == 6) {
      while (n > 15) {
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        token4 = (*unpacked++) & mask;
        token5 = (*unpacked++) & mask;
        token6 = (*unpacked++) & mask;
        token7 = (*unpacked++) & mask;
        token8 = (*unpacked++) & mask;
        *packed++ = (token1 << 26) | (token2 << 20) | (token3 << 14) | (token4 << 8) | (token5 << 2) | (token6 >> 4);
        token1 = (*unpacked++) & mask;
        token2 = (*unpacked++) & mask;
        token3 = (*unpacked++) & mask;
        *packed++ = (token6 << 28) | (token7 << 22) | (token8 << 16) | (token1 << 10) | (token2 << 4) | (token3 >> 2);
        token4 = (*unpacked++) & mask;
        token5 = (*unpacked++) & mask;
        token6 = (*unpacked++) & mask;
        token7 = (*unpacked++) & mask;
        token8 = (*unpacked++) & mask;
        *packed++ = (token3 << 30) | (token4 << 24) | (token5 << 18) | (token6 << 12) | (token7 << 6) | token8;
        n -= 16;
      }
    }
    if (nbits == 4) {
      while (n > 7) {
        token = (*unpacked++) & mask;
        token = (token << 4) | ((*unpacked++) & mask);
        token = (token << 4) | ((*unpacked++) & mask);
        token = (token << 4) | ((*unpacked++) & mask);
        token = (token << 4) | ((*unpacked++) & mask);
        token = (token << 4) | ((*unpacked++) & mask);
        token = (token << 4) | ((*unpacked++) & mask);
        *packed++ = (token << 4) | ((*unpacked++) & mask);
        n -= 8;
      }
    }
    if (nbits == 2) {
      while (n > 15) {
        token = (*unpacked++) & mask;
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        token = (token << 2) | ((*unpacked++) & mask);
        *packed++ = (token << 2) | ((*unpacked++) & mask);
        n -= 16;
      }
    }
    if (nbits == 1) {
      while (n > 31) {
        token = 0;
        i = 8;
        while (i-- != 0) {
          token = (token << 1) | ((*unpacked++) & 1);
          token = (token << 1) | ((*unpacked++) & 1);
          token = (token << 1) | ((*unpacked++) & 1);
          token = (token << 1) | ((*unpacked++) & 1);
        }
        *packed++ = token;
        n -= 32;
      }
    }
  }
  if (bleft < 32)
    temp = *packed >> bleft;
  {
    const unsigned int mask = maskk;
    while (n > 1) {
      token = (*unpacked++) & mask;
      bleft -= nbits;
      temp = (temp << nbits) | token;
      if (bleft <= 0) {
        if (bleft < 0)
          temp >>= (-bleft);
        *packed++ = temp;
        bleft += 32;
        temp = token;
      }
      token = (*unpacked++) & mask;
      bleft -= nbits;
      temp = (temp << nbits) | token;
      if (bleft <= 0) {
        if (bleft < 0)
          temp >>= (-bleft);
        *packed++ = temp;
        bleft += 32;
        temp = token;
      }
      n -= 2;
    }
    while (n-- > 0) {
      token = (*unpacked++) & mask;
      bleft -= nbits;
      temp = (temp << nbits) | token;
      if (bleft <= 0) {
        if (bleft < 0)
          temp >>= (-bleft);
        *packed++ = temp;
        bleft += 32;
        temp = token;
      }
    }
  }
  if (bleft < 32)
    *packed = (temp << bleft);
}
```