// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x80, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rdx
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x30(%rbp), %rsi
movl $0x3a, %edi
callq 0x3ea70
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x43, %eax
jne 0x3ebb3
movq -0x30(%rbp), %rdx
leaq 0xb419b(%rip), %rdi     # 0xf2d01
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
movzbl (%rax), %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x3f52a
movzbl -0x11(%rbp), %eax
cmpl $0x63, %eax
jne 0x3ec14
movq -0x30(%rbp), %rdx
leaq 0xb413a(%rip), %rdi     # 0xf2d01
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
movsbl (%rax), %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x3f528
movzbl -0x11(%rbp), %eax
cmpl $0x53, %eax
jne 0x3ec92
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jl 0x3ec88
movq -0x30(%rbp), %rdx
leaq 0xb40c8(%rip), %rdi     # 0xf2d01
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rdi
callq 0x47b20
movzwl %ax, %edi
movq -0x30(%rbp), %rsi
callq 0x45990
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x40(%rbp)
jmp 0x3ec8d
jmp 0x3f54a
jmp 0x3f526
movzbl -0x11(%rbp), %eax
cmpl $0x73, %eax
jne 0x3ed10
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x2, %rax
jl 0x3ed06
movq -0x30(%rbp), %rdx
leaq 0xb404a(%rip), %rdi     # 0xf2d01
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rdi
callq 0x47b40
movswl %ax, %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x40(%rbp)
jmp 0x3ed0b
jmp 0x3f54a
jmp 0x3f524
movzbl -0x11(%rbp), %eax
cmpl $0x49, %eax
jne 0x3ed8d
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jl 0x3ed83
movq -0x30(%rbp), %rdx
leaq 0xb3fcc(%rip), %rdi     # 0xf2d01
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rdi
callq 0x32820
movl %eax, %edi
movq -0x30(%rbp), %rsi
callq 0x45990
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
jmp 0x3ed88
jmp 0x3f54a
jmp 0x3f522
movzbl -0x11(%rbp), %eax
cmpl $0x69, %eax
jne 0x3ee0a
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jl 0x3ee00
movq -0x30(%rbp), %rdx
leaq 0xb3f4f(%rip), %rdi     # 0xf2d01
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rdi
callq 0x34090
movl %eax, %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
jmp 0x3ee05
jmp 0x3f54a
jmp 0x3f520
movzbl -0x11(%rbp), %eax
cmpl $0x41, %eax
jne 0x3ee6b
movq -0x30(%rbp), %rdx
leaq 0xb3ee6(%rip), %rdi     # 0xf2d04
movl $0x2, %esi
callq 0x47a10
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
movzbl (%rax), %edi
movq -0x30(%rbp), %rsi
callq 0x3ea70
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x3f51e
movzbl -0x11(%rbp), %eax
cmpl $0x66, %eax
jne 0x3eec4
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jl 0x3eeba
movq -0x30(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x40(%rbp), %rdi
callq 0x41ba0
movq -0x58(%rbp), %rdi
cvtss2sd %xmm0, %xmm0
leaq 0xb3e62(%rip), %rsi     # 0xf2d07
movb $0x1, %al
callq 0xb040
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
jmp 0x3eebf
jmp 0x3f54a
jmp 0x3f51c
movzbl -0x11(%rbp), %eax
cmpl $0x64, %eax
jne 0x3ef19
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x8, %rax
jl 0x3ef0f
movq -0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x40(%rbp), %rdi
callq 0x41b70
movq -0x60(%rbp), %rdi
leaq 0xb3e12(%rip), %rsi     # 0xf2d0c
movb $0x1, %al
callq 0xb040
movq -0x40(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
jmp 0x3ef14
jmp 0x3f54a
jmp 0x3f51a
movzbl -0x11(%rbp), %eax
cmpl $0x5a, %eax
je 0x3ef2f
movzbl -0x11(%rbp), %eax
cmpl $0x48, %eax
jne 0x3f007
movzbl -0x11(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x3ea70
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x30(%rbp), %rsi
movl $0x3a, %edi
callq 0x3ea70
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rcx
xorl %eax, %eax
cmpq -0x28(%rbp), %rcx
movb %al, -0x61(%rbp)
jae 0x3ef8b
movq -0x40(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x61(%rbp)
movb -0x61(%rbp), %al
testb $0x1, %al
jne 0x3ef94
jmp 0x3efc2
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movzbl (%rax), %edi
movq -0x30(%rbp), %rsi
callq 0x3ea70
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
jmp 0x3ef6c
movq -0x30(%rbp), %rdx
leaq 0xb0fa8(%rip), %rdi     # 0xeff75
xorl %eax, %eax
movl %eax, %esi
callq 0x38ef0
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x28(%rbp), %rax
jb 0x3eff6
jmp 0x3f54a
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x3f518
movzbl -0x11(%rbp), %eax
cmpl $0x42, %eax
jne 0x3f514
movq -0x40(%rbp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, -0x40(%rbp)
movb (%rax), %al
movb %al, -0x41(%rbp)
movzbl -0x41(%rbp), %eax
movl %eax, -0x68(%rbp)
subl $0x41, %eax
je 0x3f07b
jmp 0x3f035
movl -0x68(%rbp), %eax
subl $0x43, %eax
je 0x3f07b
jmp 0x3f03f
movl -0x68(%rbp), %eax
subl $0x49, %eax
je 0x3f08d
jmp 0x3f049
movl -0x68(%rbp), %eax
subl $0x53, %eax
je 0x3f084
jmp 0x3f053
movl -0x68(%rbp), %eax
subl $0x63, %eax
je 0x3f07b
jmp 0x3f05d
movl -0x68(%rbp), %eax
subl $0x66, %eax
je 0x3f08d
jmp 0x3f067
movl -0x68(%rbp), %eax
subl $0x69, %eax
je 0x3f08d
jmp 0x3f071
movl -0x68(%rbp), %eax
subl $0x73, %eax
je 0x3f084
jmp 0x3f096
movl $0x1, -0x48(%rbp)
jmp 0x3f09d
movl $0x2, -0x48(%rbp)
jmp 0x3f09d
movl $0x4, -0x48(%rbp)
jmp 0x3f09d
movl $0x0, -0x48(%rbp)
cmpl $0x0, -0x48(%rbp)
je 0x3f0b4
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
cmpq $0x4, %rax
jge 0x3f0b9
jmp 0x3f54a
movq -0x40(%rbp), %rdi
callq 0x32820
movl %eax, -0x50(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
subq %rcx, %rax
movl -0x48(%rbp), %ecx
xorl %edx, %edx
divq %rcx
movl -0x50(%rbp), %ecx
cmpq %rcx, %rax
jae 0x3f0f1
jmp 0x3f54a
movq -0x30(%rbp), %rdx
leaq 0xb3c15(%rip), %rdi     # 0xf2d11
movl $0x2, %esi
callq 0x47a10
movl %eax, %ecx
shrl $0x1f, %ecx
movl -0x34(%rbp), %eax
orl %ecx, %eax
movl %eax, -0x34(%rbp)
movzbl -0x41(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x39080
movl %eax, %ecx
shrl $0x1f, %ecx
movl -0x34(%rbp), %eax
orl %ecx, %eax
movl %eax, -0x34(%rbp)
movzbl -0x41(%rbp), %eax
addl $-0x43, %eax
movl %eax, %ecx
movq %rcx, -0x70(%rbp)
subl $0x30, %eax
ja 0x3f510
movq -0x70(%rbp), %rax
leaq 0xb2366(%rip), %rcx     # 0xf14b4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x30(%rbp), %rdi
movl -0x50(%rbp), %eax
shll %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f173
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f1d7
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rax
movsbl (%rax), %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f17a
jmp 0x3f512
movq -0x30(%rbp), %rdi
movl -0x50(%rbp), %eax
shll %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f1f8
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f25c
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rax
movzbl (%rax), %edi
movq -0x30(%rbp), %rsi
callq 0x45990
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f1ff
jmp 0x3f512
movq -0x30(%rbp), %rdi
movl -0x50(%rbp), %eax
shll $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f27e
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f2e7
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rdi
callq 0x47b40
movswl %ax, %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f285
jmp 0x3f512
movq -0x30(%rbp), %rdi
movl -0x50(%rbp), %eax
shll $0x2, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f309
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f372
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rdi
callq 0x47b20
movzwl %ax, %edi
movq -0x30(%rbp), %rsi
callq 0x45990
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f310
jmp 0x3f512
movq -0x30(%rbp), %rdi
imull $0x6, -0x50(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f392
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f3fa
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rdi
callq 0x34090
movl %eax, %edi
movq -0x30(%rbp), %rsi
callq 0x39000
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f399
jmp 0x3f512
movq -0x30(%rbp), %rdi
imull $0x6, -0x50(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f41a
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f482
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rdi
callq 0x32820
movl %eax, %edi
movq -0x30(%rbp), %rsi
callq 0x45990
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f421
jmp 0x3f512
movq -0x30(%rbp), %rdi
movl -0x50(%rbp), %eax
shll $0x3, %eax
movl %eax, %eax
movl %eax, %esi
callq 0x47b90
cmpl $0x0, %eax
jge 0x3f4a4
jmp 0x3f55f
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
cmpl -0x50(%rbp), %eax
jae 0x3f50e
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
movb $0x2c, (%rax,%rcx)
movq -0x40(%rbp), %rdi
callq 0x41ba0
cvtss2sd %xmm0, %xmm0
movq -0x30(%rbp), %rdi
callq 0xa650
cmpl $0x0, %eax
setl %al
andb $0x1, %al
movzbl %al, %eax
orl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x40(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x40(%rbp)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x3f4ab
jmp 0x3f512
jmp 0x3f54a
jmp 0x3f516
jmp 0x3f54a
jmp 0x3f518
jmp 0x3f51a
jmp 0x3f51c
jmp 0x3f51e
jmp 0x3f520
jmp 0x3f522
jmp 0x3f524
jmp 0x3f526
jmp 0x3f528
jmp 0x3f52a
cmpl $0x0, -0x34(%rbp)
je 0x3f538
xorl %eax, %eax
movq %rax, -0x78(%rbp)
jmp 0x3f540
movq -0x40(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3f58c
callq 0x4050
movl $0x16, (%rax)
movq $0x0, -0x8(%rbp)
jmp 0x3f58c
movl $0x1, %edi
leaq 0xb37a9(%rip), %rsi     # 0xf2d14
leaq 0xb263e(%rip), %rdx     # 0xf1bb0
movb $0x0, %al
callq 0x1b030
callq 0x4050
movl $0xc, (%rax)
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)