// File: /workspace/github_c_makefile_star2_O1/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
pushq %rax
movq %r8, %r14
movq %rcx, %r15
movq %rdx, (%rsp)
movl %esi, %r12d
movabsq $0x3fffffffffffffff, %rbx # imm = 0x3FFFFFFFFFFFFFFF
movq (%r8), %rax
cmpq $-0x2, %rax
jb 0x2ca48
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2caa4
movq %rdi, %r13
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
jae 0x2ca8b
movq %rcx, %rdx
shrq %rdx
xorl %ebp, %ebp
cmpq %rbx, %rax
cmovbeq %rdx, %rbp
addq %rcx, %rbp
movq 0x10(%r14), %rdi
movq %rbp, %rsi
callq 0x4840
testq %rax, %rax
je 0x2ca41
movq %rax, 0x10(%r14)
movq %rbp, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movzwl (%r13), %edx
movw %dx, (%rcx,%rax)
addq $0x2, (%r14)
movl $0x2, %ebp
movq (%r14), %rax
incq %rax
cmpq %rax, 0x8(%r14)
jae 0x2cae0
movq %rax, %rcx
shrq %rcx
xorl %r13d, %r13d
cmpq %rbx, %rax
cmovbeq %rcx, %r13
addq %rax, %r13
movq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cb87
movq %rax, 0x10(%r14)
movq %r13, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x3a, (%rcx,%rax)
movl $0x1, %ebx
orl %ebp, %ebx
movl %ebx, %ebp
shrl $0x1f, %ebp
movzbl %r12b, %eax
cmpl $0x59, %eax
jg 0x2cb49
leal -0x41(%rax), %ecx
cmpl $0x8, %ecx
ja 0x2cd45
leaq 0x6d6fe(%rip), %rax     # 0x9a218
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2d00d
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d076
leal -0x63(%rax), %ecx
cmpl $0x6, %ecx
ja 0x2cb91
leaq 0x6d6e4(%rip), %rax     # 0x9a23c
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2cf32
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2cf9b
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0x2caf7
cmpl $0x5a, %eax
je 0x2cbd3
cmpl $0x73, %eax
jne 0x2d1de
subq (%rsp), %r15
cmpq $0x2, %r15
jl 0x2d1de
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2d3a7
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d410
movq (%r14), %rax
incq %rax
cmpq %rax, 0x8(%r14)
jae 0x2cc19
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
testq %rax, %rax
je 0x2d169
movq %rax, 0x10(%r14)
movq %r13, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb %r12b, (%rcx,%rax)
movl $0x1, %r13d
movq (%r14), %rax
incq %rax
cmpq %rax, 0x8(%r14)
jae 0x2cc77
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 0x2d174
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x3a, (%rcx,%rax)
movl $0x1, %eax
movq (%rsp), %r12
orl %eax, %r13d
orl %ebx, %r13d
shrl $0x1f, %r13d
cmpq %r15, %r12
setb %bl
jae 0x2cebe
movb (%r12), %bpl
testb %bpl, %bpl
je 0x2cebe
incq %r12
movq %r12, %rax
movq %rax, %r12
movq (%r14), %rax
incq %rax
cmpq %rax, 0x8(%r14)
jae 0x2cd08
movq %r12, %rbx
movq %rax, %r12
shrq %r12
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2cd3b
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq %rbx, %r12
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb %bpl, (%rcx,%rax)
xorl %eax, %eax
orl %eax, %r13d
cmpq %r15, %r12
je 0x2ceb8
movb (%r12), %bpl
leaq 0x1(%r12), %rax
testb %bpl, %bpl
jne 0x2ccbb
jmp 0x2ceb8
movl $0x1, %eax
movq %rbx, %r12
jmp 0x2cd1c
cmpl $0x53, %eax
jne 0x2d1de
subq (%rsp), %r15
cmpq $0x2, %r15
jl 0x2d1de
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2d47f
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d4e8
subq (%rsp), %r15
cmpq $0x4, %r15
jl 0x2d1de
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2d1f1
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d25a
subq (%rsp), %r15
cmpq $0x8, %r15
jl 0x2d1de
movq (%rsp), %r12
movsd (%r12), %xmm0
leaq 0x6e9fe(%rip), %rsi     # 0x9b7d3
movq %r14, %rdi
movb $0x1, %al
callq 0x9aab
addq $0x8, %r12
jmp 0x2d500
subq (%rsp), %r15
cmpq $0x4, %r15
jl 0x2d1de
movq (%rsp), %r12
cvtss2sd (%r12), %xmm0
leaq 0x6e9c7(%rip), %rsi     # 0x9b7ce
movq %r14, %rdi
movb $0x1, %al
callq 0x9aab
jmp 0x2d344
subq (%rsp), %r15
cmpq $0x4, %r15
jl 0x2d1de
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2d2c8
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d331
movq (%rsp), %rax
movzbl (%rax), %r12d
leal -0x41(%r12), %eax
cmpl $0x32, %eax
ja 0x2d5d7
movabsq $0x400000005, %rcx      # imm = 0x400000005
btq %rax, %rcx
jb 0x2d17e
movabsq $0x12000000100, %rcx    # imm = 0x12000000100
btq %rax, %rcx
jae 0x2d185
movl $0x4, %ecx
jmp 0x2d19e
movq (%r14), %rax
cmpq $-0x2, %rax
jb 0x2d0e4
callq 0x4050
movl $0x4b, (%rax)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d14d
cmpq %r15, %r12
setb %bl
movq (%r14), %rax
subq $-0x2, %rax
jae 0x2cf12
cmpq %rax, 0x8(%r14)
jae 0x2cf03
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 0x2cf1d
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movb $0x0, (%rcx,%rax)
xorl %ebp, %ebp
jmp 0x2cf22
callq 0x4050
movl $0x4b, (%rax)
movl $0x1, %ebp
testb %bl, %bl
je 0x2d1de
orl %r13d, %ebp
jmp 0x2d161
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2cf85
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d5e0
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a69, (%rcx,%rax)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movsbl (%r12), %r15d
testl %r15d, %r15d
jns 0x2d005
movq (%r14), %rax
addq $0x3, %rax
cmpq %rax, 0x8(%r14)
jae 0x2cff0
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 0x2d5fe
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%rsp), %r12
negl %r15d
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rcx,%rax)
movl %r15d, %edi
jmp 0x2d152
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2d060
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d5ea
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a41, (%rcx,%rax)    # imm = 0x3A41
addq $0x2, (%r14)
movl $0x2, %ebp
movb (%r12), %r12b
movq (%r14), %rax
incq %rax
cmpq %rax, 0x8(%r14)
jae 0x2d0c0
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 0x2d51b
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb %r12b, (%rcx,%rax)
movl $0x1, %eax
orl %eax, %ebp
orl %ebx, %ebp
shrl $0x1f, %ebp
movq (%rsp), %r12
jmp 0x2d161
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2d137
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d5f4
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a69, (%rcx,%rax)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movzbl (%r12), %edi
movq %r14, %rsi
callq 0x32cef
orl %ebx, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
incq %r12
jmp 0x2d500
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
jmp 0x2cc31
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x2cc8e
movl $0x1, %ecx
jmp 0x2d19e
movabsq $0x4000000040000, %rcx  # imm = 0x4000000040000
btq %rax, %rcx
jae 0x2d5d7
movl $0x2, %ecx
xorl %eax, %eax
movq (%rsp), %rdx
incq %rdx
movl $0x2, %esi
testb %al, %al
jne 0x2d1c0
movq %r15, %rax
subq %rdx, %rax
cmpq $0x4, %rax
jge 0x2d34d
movq %rdx, %r12
cmpl $0x7, %esi
je 0x2d37a
cmpl $0x2, %esi
je 0x2d1de
testl %esi, %esi
jne 0x2d509
jmp 0x2d500
callq 0x4050
movl $0x16, (%rax)
xorl %r14d, %r14d
jmp 0x2d509
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2d244
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d683
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a69, (%rcx,%rax)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movl (%r12), %r15d
testl %r15d, %r15d
jns 0x2d2c3
movq (%r14), %rax
addq $0x3, %rax
cmpq %rax, 0x8(%r14)
jae 0x2d2ae
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 0x2d6ab
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%rsp), %r12
negl %r15d
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rcx,%rax)
movl %r15d, %edi
jmp 0x2d335
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2d31b
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d68d
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a69, (%rcx,%rax)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movl (%r12), %edi
movq %r14, %rsi
callq 0x32cef
orl %ebx, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
addq $0x4, %r12
jmp 0x2d500
movq (%rsp), %rax
movl 0x1(%rax), %r13d
addq $0x5, %rax
movq %rax, (%rsp)
subq %rax, %r15
movq %r15, %rax
xorl %edx, %edx
divq %rcx
cmpq %r13, %rax
jae 0x2d525
movq (%rsp), %r12
jmp 0x2d1c3
leaq 0x6e45a(%rip), %rsi     # 0x9b7db
leaq 0x6d2fd(%rip), %rdx     # 0x9a685
xorl %r14d, %r14d
movl $0x1, %edi
xorl %eax, %eax
callq 0x14378
callq 0x4050
movl $0xc, (%rax)
jmp 0x2d509
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2d3fa
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d697
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a69, (%rcx,%rax)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movswl (%r12), %r15d
testl %r15d, %r15d
jns 0x2d47a
movq (%r14), %rax
addq $0x3, %rax
cmpq %rax, 0x8(%r14)
jae 0x2d465
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 0x2d7a1
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq (%rsp), %r12
negl %r15d
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rcx,%rax)
movl %r15d, %edi
jmp 0x2d4ed
addq $0x2, %rax
cmpq $0x1, %rax
movq %rax, %rcx
adcq $0x0, %rcx
cmpq %rcx, 0x8(%r14)
movq (%rsp), %r12
jae 0x2d4d2
movq %rcx, %rdx
shrq %rdx
xorl %r15d, %r15d
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
cmovbeq %rdx, %r15
addq %rcx, %r15
movq 0x10(%r14), %rdi
movq %r15, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d6a1
movq %rax, 0x10(%r14)
movq %r15, 0x8(%r14)
movq (%r14), %rax
movq 0x10(%r14), %rcx
movw $0x3a69, (%rcx,%rax)    # imm = 0x3A69
addq $0x2, (%r14)
movl $0x2, %ebp
movzwl (%r12), %edi
movq %r14, %rsi
callq 0x32cef
orl %ebx, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
addq $0x2, %r12
xorl %r14d, %r14d
testl %ebp, %ebp
cmoveq %r12, %r14
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x2d0d7
leaq 0x6e2ac(%rip), %rdi     # 0x9b7d8
movl $0x2, %esi
movq %r14, %rdx
callq 0x34b55
movl %eax, %ebp
movl %r12d, %edi
movq %r14, %rsi
callq 0x27d29
orl %ebx, %ebp
orl %eax, %ebp
shrl $0x1f, %ebp
cmpl $0x62, %r12d
jle 0x2d60c
cmpl $0x68, %r12d
jg 0x2d6b9
cmpl $0x63, %r12d
movl $0x2, %esi
je 0x2d807
cmpl $0x66, %r12d
jne 0x2d371
leal (,%r13,8), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
movq (%rsp), %r12
js 0x2d8d5
xorl %esi, %esi
testl %r13d, %r13d
je 0x2d1c3
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
xorps %xmm0, %xmm0
cvtss2sd (%r12), %xmm0
movq %r14, %rdi
callq 0x941c
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x4, %r12
decl %r13d
jne 0x2d5a1
jmp 0x2da02
movb $0x1, %al
xorl %ecx, %ecx
jmp 0x2d1a0
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2cf9b
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2d076
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2d14d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d15a
cmpl $0x43, %r12d
je 0x2d7af
cmpl $0x49, %r12d
je 0x2d9b0
cmpl $0x53, %r12d
jne 0x2da13
leal (,%r13,4), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
movq (%rsp), %r12
js 0x2d8d5
xorl %esi, %esi
testl %r13d, %r13d
je 0x2d1c3
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movzwl (%r12), %edi
movq %r14, %rsi
callq 0x32cef
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x2, %r12
decl %r13d
jne 0x2d651
jmp 0x2da02
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2d25a
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2d331
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2d410
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x2d4e8
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d33d
cmpl $0x69, %r12d
movl $0x2, %esi
je 0x2d8df
cmpl $0x73, %r12d
jne 0x2d371
leal (,%r13,4), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
movq (%rsp), %r12
js 0x2d8d5
testl %r13d, %r13d
je 0x2da02
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movswl (%r12), %r15d
testl %r15d, %r15d
jns 0x2d773
movq (%r14), %rax
addq $0x3, %rax
cmpq %rax, 0x8(%r14)
jae 0x2d75e
movq %r12, %rbx
movq %rax, %r12
shrq %r12
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d797
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq %rbx, %r12
negl %r15d
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rcx,%rax)
movl %r15d, %edi
movq %r14, %rsi
callq 0x32cef
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x2, %r12
xorl %esi, %esi
decl %r13d
jne 0x2d6f7
jmp 0x2d1c3
movl $0x1, %eax
movq %rbx, %r12
jmp 0x2d781
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq (%rsp), %r12
jmp 0x2d4f5
leal (,%r13,2), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
js 0x2da09
xorl %esi, %esi
testl %r13d, %r13d
movq (%rsp), %r12
je 0x2d1c3
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movzbl (%r12), %edi
movq %r14, %rsi
callq 0x32cef
shrl $0x1f, %eax
orl %eax, %ebp
incq %r12
decl %r13d
jne 0x2d7d6
jmp 0x2da02
leal (,%r13,2), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
movq (%rsp), %r12
js 0x2d8d5
testl %r13d, %r13d
je 0x2da02
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movsbl (%r12), %r15d
testl %r15d, %r15d
jns 0x2d8a8
movq (%r14), %rax
addq $0x3, %rax
cmpq %rax, 0x8(%r14)
jae 0x2d893
movq %r12, %rbx
movq %rax, %r12
shrq %r12
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d8cb
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq %rbx, %r12
negl %r15d
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rcx,%rax)
movl %r15d, %edi
movq %r14, %rsi
callq 0x32cef
shrl $0x1f, %eax
orl %eax, %ebp
incq %r12
xorl %esi, %esi
decl %r13d
jne 0x2d82c
jmp 0x2d1c3
movl $0x1, %eax
movq %rbx, %r12
jmp 0x2d8b6
movl $0x7, %esi
jmp 0x2d1c3
leal (,%r13,2), %eax
leal (%rax,%rax,2), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
js 0x2da09
testl %r13d, %r13d
movq (%rsp), %r12
je 0x2da02
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movl (%r12), %r15d
testl %r15d, %r15d
jns 0x2d982
movq (%r14), %rax
addq $0x3, %rax
cmpq %rax, 0x8(%r14)
jae 0x2d96d
movq %r12, %rbx
movq %rax, %r12
shrq %r12
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rax
movl $0x0, %ecx
cmovaq %rcx, %r12
addq %rax, %r12
movq 0x10(%r14), %rdi
movq %r12, %rsi
callq 0x4840
testq %rax, %rax
je 0x2d9a6
movq %rax, 0x10(%r14)
movq %r12, 0x8(%r14)
movq %rbx, %r12
negl %r15d
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2d, (%rcx,%rax)
movl %r15d, %edi
movq %r14, %rsi
callq 0x32cef
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x4, %r12
xorl %esi, %esi
decl %r13d
jne 0x2d907
jmp 0x2d1c3
movl $0x1, %eax
movq %rbx, %r12
jmp 0x2d990
leal (,%r13,2), %eax
leal (%rax,%rax,2), %esi
movq %r14, %rdi
callq 0x34be4
testl %eax, %eax
js 0x2da09
xorl %esi, %esi
testl %r13d, %r13d
movq (%rsp), %r12
je 0x2d1c3
movq (%r14), %rax
movq 0x10(%r14), %rcx
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
movb $0x2c, (%rcx,%rax)
movl (%r12), %edi
movq %r14, %rsi
callq 0x32cef
shrl $0x1f, %eax
orl %eax, %ebp
addq $0x4, %r12
decl %r13d
jne 0x2d9d6
xorl %esi, %esi
jmp 0x2d1c3
movl $0x7, %esi
jmp 0x2d371
movq (%rsp), %r12
movl $0x2, %esi
jmp 0x2d1c3