// File: /workspace/github_c_makefile_star2_O1/samtools[P]htslib/htscodecs/htscodecs/tokenise_name3.c
// Function: tok3_decode_names
uint8_t *tok3_decode_names(uint8_t *in, uint32_t sz, uint32_t *out_len) {
    if (sz < 9)
        return NULL;

    int i, o = 9;
    //int ulen   = *(uint32_t *)in;
    int ulen   = (in[0]<<0) | (in[1]<<8) | (in[2]<<16) |
        (((uint32_t)in[3])<<24);

    if (ulen < 0 || ulen >= INT_MAX-1024)
        return NULL;

#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
    // Speed up fuzzing by blocking excessive sizes
    if (ulen > 100000)
        return NULL;
#endif

    //int nreads = *(uint32_t *)(in+4);
    int nreads = (in[4]<<0) | (in[5]<<8) | (in[6]<<16) | (((uint32_t)in[7])<<24);
    int use_arith = in[8];
    name_context *ctx = create_context(nreads);
    if (!ctx)
        return NULL;

    // Unpack descriptors
    int tnum = -1;
    while (o < sz) {
        uint8_t ttype = in[o++];
        if (ttype & 64) {
            if (o+2 > sz) goto err;
            int j = in[o++]<<4;
            j += in[o++];
            if (ttype & 128) {
                tnum++;
                if (tnum >= MAX_TOKENS)
                    goto err;
                ctx->max_tok = tnum+1;
                memset(&ctx->desc[tnum<<4], 0, 16*sizeof(ctx->desc[tnum]));
            }

            if ((ttype & 15) != 0 && (ttype & 128)) {
                if (tnum < 0) goto err;
                ctx->desc[tnum<<4].buf = malloc(nreads);
                if (!ctx->desc[tnum<<4].buf)
                    goto err;

                ctx->desc[tnum<<4].buf_l = 0;
                ctx->desc[tnum<<4].buf_a = nreads;
                ctx->desc[tnum<<4].buf[0] = ttype&15;
                memset(&ctx->desc[tnum<<4].buf[1], N_MATCH, nreads-1);
            }

            if (tnum < 0) goto err;
            i = (tnum<<4) | (ttype&15);
            if (j >= i)
                goto err;
            if (!ctx->desc[j].buf)
                goto err; // Attempt to copy a non-existent stream

            ctx->desc[i].buf_l = 0;
            ctx->desc[i].buf_a = ctx->desc[j].buf_a;
            if (ctx->desc[i].buf) free(ctx->desc[i].buf);
            ctx->desc[i].buf = malloc(ctx->desc[i].buf_a);
            if (!ctx->desc[i].buf)
                goto err;

            memcpy(ctx->desc[i].buf, ctx->desc[j].buf, ctx->desc[i].buf_a);
            //fprintf(stderr, "Copy ttype %d, i=%d,j=%d, size %d\n", ttype, i, j, (int)ctx->desc[i].buf_a);
            continue;
        }

        //if (ttype == 0)
        if (ttype & 128) {
            tnum++;
            if (tnum >= MAX_TOKENS)
                goto err;
            ctx->max_tok = tnum+1;
            memset(&ctx->desc[tnum<<4], 0, 16*sizeof(ctx->desc[tnum]));
        }

        if ((ttype & 15) != 0 && (ttype & 128)) {
            if (tnum < 0) goto err;
            if (ctx->desc[tnum<<4].buf) free(ctx->desc[tnum<<4].buf);
            ctx->desc[tnum<<4].buf = malloc(nreads);
            if (!ctx->desc[tnum<<4].buf)
                goto err;
            ctx->desc[tnum<<4].buf_l = 0;
            ctx->desc[tnum<<4].buf_a = nreads;
            ctx->desc[tnum<<4].buf[0] = ttype&15;
            memset(&ctx->desc[tnum<<4].buf[1], N_MATCH, nreads-1);
        }

        //fprintf(stderr, "Read %02x\n", c);

        // Load compressed block
        int64_t clen, ulen = uncompressed_size(&in[o], sz-o);
        if (ulen < 0 || ulen >= INT_MAX)
            goto err;
        if (tnum < 0) goto err;
        i = (tnum<<4) | (ttype&15);

        if (i >= MAX_TBLOCKS || i < 0)
            goto err;

        ctx->desc[i].buf_l = 0;
        if (ctx->desc[i].buf) free(ctx->desc[i].buf);
        ctx->desc[i].buf = malloc(ulen);
        if (!ctx->desc[i].buf)
            goto err;

        ctx->desc[i].buf_a = ulen;
        uint64_t usz = ctx->desc[i].buf_a; // convert from size_t for 32-bit sys
        clen = uncompress(use_arith, &in[o], sz-o, ctx->desc[i].buf, &usz);
        ctx->desc[i].buf_a = usz;
        if (clen < 0 || ctx->desc[i].buf_a != ulen)
            goto err;

        // fprintf(stderr, "%d: Decode tnum %d type %d clen %d ulen %d via %d\n",
        //      o, tnum, ttype, (int)clen, (int)ctx->desc[i].buf_a, ctx->desc[i].buf[0]);

        o += clen;

        // Encode tnum 0 type 0 ulen 100000 clen 12530 via 2
        // Encode tnum 0 type 6 ulen 196800 clen 43928 via 3
        // Encode tnum 0 type 7 ulen 203200 clen 17531 via 3
        // Encode tnum 1 type 0 ulen 50800 clen 10 via 1
        // Encode tnum 1 type 1 ulen 3 clen 5 via 0
        // Encode tnum 2 type 0 ulen 50800 clen 10 via 1
        //      
    }

    int ret;
    ulen += 1024; // for easy coding in decode_name.
    uint8_t *out = malloc(ulen);
    if (!out)
        goto err;

    size_t out_sz = 0;
    while ((ret = decode_name(ctx, (char *)out+out_sz, ulen)) > 0) {
        out_sz += ret;
        ulen -= ret;
    }

    if (ret < 0)
        free(out);

    free_context(ctx);

    *out_len = out_sz;
    return ret == 0 ? out : NULL;

 err:
    free_context(ctx);
    return NULL;
}

// Assembly:
cmpl $0x9, %esi
jae 0x7ede4
xorl %eax, %eax
retq
movzbl 0x3(%rdi), %ecx
xorl %eax, %eax
shll $0x18, %ecx
js 0x7ede3
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdx, %r14
movl %esi, %r12d
movzwl (%rdi), %edx
movzbl 0x2(%rdi), %esi
shll $0x10, %esi
orl %edx, %esi
orl %ecx, %esi
cmpl $0x7ffffbfe, %esi       # imm = 0x7FFFFBFE
jg 0x7ff02
movq %rsi, 0x10(%rsp)
movl 0x4(%rdi), %ebx
movq %rdi, 0x30(%rsp)
movb 0x8(%rdi), %al
movb %al, 0x3f(%rsp)
movl %ebx, %edi
callq 0x7ec51
testq %rax, %rax
je 0x7fed8
movq %rax, %r15
movq %r14, 0x70(%rsp)
cmpl $0x9, %r12d
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %r8
jne 0x7f835
addl $0x400, %edi            # imm = 0x400
movq %rdi, %rbx
callq 0x4680
movq %rax, 0x30(%rsp)
testq %rax, %rax
je 0x7fed0
movq %rbx, %r10
movq %r15, %rbp
addq $0x20, %rbp
xorl %r12d, %r12d
movq 0x30(%r15), %rcx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq 0x28(%r15), %rcx
jae 0x7eea5
movq 0x20(%r15), %rax
leaq 0x1(%rcx), %rdx
movq %rdx, 0x30(%r15)
movzbl (%rax,%rcx), %eax
movslq 0x8(%r15), %r14
leal 0x1(%r14), %ecx
movl %ecx, 0x8(%r15)
cmpl 0x14424(%r15), %r14d
jge 0x7f80a
xorl %ebx, %ebx
testl %eax, %eax
js 0x7f80f
movl 0x14420(%r15), %ecx
shll $0x4, %ecx
cmpl %ecx, %eax
jge 0x7f80f
movl %eax, %ecx
leaq (%rcx,%rcx,4), %r8
movq 0x8(%rbp,%r8,8), %rdx
movq 0x10(%rbp,%r8,8), %rdi
leaq 0x4(%rdi), %rsi
cmpq %rdx, %rsi
ja 0x7ef08
leaq (,%r8,8), %r8
addq %rbp, %r8
movq (%r8), %rcx
movl (%rcx,%rdi), %ecx
movq %rsi, 0x10(%r8)
cmpq %rdx, %rsi
ja 0x7f80a
cmpl %ecx, %r14d
jb 0x7f80a
movq 0x30(%rsp), %rdx
leaq (%rdx,%r12), %r13
movl %r14d, %ebx
subl %ecx, %ebx
testl %ebx, %ebx
movl $0x0, %ecx
cmovlel %ecx, %ebx
cmpl $0x5, %eax
movq %r10, 0x10(%rsp)
jne 0x7f01c
cmpl %r14d, %ebx
je 0x7f80a
movq (%r15), %rax
movl %ebx, %ecx
leaq (%rcx,%rcx,2), %rcx
movq %rcx, 0x8(%rsp)
movq (%rax,%rcx,8), %rbx
movq %rbx, %rdi
callq 0x41d0
movq 0x10(%rsp), %r10
incq %rax
movslq %r10d, %rcx
cmpq %rcx, %rax
jae 0x7f80a
movq %r13, %rdi
movq %rbx, %rsi
callq 0x4460
movq %r13, %rax
movq (%r15), %r13
leaq (%r14,%r14,2), %r14
movq %rax, 0x28(%rsp)
movq %rax, (%r13,%r14,8)
movq 0x8(%rsp), %rax
movslq 0x8(%r13,%rax,8), %rax
leaq (,%rax,4), %rcx
testq %rax, %rax
movl %eax, 0x8(%r13,%r14,8)
leaq (%rcx,%rcx,2), %rdi
movl $0x600, %eax            # imm = 0x600
cmoveq %rax, %rdi
callq 0x4680
movq 0x10(%rsp), %r10
movq %rax, 0x10(%r13,%r14,8)
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testq %rax, %rax
je 0x7f80f
leaq (,%r14,8), %rcx
addq %r13, %rcx
movq 0x8(%rsp), %rdx
movq 0x10(%r13,%rdx,8), %rsi
movslq 0x8(%rcx), %rcx
shlq $0x2, %rcx
leaq (%rcx,%rcx,2), %rdx
movq %rax, %rdi
callq 0x43c0
movq 0x28(%rsp), %rdi
callq 0x41d0
movq 0x10(%rsp), %r10
movq %rax, %rbx
incl %ebx
jmp 0x7f80f
movb $0x0, (%r13)
movl $0x600, %edi            # imm = 0x600
callq 0x4680
movq (%r15), %rcx
leaq (%r14,%r14,2), %r14
movq %rax, 0x10(%rcx,%r14,8)
testq %rax, %rax
je 0x7f824
movq %r13, 0x28(%rsp)
movl %ebx, %eax
movq %rax, 0x20(%rsp)
xorl %r9d, %r9d
movl $0x1, %r13d
movq %rax, 0x48(%rsp)
movq 0x10(%rsp), %r10
leaq 0x240aa(%rip), %r11     # 0xa3110
movq %r14, 0x18(%rsp)
movslq 0x14420(%r15), %rax
cmpq %rax, %r13
jge 0x7f80a
leaq (,%r13,4), %rax
addq %r13, %rax
shlq $0x7, %rax
movq 0x10(%rbp,%rax), %rcx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
cmpq 0x8(%rbp,%rax), %rcx
jae 0x7f0ad
addq %rbp, %rax
movq (%rax), %rdx
leaq 0x1(%rcx), %rsi
movq %rsi, 0x10(%rax)
movzbl (%rdx,%rcx), %edx
movq (%r15), %rax
movl $0x0, 0x8(%rax,%r14,8)
decl %edx
cmpl $0xa, %edx
ja 0x7f18b
movq %r13, %rcx
shlq $0x4, %rcx
movslq (%r11,%rdx,4), %rdx
addq %r11, %rdx
jmpq *%rdx
movl %r13d, %eax
shll $0x4, %eax
incl %eax
cltq
leaq (%rax,%rax,4), %rdx
movq 0x10(%rbp,%rdx,8), %rcx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq 0x8(%rbp,%rdx,8), %rcx
jae 0x7f153
movl %r8d, 0x8(%rsp)
movslq %r9d, %rcx
addq 0x28(%rsp), %rcx
leaq (,%rdx,8), %rdx
addq %rbp, %rdx
movl %r10d, %eax
movq %r9, %rbx
subl %r9d, %eax
movslq %eax, %rsi
xorl %edi, %edi
movq %rdi, %rax
movq (%rdx), %rdi
movq 0x10(%rdx), %r8
leaq 0x1(%r8), %r9
movq %r9, 0x10(%rdx)
movb (%rdi,%r8), %dil
movb %dil, (%rcx,%rax)
testb %dil, %dil
je 0x7f14b
leaq 0x1(%rax), %rdi
cmpq %rsi, %rdi
jge 0x7f14b
movq 0x10(%rdx), %r8
cmpq 0x8(%rdx), %r8
jb 0x7f119
movq %rbx, %r9
movl 0x8(%rsp), %r8d
testl %eax, %eax
js 0x7f7e7
movq (%r15), %rcx
movq 0x10(%rcx,%r14,8), %rcx
leaq (,%r13,2), %rdx
addq %r13, %rdx
movl $0x1, (%rcx,%rdx,4)
movl %r9d, 0x8(%rcx,%rdx,4)
movl %eax, 0x4(%rcx,%rdx,4)
addl %r9d, %eax
movb $0x1, %cl
movl %eax, %r9d
jmp 0x7f7ef
leal 0x1(%r9), %ebx
cmpl %r10d, %ebx
jge 0x7f67b
movslq %r9d, %rax
movq 0x28(%rsp), %rsi
movb $0x0, (%rsi,%rax)
movq (%r15), %rax
movq 0x10(%rax,%r14,8), %rdi
leaq (,%r13,4), %rcx
leaq (%rcx,%rcx,2), %rdx
movl $0xc, (%rdi,%rdx)
movq %rsi, (%rax,%r14,8)
movl %r13d, 0x8(%rax,%r14,8)
leaq (%rcx,%rcx,2), %rsi
addq $0xc, %rsi
callq 0x4840
testq %rax, %rax
je 0x7f1e2
movq (%r15), %rcx
movq %rax, 0x10(%rcx,%r14,8)
movq (%r15), %rax
xorl %ecx, %ecx
cmpq $0x1, 0x10(%rax,%r14,8)
movl $0x0, %r8d
sbbl %r8d, %r8d
orl %ebx, %r8d
movl %ebx, %r9d
movq 0x10(%rsp), %r10
jmp 0x7f6be
movq 0x20(%rsp), %rdx
leaq (%rdx,%rdx,2), %r14
movslq 0x8(%rax,%r14,8), %rdx
cmpq %rdx, %r13
jge 0x7f669
orq $0x9, %rcx
leaq (%rcx,%rcx,4), %rdx
movq 0x10(%rbp,%rdx,8), %rcx
cmpq 0x8(%rbp,%rdx,8), %rcx
jae 0x7f669
leaq (,%rdx,8), %rdx
addq %rbp, %rdx
movq (%rdx), %rsi
leaq 0x1(%rcx), %rdi
movq %rdi, 0x10(%rdx)
movzbl (%rsi,%rcx), %ebx
movl %ebx, 0x38(%rsp)
movq 0x10(%rax,%r14,8), %rax
leaq (,%r13,2), %rcx
addq %r13, %rcx
addl 0x4(%rax,%rcx,4), %ebx
movl %ebx, 0x38(%rsp)
movl 0x8(%rax,%rcx,4), %eax
leal (%r9,%rax), %ecx
incl %ecx
cmpl %r10d, %ecx
jge 0x7f669
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movzbl %al, %edx
movl %ebx, %esi
movq %r9, 0x40(%rsp)
movl %r8d, 0x8(%rsp)
callq 0x80272
movl 0x8(%rsp), %r8d
leaq 0x23e6a(%rip), %r11     # 0xa3110
movq 0x10(%rsp), %r10
addl 0x40(%rsp), %eax
movq (%r15), %rcx
movq 0x18(%rsp), %rdi
movq 0x10(%rcx,%rdi,8), %rdx
leaq (,%r13,4), %rsi
leaq (%rsi,%rsi,2), %rsi
movl $0x3, (%rdx,%rsi)
movl %ebx, 0x4(%rdx,%rsi)
movq 0x10(%rcx,%r14,8), %rcx
movq %rdi, %r14
movl 0x8(%rcx,%rsi), %ecx
movl %ecx, 0x8(%rdx,%rsi)
jmp 0x7f356
leal 0x1(%r9), %eax
cmpl %r10d, %eax
jge 0x7f7e7
orq $0x2, %rcx
leaq (%rcx,%rcx,4), %rdx
movq 0x10(%rbp,%rdx,8), %rcx
cmpq 0x8(%rbp,%rdx,8), %rcx
jae 0x7f7e7
leaq (,%rdx,8), %rdx
addq %rbp, %rdx
movslq %r9d, %rsi
movq (%rdx), %rdi
movl %r8d, %r9d
leaq 0x1(%rcx), %r8
movq %r8, 0x10(%rdx)
movl %r9d, %r8d
movb (%rdi,%rcx), %cl
movq 0x28(%rsp), %rdi
movb %cl, (%rdi,%rsi)
movq (%r15), %rcx
movq 0x10(%rcx,%r14,8), %rcx
leaq (,%r13,2), %rdx
addq %r13, %rdx
movl $0x2, (%rcx,%rdx,4)
movsbl (%rdi,%rsi), %esi
movl %esi, 0x4(%rcx,%rdx,4)
movb $0x1, %cl
movl %eax, %r9d
jmp 0x7f7ef
movq 0x20(%rsp), %rcx
leaq (%rcx,%rcx,2), %rbx
movslq 0x8(%rax,%rbx,8), %rcx
cmpq %rcx, %r13
jge 0x7f7e7
movl %r8d, 0x8(%rsp)
leaq (%rax,%rbx,8), %r8
movq 0x10(%r8), %rax
leaq (,%r13,2), %rsi
addq %r13, %rsi
movl (%rax,%rsi,4), %edx
xorl %ecx, %ecx
decl %edx
cmpl $0x6, %edx
ja 0x7f7e9
leaq (%rax,%rsi,4), %rax
leaq 0x23d92(%rip), %rsi     # 0xa313c
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
movslq 0x4(%rax), %rdx
xorl %ecx, %ecx
testq %rdx, %rdx
js 0x7f7e9
leal (%rdx,%r9), %esi
cmpl %r10d, %esi
jge 0x7f7e9
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movslq 0x8(%rax), %rsi
addq (%r8), %rsi
movq %r9, 0x40(%rsp)
callq 0x43c0
movq 0x40(%rsp), %r9
leaq 0x23d1c(%rip), %r11     # 0xa3110
movq 0x10(%rsp), %r10
movq (%r15), %rax
movq 0x10(%rax,%r14,8), %rcx
leaq (,%r13,4), %rdx
leaq (%rdx,%rdx,2), %rdx
movl $0x1, (%rcx,%rdx)
movl %r9d, 0x8(%rcx,%rdx)
movq 0x10(%rax,%rbx,8), %rax
movl 0x4(%rax,%rdx), %esi
movl %esi, 0x4(%rcx,%rdx)
addl 0x4(%rax,%rdx), %r9d
movb $0x1, %cl
jmp 0x7f7e0
movq 0x10(%rax,%r14,8), %rax
leaq (,%r13,2), %rcx
addq %r13, %rcx
movl $0xb, (%rax,%rcx,4)
movb $0x1, %cl
jmp 0x7f7ef
orq $0x4, %rcx
leaq (%rcx,%rcx,4), %rdx
movq 0x8(%rbp,%rdx,8), %rax
movq 0x10(%rbp,%rdx,8), %rcx
cmpq %rax, %rcx
jae 0x7f486
leaq (,%rdx,8), %rdx
addq %rbp, %rdx
movq (%rdx), %rsi
leaq 0x1(%rcx), %rdi
movq %rdi, 0x10(%rdx)
movzbl (%rsi,%rcx), %edx
movq %rdx, 0x48(%rsp)
cmpq %rax, %rcx
jae 0x7f688
movl %r8d, 0x8(%rsp)
movq %r9, %rbx
movq %r15, %rdi
movl %r13d, %esi
movl $0x3, %edx
leaq 0x38(%rsp), %rcx
callq 0x8023a
testl %eax, %eax
js 0x7f69a
movq 0x48(%rsp), %rcx
movq %rbx, %r9
leal (%rbx,%rcx), %eax
addl $0x14, %eax
movq 0x10(%rsp), %r10
cmpl %r10d, %eax
jae 0x7f6b6
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movl 0x38(%rsp), %ebx
movzbl %cl, %edx
movl %ebx, %esi
movq %rcx, 0x48(%rsp)
movq %r9, 0x40(%rsp)
callq 0x80272
movq 0x10(%rsp), %r10
addl 0x40(%rsp), %eax
movq (%r15), %rcx
movq 0x10(%rcx,%r14,8), %rcx
leaq (,%r13,2), %rdx
addq %r13, %rdx
movl $0x3, (%rcx,%rdx,4)
movl %ebx, 0x4(%rcx,%rdx,4)
movq 0x48(%rsp), %rsi
movl %esi, 0x8(%rcx,%rdx,4)
jmp 0x7f59e
movl %r8d, 0x8(%rsp)
movq %r9, %rbx
movq %r15, %rdi
movl %r13d, %esi
movl $0x7, %edx
leaq 0x38(%rsp), %rcx
callq 0x8023a
xorl %ecx, %ecx
testl %eax, %eax
js 0x7f69c
movq %rbx, %r9
leal 0x14(%rbx), %eax
movq 0x10(%rsp), %r10
cmpl %r10d, %eax
jge 0x7f6b8
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movl 0x38(%rsp), %ebx
movl %ebx, %esi
movq %r9, %r14
callq 0x80385
movq 0x10(%rsp), %r10
addl %r14d, %eax
movq 0x18(%rsp), %r14
movq (%r15), %rcx
movq 0x10(%rcx,%r14,8), %rcx
leaq (,%r13,2), %rdx
addq %r13, %rdx
movl $0x7, (%rcx,%rdx,4)
movl %ebx, 0x4(%rcx,%rdx,4)
movb $0x1, %cl
movl %eax, %r9d
leaq 0x23b66(%rip), %r11     # 0xa3110
jmp 0x7f7e0
movq 0x20(%rsp), %rdx
leaq (%rdx,%rdx,2), %rdx
movslq 0x8(%rax,%rdx,8), %rsi
cmpq %rsi, %r13
jge 0x7f7e7
orq $0x8, %rcx
leaq (%rcx,%rcx,4), %rsi
movq 0x10(%rbp,%rsi,8), %rcx
cmpq 0x8(%rbp,%rsi,8), %rcx
jae 0x7f7e7
movl %r8d, 0x8(%rsp)
leaq (,%rsi,8), %rsi
addq %rbp, %rsi
movq (%rsi), %rdi
leaq 0x1(%rcx), %r8
movq %r8, 0x10(%rsi)
movzbl (%rdi,%rcx), %ebx
movl %ebx, 0x38(%rsp)
movq 0x10(%rax,%rdx,8), %rax
leaq (,%r13,2), %r14
addq %r13, %r14
addl 0x4(%rax,%r14,4), %ebx
movl %ebx, 0x38(%rsp)
leal 0x14(%r9), %eax
cmpl %r10d, %eax
jge 0x7f669
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movl %ebx, %esi
movq %r9, 0x40(%rsp)
callq 0x80385
leaq 0x23ad2(%rip), %r11     # 0xa3110
movq 0x10(%rsp), %r10
addl 0x40(%rsp), %eax
movq (%r15), %rcx
movq 0x18(%rsp), %rdx
movq 0x10(%rcx,%rdx,8), %rcx
movl $0x7, (%rcx,%r14,4)
movl %ebx, 0x4(%rcx,%r14,4)
movq %rdx, %r14
jmp 0x7f7db
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movq 0x18(%rsp), %r14
jmp 0x7f7ef
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
jmp 0x7f7ef
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movq 0x10(%rsp), %r10
jmp 0x7f7ef
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movq 0x10(%rsp), %r10
leaq 0x23a62(%rip), %r11     # 0xa3110
movq %rbx, %r9
jmp 0x7f7ef
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
leaq 0x23a4b(%rip), %r11     # 0xa3110
jmp 0x7f7ef
movl 0x8(%rax), %ecx
leal (%rcx,%r9), %edx
cmpl %r10d, %edx
jge 0x7f7e7
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movl 0x4(%rax), %esi
movzbl %cl, %edx
movq %r9, %r14
callq 0x80272
leaq 0x23a19(%rip), %r11     # 0xa3110
movq 0x10(%rsp), %r10
addl %r14d, %eax
movq 0x18(%rsp), %r14
movq (%r15), %rcx
movq 0x10(%rcx,%r14,8), %rdx
leaq (,%r13,4), %rsi
leaq (%rsi,%rsi,2), %rsi
movl $0x3, (%rdx,%rsi)
movq 0x10(%rcx,%rbx,8), %rcx
movl 0x4(%rcx,%rsi), %edi
movl %edi, 0x4(%rdx,%rsi)
movl 0x8(%rcx,%rsi), %ecx
movl %ecx, 0x8(%rdx,%rsi)
jmp 0x7f7db
leal 0x1(%r9), %edx
cmpl %r10d, %edx
jge 0x7f7e7
movb 0x4(%rax), %al
movslq %r9d, %rcx
movq 0x28(%rsp), %rsi
movb %al, (%rsi,%rcx)
movq (%r15), %rax
movq 0x10(%rax,%r14,8), %rcx
leaq (,%r13,4), %rsi
leaq (%rsi,%rsi,2), %rsi
movl $0x2, (%rcx,%rsi)
movq 0x10(%rax,%rbx,8), %rax
movl 0x4(%rax,%rsi), %eax
movl %eax, 0x4(%rcx,%rsi)
movb $0x1, %cl
movl %edx, %r9d
jmp 0x7f7e0
leal 0x14(%r9), %ecx
cmpl %r10d, %ecx
jge 0x7f7e7
movslq %r9d, %rdi
addq 0x28(%rsp), %rdi
movl 0x4(%rax), %esi
movq %r9, %r14
callq 0x80385
leaq 0x2396a(%rip), %r11     # 0xa3110
movq 0x10(%rsp), %r10
addl %r14d, %eax
movq 0x18(%rsp), %r14
movq (%r15), %rcx
movq 0x10(%rcx,%r14,8), %rdx
leaq (,%r13,4), %rsi
leaq (%rsi,%rsi,2), %rsi
movl $0x7, (%rdx,%rsi)
movq 0x10(%rcx,%rbx,8), %rcx
movl 0x4(%rcx,%rsi), %ecx
movl %ecx, 0x4(%rdx,%rsi)
movb $0x1, %cl
movl %eax, %r9d
movl 0x8(%rsp), %r8d
jmp 0x7f7ef
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
testb %cl, %cl
je 0x7f830
incq %r13
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpq $0x80, %r13
jne 0x7f06b
jmp 0x7f80f
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %ebx, %ebx
jle 0x7fedc
movl %ebx, %eax
addq %rax, %r12
subl %ebx, %r10d
jmp 0x7ee86
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq 0x10(%rsp), %r10
jmp 0x7f80f
movl %r8d, %ebx
jmp 0x7f80f
leaq 0x20(%r15), %r9
movslq %ebx, %rax
movq %rax, 0x28(%rsp)
decl %ebx
movslq %ebx, %rax
movq %rax, 0x60(%rsp)
leaq 0x2(%r8), %rax
movq %rax, 0x68(%rsp)
movl $0xffffffff, %r10d      # imm = 0xFFFFFFFF
movl $0x9, %r14d
movl %r12d, 0x20(%rsp)
movq %r9, 0x8(%rsp)
leal 0x1(%r14), %r11d
movslq %r14d, %rax
movzbl (%r8,%rax), %r13d
testb $0x40, %r13b
jne 0x7f89a
testb %r13b, %r13b
jns 0x7f907
leal 0x1(%r10), %ebx
movb $0x1, %bpl
cmpl $0x7e, %r10d
jle 0x7f8c9
movl %ebx, %r10d
jmp 0x7f9e7
addl $0x3, %r14d
movb $0x1, %bpl
cmpl %r12d, %r14d
ja 0x7f9e7
movslq %r11d, %rcx
movzbl (%r8,%rcx), %r12d
movzbl 0x2(%r8,%rax), %edx
testb %r13b, %r13b
js 0x7f9ff
movl %r10d, %ebx
jmp 0x7fa4a
addl $0x2, %r10d
movl %r10d, 0x14420(%r15)
movl %ebx, %eax
shll $0x4, %eax
cltq
leaq (%rax,%rax,4), %rax
leaq (%r9,%rax,8), %rdi
movl $0x280, %edx            # imm = 0x280
xorl %esi, %esi
movl %r11d, %ebp
callq 0x4260
movl %ebp, %r11d
movq 0x8(%rsp), %r9
movq 0x30(%rsp), %r8
movq 0x10(%rsp), %rdi
movl %ebx, %r10d
movq 0x28(%rsp), %r14
testb %r13b, %r13b
setns %al
andl $0xf, %r13d
sete %cl
orb %al, %cl
jne 0x7f9ab
movb $0x1, %bpl
testl %r10d, %r10d
js 0x7f9e7
movl %r11d, 0x18(%rsp)
movq %r10, 0x48(%rsp)
movl %r10d, %eax
shll $0x4, %eax
cltq
leaq (%rax,%rax,4), %rbx
movq (%r9,%rbx,8), %rdi
testq %rdi, %rdi
je 0x7f956
callq 0x45c0
movq 0x8(%rsp), %r9
leaq (%r9,%rbx,8), %rbx
movq %r14, %rdi
callq 0x4680
movq %rax, (%rbx)
testq %rax, %rax
je 0x7fcff
movq $0x0, 0x10(%rbx)
movq %r14, 0x8(%rbx)
movb %r13b, (%rax)
movq (%rbx), %rdi
incq %rdi
movl $0xa, %esi
movq 0x60(%rsp), %rdx
callq 0x4260
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %r8
movq 0x8(%rsp), %r9
movq 0x48(%rsp), %r10
movl 0x18(%rsp), %r11d
movslq %r11d, %rax
leaq (%r8,%rax), %rbx
movl %r12d, %ecx
subl %r11d, %ecx
leaq (%rcx,%rbx), %r14
movq %rcx, 0x40(%rsp)
cmpl $0x6, %ecx
jb 0x7f9ef
xorl %edx, %edx
leaq 0x1(%rdx), %rcx
cmpb $0x0, (%rbx,%rdx)
jns 0x7f9da
cmpl $0x5, %edx
movq %rcx, %rdx
jne 0x7f9c8
addq %rbx, %rcx
subl %ebx, %ecx
movslq %ecx, %rcx
jmp 0x7fb92
movl %r11d, %r14d
jmp 0x7fe6b
cmpl %r11d, %r12d
jne 0x7fb84
xorl %ecx, %ecx
jmp 0x7fb92
leal 0x1(%r10), %ebx
cmpl $0x7e, %r10d
jg 0x7fb7c
addl $0x2, %r10d
movl %r10d, 0x14420(%r15)
movl %ebx, %eax
shll $0x4, %eax
cltq
leaq (%rax,%rax,4), %rax
leaq (%r9,%rax,8), %rdi
movl %edx, 0x18(%rsp)
movl $0x280, %edx            # imm = 0x280
xorl %esi, %esi
callq 0x4260
movl 0x18(%rsp), %edx
movq 0x8(%rsp), %r9
movq 0x30(%rsp), %r8
movq 0x10(%rsp), %rdi
testb %r13b, %r13b
setns %al
andl $0xf, %r13d
sete %cl
orb %al, %cl
jne 0x7facf
testl %ebx, %ebx
js 0x7fb7c
movl %edx, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0x4680
movq 0x8(%rsp), %r9
movl %ebx, %ecx
shll $0x4, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,4), %rcx
movq %rax, (%r9,%rcx,8)
testq %rax, %rax
je 0x7fd3b
leaq (%r9,%rcx,8), %rcx
movq $0x0, 0x10(%rcx)
movq 0x28(%rsp), %rdx
movq %rdx, 0x8(%rcx)
movb %r13b, (%rax)
movq (%rcx), %rdi
incq %rdi
movl $0xa, %esi
movq 0x60(%rsp), %rdx
callq 0x4260
movq 0x8(%rsp), %r9
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %r8
movl 0x18(%rsp), %edx
testl %ebx, %ebx
js 0x7fb7c
shll $0x4, %r12d
addl %edx, %r12d
movl %ebx, %eax
shll $0x4, %eax
orl %r13d, %eax
cmpl %eax, %r12d
jge 0x7fb7c
movl %r12d, %ecx
leaq (%rcx,%rcx,4), %rcx
cmpq $0x0, (%r9,%rcx,8)
je 0x7fb7c
leaq (%r9,%rcx,8), %rcx
movl %eax, %eax
leaq (%rax,%rax,4), %r13
movq $0x0, 0x10(%r9,%r13,8)
movq %rcx, 0x18(%rsp)
movq 0x8(%rcx), %rax
movq %rax, 0x8(%r9,%r13,8)
movq (%r9,%r13,8), %rdi
testq %rdi, %rdi
je 0x7fb31
callq 0x45c0
movq 0x8(%rsp), %r9
leaq (%r9,%r13,8), %r12
movq 0x8(%r12), %r13
movq %r13, %rdi
callq 0x4680
movq %rax, (%r12)
testq %rax, %rax
je 0x7fb60
movq 0x18(%rsp), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movq %r13, %rdx
callq 0x43c0
xorl %ebp, %ebp
movl %ebx, %r10d
movq 0x10(%rsp), %rdi
movl 0x20(%rsp), %r12d
movq 0x30(%rsp), %r8
movq 0x8(%rsp), %r9
jmp 0x7fe6b
movl %ebx, %r10d
jmp 0x7fcf5
movl $0x1, %ecx
cmpb $0x0, (%rbx)
js 0x7fd0b
leaq (%rbx,%rcx), %rdx
incq %rdx
movq %r14, %rsi
subq %rdx, %rsi
cmpq $0x6, %rsi
jl 0x7fbd6
addq %rbx, %rcx
xorl %r12d, %r12d
movl $0x1, %eax
movzbl (%rcx,%rax), %edx
movl %r12d, %esi
shll $0x7, %esi
movl %edx, %r12d
andl $0x7f, %r12d
orl %esi, %r12d
testb %dl, %dl
jns 0x7fc16
leaq 0x1(%rax), %rdx
cmpl $0x6, %eax
movq %rdx, %rax
jne 0x7fbb0
jmp 0x7fc16
xorl %r12d, %r12d
cmpq %r14, %rdx
jae 0x7fc16
movsbl (%rdx), %r12d
testl %r12d, %r12d
jns 0x7fc16
addq %rax, %rcx
addq 0x68(%rsp), %rcx
xorl %r12d, %r12d
movzbl -0x1(%rcx), %eax
movl %r12d, %edx
shll $0x7, %edx
movl %eax, %r12d
andl $0x7f, %r12d
orl %edx, %r12d
testb %al, %al
jns 0x7fc16
leaq 0x1(%rcx), %rax
cmpq %r14, %rcx
movq %rax, %rcx
jb 0x7fbf2
movb $0x1, %bpl
cmpl $0x7ffffffe, %r12d      # imm = 0x7FFFFFFE
ja 0x7fcf2
testl %r10d, %r10d
js 0x7fcf2
movl %r10d, %eax
shll $0x4, %eax
js 0x7fcf2
orl %r13d, %eax
cmpl $0x7ff, %eax            # imm = 0x7FF
jg 0x7fcf2
movl %r11d, 0x18(%rsp)
movq %r10, 0x48(%rsp)
movl %eax, %eax
leaq (%rax,%rax,4), %r13
movq $0x0, 0x10(%r9,%r13,8)
movq (%r9,%r13,8), %rdi
testq %rdi, %rdi
je 0x7fc75
callq 0x45c0
movq 0x8(%rsp), %r9
movl %r12d, %edi
leaq (%r9,%r13,8), %r13
movq %rdi, 0x58(%rsp)
callq 0x4680
movq %rax, (%r13)
testq %rax, %rax
je 0x7fd25
movq 0x58(%rsp), %rcx
movq %rcx, 0x8(%r13)
cmpb $0x0, 0x3f(%rsp)
movl 0x18(%rsp), %edx
je 0x7fd52
movl %r12d, 0x50(%rsp)
movq 0x40(%rsp), %rsi
cmpl $0x6, %esi
jb 0x7fd92
xorl %edx, %edx
xorl %ebp, %ebp
movl 0x20(%rsp), %r12d
movzbl (%rbx,%rdx), %edi
movl %ebp, %ecx
shll $0x7, %ecx
movl %edi, %ebp
andl $0x7f, %ebp
orl %ecx, %ebp
leaq 0x1(%rdx), %rcx
testb %dil, %dil
jns 0x7fce8
cmpl $0x5, %edx
movq %rcx, %rdx
jne 0x7fcc7
addq %rbx, %rcx
subl %ebx, %ecx
jmp 0x7fdb3
movl %r11d, %r14d
movl 0x20(%rsp), %r12d
jmp 0x7fe6b
movl 0x18(%rsp), %eax
movl %eax, %r14d
jmp 0x7fe57
movq %rbx, %rcx
cmpb $0x0, (%rcx)
leaq 0x1(%rcx), %rcx
jns 0x7f9dd
cmpq %r14, %rcx
jb 0x7fd0e
jmp 0x7f9dd
movl 0x18(%rsp), %eax
movl %eax, %r14d
movq 0x10(%rsp), %rdi
movl 0x20(%rsp), %r12d
jmp 0x7fe5c
movl %ebx, %r10d
movq 0x10(%rsp), %rdi
movl 0x20(%rsp), %r12d
movq 0x30(%rsp), %r8
jmp 0x7fe6b
movl %r12d, 0x54(%rsp)
movq 0x40(%rsp), %rsi
cmpl $0x6, %esi
jb 0x7fdd8
xorl %edx, %edx
xorl %ebp, %ebp
movl 0x20(%rsp), %r12d
movzbl (%rbx,%rdx), %edi
movl %ebp, %ecx
shll $0x7, %ecx
movl %edi, %ebp
andl $0x7f, %ebp
orl %ecx, %ebp
leaq 0x1(%rdx), %rcx
testb %dil, %dil
jns 0x7fd8b
cmpl $0x5, %edx
movq %rcx, %rdx
jne 0x7fd6a
addq %rbx, %rcx
subl %ebx, %ecx
jmp 0x7fdf9
xorl %ebp, %ebp
movl $0x0, %ecx
movl 0x20(%rsp), %r12d
cmpl %edx, %r12d
je 0x7fdb3
movsbl (%rbx), %ebp
testl %ebp, %ebp
js 0x7fe7e
movl $0x1, %ecx
movslq %ecx, %r14
addq %r14, %rbx
subl %r14d, %esi
movq %rbx, %rdi
movq %rax, %rdx
leaq 0x50(%rsp), %rcx
callq 0x5d1f5
addl %r14d, %ebp
testq %rax, %rax
movl 0x50(%rsp), %ecx
jmp 0x7fe1c
xorl %ebp, %ebp
movl $0x0, %ecx
movl 0x20(%rsp), %r12d
cmpl %edx, %r12d
je 0x7fdf9
movsbl (%rbx), %ebp
testl %ebp, %ebp
js 0x7fea7
movl $0x1, %ecx
movslq %ecx, %r14
addq %r14, %rbx
subl %r14d, %esi
movq %rbx, %rdi
movq %rax, %rdx
leaq 0x54(%rsp), %rcx
callq 0x66fb3
addl %r14d, %ebp
testq %rax, %rax
movl 0x54(%rsp), %ecx
movq 0x58(%rsp), %rdx
cmoveq %rdx, %rcx
cmpq $0x1, %rax
movl $0x0, %r14d
sbbl %r14d, %r14d
orl %ebp, %r14d
movq %rcx, 0x8(%r13)
testl %r14d, %r14d
sets %al
cmpq %rdx, %rcx
setne %bpl
orb %al, %bpl
movl $0x0, %eax
cmovnel %eax, %r14d
addl 0x18(%rsp), %r14d
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %r8
movq 0x8(%rsp), %r9
movq 0x48(%rsp), %r10
testb %bpl, %bpl
jne 0x7fed0
cmpl %r12d, %r14d
jb 0x7f86a
jmp 0x7ee5d
xorl %ebp, %ebp
movq %rbx, %rcx
movzbl (%rcx), %edx
incq %rcx
movl %ebp, %edi
shll $0x7, %edi
movl %edx, %ebp
andl $0x7f, %ebp
orl %edi, %ebp
testb %dl, %dl
jns 0x7fceb
cmpq %r14, %rcx
jb 0x7fe83
jmp 0x7fceb
xorl %ebp, %ebp
movq %rbx, %rcx
movzbl (%rcx), %edx
incq %rcx
movl %ebp, %edi
shll $0x7, %edi
movl %edx, %ebp
andl $0x7f, %ebp
orl %edi, %ebp
testb %dl, %dl
jns 0x7fd8e
cmpq %r14, %rcx
jb 0x7feac
jmp 0x7fd8e
movq %r15, %rdi
callq 0x7ed0a
xorl %eax, %eax
jmp 0x7ff02
movq 0x70(%rsp), %r14
jns 0x7feed
movq 0x30(%rsp), %rdi
callq 0x45c0
movq %r15, %rdi
callq 0x7ed0a
movl %r12d, (%r14)
xorl %eax, %eax
testl %ebx, %ebx
cmoveq 0x30(%rsp), %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq