// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_merge
static void gt_diagbandseed_merge(GtSeedpairlist *seedpairlist,
                                  GtUword *histogram,
                                  bool knowthesize,
                                  GtDiagbandseedKmerIterator *aiter,
                                  GtDiagbandseedKmerIterator *biter,
                                  GtUword maxfreq,
                                  GtUword maxgram,
                                  const GtRange *seedpairdistance,
                                  bool selfcomp)
{
  const GtKmerPosList *alist, *blist;
  const bool count_cartesian = (histogram != NULL && !selfcomp) ? true : false;

  gt_assert(aiter != NULL && biter != NULL &&
            ((histogram == NULL && seedpairlist != NULL) ||
            (histogram != NULL && seedpairlist == NULL)));
  alist = gt_diagbandseed_kmer_iter_next(aiter);
  blist = gt_diagbandseed_kmer_iter_next(biter);
  while (alist != NULL && blist != NULL)
  {
    const GtDiagbandseedKmerPos *asegment = alist->spaceGtDiagbandseedKmerPos,
                                *bsegment = blist->spaceGtDiagbandseedKmerPos;
    GtUword alen = alist->nextfree,
            blen = blist->nextfree;
    if (asegment->code < bsegment->code)
    {
      alist = gt_diagbandseed_kmer_iter_next(aiter);
    } else
    {
      if (asegment->code > bsegment->code)
      {
        blist = gt_diagbandseed_kmer_iter_next(biter);
      } else
      {
        GtUword frequency = GT_MAX(alen, blen);

        if (frequency <= maxfreq)
        {
          /* add all equal k-mers */
          frequency = GT_MIN(maxgram, frequency);
          gt_assert(frequency > 0);
          if (count_cartesian)
          {
            histogram[frequency - 1] += alen * blen;
          } else
          {
            const GtDiagbandseedKmerPos *aptr, *bptr;
            for (aptr = asegment; aptr < asegment + alen; aptr++)
            {
              for (bptr = bsegment; bptr < bsegment + blen; bptr++)
              {
                if (!selfcomp || aptr->seqnum < bptr->seqnum ||
                    (aptr->seqnum == bptr->seqnum &&
                     aptr->endpos + seedpairdistance->start <= bptr->endpos &&
                     aptr->endpos + seedpairdistance->end >= bptr->endpos))
                {
                  /* no duplicates from the same dataset */
                  if (histogram == NULL)
                  {
                    /* save SeedPair in seedpairlist */
                    gt_seedpairlist_add(seedpairlist,
                                        knowthesize,
                                        aptr->seqnum,
                                        bptr->seqnum,
                                        bptr->endpos,
                                        aptr->endpos);
                  } else
                  {
                    /* count seed frequency in histogram */
                    histogram[frequency - 1]++;
                  }
                }
              }
            }
          }
        } /* else: ignore all equal elements */
        alist = gt_diagbandseed_kmer_iter_next(aiter);
        blist = gt_diagbandseed_kmer_iter_next(biter);
      }
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %r9, 0x48(%rsp)
movl %edx, 0x4(%rsp)
testq %rsi, %rsi
sete 0x3(%rsp)
movq %rcx, 0x20(%rsp)
testq %rcx, %rcx
je 0x19fb99
movq %r8, %rbx
testq %r8, %r8
je 0x19fb99
movq %rdi, %r13
testq %rsi, %rsi
sete %al
testq %rdi, %rdi
sete %cl
xorb %al, %cl
je 0x19fb99
movq %rsi, 0x10(%rsp)
movq 0x20(%rsp), %rdi
callq 0x19fba3
movq %rax, %r14
movq %rbx, %rdi
callq 0x19fba3
movq %rax, %r15
testq %r14, %r14
sete %al
testq %r15, %r15
sete %cl
orb %al, %cl
jne 0x19fb53
movb 0xa0(%rsp), %r11b
orb %r11b, 0x3(%rsp)
movdqa 0x1c28f7(%rip), %xmm15  # 0x361a80
movq %rbx, 0x40(%rsp)
movq (%r14), %r12
movq (%r15), %rax
movq %rax, 0x30(%rsp)
movq (%rax), %rax
cmpq %rax, (%r12)
jae 0x19f1b4
movq 0x20(%rsp), %rdi
callq 0x19fba3
movq %rax, %r14
jmp 0x19fb34
ja 0x19fb29
movq 0x18(%r14), %rdx
movq 0x18(%r15), %rax
cmpq %rax, %rdx
movq %rax, 0x28(%rsp)
cmovaq %rdx, %rax
cmpq 0x48(%rsp), %rax
movl 0x4(%rsp), %r9d
movq 0x10(%rsp), %r10
ja 0x19fb17
movq %rdx, %rcx
movq %rax, %rdx
movq 0x90(%rsp), %rax
cmpq %rax, %rdx
cmovaeq %rax, %rdx
movq %rdx, 0x38(%rsp)
testq %rdx, %rdx
je 0x19fb9e
cmpb $0x0, 0x3(%rsp)
je 0x19fb04
testq %rcx, %rcx
jle 0x19fb17
shlq $0x4, %rcx
addq %r12, %rcx
movq %rcx, 0x50(%rsp)
movq 0x28(%rsp), %r14
shlq $0x4, %r14
addq 0x30(%rsp), %r14
movq %r14, 0x18(%rsp)
cmpq $0x0, 0x28(%rsp)
jle 0x19faf3
movq 0x30(%rsp), %rbx
movq %r12, 0x8(%rsp)
testb %r11b, %r11b
je 0x19f262
movl 0x8(%rbx), %eax
cmpl %eax, 0x8(%r12)
jae 0x19f32d
testq %r10, %r10
je 0x19f276
movq 0x38(%rsp), %rax
incq -0x8(%r10,%rax,8)
jmp 0x19fae6
testq %r13, %r13
je 0x19fb67
movl 0x8(%r12), %r14d
movq %r14, %rdx
subq 0x48(%r13), %rdx
jb 0x19fb62
cmpq %r14, 0x58(%r13)
jb 0x19fb62
movl 0x8(%rbx), %r12d
movq %r12, %rsi
subq 0x50(%r13), %rsi
jb 0x19fb62
cmpq %r12, 0x60(%r13)
jb 0x19fb62
movq 0x8(%rsp), %rax
movl 0xc(%rax), %r15d
cmpq %r15, 0x68(%r13)
jbe 0x19fb62
movl 0xc(%rbx), %ebp
cmpq %rbp, 0x70(%r13)
jbe 0x19fb62
cmpb $0x1, 0xb0(%r13)
jne 0x19f2ea
subl %r15d, %ebp
addl 0xb8(%r13), %ebp
movl 0x18(%r13), %eax
cmpl $0x1, %eax
je 0x19f36c
testl %eax, %eax
jne 0x19f3da
movq (%r13), %rax
movq 0x8(%rax), %rdx
movq 0x10(%rax), %rcx
testb %r9b, %r9b
je 0x19f401
cmpq %rdx, %rcx
jae 0x19fb8a
leaq 0x1(%rcx), %rdx
movq %rdx, 0x10(%rax)
shlq $0x4, %rcx
addq (%rax), %rcx
jmp 0x19f4be
jne 0x19fae6
movl 0xc(%r12), %eax
movq 0x98(%rsp), %rcx
movq (%rcx), %rdx
addq %rax, %rdx
movl 0xc(%rbx), %ecx
cmpq %rcx, %rdx
ja 0x19fae6
movq 0x98(%rsp), %rdx
addq 0x8(%rdx), %rax
cmpq %rcx, %rax
jae 0x19f262
jmp 0x19fae6
movb 0x98(%r13), %cl
movb 0x9c(%r13), %al
shlq %cl, %rdx
movl %eax, %ecx
shlq %cl, %rsi
movl %ebp, %eax
movb 0xa0(%r13), %cl
shlq %cl, %rax
movb 0xa4(%r13), %cl
shlq %cl, %r15
orq %rdx, %rsi
orq %rax, %r15
orq %rsi, %r15
testb %r9b, %r9b
je 0x19f4db
movq 0x8(%r13), %rax
movq 0x10(%rax), %rcx
cmpq 0x8(%rax), %rcx
movq 0x8(%rsp), %r12
movq 0x18(%rsp), %r14
jae 0x19fb80
movq (%rax), %rdx
leaq 0x1(%rcx), %rsi
movq %rsi, 0x10(%rax)
movq %r15, (%rdx,%rcx,8)
jmp 0x19fae6
testb %r9b, %r9b
je 0x19f5ad
movq 0x10(%r13), %rax
movq 0x90(%r13), %rcx
addq 0x10(%rax), %rcx
cmpq 0x8(%rax), %rcx
jbe 0x19f670
jmp 0x19fb7b
cmpq %rdx, %rcx
jb 0x19f49b
movq %rdx, %xmm0
punpckldq 0x1b14c9(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x1b14d1(%rip), %xmm0   # 0x3508f0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
mulsd 0x209bd5(%rip), %xmm1   # 0x3a9008
addsd 0x209bbd(%rip), %xmm1   # 0x3a8ff8
cvttsd2si %xmm1, %rcx
movq %rcx, %rdi
sarq $0x3f, %rdi
subsd 0x1b18d1(%rip), %xmm1   # 0x350d20
cvttsd2si %xmm1, %rsi
andq %rdi, %rsi
orq %rcx, %rsi
addq %rdx, %rsi
movq %rsi, 0x8(%rax)
movq (%rax), %rdi
shlq $0x4, %rsi
leaq 0x209c5d(%rip), %rdx    # 0x3a90cc
movl $0x694, %ecx            # imm = 0x694
callq 0x1094e6
movdqa 0x1c25fe(%rip), %xmm15  # 0x361a80
movb 0xa0(%rsp), %r11b
movq 0x10(%rsp), %r10
movl 0x4(%rsp), %r9d
movq (%r13), %rcx
movq %rax, (%rcx)
movq (%r13), %rax
movq (%rax), %rcx
testq %rcx, %rcx
je 0x19fb76
movq 0x10(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x10(%rax)
shlq $0x4, %rdx
addq %rdx, %rcx
movl %r14d, 0x4(%rcx)
movl %r12d, (%rcx)
movl %ebp, 0xc(%rcx)
movl %r15d, 0x8(%rcx)
movq 0x8(%rsp), %r12
movq 0x18(%rsp), %r14
jmp 0x19fae6
movq 0x8(%r13), %rax
movq 0x8(%rax), %rcx
cmpq %rcx, 0x10(%rax)
movq 0x8(%rsp), %r12
movq 0x18(%rsp), %r14
jb 0x19f588
movq %rcx, %xmm0
punpckldq 0x1b13dc(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x1b13e4(%rip), %xmm0   # 0x3508f0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
mulsd 0x209ae8(%rip), %xmm1   # 0x3a9008
addsd 0x209ad0(%rip), %xmm1   # 0x3a8ff8
cvttsd2si %xmm1, %rdx
movq %rdx, %rdi
sarq $0x3f, %rdi
subsd 0x1b17e4(%rip), %xmm1   # 0x350d20
cvttsd2si %xmm1, %rsi
andq %rdi, %rsi
orq %rdx, %rsi
addq %rcx, %rsi
movq %rsi, 0x8(%rax)
movq (%rax), %rdi
shlq $0x3, %rsi
leaq 0x209b70(%rip), %rdx    # 0x3a90cc
movl $0x6ae, %ecx            # imm = 0x6AE
callq 0x1094e6
movdqa 0x1c2511(%rip), %xmm15  # 0x361a80
movb 0xa0(%rsp), %r11b
movq 0x10(%rsp), %r10
movl 0x4(%rsp), %r9d
movq 0x8(%r13), %rcx
movq %rax, (%rcx)
movq 0x8(%r13), %rax
movq (%rax), %rcx
testq %rcx, %rcx
je 0x19fb85
movq 0x10(%rax), %rdx
leaq 0x1(%rdx), %rsi
movq %rsi, 0x10(%rax)
movq %r15, (%rcx,%rdx,8)
jmp 0x19fae6
movq 0x10(%r13), %rax
movq 0x90(%r13), %rcx
movq 0x10(%rax), %rdx
addq %rcx, %rdx
movq 0x8(%rax), %rsi
cmpq %rsi, %rdx
jb 0x19f662
movq %rsi, %xmm0
punpckldq 0x1b1307(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x1b130f(%rip), %xmm0   # 0x3508f0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
mulsd 0x209a13(%rip), %xmm1   # 0x3a9008
addsd 0x2099fb(%rip), %xmm1   # 0x3a8ff8
cvttsd2si %xmm1, %rdi
movq %rdi, %r8
subsd 0x1b1713(%rip), %xmm1   # 0x350d20
cvttsd2si %xmm1, %rdx
sarq $0x3f, %r8
andq %r8, %rdx
orq %rdi, %rdx
cmpq %rdx, %rcx
ja 0x19fb94
addq %rdx, %rsi
movq %rsi, 0x8(%rax)
movq (%rax), %rdi
leaq 0x209a96(%rip), %rdx    # 0x3a90cc
movl $0x6c0, %ecx            # imm = 0x6C0
callq 0x1094e6
movq 0x10(%r13), %rcx
movq %rax, (%rcx)
movl 0x4(%rsp), %r9d
movq 0x10(%rsp), %r10
movb 0xa0(%rsp), %r11b
movdqa 0x1c241e(%rip), %xmm15  # 0x361a80
movq 0x10(%r13), %rax
cmpq $0x0, (%rax)
je 0x19fb8f
movq 0x10(%r13), %rax
movq (%rax), %rsi
movq 0x10(%rax), %rdi
movq 0x90(%r13), %rcx
addq %rdi, %rcx
movq %rcx, 0x10(%rax)
movq 0x48(%r13), %rax
cmpq %r14, %rax
ja 0x19fb71
movq 0x50(%r13), %rdx
cmpq %r12, %rdx
ja 0x19fb6c
movl %ebp, %r8d
movb 0x8a(%r13), %cl
shlq %cl, %r8
movb 0x8c(%r13), %cl
shlq %cl, %r15
orq %r8, %r15
subl %edx, %r12d
movb 0x88(%r13), %cl
shlq %cl, %r12
subl %eax, %r14d
movb 0x82(%r13), %al
movb 0x86(%r13), %cl
shlq %cl, %r14
movq %r15, %rdx
movl %eax, %ecx
shrq %cl, %rdx
orq %r12, %r14
orq %r14, %rdx
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm0     # xmm0 = xmm1[0,1,0,1]
movdqa %xmm1, %xmm2
movdqa %xmm1, %xmm3
movdqa %xmm1, %xmm4
psrlq $0x8, %xmm4
punpcklqdq %xmm1, %xmm4    # xmm4 = xmm4[0],xmm1[0]
psrlq $0x38, %xmm1
movdqa %xmm0, %xmm5
psrlq $0x30, %xmm5
movsd %xmm1, %xmm5            # xmm5 = xmm1[0],xmm5[1]
psrlq $0x28, %xmm2
movdqa %xmm0, %xmm1
psrlq $0x20, %xmm1
movsd %xmm2, %xmm1            # xmm1 = xmm2[0],xmm1[1]
psrlq $0x18, %xmm3
psrlq $0x10, %xmm0
movsd %xmm3, %xmm0            # xmm0 = xmm3[0],xmm0[1]
movdqa 0x2098db(%rip), %xmm2   # 0x3a9020
pand %xmm2, %xmm4
andpd %xmm2, %xmm0
packuswb %xmm4, %xmm0
andpd %xmm2, %xmm1
andpd %xmm2, %xmm5
packuswb %xmm1, %xmm5
packuswb %xmm0, %xmm5
packuswb %xmm5, %xmm5
movq %xmm5, (%rsi,%rdi)
movb 0x88(%r13), %cl
shlq %cl, %r15
movq 0x90(%r13), %rax
cmpq $0x8, %rax
movq 0x8(%rsp), %r12
movq 0x18(%rsp), %r14
je 0x19fae6
leaq 0x7(%rax), %rdx
andq $-0x10, %rdx
addq $-0x9, %rax
movq %rax, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
addq %rdi, %rsi
addq $0xf, %rsi
movl $0x20, %eax
xorl %edi, %edi
movdqa 0x1c22b5(%rip), %xmm1   # 0x361a70
movdqa 0x1c49bd(%rip), %xmm2   # 0x364180
movdqa 0x1c49a5(%rip), %xmm3   # 0x364170
movdqa 0x1c498d(%rip), %xmm4   # 0x364160
movdqa 0x208715(%rip), %xmm5   # 0x3a7ef0
movdqa 0x2086fd(%rip), %xmm6   # 0x3a7ee0
movdqa 0x2086e5(%rip), %xmm7   # 0x3a7ed0
movdqa 0x2086cc(%rip), %xmm8   # 0x3a7ec0
movdqa %xmm0, %xmm9
pxor %xmm15, %xmm9
movdqa %xmm1, %xmm10
pxor %xmm15, %xmm10
movdqa %xmm10, %xmm12
pcmpgtd %xmm9, %xmm12
pshufd $0xa0, %xmm12, %xmm11   # xmm11 = xmm12[0,0,2,2]
pshuflw $0xe8, %xmm11, %xmm13   # xmm13 = xmm11[0,2,2,3,4,5,6,7]
pcmpeqd %xmm9, %xmm10
pshufd $0xf5, %xmm10, %xmm10   # xmm10 = xmm10[1,1,3,3]
pshuflw $0xe8, %xmm10, %xmm14   # xmm14 = xmm10[0,2,2,3,4,5,6,7]
pand %xmm13, %xmm14
pshufd $0xf5, %xmm12, %xmm12   # xmm12 = xmm12[1,1,3,3]
pshuflw $0xe8, %xmm12, %xmm13   # xmm13 = xmm12[0,2,2,3,4,5,6,7]
por %xmm14, %xmm13
pcmpeqd %xmm14, %xmm14
pxor %xmm14, %xmm13
packssdw %xmm13, %xmm13
movd %xmm13, %ecx
testb $0x1, %cl
je 0x19f86c
leal 0x18(%rax), %ecx
movq %r15, %r8
shrq %cl, %r8
movb %r8b, -0x7(%rsi,%rdi)
pand %xmm11, %xmm10
por %xmm12, %xmm10
packssdw %xmm10, %xmm10
pxor %xmm14, %xmm10
packssdw %xmm10, %xmm10
packsswb %xmm10, %xmm10
movd %xmm10, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x19f8a5
leal 0x10(%rax), %ecx
movq %r15, %r8
shrq %cl, %r8
movb %r8b, -0x6(%rsi,%rdi)
movdqa %xmm2, %xmm11
pxor %xmm15, %xmm11
movdqa %xmm11, %xmm12
pcmpgtd %xmm9, %xmm12
pshufd $0xa0, %xmm12, %xmm10   # xmm10 = xmm12[0,0,2,2]
pcmpeqd %xmm9, %xmm11
pshufd $0xf5, %xmm11, %xmm11   # xmm11 = xmm11[1,1,3,3]
movdqa %xmm11, %xmm13
pand %xmm10, %xmm13
pshufd $0xf5, %xmm12, %xmm12   # xmm12 = xmm12[1,1,3,3]
por %xmm12, %xmm13
packssdw %xmm13, %xmm13
pxor %xmm14, %xmm13
packssdw %xmm13, %xmm13
packsswb %xmm13, %xmm13
movd %xmm13, %ecx
shrl $0x10, %ecx
testb $0x1, %cl
je 0x19f90e
leal 0x8(%rax), %ecx
movq %r15, %r8
shrq %cl, %r8
movb %r8b, -0x5(%rsi,%rdi)
pshufhw $0x84, %xmm10, %xmm10   # xmm10 = xmm10[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm11, %xmm11   # xmm11 = xmm11[0,1,2,3,4,5,4,6]
pand %xmm10, %xmm11
pshufhw $0x84, %xmm12, %xmm10   # xmm10 = xmm12[0,1,2,3,4,5,4,6]
por %xmm11, %xmm10
pxor %xmm14, %xmm10
packssdw %xmm10, %xmm10
packsswb %xmm10, %xmm10
movd %xmm10, %ecx
shrl $0x18, %ecx
testb $0x1, %cl
je 0x19f953
movq %r15, %r8
movl %eax, %ecx
shrq %cl, %r8
movb %r8b, -0x4(%rsi,%rdi)
movdqa %xmm3, %xmm10
pxor %xmm15, %xmm10
movdqa %xmm10, %xmm12
pcmpgtd %xmm9, %xmm12
pshufd $0xa0, %xmm12, %xmm11   # xmm11 = xmm12[0,0,2,2]
pshuflw $0xe8, %xmm11, %xmm13   # xmm13 = xmm11[0,2,2,3,4,5,6,7]
pcmpeqd %xmm9, %xmm10
pshufd $0xf5, %xmm10, %xmm10   # xmm10 = xmm10[1,1,3,3]
pshuflw $0xe8, %xmm10, %xmm14   # xmm14 = xmm10[0,2,2,3,4,5,6,7]
pand %xmm13, %xmm14
pshufd $0xf5, %xmm12, %xmm12   # xmm12 = xmm12[1,1,3,3]
pshuflw $0xe8, %xmm12, %xmm13   # xmm13 = xmm12[0,2,2,3,4,5,6,7]
por %xmm14, %xmm13
pcmpeqd %xmm14, %xmm14
pxor %xmm14, %xmm13
packssdw %xmm13, %xmm13
packsswb %xmm13, %xmm13
pextrw $0x2, %xmm13, %ecx
testb $0x1, %cl
je 0x19f9c7
leal -0x8(%rax), %ecx
movq %r15, %r8
shrq %cl, %r8
movb %r8b, -0x3(%rsi,%rdi)
pand %xmm11, %xmm10
por %xmm12, %xmm10
packssdw %xmm10, %xmm10
pxor %xmm14, %xmm10
packssdw %xmm10, %xmm10
packsswb %xmm10, %xmm10
pextrw $0x2, %xmm10, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x19fa01
leal -0x10(%rax), %ecx
movq %r15, %r8
shrq %cl, %r8
movb %r8b, -0x2(%rsi,%rdi)
movdqa %xmm4, %xmm11
pxor %xmm15, %xmm11
movdqa %xmm11, %xmm12
pcmpgtd %xmm9, %xmm12
pshufd $0xa0, %xmm12, %xmm10   # xmm10 = xmm12[0,0,2,2]
pcmpeqd %xmm9, %xmm11
pshufd $0xf5, %xmm11, %xmm9    # xmm9 = xmm11[1,1,3,3]
movdqa %xmm9, %xmm13
pand %xmm10, %xmm13
pshufd $0xf5, %xmm12, %xmm11   # xmm11 = xmm12[1,1,3,3]
por %xmm11, %xmm13
packssdw %xmm13, %xmm12
pxor %xmm14, %xmm12
packssdw %xmm12, %xmm12
packsswb %xmm12, %xmm12
pextrw $0x3, %xmm12, %ecx
testb $0x1, %cl
je 0x19fa68
leal -0x18(%rax), %ecx
movq %r15, %r8
shrq %cl, %r8
movb %r8b, -0x1(%rsi,%rdi)
pshufhw $0x84, %xmm10, %xmm10   # xmm10 = xmm10[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm9, %xmm9     # xmm9 = xmm9[0,1,2,3,4,5,4,6]
pand %xmm10, %xmm9
pshufhw $0x84, %xmm11, %xmm10   # xmm10 = xmm11[0,1,2,3,4,5,4,6]
por %xmm9, %xmm10
pxor %xmm14, %xmm10
packssdw %xmm10, %xmm9
packsswb %xmm9, %xmm9
pextrw $0x3, %xmm9, %ecx
shrl $0x8, %ecx
testb $0x1, %cl
je 0x19faa5
movb %r15b, (%rsi,%rdi)
addq $0x10, %rdi
movdqa 0x20957e(%rip), %xmm9   # 0x3a9030
paddq %xmm9, %xmm1
paddq %xmm9, %xmm2
paddq %xmm9, %xmm3
paddq %xmm9, %xmm4
paddq %xmm9, %xmm5
paddq %xmm9, %xmm6
paddq %xmm9, %xmm7
paddq %xmm9, %xmm8
addl $-0x80, %eax
cmpq %rdi, %rdx
jne 0x19f7f4
addq $0x10, %rbx
cmpq %r14, %rbx
jb 0x19f24f
addq $0x10, %r12
cmpq 0x50(%rsp), %r12
jb 0x19f239
jmp 0x19fb17
movq 0x28(%rsp), %rax
imulq %rcx, %rax
movq 0x38(%rsp), %rcx
addq %rax, -0x8(%r10,%rcx,8)
movq 0x20(%rsp), %rdi
callq 0x19fba3
movq %rax, %r14
movq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x19fba3
movq %rax, %r15
testq %r14, %r14
movb 0xa0(%rsp), %r11b
movdqa 0x1c1f38(%rip), %xmm15  # 0x361a80
je 0x19fb53
testq %r15, %r15
jne 0x19f18e
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x5f0c1
callq 0x5f0fa
callq 0x5f016
callq 0x5f04f
callq 0x5ef32
callq 0x5f088
callq 0x5eef9
callq 0x5eec0
callq 0x5ef6b
callq 0x5efdd
callq 0x5efa4
callq 0x5ee87
callq 0x5f133