// File: /workspace/github_c_makefile_star2_O1/samtools[P]htslib/sam.c
// Function: fastq_format1
int fastq_format1(fastq_state *x, const bam1_t *b, kstring_t *str)
{
    unsigned flag = b->core.flag;
    int i, e = 0, len = b->core.l_qseq;
    uint8_t *seq, *qual;

    str->l = 0;

    // Name
    if (kputc(x->nprefix, str) == EOF || kputs(bam_get_qname(b), str) == EOF)
        return -1;

    // /1 or /2 suffix
    if (x && x->rnum && (flag & BAM_FPAIRED)) {
        int r12 = flag & (BAM_FREAD1 | BAM_FREAD2);
        if (r12 == BAM_FREAD1) {
            if (kputs("/1", str) == EOF)
                return -1;
        } else if (r12 == BAM_FREAD2) {
            if (kputs("/2", str) == EOF)
                return -1;
        }
    }

    // Illumina CASAVA tag.
    // This is <rnum>:<Y/N qcfail>:<control-bits>:<barcode-or-zero>
    if (x && x->casava) {
        int rnum = (flag & BAM_FREAD1)? 1 : (flag & BAM_FREAD2)? 2 : 0;
        char filtered = (flag & BAM_FQCFAIL)? 'Y' : 'N';
        uint8_t *bc = bam_aux_get(b, x->BC);
        if (ksprintf(str, " %d:%c:0:%s", rnum, filtered,
                     bc ? (char *)bc+1 : "0") < 0)
            return -1;

        if (bc && (*bc != 'Z' || (!isupper_c(bc[1]) && !islower_c(bc[1])))) {
            hts_log_warning("BC tag starts with non-sequence base; using '0'");
            str->l -= strlen((char *)bc)-2; // limit to 1 char
            str->s[str->l-1] = '0';
            str->s[str->l] = 0;
            bc = NULL;
        }

        // Replace any non-alpha with '+'.  Ie seq-seq to seq+seq
        if (bc) {
            int l = strlen((char *)bc+1);
            char *c = (char *)str->s + str->l - l;
            for (i = 0; i < l; i++) {
                if (!isalpha_c(c[i]))
                    c[i] = '+';
                else if (islower_c(c[i]))
                    c[i] = toupper_c(c[i]);
            }
        }
    }

    // Aux tags
    if (x && x->aux) {
        uint8_t *s = bam_get_aux(b), *end = b->data + b->l_data;
        while (s && end - s >= 4) {
            int tt = s[0]*256 + s[1];
            if (x->tags == NULL ||
                kh_get(tag, x->tags, tt) != kh_end(x->tags)) {
                e |= kputc_('\t', str) < 0;
                if (!(s = (uint8_t *)sam_format_aux1(s, s[2], s+3, end, str)))
                    return -1;
            } else {
                s = skip_aux(s+2, end);
            }
        }
        e |= kputsn("", 0, str) < 0; // nul terminate
    }

    if (ks_resize(str, str->l + 1 + len+1 + 2 + len+1 + 1) < 0) return -1;
    e |= kputc_('\n', str) < 0;

    // Seq line
    seq = bam_get_seq(b);
    if (flag & BAM_FREVERSE)
        for (i = len-1; i >= 0; i--)
            e |= kputc_("!TGKCYSBAWRDMHVN"[bam_seqi(seq, i)], str) < 0;
    else
        for (i = 0; i < len; i++)
            e |= kputc_(seq_nt16_str[bam_seqi(seq, i)], str) < 0;


    // Qual line
    if (x->nprefix == '@') {
        kputsn("\n+\n", 3, str);
        qual = bam_get_qual(b);
        if (qual[0] == 0xff)
            for (i = 0; i < len; i++)
                e |= kputc_('B', str) < 0;
        else if (flag & BAM_FREVERSE)
            for (i = len-1; i >= 0; i--)
                e |= kputc_(33 + qual[i], str) < 0;
        else
            for (i = 0; i < len; i++)
                e |= kputc_(33 + qual[i], str) < 0;

    }
    e |= kputc('\n', str) < 0;

    return e ? -1 : str->l;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %rbx
movq %rsi, %r12
movzwl 0x10(%rsi), %r15d
movl 0x18(%rsi), %r14d
movq $0x0, (%rdx)
movq %rdi, 0x18(%rsp)
movb 0x78(%rdi), %bpl
cmpq $0x1, 0x8(%rdx)
ja 0x2beb5
movq 0x10(%rbx), %rdi
movl $0x3, %esi
callq 0x4840
testq %rax, %rax
je 0x2c3cb
movq %rax, 0x10(%rbx)
movq $0x3, 0x8(%rbx)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb %bpl, (%rcx,%rax)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movb $0x0, (%rcx,%rax)
movq 0x38(%r12), %r13
testq %r13, %r13
je 0x2c012
movq %r12, 0x20(%rsp)
movq %r13, %rdi
callq 0x41d0
movq %rax, %r12
movq (%rbx), %rcx
addq %rcx, %rax
addq $0x2, %rax
cmpq %rcx, %rax
jbe 0x2c3c0
cmpq %rax, 0x8(%rbx)
jae 0x2bf3f
movq %rax, %rcx
shrq $0x3e, %rcx
movq %rax, %rdx
shrq %rdx
xorl %ebp, %ebp
testq %rcx, %rcx
cmoveq %rdx, %rbp
addq %rax, %rbp
movq 0x10(%rbx), %rdi
movq %rbp, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c3cb
movq %rax, 0x10(%rbx)
movq %rbp, 0x8(%rbx)
movq 0x10(%rbx), %rdi
addq (%rbx), %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x43c0
movq (%rbx), %rax
addq %r12, %rax
movq %rax, (%rbx)
movq 0x10(%rbx), %rcx
movb $0x0, (%rcx,%rax)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl $-0x1, %r12d
je 0x2c3d0
movq 0x18(%rsp), %r13
testq %r13, %r13
movq %r14, 0x10(%rsp)
movl %r15d, 0x2c(%rsp)
je 0x2c022
cmpl $0x0, 0x68(%r13)
sete %al
testb $0x1, %r15b
sete %cl
orb %al, %cl
jne 0x2c0a0
movl %r15d, %eax
andb $-0x40, %al
negb %al
jo 0x2c030
movl %r15d, %eax
andl $0xc0, %eax
cmpl $0x40, %eax
jne 0x2c0a0
movq (%rbx), %rcx
subq $-0x4, %rcx
jae 0x2c3c0
movw $0x312f, %ax            # imm = 0x312F
cmpq %rcx, 0x8(%rbx)
jae 0x2c082
movq %rcx, %rax
shrq $0x3e, %rax
movq %rcx, %rdx
shrq %rdx
xorl %r12d, %r12d
testq %rax, %rax
cmoveq %rdx, %r12
addq %rcx, %r12
movq 0x10(%rbx), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c3cb
movq %rax, 0x10(%rbx)
movw $0x312f, %ax            # imm = 0x312F
jmp 0x2c07e
callq 0x4050
movl $0xe, (%rax)
jmp 0x2c3cb
movq $0x0, 0x8(%rsp)
jmp 0x2c401
movq (%rbx), %rcx
subq $-0x4, %rcx
jae 0x2c3c0
movw $0x322f, %ax            # imm = 0x322F
cmpq %rcx, 0x8(%rbx)
jae 0x2c082
movq %rcx, %rax
shrq $0x3e, %rax
movq %rcx, %rdx
shrq %rdx
xorl %r12d, %r12d
testq %rax, %rax
cmoveq %rdx, %r12
addq %rcx, %r12
movq 0x10(%rbx), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c3cb
movq %rax, 0x10(%rbx)
movw $0x322f, %ax            # imm = 0x322F
movq %r12, 0x8(%rbx)
movq (%rbx), %rcx
movq 0x10(%rbx), %rdx
movw %ax, (%rdx,%rcx)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, (%rbx)
movb $0x0, 0x2(%rcx,%rax)
movq $0x0, 0x8(%rsp)
cmpl $0x0, 0x60(%r13)
je 0x2c1f3
movl 0x2c(%rsp), %r14d
movl %r14d, %eax
shrl $0x6, %eax
andl $0x2, %eax
testb $0x40, %r14b
movl $0x1, %ebp
cmovel %eax, %ebp
movq 0x18(%rsp), %rax
leaq 0x6c(%rax), %rsi
movq 0x20(%rsp), %rdi
callq 0x2c960
movq %rax, %r12
btl $0x9, %r14d
movl $0x4e, %eax
movl $0x59, %ecx
cmovael %eax, %ecx
leaq 0x1(%r12), %r14
testq %r12, %r12
leaq 0x6d76f(%rip), %r8      # 0x99874
cmovneq %r14, %r8
leaq 0x6eafb(%rip), %rsi     # 0x9ac0b
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x9aab
testl %eax, %eax
js 0x2c3cb
testq %r12, %r12
je 0x2c187
cmpb $0x5a, (%r12)
jne 0x2c144
movzbl (%r14), %r14d
callq 0x4510
movq (%rax), %rax
testb $0x3, 0x1(%rax,%r14,2)
jne 0x2c18a
leaq 0x6eacc(%rip), %rsi     # 0x9ac17
leaq 0x6ead3(%rip), %rdx     # 0x9ac25
movl $0x3, %edi
xorl %eax, %eax
callq 0x14378
movq %r12, %rdi
callq 0x41d0
movq (%rbx), %rcx
movq 0x10(%rbx), %rdx
subq %rax, %rcx
leaq 0x2(%rcx), %rax
movq %rax, (%rbx)
movb $0x30, 0x1(%rdx,%rcx)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movb $0x0, (%rcx,%rax)
xorl %r12d, %r12d
testq %r12, %r12
je 0x2c1f3
incq %r12
movq %r12, %rdi
callq 0x41d0
movq %rax, %r12
testl %r12d, %r12d
jle 0x2c1f3
movq 0x10(%rbx), %r14
addq (%rbx), %r14
movslq %r12d, %rax
subq %rax, %r14
callq 0x4510
movq %rax, %r13
andl $0x7fffffff, %r12d      # imm = 0x7FFFFFFF
xorl %r15d, %r15d
movzbl (%r14,%r15), %ebp
movq (%r13), %rax
movzwl (%rax,%rbp,2), %eax
movb $0x2b, %cl
btl $0xa, %eax
jae 0x2c1e7
btl $0x9, %eax
jae 0x2c1eb
callq 0x40a0
movq (%rax), %rax
movb (%rax,%rbp,4), %cl
movb %cl, (%r14,%r15)
incq %r15
cmpq %r15, %r12
jne 0x2c1c1
movq 0x18(%rsp), %r13
cmpl $0x0, 0x64(%r13)
movq 0x10(%rsp), %r14
je 0x2c401
movq 0x20(%rsp), %rsi
movq 0x38(%rsi), %rax
movl 0x14(%rsi), %ecx
shll $0x2, %ecx
movzwl 0x12(%rsi), %r12d
addq %rax, %r12
addq %rcx, %r12
movslq 0x18(%rsi), %rcx
leal 0x1(%rcx), %edx
sarl %edx
movslq %edx, %rdx
addq %rcx, %r12
addq %rdx, %r12
movslq 0x40(%rsi), %rbp
addq %rax, %rbp
movq $0x0, 0x8(%rsp)
movq %rbp, 0x30(%rsp)
testq %r12, %r12
sete %al
movq %rbp, %rcx
subq %r12, %rcx
cmpq $0x4, %rcx
setl %r15b
orb %al, %r15b
jne 0x2c3df
movq 0x70(%r13), %rdx
testq %rdx, %rdx
je 0x2c315
movl (%rdx), %eax
testl %eax, %eax
je 0x2c2f6
movzwl (%r12), %ecx
rolw $0x8, %cx
movzwl %cx, %edi
leal -0x1(%rax), %r8d
movl %r8d, %r9d
andl %edi, %r9d
movq 0x10(%rdx), %r10
movl $0x1, %r11d
movl %r9d, %esi
movl %esi, %ecx
shrl $0x4, %ecx
movl (%r10,%rcx,4), %ebp
leal (%rsi,%rsi), %ecx
andl $0x1e, %ecx
movl %ebp, %r14d
shrl %cl, %r14d
testb $0x2, %r14b
jne 0x2c2dc
testb $0x1, %r14b
jne 0x2c2ca
movq 0x18(%rdx), %r14
movl %esi, %r13d
cmpl %edi, (%r14,%r13,4)
je 0x2c2dc
addl %r11d, %esi
andl %r8d, %esi
incl %r11d
cmpl %r9d, %esi
jne 0x2c29c
movl %eax, %esi
jmp 0x2c2e5
shrl %cl, %ebp
testb $0x3, %bpl
cmovnel %eax, %esi
movq 0x10(%rsp), %r14
movq 0x18(%rsp), %r13
movq 0x30(%rsp), %rbp
jmp 0x2c2f8
xorl %esi, %esi
cmpl %eax, %esi
jne 0x2c315
addq $0x2, %r12
movq %r12, %rdi
movq %rbp, %rsi
callq 0x2da21
movq %rax, %r12
movb $0x1, %al
jmp 0x2c3a5
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c363
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %ebp
cmovbeq %rcx, %rbp
addq %rax, %rbp
movq 0x10(%rbx), %rdi
movq %rbp, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c3af
movq %rax, 0x10(%rbx)
movq %rbp, 0x8(%rbx)
movq 0x18(%rsp), %r13
movq 0x30(%rsp), %rbp
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb $0x9, (%rcx,%rax)
xorl %eax, %eax
movq 0x8(%rsp), %rcx
orl %eax, %ecx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%r12), %esi
leaq 0x3(%r12), %rdx
movq %r12, %rdi
movq %rbp, %rcx
movq %rbx, %r8
callq 0x2ca0b
movq %rax, %r12
testq %rax, %rax
setne %al
testb %al, %al
jne 0x2c249
jmp 0x2c3fc
movl $0x1, %eax
movq 0x18(%rsp), %r13
movq 0x30(%rsp), %rbp
jmp 0x2c377
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6c8e7(%rip), %rdi     # 0x98ccd
xorl %esi, %esi
movq %rbx, %rdx
callq 0x27bd9
shrl $0x1f, %eax
orl 0x8(%rsp), %eax
movq %rax, 0x8(%rsp)
testb %r15b, %r15b
je 0x2c3cb
movslq %r14d, %rax
movq (%rbx), %rcx
leaq (%rcx,%rax,2), %rax
addq $0x6, %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c44b
movq %rax, %rcx
shrq %rcx
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r12
addq %rax, %r12
movq 0x10(%rbx), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c3cb
movq %rax, 0x10(%rbx)
movq %r12, 0x8(%rbx)
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
movl 0x2c(%rsp), %r15d
jae 0x2c496
movq %rax, %rcx
shrq %rcx
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r12
addq %rax, %r12
movq 0x10(%rbx), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c7ca
movq %rax, 0x10(%rbx)
movq %r12, 0x8(%rbx)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb $0xa, (%rcx,%rax)
xorl %ebp, %ebp
movq 0x20(%rsp), %r12
movl 0x14(%r12), %eax
shll $0x2, %eax
addq 0x38(%r12), %rax
orl 0x8(%rsp), %ebp
movzwl 0x12(%r12), %esi
addq %rax, %rsi
testb $0x10, %r15b
movq %rsi, 0x8(%rsp)
jne 0x2c5a3
testl %r14d, %r14d
jle 0x2c66e
xorl %r14d, %r14d
leaq 0x6c4c5(%rip), %rdi     # 0x989b0
xorl %r13d, %r13d
movl %r13d, %eax
shrl %eax
movzbl (%rsi,%rax), %eax
movl %r14d, %ecx
notb %cl
andb $0x4, %cl
shrl %cl, %eax
andl $0xf, %eax
movb (%rdi,%rax), %r15b
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c55e
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r12d
cmovbeq %rcx, %r12
addq %rax, %r12
movq 0x10(%rbx), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c58b
movq %rax, 0x10(%rbx)
movq %r12, 0x8(%rbx)
movq 0x20(%rsp), %r12
movq 0x8(%rsp), %rsi
leaq 0x6c452(%rip), %rdi     # 0x989b0
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb %r15b, (%rcx,%rax)
xorl %eax, %eax
orl %eax, %ebp
incl %r13d
addl $0x4, %r14d
cmpl %r13d, 0x10(%rsp)
jne 0x2c4ee
jmp 0x2c66e
movl $0x1, %eax
movq 0x20(%rsp), %r12
movq 0x8(%rsp), %rsi
leaq 0x6c40f(%rip), %rdi     # 0x989b0
jmp 0x2c572
testl %r14d, %r14d
jle 0x2c66e
leal 0x1(%r14), %r13d
leal (,%r14,4), %r14d
leaq 0x6e696(%rip), %rdi     # 0x9ac55
leal -0x2(%r13), %eax
shrl %eax
movzbl (%rsi,%rax), %eax
movl %r14d, %ecx
andb $0x4, %cl
shrl %cl, %eax
andl $0xf, %eax
movb (%rax,%rdi), %r15b
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c62d
movq %rax, %r12
shrq %r12
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r12
addq %rax, %r12
movq 0x10(%rbx), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c656
movq %rax, 0x10(%rbx)
movq %r12, 0x8(%rbx)
movq 0x20(%rsp), %r12
movq 0x8(%rsp), %rsi
leaq 0x6e628(%rip), %rdi     # 0x9ac55
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb %r15b, (%rcx,%rax)
xorl %eax, %eax
orl %eax, %ebp
decl %r13d
addl $-0x4, %r14d
cmpl $0x1, %r13d
jg 0x2c5bf
jmp 0x2c66e
movl $0x1, %eax
movq 0x20(%rsp), %r12
movq 0x8(%rsp), %rsi
leaq 0x6e5e9(%rip), %rdi     # 0x9ac55
jmp 0x2c641
movq 0x18(%rsp), %rax
cmpb $0x40, 0x78(%rax)
jne 0x2c8e3
movq (%rbx), %rax
subq $-0x5, %rax
jae 0x2c6ee
cmpq %rax, 0x8(%rbx)
movq 0x10(%rsp), %r14
jae 0x2c6c7
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%rbx), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c6fe
movq %rax, 0x10(%rbx)
movq %r15, 0x8(%rbx)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movb $0xa, 0x2(%rcx,%rax)
movw $0x2b0a, (%rcx,%rax)    # imm = 0x2B0A
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x3(%rax), %rdx
movq %rdx, (%rbx)
movb $0x0, 0x3(%rcx,%rax)
jmp 0x2c6fe
callq 0x4050
movl $0x4b, (%rax)
movq 0x10(%rsp), %r14
movq 0x38(%r12), %rax
movl 0x14(%r12), %ecx
movl 0x18(%r12), %edx
shll $0x2, %ecx
movzwl 0x12(%r12), %esi
leaq (%rax,%rsi), %r15
addq %rcx, %r15
incl %edx
sarl %edx
movslq %edx, %rdx
cmpb $-0x1, (%rdx,%r15)
je 0x2c7d4
testb $0x10, 0x2c(%rsp)
jne 0x2c84f
testl %r14d, %r14d
jle 0x2c8e3
addq %rdx, %r15
xorl %r12d, %r12d
movb (%r15,%r12), %r13b
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c797
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r14d
cmovbeq %rcx, %r14
addq %rax, %r14
movq 0x10(%rbx), %rdi
movq %r14, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c7be
movq %rax, 0x10(%rbx)
movq %r14, 0x8(%rbx)
movq 0x10(%rsp), %r14
addb $0x21, %r13b
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb %r13b, (%rcx,%rax)
xorl %eax, %eax
orl %eax, %ebp
incq %r12
cmpq %r12, %r14
jne 0x2c749
jmp 0x2c8e3
movl $0x1, %eax
movq 0x10(%rsp), %r14
jmp 0x2c7af
movl $0x1, %ebp
jmp 0x2c4aa
testl %r14d, %r14d
jle 0x2c8e3
xorl %r15d, %r15d
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c825
movq %r14, %r12
movq %rax, %r14
shrq %r14
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
cmovaq %r15, %r14
addq %rax, %r14
movq 0x10(%rbx), %rdi
movq %r14, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c845
movq %rax, 0x10(%rbx)
movq %r14, 0x8(%rbx)
movq %r12, %r14
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb $0x42, (%rcx,%rax)
xorl %eax, %eax
orl %eax, %ebp
decl %r14d
jne 0x2c7e0
jmp 0x2c8e3
movl $0x1, %eax
movq %r12, %r14
jmp 0x2c839
testl %r14d, %r14d
jle 0x2c8e3
leaq 0x1(%r14), %r15
addq %rsi, %rdx
addq %r14, %rcx
addq %rdx, %rcx
leaq (%rax,%rcx), %r12
decq %r12
movb (%r12), %r13b
movq (%rbx), %rax
incq %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c8b4
movq %rax, %r14
shrq %r14
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r14
addq %rax, %r14
movq 0x10(%rbx), %rdi
movq %r14, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c8dc
movq %rax, 0x10(%rbx)
movq %r14, 0x8(%rbx)
addb $0x21, %r13b
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb %r13b, (%rcx,%rax)
xorl %eax, %eax
orl %eax, %ebp
decq %r15
decq %r12
cmpq $0x1, %r15
jg 0x2c86c
jmp 0x2c8e3
movl $0x1, %eax
jmp 0x2c8cc
movq (%rbx), %rax
addq $0x2, %rax
cmpq %rax, 0x8(%rbx)
jae 0x2c926
movq %rax, %rcx
shrq %rcx
xorl %r14d, %r14d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r14
addq %rax, %r14
movq 0x10(%rbx), %rdi
movq %r14, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c959
movq %rax, 0x10(%rbx)
movq %r14, 0x8(%rbx)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%rbx)
movb $0xa, (%rcx,%rax)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movb $0x0, (%rcx,%rax)
xorl %eax, %eax
orl %ebp, %eax
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jne 0x2c3d0
movl (%rbx), %eax
jmp 0x2c3d0
movl $0x1, %eax
jmp 0x2c945