// File: /workspace/github_cpp_makefile_star2_O3/chhylp123[P]hifiasm/ecovlp.cpp
// Function: worker_sl_ec(void*, long, int)
static void worker_sl_ec(void *data, long i, int tid)
{
    // if(i != 0) return;

	sl_v *p = &(((sl_v*)data)[tid]); uint8_t *oa = NULL; char *na = NULL; uint64_t tqual, wqual;
    uint32_t ci = 0, len, xk, yk, wx[2], wy[2], k, Nn, yn = 0, tot_e; uint16_t c, bq, bt; 


    ci = 0; xk = yk = 0; tot_e = 0;
    while (ci < scc.a[i].n) {
        // ci = pop_trace_bp(&scc.a[i], ci, &c, &b, &len);
        ci = pop_trace_bp_f(&scc.a[i], ci, &c, &bq, &bt, &len);
        if(c != 3) yk += len;
        if(c != 0) tot_e += len;
        // fprintf(stderr, "|%u%c(%c)", len, cm[c], ((c==1)||(c==2))?(cc[b]):('*')); // s_H
    }
    if(tot_e == 0) return;///no change

    yn = yk; yk++; kv_resize(char, (*p), yk); p->a[yn] = '\0';
    recover_UC_Read(&p->z, &R_INF, i); ///b->z.length


    // char cm[4], cc[4]; 
    // cm[0] = 'M'; cm[1] = 'S'; cm[2] = 'I'; cm[3] = 'D';
    // cc[0] = 'A'; cc[1] = 'C'; cc[2] = 'G'; cc[3] = 'T';

    ci = 0; xk = yk = 0; Nn = 0;
    while (ci < scc.a[i].n) {
        wx[0] = xk; wy[0] = yk;
        // ci = pop_trace_bp(&scc.a[i], ci, &c, &b, &len);
        ci = pop_trace_bp_f(&scc.a[i], ci, &c, &bq, &bt, &len);
        if(c != 2) xk += len;
        if(c != 3) yk += len;
        wx[1] = xk; wy[1] = yk;
        // if(xk > (uint32_t)p->z.length) fprintf(stderr, "[M::%s] xk::%u, len::%u, c::%u, rid::%ld\n", __func__, xk, (uint32_t)p->z.length, c, i);
        if(c == 0) {
            // memcpy(p->a + wy[0], p->z.seq + wx[0], (wx[1]-wx[0])*sizeof((*(p->a))));
            for (; wx[0] < wx[1]; wx[0]++, wy[0]++) {
                p->a[wy[0]] = p->z.seq[wx[0]];
                if(p->a[wy[0]] == 'N') Nn++;
            }
        } else if(c == 1 || c == 2) {
            for (k = wy[0]; k < wy[1]; k++) {
                p->a[k] = s_H[bt]; 
                if(p->a[k] == 'N') Nn++;
            }
        }

        // if(i == 700) fprintf(stderr, "|%u%c(%c)(x::%u)(y::%u)", len, cm[c], ((c==1)||(c==2))?(cc[b]):('*'), wx[1], wy[1]); // s_H
    }

    // if(i == 700) fprintf(stderr, "|\n");
    if(asm_opt.is_sc) retrive_bqual(&(p->q), NULL, i, -1, -1, 0, sc_bn);


    if (R_INF.read_size[i] < yn) {
		R_INF.read_size[i] = yn;
		REALLOC(R_INF.read_sperate[i], R_INF.read_size[i]/4+1);
        if(asm_opt.is_sc) REALLOC(R_INF.rsc[i], ((R_INF.read_size[i]/sc_bn) + ((R_INF.read_size[i]%sc_bn)?1:0)));
	}
	R_INF.read_length[i] = yn;
    // if(Nn > 0) fprintf(stderr, "[M::%s] Nn->%u\n", __func__, Nn);

    // for (k = 0; k < yn; k++) {
    //     c = seq_nt6_table[(uint8_t)p->a[k]]; 
    //     if (c >= 4) { 
    //         fprintf(stderr, "[M::%s] Nn->%u, yn::%u, xn::%lld, k::%u, str::%c, c::%u, rid::%ld\n", __func__, Nn, yn, p->z.length, k, p->a[k], c, i);
    //     }
    // }


    ///debug
    // resize_UC_Read(&p->z, p->z.length * 2); 
    // dbg_rsc(p->z.seq + p->z.length, p->z.length, p->a, yn, &(scc.a[i]), p->z.seq, i);


	ha_compress_base(Get_READ(R_INF, i), p->a, yn, &R_INF.N_site[i], Nn);
    if(asm_opt.is_sc) {
        oa = p->q.a; na = p->a; 
        ci = 0; xk = yk = 0; Nn = 0;
        while (ci < scc.a[i].n) {
            wx[0] = xk; wy[0] = yk;
            ci = pop_trace_bp_f(&scc.a[i], ci, &c, &bq, &bt, &len);
            if(c != 2) xk += len;
            if(c != 3) yk += len;
            wx[1] = xk; wy[1] = yk;
            if(c == 0 || c == 1) {
                memcpy(na + wy[0], oa + wx[0], (wx[1]-wx[0])*sizeof((*oa)));
            } else if(c == 2) {
                get_wqual(i, wx[0], 0, NULL, oa, sc_wn, &tqual, &wqual);
                for (k = wy[0]; k < wy[1]; k++) na[k] = wqual;
            }
        }
        assert(yk == yn);
        ha_compress_qual_bit(Get_QUAL(R_INF, i), na, yn, sc_bn);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq 0x101c91(%rip), %rcx    # 0x296548
movq %rsi, 0x10(%rsp)
leaq (%rsi,%rsi,2), %rsi
movq (%rcx,%rsi,8), %rax
testq %rax, %rax
je 0x195538
movq %rdi, %r13
movslq %edx, %rdx
leaq (%rdx,%rdx,4), %rdx
shlq $0x4, %rdx
addq %rdx, %r13
movq %rsi, 0x18(%rsp)
leaq (%rcx,%rsi,8), %rcx
movq 0x10(%rcx), %rdx
xorl %r15d, %r15d
movw $0xffff, %di            # imm = 0xFFFF
xorl %ecx, %ecx
xorl %r10d, %r10d
movq $0x0, 0x28(%rsp)
xorl %r11d, %r11d
movzwl (%rdx,%rcx,2), %r9d
movl %r9d, %r14d
shrl $0xe, %r14d
movw %di, 0xc(%rsp)
movw %di, 0xe(%rsp)
leal -0x2(%r14), %ecx
movzwl %r9w, %ebx
cmpl $0x2, %ecx
jae 0x194936
movw $0xfff, %r8w            # imm = 0xFFF
movw $0xc, %cx
leaq 0xc(%rsp), %rsi
jmp 0x19495c
movw $0x3fff, %r8w           # imm = 0x3FFF
testl %r14d, %r14d
je 0x194966
movl %r9d, %ecx
shrl $0xc, %ecx
andl $0x3, %ecx
movw %cx, 0xc(%rsp)
movw $0x3ff, %r8w            # imm = 0x3FF
movw $0xa, %cx
leaq 0xe(%rsp), %rsi
movl %ebx, %ebp
shrl %cl, %ebp
andl $0x3, %ebp
movw %bp, (%rsi)
movzwl %r8w, %ecx
andl %r9d, %ecx
incl %r11d
cmpq %r11, %rax
jbe 0x1949f9
movzwl 0xe(%rsp), %r12d
movzwl 0xc(%rsp), %r9d
movzwl (%rdx,%r11,2), %ebp
movl %ebp, %esi
shrl $0xe, %esi
cmpl %r14d, %esi
jne 0x1949f9
movzwl %r14w, %esi
leal -0x2(%rsi), %r8d
cmpl $0x2, %r8d
jae 0x1949b5
movl %ebp, %r8d
shrl $0xc, %r8d
andl $0x3, %r8d
andl $0xfff, %ebp            # imm = 0xFFF
jmp 0x1949c4
testl %esi, %esi
jne 0x1949cb
andl $0x3fff, %ebp           # imm = 0x3FFF
movw $0xffff, %r8w           # imm = 0xFFFF
movl $0xffff, %esi           # imm = 0xFFFF
jmp 0x1949e4
movl %ebp, %r8d
shrl $0xc, %r8d
andl $0x3, %r8d
movl %ebp, %esi
shrl $0xa, %esi
andl $0x3, %esi
andl $0x3ff, %ebp            # imm = 0x3FF
cmpl %r12d, %esi
jne 0x1949f9
cmpw %r8w, %r9w
jne 0x1949f9
addl %ebp, %ecx
incl %r11d
cmpq %r11, %rax
ja 0x194985
movl %ecx, %esi
cmpw $0x3, %r14w
jne 0x194a15
movzwl 0xc(%rsp), %esi
movw %si, 0xe(%rsp)
movw $0xffff, 0xc(%rsp)      # imm = 0xFFFF
xorl %esi, %esi
movq 0x28(%rsp), %r8
addl %esi, %r8d
movq %r8, 0x28(%rsp)
cmpl $0x4000, %ebx           # imm = 0x4000
cmovbl %r15d, %ecx
addl %ecx, %r10d
movl %r11d, %ecx
cmpq %rcx, %rax
ja 0x194903
testl %r10d, %r10d
je 0x195538
movq 0x28(%rsp), %rax
incl %eax
cmpq %rax, 0x8(%r13)
jae 0x194a9b
decq %rax
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %rsi
shrq $0x10, %rsi
orq %rax, %rsi
incq %rsi
movq %rsi, 0x8(%r13)
movq 0x10(%r13), %rdi
callq 0x2370
movq %rax, 0x10(%r13)
jmp 0x194a9f
movq 0x10(%r13), %rax
movq 0x10(%rsp), %rdx
movl 0x28(%rsp), %ecx
movq %rcx, 0x20(%rsp)
movb $0x0, (%rax,%rcx)
leaq 0x18(%r13), %rdi
leaq 0x101774(%rip), %rsi    # 0x296230
callq 0x333e0
movq 0x101a80(%rip), %rcx    # 0x296548
movq 0x18(%rsp), %rdx
movq (%rcx,%rdx,8), %rbx
movq $0x0, 0x30(%rsp)
testq %rbx, %rbx
je 0x194cc8
xorl %eax, %eax
xorl %r8d, %r8d
xorl %r10d, %r10d
xorl %r11d, %r11d
xorl %r9d, %r9d
movq 0x10(%rcx,%rdx,8), %rdi
movzwl (%rdi,%rax,2), %edx
movl %edx, %esi
shrl $0xe, %esi
movw $0xffff, %ax            # imm = 0xFFFF
movw %ax, 0xc(%rsp)
movw %ax, 0xe(%rsp)
leal -0x2(%rsi), %eax
movzwl %dx, %r14d
cmpl $0x2, %eax
jae 0x194b28
movw $0xfff, %ax             # imm = 0xFFF
movw $0xc, %cx
leaq 0xc(%rsp), %r15
jmp 0x194b4a
movw $0x3fff, %ax            # imm = 0x3FFF
testl %esi, %esi
je 0x194b56
movl %edx, %eax
shrl $0xc, %eax
andl $0x3, %eax
movw %ax, 0xc(%rsp)
movw $0x3ff, %ax             # imm = 0x3FF
movw $0xa, %cx
leaq 0xe(%rsp), %r15
movl %r14d, %ebp
shrl %cl, %ebp
andl $0x3, %ebp
movw %bp, (%r15)
movzwl %ax, %ecx
andl %edx, %ecx
incl %r9d
cmpq %r9, %rbx
jbe 0x194bdd
movzwl 0xe(%rsp), %edx
movzwl 0xc(%rsp), %r12d
movzwl (%rdi,%r9,2), %ebp
movl %ebp, %eax
shrl $0xe, %eax
cmpl %esi, %eax
jne 0x194bdd
movzwl %si, %eax
leal -0x2(%rax), %r15d
cmpl $0x2, %r15d
jae 0x194b99
movl %ebp, %eax
shrl $0xc, %eax
andl $0x3, %eax
andl $0xfff, %ebp            # imm = 0xFFF
jmp 0x194ba7
testl %eax, %eax
jne 0x194baf
andl $0x3fff, %ebp           # imm = 0x3FFF
movw $0xffff, %ax            # imm = 0xFFFF
movl $0xffff, %r15d          # imm = 0xFFFF
jmp 0x194bc8
movl %ebp, %eax
shrl $0xc, %eax
andl $0x3, %eax
movl %ebp, %r15d
shrl $0xa, %r15d
andl $0x3, %r15d
andl $0x3ff, %ebp            # imm = 0x3FF
cmpl %edx, %r15d
jne 0x194bdd
cmpw %ax, %r12w
jne 0x194bdd
addl %ebp, %ecx
incl %r9d
cmpq %r9, %rbx
ja 0x194b6e
cmpw $0x3, %si
jne 0x194bfe
movzwl 0xc(%rsp), %eax
movw %ax, 0xe(%rsp)
movw $0xffff, 0xc(%rsp)      # imm = 0xFFFF
addl %r11d, %ecx
movl %ecx, %esi
jmp 0x194c9c
cmpw $0x2, %si
movl %ecx, %esi
movl $0x0, %eax
cmovel %eax, %esi
addl %r11d, %esi
addl %r10d, %ecx
cmpl $0x4000, %r14d          # imm = 0x4000
movq 0x18(%rsp), %rdx
jae 0x194c5c
cmpl %esi, %r11d
jae 0x194ca3
movl %r11d, %eax
movl %esi, %edx
movq 0x10(%r13), %rdi
movq 0x18(%r13), %r11
movb (%r11,%rax), %r11b
movl %r10d, %ebx
movb %r11b, (%rdi,%rbx)
movq 0x10(%r13), %rdi
xorl %r11d, %r11d
cmpb $0x4e, (%rdi,%rbx)
sete %r11b
addl %r11d, %r8d
incq %rax
incl %r10d
cmpq %rax, %rdx
jne 0x194c2e
jmp 0x194c99
cmpl %ecx, %r10d
jae 0x194ca3
movzwl 0xc(%rsp), %edi
movl %r10d, %eax
movl %ecx, %edx
leaq 0x100abe(%rip), %r10    # 0x295730
movb (%r10,%rdi), %dil
movq 0x10(%r13), %r10
movb %dil, (%r10,%rax)
movq 0x10(%r13), %r10
xorl %r11d, %r11d
cmpb $0x4e, (%r10,%rax)
sete %r11b
addl %r11d, %r8d
incq %rax
cmpq %rax, %rdx
jne 0x194c7a
movl %ecx, %r10d
movq 0x18(%rsp), %rdx
jmp 0x194ca6
movl %ecx, %r10d
movl %r9d, %eax
movq 0x101898(%rip), %rcx    # 0x296548
movq (%rcx,%rdx,8), %rbx
movl %esi, %r11d
cmpq %rax, %rbx
ja 0x194af1
movl %r8d, %eax
movq %rax, 0x30(%rsp)
leaq 0x100a89(%rip), %rbx    # 0x295758
cmpq $0x0, 0x2b0(%rbx)
movq 0x10(%rsp), %rdx
je 0x194d09
leaq 0x38(%r13), %rdi
subq $0x8, %rsp
xorl %esi, %esi
movq $-0x1, %rcx
movq $-0x1, %r8
xorl %r9d, %r9d
pushq $0x2
callq 0x33933
movq 0x20(%rsp), %rdx
addq $0x10, %rsp
leaq 0x101520(%rip), %rcx    # 0x296230
movq 0x20(%rcx), %rax
movq 0x20(%rsp), %rsi
cmpq %rsi, (%rax,%rdx,8)
jae 0x194dc5
movq %rsi, (%rax,%rdx,8)
movq 0x10(%rcx), %rax
movq (%rax,%rdx,8), %rdi
movq 0x20(%rsp), %rsi
shrl $0x2, %esi
incq %rsi
callq 0x2370
movq 0x20(%rsp), %rsi
leaq 0x1014e5(%rip), %rcx    # 0x296230
movq 0x10(%rcx), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rcx,%rdx,8)
leaq 0x1014d1(%rip), %rcx    # 0x296230
movq 0x10(%rsp), %rdx
cmpq $0x0, 0x2b0(%rbx)
je 0x194dc5
movq 0x20(%rcx), %rax
leaq 0x1014b7(%rip), %rcx    # 0x296230
movq 0x30(%rcx), %rcx
movq 0x10(%rsp), %rdx
movq (%rcx,%rdx,8), %rdi
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movq %rsi, %rax
shrq %rax
andl $0x1, %esi
addq %rax, %rsi
callq 0x2370
movq 0x20(%rsp), %rsi
leaq 0x101484(%rip), %rcx    # 0x296230
movq 0x30(%rcx), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rcx,%rdx,8)
leaq 0x101470(%rip), %rcx    # 0x296230
movq 0x10(%rsp), %rdx
movq 0x18(%rcx), %rax
movq %rcx, %r8
leaq (,%rdx,8), %rcx
movq %rsi, (%rax,%rdx,8)
movq 0x10(%r8), %rax
movq (%rax,%rdx,8), %rdi
movq %rsi, %rdx
movq 0x10(%r13), %rsi
addq (%r8), %rcx
movq 0x30(%rsp), %r8
callq 0x335d2
cmpq $0x0, 0x2b0(%rbx)
movq 0x18(%rsp), %rsi
je 0x195538
movq 0x10(%r13), %r15
movq 0x101736(%rip), %rcx    # 0x296548
movq (%rcx,%rsi,8), %rax
testq %rax, %rax
je 0x195508
movq 0x48(%r13), %rbp
leaq 0xf(%r15), %rdx
movq %rdx, 0x40(%rsp)
xorl %edx, %edx
xorl %r14d, %r14d
xorl %r13d, %r13d
xorl %r12d, %r12d
movq %r15, 0x38(%rsp)
movq 0x10(%rcx,%rsi,8), %rdi
movzwl (%rdi,%rdx,2), %esi
movl %esi, %edx
shrl $0xe, %edx
movw $0xffff, %cx            # imm = 0xFFFF
movw %cx, 0xc(%rsp)
movw %cx, 0xe(%rsp)
leal -0x2(%rdx), %ecx
cmpl $0x2, %ecx
jae 0x194e70
movw $0xfff, %r8w            # imm = 0xFFF
movw $0xc, %cx
leaq 0xc(%rsp), %r9
jmp 0x194e94
movw $0x3fff, %r8w           # imm = 0x3FFF
testl %edx, %edx
je 0x194ea3
movl %esi, %ecx
shrl $0xc, %ecx
andl $0x3, %ecx
movw %cx, 0xc(%rsp)
movw $0x3ff, %r8w            # imm = 0x3FF
movw $0xa, %cx
leaq 0xe(%rsp), %r9
movzwl %si, %r10d
shrl %cl, %r10d
andl $0x3, %r10d
movw %r10w, (%r9)
movzwl %r8w, %ebx
andl %esi, %ebx
incl %r12d
cmpq %r12, %rax
jbe 0x194f3f
movzwl 0xe(%rsp), %ecx
movzwl 0xc(%rsp), %r8d
movzwl (%rdi,%r12,2), %r9d
movl %r9d, %r10d
shrl $0xe, %r10d
cmpl %edx, %r10d
jne 0x194f3f
movzwl %dx, %r10d
leal -0x2(%r10), %r11d
cmpl $0x2, %r11d
jae 0x194ef3
movl %r9d, %r10d
shrl $0xc, %r10d
andl $0x3, %r10d
andl $0xfff, %r9d            # imm = 0xFFF
jmp 0x194f04
testl %r10d, %r10d
jne 0x194f0c
andl $0x3fff, %r9d           # imm = 0x3FFF
movw $0xffff, %r10w          # imm = 0xFFFF
movl $0xffff, %r11d          # imm = 0xFFFF
jmp 0x194f29
movl %r9d, %r10d
shrl $0xc, %r10d
andl $0x3, %r10d
movl %r9d, %r11d
shrl $0xa, %r11d
andl $0x3, %r11d
andl $0x3ff, %r9d            # imm = 0x3FF
cmpl %ecx, %r11d
jne 0x194f3f
cmpw %r10w, %r8w
jne 0x194f3f
addl %r9d, %ebx
incl %r12d
cmpq %r12, %rax
ja 0x194ec0
cmpw $0x3, %dx
jne 0x194f5b
movzwl 0xc(%rsp), %eax
movw %ax, 0xe(%rsp)
movw $0xffff, 0xc(%rsp)      # imm = 0xFFFF
jmp 0x1954d5
cmpw $0x2, %dx
movl %ebx, %ecx
movl $0x0, %eax
cmovel %eax, %ecx
leal (%rbx,%r14), %eax
testw %si, %si
js 0x194f8f
movl %r14d, %edi
addq %r15, %rdi
movl %r13d, %esi
addq %rbp, %rsi
movl %ebx, %edx
movl %ecx, %ebx
movl %eax, %r14d
callq 0x2160
jmp 0x1954d5
cmpw $0x2, %dx
jne 0x1954d2
movq %rbp, %r8
movl %ecx, 0x30(%rsp)
movl %r13d, %esi
xorl %ebx, %ebx
movl $0x5, %r9d
movq 0x10(%rsp), %rdi
xorl %edx, %edx
xorl %ecx, %ecx
movl %eax, %r15d
leaq 0x48(%rsp), %rax
pushq %rax
leaq 0x58(%rsp), %rax
pushq %rax
callq 0x54288
movl %r15d, %r8d
addq $0x10, %rsp
cmpl %r15d, %r14d
jae 0x1954f9
movl %r14d, %eax
movb 0x48(%rsp), %cl
movl %r8d, %esi
subq %rax, %rsi
leaq 0xf(%rsi), %rdx
andq $-0x10, %rdx
decq %rsi
movq %rsi, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
addq 0x40(%rsp), %rax
xorl %esi, %esi
movdqa 0xa0cd6(%rip), %xmm8    # 0x235ce0
movdqa 0xa0cdd(%rip), %xmm9    # 0x235cf0
movdqa 0xa0ce4(%rip), %xmm10   # 0x235d00
movdqa 0xa0ceb(%rip), %xmm11   # 0x235d10
movdqa 0x9c272(%rip), %xmm12   # 0x2312a0
movdqa 0x9c279(%rip), %xmm13   # 0x2312b0
movdqa 0x9c280(%rip), %xmm14   # 0x2312c0
movdqa 0x9c287(%rip), %xmm15   # 0x2312d0
movq 0x38(%rsp), %r15
movq %rsi, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
movdqa %xmm1, %xmm3
por %xmm15, %xmm3
movdqa %xmm0, %xmm2
movdqa 0x9c273(%rip), %xmm4    # 0x2312e0
pxor %xmm4, %xmm2
pxor %xmm4, %xmm3
movdqa %xmm3, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm4     # xmm4 = xmm5[0,0,2,2]
pshuflw $0xe8, %xmm4, %xmm6     # xmm6 = xmm4[0,2,2,3,4,5,6,7]
pcmpeqd %xmm2, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
pshuflw $0xe8, %xmm3, %xmm7     # xmm7 = xmm3[0,2,2,3,4,5,6,7]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
pshuflw $0xe8, %xmm5, %xmm6     # xmm6 = xmm5[0,2,2,3,4,5,6,7]
por %xmm7, %xmm6
pcmpeqd %xmm7, %xmm7
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
movd %xmm6, %edi
testb $0x1, %dil
je 0x1950c1
movb %cl, -0xf(%rax,%rsi)
pand %xmm4, %xmm3
por %xmm5, %xmm3
packssdw %xmm3, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
movd %xmm3, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x1950ea
movb %cl, -0xe(%rax,%rsi)
movdqa %xmm1, %xmm4
por %xmm14, %xmm4
pxor 0x9c1e5(%rip), %xmm4    # 0x2312e0
movdqa %xmm4, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm3     # xmm3 = xmm5[0,0,2,2]
pcmpeqd %xmm2, %xmm4
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
movdqa %xmm4, %xmm6
pand %xmm3, %xmm6
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
por %xmm5, %xmm6
packssdw %xmm6, %xmm6
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
movd %xmm6, %edi
shrl $0x10, %edi
testb $0x1, %dil
je 0x195143
movb %cl, -0xd(%rax,%rsi)
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm4, %xmm4     # xmm4 = xmm4[0,1,2,3,4,5,4,6]
pand %xmm3, %xmm4
pshufhw $0x84, %xmm5, %xmm3     # xmm3 = xmm5[0,1,2,3,4,5,4,6]
por %xmm4, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
movd %xmm3, %edi
shrl $0x18, %edi
testb $0x1, %dil
je 0x195177
movb %cl, -0xc(%rax,%rsi)
movdqa %xmm1, %xmm3
por %xmm13, %xmm3
pxor 0x9c158(%rip), %xmm3    # 0x2312e0
movdqa %xmm3, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm4     # xmm4 = xmm5[0,0,2,2]
pshuflw $0xe8, %xmm4, %xmm6     # xmm6 = xmm4[0,2,2,3,4,5,6,7]
pcmpeqd %xmm2, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
pshuflw $0xe8, %xmm3, %xmm7     # xmm7 = xmm3[0,2,2,3,4,5,6,7]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
pshuflw $0xe8, %xmm5, %xmm6     # xmm6 = xmm5[0,2,2,3,4,5,6,7]
por %xmm7, %xmm6
pcmpeqd %xmm7, %xmm7
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
pextrw $0x2, %xmm6, %edi
testb $0x1, %dil
je 0x1951d9
movb %cl, -0xb(%rax,%rsi)
pand %xmm4, %xmm3
por %xmm5, %xmm3
packssdw %xmm3, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x2, %xmm3, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x195203
movb %cl, -0xa(%rax,%rsi)
movdqa %xmm1, %xmm4
por %xmm12, %xmm4
pxor 0x9c0cc(%rip), %xmm4    # 0x2312e0
movdqa %xmm4, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm3     # xmm3 = xmm5[0,0,2,2]
pcmpeqd %xmm2, %xmm4
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
movdqa %xmm4, %xmm6
pand %xmm3, %xmm6
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
por %xmm5, %xmm6
packssdw %xmm6, %xmm6
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
pextrw $0x3, %xmm6, %edi
testb $0x1, %dil
je 0x19525a
movb %cl, -0x9(%rax,%rsi)
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm4, %xmm4     # xmm4 = xmm4[0,1,2,3,4,5,4,6]
pand %xmm3, %xmm4
pshufhw $0x84, %xmm5, %xmm3     # xmm3 = xmm5[0,1,2,3,4,5,4,6]
por %xmm4, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x3, %xmm3, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x19528f
movb %cl, -0x8(%rax,%rsi)
movdqa %xmm1, %xmm3
por %xmm11, %xmm3
pxor 0x9c040(%rip), %xmm3    # 0x2312e0
movdqa %xmm3, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm4     # xmm4 = xmm5[0,0,2,2]
pshuflw $0xe8, %xmm4, %xmm6     # xmm6 = xmm4[0,2,2,3,4,5,6,7]
pcmpeqd %xmm2, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
pshuflw $0xe8, %xmm3, %xmm7     # xmm7 = xmm3[0,2,2,3,4,5,6,7]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
pshuflw $0xe8, %xmm5, %xmm6     # xmm6 = xmm5[0,2,2,3,4,5,6,7]
por %xmm7, %xmm6
pcmpeqd %xmm7, %xmm7
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
pextrw $0x4, %xmm6, %edi
testb $0x1, %dil
je 0x1952f1
movb %cl, -0x7(%rax,%rsi)
pand %xmm4, %xmm3
por %xmm5, %xmm3
packssdw %xmm3, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x4, %xmm3, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x19531b
movb %cl, -0x6(%rax,%rsi)
movdqa %xmm1, %xmm4
por %xmm10, %xmm4
pxor 0x9bfb4(%rip), %xmm4    # 0x2312e0
movdqa %xmm4, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm3     # xmm3 = xmm5[0,0,2,2]
pcmpeqd %xmm2, %xmm4
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
movdqa %xmm4, %xmm6
pand %xmm3, %xmm6
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
por %xmm5, %xmm6
packssdw %xmm6, %xmm6
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
pextrw $0x5, %xmm6, %edi
testb $0x1, %dil
je 0x195372
movb %cl, -0x5(%rax,%rsi)
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm4, %xmm4     # xmm4 = xmm4[0,1,2,3,4,5,4,6]
pand %xmm3, %xmm4
pshufhw $0x84, %xmm5, %xmm3     # xmm3 = xmm5[0,1,2,3,4,5,4,6]
por %xmm4, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x5, %xmm3, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x1953a7
movb %cl, -0x4(%rax,%rsi)
movdqa %xmm1, %xmm3
por %xmm9, %xmm3
pxor 0x9bf28(%rip), %xmm3    # 0x2312e0
movdqa %xmm3, %xmm5
pcmpgtd %xmm2, %xmm5
pshufd $0xa0, %xmm5, %xmm4     # xmm4 = xmm5[0,0,2,2]
pshuflw $0xe8, %xmm4, %xmm6     # xmm6 = xmm4[0,2,2,3,4,5,6,7]
pcmpeqd %xmm2, %xmm3
pshufd $0xf5, %xmm3, %xmm3     # xmm3 = xmm3[1,1,3,3]
pshuflw $0xe8, %xmm3, %xmm7     # xmm7 = xmm3[0,2,2,3,4,5,6,7]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
pshuflw $0xe8, %xmm5, %xmm6     # xmm6 = xmm5[0,2,2,3,4,5,6,7]
por %xmm7, %xmm6
pcmpeqd %xmm7, %xmm7
pxor %xmm7, %xmm6
packssdw %xmm6, %xmm6
packsswb %xmm6, %xmm6
pextrw $0x6, %xmm6, %edi
testb $0x1, %dil
je 0x195409
movb %cl, -0x3(%rax,%rsi)
pand %xmm4, %xmm3
por %xmm5, %xmm3
packssdw %xmm3, %xmm3
pxor %xmm7, %xmm3
packssdw %xmm3, %xmm3
packsswb %xmm3, %xmm3
pextrw $0x6, %xmm3, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x195433
movb %cl, -0x2(%rax,%rsi)
por %xmm8, %xmm1
pxor 0x9bea0(%rip), %xmm1    # 0x2312e0
movdqa %xmm1, %xmm4
pcmpgtd %xmm2, %xmm4
pshufd $0xa0, %xmm4, %xmm3     # xmm3 = xmm4[0,0,2,2]
pcmpeqd %xmm2, %xmm1
pshufd $0xf5, %xmm1, %xmm1     # xmm1 = xmm1[1,1,3,3]
movdqa %xmm1, %xmm5
pand %xmm3, %xmm5
pshufd $0xf5, %xmm4, %xmm2     # xmm2 = xmm4[1,1,3,3]
por %xmm2, %xmm5
packssdw %xmm5, %xmm4
pxor %xmm7, %xmm4
packssdw %xmm4, %xmm4
packsswb %xmm4, %xmm4
pextrw $0x7, %xmm4, %edi
testb $0x1, %dil
je 0x195486
movb %cl, -0x1(%rax,%rsi)
pshufhw $0x84, %xmm3, %xmm3     # xmm3 = xmm3[0,1,2,3,4,5,4,6]
pshufhw $0x84, %xmm1, %xmm1     # xmm1 = xmm1[0,1,2,3,4,5,4,6]
pand %xmm3, %xmm1
pshufhw $0x84, %xmm2, %xmm2     # xmm2 = xmm2[0,1,2,3,4,5,4,6]
por %xmm1, %xmm2
pxor %xmm7, %xmm2
packssdw %xmm2, %xmm1
packsswb %xmm1, %xmm1
pextrw $0x7, %xmm1, %edi
shrl $0x8, %edi
testb $0x1, %dil
je 0x1954ba
movb %cl, (%rax,%rsi)
addq $0x10, %rsi
cmpq %rsi, %rdx
jne 0x19504e
movl %r8d, %r14d
movl 0x30(%rsp), %eax
movl %eax, %ebx
jmp 0x1954d5
movl %eax, %r14d
movq 0x18(%rsp), %rsi
addl %r13d, %ebx
movl %r12d, %edx
movq 0x101061(%rip), %rcx    # 0x296548
movq (%rcx,%rsi,8), %rax
movl %ebx, %r13d
cmpq %rdx, %rax
ja 0x194e3c
jmp 0x19550b
movl %r8d, %r14d
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %r15
jmp 0x1954da
xorl %r14d, %r14d
cmpl 0x28(%rsp), %r14d
jne 0x195547
leaq 0x100d17(%rip), %rax    # 0x296230
movq 0x30(%rax), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x2, %ecx
movq %r15, %rsi
movq 0x20(%rsp), %rdx
callq 0x33797
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xaa3ce(%rip), %rdi     # 0x23f91c
leaq 0xa8ae6(%rip), %rsi     # 0x23e03b
leaq 0xaa3c9(%rip), %rcx     # 0x23f925
movl $0x17aa, %edx           # imm = 0x17AA
callq 0x2110