// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/./htslib/sam.h
// Function: sam_format_aux1
static inline const uint8_t *sam_format_aux1(const uint8_t *key,
                                             const uint8_t type,
                                             const uint8_t *tag,
                                             const uint8_t *end,
                                             kstring_t *ks) {
    int r = 0;
    const uint8_t *s = tag; // brevity and consistency with other code.
    r |= kputsn_((char*)key, 2, ks) < 0;
    r |= kputc_(':', ks) < 0;
    if (type == 'C') {
        r |= kputsn_("i:", 2, ks) < 0;
        r |= kputw(*s, ks) < 0;
        ++s;
    } else if (type == 'c') {
        r |= kputsn_("i:", 2, ks) < 0;
        r |= kputw(*(int8_t*)s, ks) < 0;
        ++s;
    } else if (type == 'S') {
        if (end - s >= 2) {
            r |= kputsn_("i:", 2, ks) < 0;
            r |= kputuw(le_to_u16(s), ks) < 0;
            s += 2;
        } else goto bad_aux;
    } else if (type == 's') {
        if (end - s >= 2) {
            r |= kputsn_("i:", 2, ks) < 0;
            r |= kputw(le_to_i16(s), ks) < 0;
            s += 2;
        } else goto bad_aux;
    } else if (type == 'I') {
        if (end - s >= 4) {
            r |= kputsn_("i:", 2, ks) < 0;
            r |= kputuw(le_to_u32(s), ks) < 0;
            s += 4;
        } else goto bad_aux;
    } else if (type == 'i') {
        if (end - s >= 4) {
            r |= kputsn_("i:", 2, ks) < 0;
            r |= kputw(le_to_i32(s), ks) < 0;
            s += 4;
        } else goto bad_aux;
    } else if (type == 'A') {
        r |= kputsn_("A:", 2, ks) < 0;
        r |= kputc_(*s, ks) < 0;
        ++s;
    } else if (type == 'f') {
        if (end - s >= 4) {
            // cast to avoid triggering -Wdouble-promotion
            ksprintf(ks, "f:%g", (double)le_to_float(s));
            s += 4;
        } else goto bad_aux;

    } else if (type == 'd') {
        // NB: "d" is not an official type in the SAM spec.
        // However for unknown reasons samtools has always supported this.
        // We believe, HOPE, it is not in general usage and we do not
        // encourage it.
        if (end - s >= 8) {
            ksprintf(ks, "d:%g", le_to_double(s));
            s += 8;
        } else goto bad_aux;
    } else if (type == 'Z' || type == 'H') {
        r |= kputc_(type, ks) < 0;
        r |= kputc_(':', ks) < 0;
        while (s < end && *s) r |= kputc_(*s++, ks) < 0;
        r |= kputsn("", 0, ks) < 0;     //ensures NUL termination
        if (s >= end)
            goto bad_aux;
        ++s;
    } else if (type == 'B') {
        uint8_t sub_type = *(s++);
        unsigned sub_type_size;

        // or externalise sam.c's aux_type2size function?
        switch (sub_type) {
        case 'A': case 'c': case 'C':
            sub_type_size = 1;
            break;
        case 's': case 'S':
            sub_type_size = 2;
            break;
        case 'i': case 'I': case 'f':
            sub_type_size = 4;
            break;
        default:
            sub_type_size = 0;
            break;
        }

        uint32_t i, n;
        if (sub_type_size == 0 || end - s < 4)
            goto bad_aux;
        n = le_to_u32(s);
        s += 4; // now points to the start of the array
        if ((size_t)(end - s) / sub_type_size < n)
            goto bad_aux;
        r |= kputsn_("B:", 2, ks) < 0;
        r |= kputc(sub_type, ks) < 0; // write the type
        switch (sub_type) {
        case 'c':
            if (ks_expand(ks, n*2) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                r |= kputw(*(int8_t*)s, ks) < 0;
                ++s;
            }
            break;
        case 'C':
            if (ks_expand(ks, n*2) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                r |= kputuw(*(uint8_t*)s, ks) < 0;
                ++s;
            }
            break;
        case 's':
            if (ks_expand(ks, n*4) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                r |= kputw(le_to_i16(s), ks) < 0;
                s += 2;
            }
            break;
        case 'S':
            if (ks_expand(ks, n*4) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                r |= kputuw(le_to_u16(s), ks) < 0;
                s += 2;
            }
            break;
        case 'i':
            if (ks_expand(ks, n*6) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                r |= kputw(le_to_i32(s), ks) < 0;
                s += 4;
            }
            break;
        case 'I':
            if (ks_expand(ks, n*6) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                r |= kputuw(le_to_u32(s), ks) < 0;
                s += 4;
            }
            break;
        case 'f':
            if (ks_expand(ks, n*8) < 0) goto mem_err;
            for (i = 0; i < n; ++i) {
                ks->s[ks->l++] = ',';
                // cast to avoid triggering -Wdouble-promotion
                r |= kputd((double)le_to_float(s), ks) < 0;
                s += 4;
            }
            break;
        default:
            goto bad_aux;
        }
    } else { // Unknown type
        goto bad_aux;
    }
    return r ? NULL : s;

 bad_aux:
    errno = EINVAL;
    return NULL;

 mem_err:
    hts_log_error("Out of memory");
    errno = ENOMEM;
    return NULL;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, %r14
movq %rcx, %r15
movq %rdx, 0x10(%rsp)
movl %esi, %ebp
movq (%r8), %rbx
cmpq $-0x2, %rbx
jb 0x2bf93
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
jmp 0x2bff8
movq %rdi, %r12
leaq 0x2(%rbx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2bfdb
movq %rax, %rcx
shrq %rcx
xorl %r13d, %r13d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r13
addq %rax, %r13
movq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x4840
movq (%r14), %rbx
testq %rax, %rax
je 0x2bf8b
movq %rax, 0x10(%r14)
movq %r13, 0x8(%r14)
jmp 0x2bfdf
movq 0x10(%r14), %rax
movzwl (%r12), %ecx
movw %cx, (%rax,%rbx)
movq (%r14), %rbx
addq $0x2, %rbx
movq %rbx, (%r14)
movl $0x2, %r13d
leaq 0x1(%rbx), %rcx
cmpq %rcx, 0x8(%r14)
jae 0x2c045
movq %rcx, %rax
shrq %rax
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rcx
cmovbeq %rax, %r12
addq %rcx, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c0e9
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rbx
leaq 0x1(%rbx), %rcx
jmp 0x2c049
movq 0x10(%r14), %rax
movq %rcx, (%r14)
movb $0x3a, (%rax,%rbx)
movl $0x1, %esi
orl %r13d, %esi
movzbl %bpl, %eax
cmpl $0x59, %eax
movq 0x10(%rsp), %rbx
jg 0x2c0a7
leal -0x41(%rax), %ecx
cmpl $0x8, %ecx
ja 0x2c192
leaq 0x6b26b(%rip), %rax     # 0x972e4
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r14), %rbx
movl %esi, %r13d
cmpq $-0x2, %rbx
jb 0x2c45e
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2c72d
leal -0x63(%rax), %ecx
cmpl $0x6, %ecx
ja 0x2c0f3
movl %esi, %ebp
shrl $0x1f, %ebp
leaq 0x6b24d(%rip), %rax     # 0x97308
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r14), %rcx
movl %esi, %r13d
cmpq $-0x2, %rcx
jb 0x2c40e
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2c664
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
jmp 0x2c055
cmpl $0x5a, %eax
je 0x2c133
cmpl $0x73, %eax
jne 0x2c5ee
subq %rbx, %r15
cmpq $0x2, %r15
jl 0x2c5ee
movq (%r14), %rcx
movl %esi, %r13d
cmpq $-0x2, %rcx
jb 0x2c873
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2c9f4
movq (%r14), %rdx
leaq 0x1(%rdx), %rcx
cmpq %rcx, 0x8(%r14)
jae 0x2c2eb
movl %esi, 0xc(%rsp)
movq %rcx, %rax
shrq %rax
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rcx
cmovbeq %rax, %r12
addq %rcx, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c4fe
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rdx
leaq 0x1(%rdx), %rcx
movl 0xc(%rsp), %esi
jmp 0x2c2ef
cmpl $0x53, %eax
jne 0x2c5ee
subq %rbx, %r15
cmpq $0x2, %r15
jl 0x2c5ee
movq (%r14), %rcx
movl %esi, %r12d
cmpq $-0x2, %rcx
jb 0x2c8c3
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2ca67
subq %rbx, %r15
cmpq $0x4, %r15
jl 0x2c5ee
movq (%r14), %rcx
movl %esi, %r13d
cmpq $-0x2, %rcx
jb 0x2c601
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2c95d
subq %rbx, %r15
cmpq $0x8, %r15
jl 0x2c5ee
movsd (%rbx), %xmm0
leaq 0x6c5c3(%rip), %rsi     # 0x987da
movq %r14, %rdi
movb $0x1, %al
callq 0x9ab7
addq $0x8, %rbx
jmp 0x2cb3a
subq %rbx, %r15
cmpq $0x4, %r15
jl 0x2c5ee
cvtss2sd (%rbx), %xmm0
leaq 0x6c593(%rip), %rsi     # 0x987d5
movq %r14, %rdi
movb $0x1, %al
callq 0x9ab7
jmp 0x2cb0b
subq %rbx, %r15
cmpq $0x4, %r15
jl 0x2c5ee
movq (%r14), %rcx
movl %esi, %r12d
cmpq $-0x2, %rcx
jb 0x2c6c4
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2c9cf
movzbl (%rbx), %r13d
leal -0x41(%r13), %eax
cmpl $0x32, %eax
ja 0x2c5ee
movabsq $0x400000005, %rcx      # imm = 0x400000005
btq %rax, %rcx
jb 0x2c51e
movabsq $0x12000000100, %rcx    # imm = 0x12000000100
btq %rax, %rcx
jae 0x2c5ad
movl $0x4, %ecx
jmp 0x2c5c2
movq (%r14), %rcx
movl %esi, %r12d
cmpq $-0x2, %rcx
jb 0x2c4ae
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2c7b7
movq 0x10(%r14), %rax
movq %rcx, (%r14)
movb %bpl, (%rax,%rdx)
movl $0x1, %r13d
movq (%r14), %rdx
leaq 0x1(%rdx), %rcx
cmpq %rcx, 0x8(%r14)
jae 0x2c350
movl %esi, %ebp
movq %rcx, %rax
shrq %rax
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rcx
cmovbeq %rax, %r12
addq %rcx, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c50d
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rdx
leaq 0x1(%rdx), %rcx
movl %ebp, %esi
jmp 0x2c354
movq 0x10(%r14), %rax
movq %rcx, (%r14)
movb $0x3a, (%rax,%rdx)
movl $0x1, %eax
orl %eax, %r13d
orl %esi, %r13d
shrl $0x1f, %r13d
cmpq %r15, %rbx
jae 0x2c406
movb (%rbx), %bpl
testb %bpl, %bpl
je 0x2c519
incq %rbx
movq %rbx, %r12
movq (%r14), %rdx
leaq 0x1(%rdx), %rcx
cmpq %rcx, 0x8(%r14)
jae 0x2c3d3
movq %rcx, %rbx
shrq %rbx
movabsq $0x3fffffffffffffff, %rax # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rax, %rcx
movl $0x0, %eax
cmovaq %rax, %rbx
addq %rcx, %rbx
movq 0x10(%r14), %rdi
movq %rbx, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c3ff
movq %rax, 0x10(%r14)
movq %rbx, 0x8(%r14)
movq (%r14), %rdx
leaq 0x1(%rdx), %rcx
jmp 0x2c3d7
movq 0x10(%r14), %rax
movq %rcx, (%r14)
movb %bpl, (%rax,%rdx)
xorl %eax, %eax
orl %eax, %r13d
cmpq %r15, %r12
je 0x2c528
movb (%r12), %bpl
leaq 0x1(%r12), %rbx
testb %bpl, %bpl
jne 0x2c382
jmp 0x2c52d
movl $0x1, %eax
jmp 0x2c3e0
xorl %r12d, %r12d
jmp 0x2c537
leaq 0x2(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c651
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c0df
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c655
leaq 0x2(%rbx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c714
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
movq (%r14), %rbx
testq %rax, %rax
je 0x2c09d
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
jmp 0x2c718
leaq 0x2(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c7a4
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c2e1
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c7a8
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movl 0xc(%rsp), %esi
jmp 0x2c2fc
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %ebp, %esi
jmp 0x2c360
movb $0x1, %r12b
jmp 0x2c537
movl $0x1, %ecx
jmp 0x2c5c2
movq %r15, %rbx
jmp 0x2c530
decq %rbx
cmpq %r15, %r12
setb %r12b
movq (%r14), %rcx
movq %rcx, %rax
subq $-0x2, %rax
jae 0x2c584
cmpq %rax, 0x8(%r14)
jae 0x2c596
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c58f
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c59a
callq 0x4050
movl $0x4b, (%rax)
movl $0x1, %ebp
jmp 0x2c5a0
movq 0x10(%r14), %rax
movb $0x0, (%rax,%rcx)
xorl %ebp, %ebp
testb %r12b, %r12b
je 0x2c5ee
orl %r13d, %ebp
jmp 0x2c938
movabsq $0x4000000040000, %rcx  # imm = 0x4000000040000
btq %rax, %rcx
jae 0x2c5ee
movl $0x2, %ecx
leaq 0x1(%rbx), %rax
movq %r15, %rdx
subq %rax, %rdx
cmpq $0x4, %rdx
jl 0x2c5ee
movl 0x1(%rbx), %r12d
addq $0x5, %rbx
subq %rbx, %r15
movq %r15, %rax
xorl %edx, %edx
divq %rcx
cmpq %r12, %rax
jae 0x2c7ca
callq 0x4050
movl $0x16, (%rax)
xorl %r14d, %r14d
jmp 0x2cb43
leaq 0x2(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c94a
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c1f5
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c94e
movq 0x10(%r14), %rax
movw $0x3a69, (%rax,%rcx)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movsbl (%rbx), %r15d
testl %r15d, %r15d
jns 0x2c925
movq (%r14), %rcx
leaq 0x3(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c913
movq %rax, %rcx
shrq %rcx
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cb55
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c917
leaq 0x2(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c9bc
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c279
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c9c0
movq 0x10(%r14), %rax
movw $0x3a41, (%rax,%rbx)    # imm = 0x3A41
movq (%r14), %rbx
addq $0x2, %rbx
movq %rbx, (%r14)
movl $0x2, %ebp
movq 0x10(%rsp), %rax
movb (%rax), %r12b
leaq 0x1(%rbx), %rcx
cmpq %rcx, 0x8(%r14)
jae 0x2c782
movq %rcx, %rax
shrq %rax
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rcx
cmovbeq %rax, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c940
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rbx
leaq 0x1(%rbx), %rcx
jmp 0x2c786
movq 0x10(%r14), %rax
movq %rcx, (%r14)
movb %r12b, (%rax,%rbx)
movl $0x1, %eax
orl %eax, %ebp
orl %r13d, %ebp
shrl $0x1f, %ebp
movq 0x10(%rsp), %rbx
jmp 0x2c938
movq 0x10(%r14), %rax
movw $0x3a69, (%rax,%rcx)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movzbl (%rbx), %edi
movq %r14, %rsi
callq 0x31b51
orl %r12d, %ebp
jmp 0x2c933
leaq 0x6c00e(%rip), %rdi     # 0x987df
movl %esi, %r15d
movl $0x2, %esi
movq %r14, %rdx
callq 0x338b7
movl %eax, %ebp
movl %r13d, %edi
movq %r14, %rsi
callq 0x271c8
orl %r15d, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
cmpl $0x62, %r13d
jle 0x2ca7a
cmpl $0x68, %r13d
jg 0x2cb5f
cmpl $0x63, %r13d
je 0x2cbf3
cmpl $0x66, %r13d
jne 0x2c5ee
leal (,%r12,8), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
je 0x2cb3a
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
xorps %xmm0, %xmm0
cvtss2sd (%rbx), %xmm0
movq %r14, %rdi
callq 0x93f8
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x4, %rbx
decl %r12d
jne 0x2c83f
jmp 0x2cb3a
leaq 0x2(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2c9e1
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c129
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2c9e5
leaq 0x2(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2ca54
movq %rax, %rcx
shrq %rcx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2c1c3
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2ca58
movq 0x10(%r14), %rax
negl %r15d
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rax,%rcx)
movl %r15d, %edi
movq %r14, %rsi
callq 0x31b51
orl %r13d, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
incq %rbx
jmp 0x2cb3a
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x2c792
movq 0x10(%r14), %rax
movw $0x3a69, (%rax,%rcx)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movl (%rbx), %r15d
testl %r15d, %r15d
jns 0x2caf8
movq (%r14), %rcx
leaq 0x3(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2cae6
movq %rax, %rcx
shrq %rcx
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cb96
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2caea
movq 0x10(%r14), %rax
movw $0x3a69, (%rax,%rcx)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movl (%rbx), %edi
movq %r14, %rsi
callq 0x31b51
orl %r12d, %ebp
jmp 0x2cb06
movq 0x10(%r14), %rax
movw $0x3a69, (%rax,%rcx)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movswl (%rbx), %r15d
testl %r15d, %r15d
jns 0x2cb23
movq (%r14), %rcx
leaq 0x3(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2cb11
movq %rax, %rcx
shrq %rcx
xorl %r12d, %r12d
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
cmovbeq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cba0
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2cb15
movq 0x10(%r14), %rax
movw $0x3a69, (%rax,%rcx)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movzwl (%rbx), %edi
movq %r14, %rsi
callq 0x31b51
orl %r12d, %ebp
jmp 0x2cb31
cmpl $0x43, %r13d
je 0x2cba7
cmpl $0x49, %r13d
je 0x2cd6e
cmpl $0x53, %r13d
jne 0x2c5ee
leal (,%r12,4), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
je 0x2cb3a
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movzwl (%rbx), %edi
movq %r14, %rsi
callq 0x31b51
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x2, %rbx
decl %r12d
jne 0x2cab9
jmp 0x2cb3a
movq 0x10(%r14), %rax
negl %r15d
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rax,%rcx)
movl %r15d, %edi
movq %r14, %rsi
callq 0x31b51
orl %r13d, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
addq $0x4, %rbx
jmp 0x2cb3a
movq 0x10(%r14), %rax
negl %r15d
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rax,%rcx)
movl %r15d, %edi
movq %r14, %rsi
callq 0x31b51
orl %r13d, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
addq $0x2, %rbx
xorl %r14d, %r14d
testl %ebp, %ebp
cmoveq %rbx, %r14
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x2c930
cmpl $0x69, %r13d
je 0x2ccaf
cmpl $0x73, %r13d
jne 0x2c5ee
leal (,%r12,4), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
jne 0x2cdf0
jmp 0x2cb3a
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x2cb03
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x2cb2e
leal (%r12,%r12), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
je 0x2cb3a
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movzbl (%rbx), %edi
movq %r14, %rsi
callq 0x31b51
shrl $0x1f, %eax
orl %eax, %ebp
incq %rbx
decl %r12d
jne 0x2cbc4
jmp 0x2cb3a
leal (%r12,%r12), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
je 0x2cb3a
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movsbl (%rbx), %r15d
testl %r15d, %r15d
jns 0x2cc87
movq (%r14), %rcx
leaq 0x3(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2cc75
movq %rax, %r13
shrq %r13
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r13
addq %rax, %r13
movq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cca8
movq %rax, 0x10(%r14)
movq %r13, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2cc79
movq 0x10(%r14), %rax
negl %r15d
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rax,%rcx)
movl %r15d, %edi
movq %r14, %rsi
callq 0x31b51
shrl $0x1f, %eax
orl %eax, %ebp
incq %rbx
decl %r12d
jne 0x2cc10
jmp 0x2cb3a
movl $0x1, %eax
jmp 0x2cc95
leal (%r12,%r12), %eax
leal (%rax,%rax,2), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
je 0x2cb3a
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movl (%rbx), %r15d
testl %r15d, %r15d
jns 0x2cd45
movq (%r14), %rcx
leaq 0x3(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2cd33
movq %rax, %r13
shrq %r13
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r13
addq %rax, %r13
movq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cd67
movq %rax, 0x10(%r14)
movq %r13, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2cd37
movq 0x10(%r14), %rax
negl %r15d
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rax,%rcx)
movl %r15d, %edi
movq %r14, %rsi
callq 0x31b51
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x4, %rbx
decl %r12d
jne 0x2cccf
jmp 0x2cb3a
movl $0x1, %eax
jmp 0x2cd53
leal (%r12,%r12), %eax
leal (%rax,%rax,2), %esi
movq %r14, %rdi
callq 0x3394e
testl %eax, %eax
js 0x2cdb9
testl %r12d, %r12d
je 0x2cb3a
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movl (%rbx), %edi
movq %r14, %rsi
callq 0x31b51
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x4, %rbx
decl %r12d
jne 0x2cd8a
jmp 0x2cb3a
leaq 0x6ba22(%rip), %rsi     # 0x987e2
leaq 0x6a8ce(%rip), %rdx     # 0x97695
xorl %r14d, %r14d
movl $0x1, %edi
xorl %eax, %eax
callq 0x13de5
callq 0x4050
movl $0xc, (%rax)
jmp 0x2cb43
movl $0x1, %eax
jmp 0x2ce75
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movswl (%rbx), %r15d
testl %r15d, %r15d
jns 0x2ce67
movq (%r14), %rcx
leaq 0x3(%rcx), %rax
cmpq %rax, 0x8(%r14)
jae 0x2ce55
movq %rax, %r13
shrq %r13
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r13
addq %rax, %r13
movq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cde6
movq %rax, 0x10(%r14)
movq %r13, 0x8(%r14)
movq (%r14), %rcx
jmp 0x2ce59
movq 0x10(%r14), %rax
negl %r15d
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rax,%rcx)
movl %r15d, %edi
movq %r14, %rsi
callq 0x31b51
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x2, %rbx
decl %r12d
jne 0x2cdf0
jmp 0x2cb3a