// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/htscodecs/htscodecs/rANS_static4x16pr.c
// Function: rans_compress_O1_4x16
static
unsigned char *rans_compress_O1_4x16(unsigned char *in, unsigned int in_size,
                                     unsigned char *out, unsigned int *out_size) {
    unsigned char *cp, *out_end, *out_free = NULL;
    unsigned int tab_size;
    
    // -20 for order/size/meta
    uint32_t bound = rans_compress_bound_4x16(in_size,1)-20;

    if (!out) {
        *out_size = bound;
        out_free = out = malloc(*out_size);
    }
    if (!out || bound > *out_size)
        return NULL;

    if (((size_t)out)&1)
        bound--;
    out_end = out + bound;

    RansEncSymbol (*syms)[256] = htscodecs_tls_alloc(256 * (sizeof(*syms)));
    if (!syms) {
        free(out_free);
        return NULL;
    }

    cp = out;
    int shift = encode_freq1(in, in_size, 4, syms, &cp); 
    if (shift < 0) {
        htscodecs_tls_free(syms);
        return NULL;
    }
    tab_size = cp - out;

    RansState rans0, rans1, rans2, rans3;
    RansEncInit(&rans0);
    RansEncInit(&rans1);
    RansEncInit(&rans2);
    RansEncInit(&rans3);

    uint8_t* ptr = out_end;

    int isz4 = in_size>>2;
    int i0 = 1*isz4-2;
    int i1 = 2*isz4-2;
    int i2 = 3*isz4-2;
    int i3 = 4*isz4-2;

    unsigned char l0 = in[i0+1];
    unsigned char l1 = in[i1+1];
    unsigned char l2 = in[i2+1];
    unsigned char l3 = in[i3+1];

    // Deal with the remainder
    l3 = in[in_size-1];
    for (i3 = in_size-2; i3 > 4*isz4-2; i3--) {
        unsigned char c3 = in[i3];
        RansEncPutSymbol(&rans3, &ptr, &syms[c3][l3]);
        l3 = c3;
    }

    for (; i0 >= 0; i0--, i1--, i2--, i3--) {
        unsigned char c0, c1, c2, c3;
        RansEncSymbol *s3 = &syms[c3 = in[i3]][l3];
        RansEncSymbol *s2 = &syms[c2 = in[i2]][l2];
        RansEncSymbol *s1 = &syms[c1 = in[i1]][l1];
        RansEncSymbol *s0 = &syms[c0 = in[i0]][l0];

        RansEncPutSymbol(&rans3, &ptr, s3);
        RansEncPutSymbol(&rans2, &ptr, s2);
        RansEncPutSymbol(&rans1, &ptr, s1);
        RansEncPutSymbol(&rans0, &ptr, s0);

        l0 = c0;
        l1 = c1;
        l2 = c2;
        l3 = c3;
    }

    RansEncPutSymbol(&rans3, &ptr, &syms[0][l3]);
    RansEncPutSymbol(&rans2, &ptr, &syms[0][l2]);
    RansEncPutSymbol(&rans1, &ptr, &syms[0][l1]);
    RansEncPutSymbol(&rans0, &ptr, &syms[0][l0]);

    RansEncFlush(&rans3, &ptr);
    RansEncFlush(&rans2, &ptr);
    RansEncFlush(&rans1, &ptr);
    RansEncFlush(&rans0, &ptr);

    *out_size = (out_end - ptr) + tab_size;

    cp = out;
    memmove(out + tab_size, ptr, out_end-ptr);

    htscodecs_tls_free(syms);
    return out;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x8b8, %rsp            # imm = 0x8B8
movq %rcx, %r13
movq %rsi, 0x30(%rsp)
movl %esi, %r14d
cvtsi2sd %r14, %xmm0
mulsd 0x35b3a(%rip), %xmm0    # 0x9ada8
movq %rdi, 0x18(%rsp)
addsd 0x3678d(%rip), %xmm0    # 0x9ba08
movsd 0x3678d(%rip), %xmm1    # 0x9ba10
addsd %xmm1, %xmm0
addsd 0x36789(%rip), %xmm0    # 0x9ba18
addsd %xmm1, %xmm0
addsd 0x36b1d(%rip), %xmm0    # 0x9bdb8
cvttsd2si %xmm0, %r15
movl %r15d, %r12d
andl $0x1, %r12d
leal (%r15,%r12), %ebp
addl $-0x12, %ebp
testq %rdx, %rdx
je 0x652c0
xorl %ebx, %ebx
cmpl (%r13), %ebp
jbe 0x652da
jmp 0x65b97
movl %ebp, (%r13)
movl %ebp, %edi
callq 0x4680
movq %rax, %rbx
movq %rax, %rdx
testq %rax, %rax
je 0x65b95
leal (%r15,%r12), %eax
addl $0x2, %eax
addl $-0x15, %eax
movq %rdx, 0x20(%rsp)
testb $0x1, %dl
cmovel %ebp, %eax
movq %rax, 0x40(%rsp)
movl $0x100000, %edi         # imm = 0x100000
callq 0x7e144
testq %rax, %rax
je 0x6549b
movq %rax, 0x8(%rsp)
movl $0x100, %edi            # imm = 0x100
movl $0x400, %esi            # imm = 0x400
callq 0x7e245
testq %rax, %rax
je 0x65b8b
movq %rax, 0x10(%rsp)
leaq 0x90(%rsp), %rdi
movl $0x420, %edx            # imm = 0x420
xorl %esi, %esi
callq 0x4260
movq 0x18(%rsp), %rbx
addq %rbx, %r14
cmpl $0x7a120, 0x30(%rsp)    # imm = 0x7A120
jbe 0x654a8
movl $0x100, %edi            # imm = 0x100
movl $0x40c, %esi            # imm = 0x40C
callq 0x7e245
testq %rax, %rax
je 0x65b81
leaq -0x8(%r14), %rsi
xorl %edx, %edx
movq 0x18(%rsp), %rbx
movq %rbx, %rcx
movq 0x10(%rsp), %r11
movzbl (%rcx), %r8d
movzbl 0x1(%rcx), %r9d
movzbl 0x2(%rcx), %r10d
movzbl 0x3(%rcx), %edi
movzbl %dl, %edx
shll $0xa, %edx
addq %r11, %rdx
incl (%rdx,%r8,4)
imulq $0x40c, %r8, %rdx       # imm = 0x40C
addq %rax, %rdx
incl (%rdx,%r9,4)
shll $0xa, %r9d
addq %r11, %r9
incl (%r9,%r10,4)
imulq $0x40c, %r10, %rdx      # imm = 0x40C
addq %rax, %rdx
incl (%rdx,%rdi,4)
movzbl 0x4(%rcx), %r8d
movzbl 0x5(%rcx), %r9d
movzbl 0x6(%rcx), %r10d
movzbl 0x7(%rcx), %edx
shll $0xa, %edi
addq %r11, %rdi
incl (%rdi,%r8,4)
imulq $0x40c, %r8, %rdi       # imm = 0x40C
addq %rax, %rdi
incl (%rdi,%r9,4)
shll $0xa, %r9d
addq %r11, %r9
incl (%r9,%r10,4)
addq $0x8, %rcx
imulq $0x40c, %r10, %rdi      # imm = 0x40C
addq %rax, %rdi
incl (%rdi,%rdx,4)
cmpq %rsi, %rcx
jb 0x6537e
cmpq %r14, %rcx
jae 0x65434
movl %edx, %esi
movzbl (%rcx), %edx
movzbl %sil, %esi
shll $0xa, %esi
addq %r11, %rsi
incl (%rsi,%rdx,4)
incq %rcx
movl %edx, %esi
cmpq %r14, %rcx
jb 0x6541a
incl 0x90(%rsp,%rdx,4)
xorl %ecx, %ecx
movq %rax, %rdx
movq %r11, %rsi
xorl %r8d, %r8d
xorl %edi, %edi
movl (%rsi,%r8,4), %r9d
addl (%rdx,%r8,4), %r9d
movl %r9d, (%rsi,%r8,4)
addl %r9d, %edi
incq %r8
cmpq $0x100, %r8             # imm = 0x100
jne 0x65448
addl %edi, 0x90(%rsp,%rcx,4)
incq %rcx
addq $0x400, %rsi            # imm = 0x400
addq $0x40c, %rdx            # imm = 0x40C
cmpq $0x100, %rcx            # imm = 0x100
jne 0x65443
movq %rax, %rdi
callq 0x7e26a
movq 0x10(%rsp), %r11
movq 0x20(%rsp), %r10
jmp 0x655cf
movq %rbx, %rdi
callq 0x45c0
jmp 0x65b95
leaq -0x8(%r14), %rcx
xorl %edx, %edx
movq %rbx, %rax
cmpq %rbx, %rcx
jbe 0x6554b
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r11
movzbl (%rax), %edi
movzbl 0x1(%rax), %r8d
movzbl 0x2(%rax), %r9d
movzbl 0x3(%rax), %esi
movzbl %dl, %edx
shll $0xa, %edx
addq %r11, %rdx
incl (%rdx,%rdi,4)
shll $0xa, %edi
addq %r11, %rdi
incl (%rdi,%r8,4)
shll $0xa, %r8d
addq %r11, %r8
incl (%r8,%r9,4)
shll $0xa, %r9d
addq %r11, %r9
incl (%r9,%rsi,4)
movzbl 0x4(%rax), %r8d
movzbl 0x5(%rax), %r9d
movzbl 0x6(%rax), %edi
movzbl 0x7(%rax), %edx
shll $0xa, %esi
addq %r11, %rsi
incl (%rsi,%r8,4)
shll $0xa, %r8d
addq %r11, %r8
incl (%r8,%r9,4)
shll $0xa, %r9d
addq %r11, %r9
incl (%r9,%rdi,4)
addq $0x8, %rax
shll $0xa, %edi
addq %r11, %rdi
incl (%rdi,%rdx,4)
cmpq %rcx, %rax
jb 0x654c4
jmp 0x65555
movq 0x20(%rsp), %r10
movq 0x10(%rsp), %r11
cmpq %r14, %rax
jae 0x65575
movzbl (%rax), %ecx
movzbl %dl, %edx
shll $0xa, %edx
addq %r11, %rdx
incl (%rdx,%rcx,4)
incq %rax
movl %ecx, %edx
cmpq %r14, %rax
jb 0x6555a
jmp 0x65578
movzbl %dl, %ecx
incl 0x90(%rsp,%rcx,4)
xorl %eax, %eax
movq %r11, %rcx
xorpd %xmm0, %xmm0
xorl %edx, %edx
movdqu (%rcx,%rdx,4), %xmm1
paddd %xmm1, %xmm0
addq $0x4, %rdx
cmpq $0x100, %rdx            # imm = 0x100
jne 0x6558a
pshufd $0xee, %xmm0, %xmm1     # xmm1 = xmm0[2,3,2,3]
paddd %xmm0, %xmm1
pshufd $0x55, %xmm1, %xmm0     # xmm0 = xmm1[1,1,1,1]
paddd %xmm1, %xmm0
movd %xmm0, %edx
addl %edx, 0x90(%rsp,%rax,4)
incq %rax
addq $0x400, %rcx            # imm = 0x400
cmpq $0x100, %rax            # imm = 0x100
jne 0x65584
addq %r10, 0x40(%rsp)
movq 0x30(%rsp), %rax
movl %eax, %esi
shrl $0x2, %esi
leaq (%rbx,%rsi), %rax
movl $0x3, %ecx
movzbl (%rax), %edx
incl (%r11,%rdx,4)
addq %rsi, %rax
decq %rcx
jne 0x655e7
movq %rsi, 0x50(%rsp)
movl 0x90(%rsp), %eax
movl $0x1, 0x90(%rsp)
leaq 0x1(%r10), %r9
movb $0x0, (%r10)
xorl %ecx, %ecx
movl $0x1, %edx
xorl %esi, %esi
movq %r9, %r8
movq %r8, %rdi
cmpl $0x0, 0x90(%rsp,%rcx,4)
je 0x65634
testl %esi, %esi
je 0x65648
decl %esi
movq %rdi, %r8
incq %rcx
incq %rdx
cmpq $0x100, %rcx            # imm = 0x100
jne 0x65621
jmp 0x6569a
leaq 0x1(%rdi), %r8
movb %cl, (%rdi)
xorl %esi, %esi
testq %rcx, %rcx
je 0x65637
cmpl $0x0, 0x8c(%rsp,%rcx,4)
je 0x65637
leal 0x1(%rcx), %r8d
movl %r8d, %esi
cmpq $0xfe, %rcx
ja 0x6568d
movq %rdx, %rsi
cmpl $0x0, 0x90(%rsp,%rsi,4)
je 0x6568d
incq %rsi
cmpq $0x100, %rsi            # imm = 0x100
jne 0x65672
movl $0x100, %esi            # imm = 0x100
subl %r8d, %esi
movb %sil, 0x1(%rdi)
addq $0x2, %rdi
jmp 0x65634
movq %r13, 0x70(%rsp)
addl $0x3, %eax
movb $0x0, (%r8)
subl %r9d, %r8d
incl %r8d
movslq %r8d, %rcx
movq %r9, 0x58(%rsp)
addq %r9, %rcx
movq %rcx, 0x38(%rsp)
leaq 0x90(%rsp), %rbx
movl %eax, (%rbx)
leaq 0x4b0(%rsp), %r15
xorl %r13d, %r13d
movl $0x400, %edx            # imm = 0x400
movq %r15, %rdi
xorl %esi, %esi
callq 0x4260
movq %rbx, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq %rbx, %rdx
movq %r15, %rcx
callq 0x62f73
movq %r14, %rdi
movl %eax, %ecx
movl $0x1, %r8d
movl $0x1, %r9d
shll %cl, %r9d
movl $0x8000, %r10d          # imm = 0x8000
movl %eax, 0x48(%rsp)
shrl %cl, %r10d
shll $0x10, %r10d
leal -0x1(%r9), %eax
movq %rax, 0x28(%rsp)
movq %r14, %rbx
movl 0x90(%rsp,%r13,4), %edx
testl %edx, %edx
je 0x65af2
movl 0x4b0(%rsp,%r13,4), %eax
movl $0x400, %ecx            # imm = 0x400
cmpl %ecx, %eax
movl $0x400, %esi            # imm = 0x400
cmovbl %eax, %esi
cmpl $0xa, 0x48(%rsp)
cmovnel %eax, %esi
movq %r13, %r14
shlq $0xa, %r14
addq %rdi, %r14
movq %rsi, %rcx
shlq $0x1f, %rcx
movb $0x1, %bpl
movslq %edx, %r11
xorl %r15d, %r15d
movq %rcx, %rax
xorl %edx, %edx
divq %r11
movq %rax, %rdi
movl $0x40000000, %eax       # imm = 0x40000000
xorl %edx, %edx
idivl %r11d
movslq %eax, %r12
addq %rdi, %r12
xorl %edx, %edx
xorl %edi, %edi
xorl %eax, %eax
movl (%rbx,%r15,4), %r11d
testq %r11, %r11
je 0x657bf
cmpl %r11d, %edi
cmovbl %r15d, %eax
cmovbel %r11d, %edi
imulq %r12, %r11
shrq $0x1f, %r11
cmpl $0x2, %r11d
cmovbl %r8d, %r11d
movl %r11d, (%rbx,%r15,4)
addl %edx, %r11d
movl %r11d, %edx
incq %r15
cmpq $0x100, %r15            # imm = 0x100
jne 0x65791
movl %esi, %edi
subl %edx, %edi
cltq
testl %edi, %edi
jg 0x65861
jns 0x6585a
movl (%r14,%rax,4), %r15d
movl %edi, %r11d
negl %r11d
cmpl %r11d, %r15d
jbe 0x657fc
movl %r15d, %r12d
shrl %r12d
cmpl %r11d, %r12d
setb %r11b
testb %r11b, %bpl
je 0x6586a
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x6576a
addl %r15d, %edi
movl $0x1, (%r14,%rax,4)
decl %edi
je 0x6585a
xorl %ecx, %ecx
movq 0x8(%rsp), %r11
movl (%rbx,%rcx,4), %edx
cmpl $0x2, %edx
jb 0x65848
movl %edi, %r11d
negl %r11d
movl $0x1, %ebp
subl %edx, %ebp
cmpl %r11d, %edx
movq 0x8(%rsp), %r11
cmoval %edi, %ebp
addl %ebp, %edx
movl %edx, (%rbx,%rcx,4)
subl %ebp, %edi
cmpq $0xfe, %rcx
ja 0x65879
incq %rcx
testl %edi, %edi
jne 0x65821
jmp 0x65879
movq 0x8(%rsp), %r11
jmp 0x65879
leaq (%r14,%rax,4), %rcx
movl (%rcx), %r15d
jmp 0x6586e
leaq (%r14,%rax,4), %rcx
movq 0x8(%rsp), %r11
addl %edi, %r15d
movl %r15d, (%rcx)
cmpl $0x0, (%r14,%rax,4)
je 0x65b81
movl %esi, 0x90(%rsp,%r13,4)
xorl %ecx, %ecx
xorl %esi, %esi
movq 0x38(%rsp), %rax
cmpl $0x0, 0x90(%rsp,%rcx,4)
je 0x658d5
movl (%r14,%rcx,4), %edx
testl %edx, %edx
je 0x658cd
testl %esi, %esi
je 0x658bc
decl %esi
movslq %esi, %rdx
subq %rdx, %rax
movb %dl, (%rax)
incq %rax
movl (%r14,%rcx,4), %edx
cmpl $0x7f, %edx
ja 0x658e6
movb %dl, (%rax)
movl $0x1, %edx
jmp 0x659ab
incl %esi
movb $0x0, (%rax)
incq %rax
incq %rcx
cmpq $0x100, %rcx            # imm = 0x100
jne 0x65895
jmp 0x659c5
movl %edx, %esi
cmpl $0x3fff, %edx           # imm = 0x3FFF
ja 0x6590a
shrl $0x7, %esi
orb $-0x80, %sil
movb %sil, (%rax)
andb $0x7f, %dl
movb %dl, 0x1(%rax)
movl $0x2, %edx
jmp 0x659ab
cmpl $0x1fffff, %edx         # imm = 0x1FFFFF
ja 0x65936
shrl $0xe, %esi
orb $-0x80, %sil
movb %sil, (%rax)
movl %edx, %esi
shrl $0x7, %esi
orb $-0x80, %sil
movb %sil, 0x1(%rax)
andb $0x7f, %dl
movb %dl, 0x2(%rax)
movl $0x3, %edx
jmp 0x659ab
cmpl $0xfffffff, %edx        # imm = 0xFFFFFFF
ja 0x6596f
shrl $0x15, %esi
orb $-0x80, %sil
movb %sil, (%rax)
movl %edx, %esi
shrl $0xe, %esi
orb $-0x80, %sil
movb %sil, 0x1(%rax)
movl %edx, %esi
shrl $0x7, %esi
orb $-0x80, %sil
movb %sil, 0x2(%rax)
andb $0x7f, %dl
movb %dl, 0x3(%rax)
movl $0x4, %edx
jmp 0x659ab
shrl $0x1c, %esi
orb $-0x80, %sil
movb %sil, (%rax)
movl %edx, %esi
shrl $0x15, %esi
orb $-0x80, %sil
movb %sil, 0x1(%rax)
movl %edx, %esi
shrl $0xe, %esi
orb $-0x80, %sil
movb %sil, 0x2(%rax)
movl %edx, %esi
shrl $0x7, %esi
orb $-0x80, %sil
movb %sil, 0x3(%rax)
andb $0x7f, %dl
movb %dl, 0x4(%rax)
movl $0x5, %edx
addq %rdx, %rax
incq %rcx
movl $0x0, %esi
cmpq $0x100, %rcx            # imm = 0x100
jne 0x65895
jmp 0x659d6
testl %esi, %esi
je 0x659d6
decl %esi
movslq %esi, %rcx
subq %rcx, %rax
movb %cl, (%rax)
incq %rax
movl 0x90(%rsp,%r13,4), %ecx
movl %r9d, %edx
notl %edx
testl %edx, %ecx
je 0x65a22
xorl %edx, %edx
cmpl %r9d, %ecx
jae 0x659f9
xorl %edx, %edx
addl %ecx, %ecx
incl %edx
cmpl %r9d, %ecx
jb 0x659f0
movd %edx, %xmm1
xorpd %xmm0, %xmm0
movss %xmm1, %xmm0            # xmm0 = xmm1[0],xmm0[1,2,3]
xorl %ecx, %ecx
movdqu (%rbx,%rcx,4), %xmm1
pslld %xmm0, %xmm1
movdqu %xmm1, (%rbx,%rcx,4)
addq $0x4, %rcx
cmpq $0x100, %rcx            # imm = 0x100
jne 0x65a07
movq 0x38(%rsp), %rcx
subl %ecx, %eax
cltq
addq %rax, %rcx
movq %rcx, 0x38(%rsp)
movl %r9d, 0x90(%rsp,%r13,4)
xorl %esi, %esi
xorl %ebp, %ebp
movl %r9d, %eax
subl %ebp, %eax
jb 0x66215
movl (%r14,%rsi,4), %r12d
cmpl %r12d, %eax
jb 0x66234
movq %r13, %rax
shlq $0xc, %rax
addq %r11, %rax
movq %rsi, %r15
shlq $0x4, %r15
addq %rax, %r15
movl %r10d, %eax
imull %r12d, %eax
decl %eax
movl %eax, (%r15)
movl %r9d, %eax
subl %r12d, %eax
movw %ax, 0xc(%r15)
cmpl $0x2, %r12d
jae 0x65aa1
movl $0xffffffff, 0x4(%r15)  # imm = 0xFFFFFFFF
movq 0x28(%rsp), %rax
addl %ebp, %eax
movl %eax, 0x8(%r15)
movw $0x20, %di
jmp 0x65ad4
movl $0x1e, %edi
leal -0x1e(%rdi), %ecx
movl $0x1, %eax
shll %cl, %eax
incl %edi
cmpl %r12d, %eax
jb 0x65aa6
movl $0x1, %eax
movl %edi, %ecx
shlq %cl, %rax
addq %r12, %rax
decq %rax
xorl %edx, %edx
divq %r12
movl %eax, 0x4(%r15)
movl %ebp, 0x8(%r15)
movw %di, 0xe(%r15)
addl (%r14,%rsi,4), %ebp
incq %rsi
cmpq $0x100, %rsi            # imm = 0x100
jne 0x65a3f
movq 0x10(%rsp), %rdi
incq %r13
addq $0x400, %rbx            # imm = 0x400
cmpq $0x100, %r13            # imm = 0x100
jne 0x65727
movl 0x48(%rsp), %ecx
shlb $0x4, %cl
movq 0x20(%rsp), %rax
movb %cl, (%rax)
movq 0x38(%rsp), %r15
movq %r15, %r12
subq %rax, %r12
cmpq $0x3e9, %r12            # imm = 0x3E9
movq 0x18(%rsp), %rbx
jl 0x65bac
movq 0x58(%rsp), %r14
subq %r14, %r15
leaq 0x64(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x61ed5
movq %rax, %r13
testq %rax, %rax
je 0x65d5d
movl 0x64(%rsp), %ebp
leal 0x6(%rbp), %eax
cmpq %rax, %r12
jbe 0x65d5d
movq 0x20(%rsp), %rcx
orb $0x1, (%rcx)
cmpl $0x7f, %r15d
ja 0x65bb6
movb %r15b, (%r14)
movl $0x1, %eax
jmp 0x65c73
movq 0x10(%rsp), %rdi
callq 0x7e26a
movq 0x8(%rsp), %rdi
callq 0x7e26a
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8b8, %rsp            # imm = 0x8B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, 0x68(%rsp)
jmp 0x65d6f
movl %r15d, %eax
cmpl $0x3fff, %r15d          # imm = 0x3FFF
ja 0x65bdc
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x1(%rcx)
andb $0x7f, %r15b
movb %r15b, 0x2(%rcx)
movl $0x2, %eax
jmp 0x65c73
cmpl $0x1fffff, %r15d        # imm = 0x1FFFFF
ja 0x65c07
shrl $0xe, %eax
orb $-0x80, %al
movb %al, 0x1(%rcx)
movl %r15d, %eax
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x2(%rcx)
andb $0x7f, %r15b
movb %r15b, 0x3(%rcx)
movl $0x3, %eax
jmp 0x65c73
cmpl $0xfffffff, %r15d       # imm = 0xFFFFFFF
ja 0x65c3d
shrl $0x15, %eax
orb $-0x80, %al
movb %al, 0x1(%rcx)
movl %r15d, %eax
shrl $0xe, %eax
orb $-0x80, %al
movb %al, 0x2(%rcx)
movl %r15d, %eax
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x3(%rcx)
andb $0x7f, %r15b
movb %r15b, 0x4(%rcx)
movl $0x4, %eax
jmp 0x65c73
shrl $0x1c, %eax
orb $-0x80, %al
movb %al, 0x1(%rcx)
movl %r15d, %eax
shrl $0x15, %eax
orb $-0x80, %al
movb %al, 0x2(%rcx)
movl %r15d, %eax
shrl $0xe, %eax
orb $-0x80, %al
movb %al, 0x3(%rcx)
movl %r15d, %eax
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x4(%rcx)
andb $0x7f, %r15b
movb %r15b, 0x5(%rcx)
movl $0x5, %eax
addq %rax, %r14
cmpl $0x7f, %ebp
ja 0x65c88
movb %bpl, (%r14)
movl $0x1, %eax
jmp 0x65d41
movl %ebp, %eax
cmpl $0x3fff, %ebp           # imm = 0x3FFF
ja 0x65cac
shrl $0x7, %eax
orb $-0x80, %al
movb %al, (%r14)
movl %ebp, %eax
andb $0x7f, %al
movb %al, 0x1(%r14)
movl $0x2, %eax
jmp 0x65d41
cmpl $0x1fffff, %ebp         # imm = 0x1FFFFF
ja 0x65cd6
shrl $0xe, %eax
orb $-0x80, %al
movb %al, (%r14)
movl %ebp, %eax
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x1(%r14)
movl %ebp, %eax
andb $0x7f, %al
movb %al, 0x2(%r14)
movl $0x3, %eax
jmp 0x65d41
cmpl $0xfffffff, %ebp        # imm = 0xFFFFFFF
ja 0x65d0b
shrl $0x15, %eax
orb $-0x80, %al
movb %al, (%r14)
movl %ebp, %eax
shrl $0xe, %eax
orb $-0x80, %al
movb %al, 0x1(%r14)
movl %ebp, %eax
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x2(%r14)
movl %ebp, %eax
andb $0x7f, %al
movb %al, 0x3(%r14)
movl $0x4, %eax
jmp 0x65d41
shrl $0x1c, %eax
orb $-0x80, %al
movb %al, (%r14)
movl %ebp, %eax
shrl $0x15, %eax
orb $-0x80, %al
movb %al, 0x1(%r14)
movl %ebp, %eax
shrl $0xe, %eax
orb $-0x80, %al
movb %al, 0x2(%r14)
movl %ebp, %eax
shrl $0x7, %eax
orb $-0x80, %al
movb %al, 0x3(%r14)
movl %ebp, %eax
andb $0x7f, %al
movb %al, 0x4(%r14)
movl $0x5, %eax
addq %rax, %r14
movq %r14, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x43c0
addq %rbp, %r14
subq 0x20(%rsp), %r14
movq %r14, %r12
movq %r12, 0x68(%rsp)
movq %r13, %rdi
callq 0x45c0
movq 0x10(%rsp), %rdi
callq 0x7e26a
movq 0x50(%rsp), %rsi
movl %esi, %ecx
leaq (%rcx,%rcx,2), %rdi
movq 0x30(%rsp), %rdx
movl %edx, %eax
andl $-0x4, %eax
addl $-0x2, %eax
movb -0x1(%rbx,%rsi), %r12b
movb -0x1(%rbx,%rcx,2), %r13b
movq %rdi, 0x28(%rsp)
movb -0x1(%rbx,%rdi), %bpl
leal -0x1(%rdx), %ecx
movb (%rbx,%rcx), %cl
leal -0x2(%rdx), %edi
movl $0x8000, %r8d           # imm = 0x8000
cmpl %eax, %edi
jle 0x65e32
movslq %edi, %r9
movslq %eax, %r10
movl $0x8000, %r11d          # imm = 0x8000
movq 0x40(%rsp), %rax
movq 0x8(%rsp), %rdx
movzbl (%rbx,%r9), %esi
movl %esi, %r8d
shll $0xc, %r8d
addq %rdx, %r8
movzbl %cl, %ebx
shll $0x4, %ebx
xorl %ecx, %ecx
cmpl (%rbx,%r8), %r11d
seta %cl
leal (%rcx,%rcx), %r14d
movw %r11w, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %r11d
movl 0x4(%rbx,%r8), %r15d
imulq %r11, %r15
movb 0xe(%rbx,%r8), %cl
shrq %cl, %r15
subq %r14, %rax
addl 0x8(%rbx,%r8), %r11d
movzwl 0xc(%rbx,%r8), %r8d
movq 0x18(%rsp), %rbx
imull %r15d, %r8d
addl %r11d, %r8d
decq %r9
decl %edi
movl %esi, %ecx
movl %r8d, %r11d
cmpq %r10, %r9
jg 0x65dc9
jmp 0x65e39
movq 0x40(%rsp), %rax
movl %ecx, %esi
cmpl $0x7, 0x30(%rsp)
jbe 0x6606a
movq 0x50(%rsp), %rdx
leal -0x2(%rdx), %ecx
movq 0x28(%rsp), %r9
addl $-0x2, %r9d
movl %ecx, %ecx
movq %rcx, 0x88(%rsp)
movslq %r9d, %rcx
movq %rcx, 0x80(%rsp)
movslq %edi, %rcx
movq %rcx, 0x78(%rsp)
movl %edx, %ecx
decl %ecx
movl $0x8000, %r10d          # imm = 0x8000
movl $0x8000, %edi           # imm = 0x8000
movl $0x8000, %r14d          # imm = 0x8000
movq 0x8(%rsp), %r11
movl %ecx, 0x38(%rsp)
movq %rbx, 0x18(%rsp)
movq 0x78(%rsp), %rcx
movzbl (%rbx,%rcx), %ebx
movq %rbx, 0x10(%rsp)
shll $0xc, %ebx
addq %r11, %rbx
movzbl %sil, %r15d
shll $0x4, %r15d
movq 0x18(%rsp), %rcx
movq 0x80(%rsp), %rdx
movzbl (%rcx,%rdx), %r11d
movq %r11, 0x30(%rsp)
shll $0xc, %r11d
addq 0x8(%rsp), %r11
movzbl %bpl, %r9d
shll $0x4, %r9d
movq 0x18(%rsp), %rcx
movq 0x50(%rsp), %rdx
movzbl -0x2(%rcx,%rdx,2), %esi
movq %rsi, 0x48(%rsp)
shll $0xc, %esi
addq 0x8(%rsp), %rsi
movzbl %r13b, %ebp
shll $0x4, %ebp
movq 0x18(%rsp), %rcx
movq 0x88(%rsp), %rdx
movzbl (%rcx,%rdx), %r13d
movq %r13, 0x28(%rsp)
shll $0xc, %r13d
addq 0x8(%rsp), %r13
movzbl %r12b, %r12d
shll $0x4, %r12d
xorl %ecx, %ecx
cmpl (%r15,%rbx), %r8d
seta %cl
movw %r8w, -0x2(%rax)
leal (%rcx,%rcx), %edx
movq %rdx, 0x58(%rsp)
shll $0x4, %ecx
shrl %cl, %r8d
movl 0x4(%r15,%rbx), %edx
imulq %r8, %rdx
movb 0xe(%r15,%rbx), %cl
shrq %cl, %rdx
subq 0x58(%rsp), %rax
movl %r8d, %ecx
addl 0x8(%r15,%rbx), %ecx
movzwl 0xc(%r15,%rbx), %r8d
imull %edx, %r8d
addl %ecx, %r8d
xorl %ecx, %ecx
cmpl (%r9,%r11), %r10d
seta %cl
movw %r10w, -0x2(%rax)
leal (%rcx,%rcx), %edx
shll $0x4, %ecx
shrl %cl, %r10d
movl 0x4(%r9,%r11), %ebx
imulq %r10, %rbx
movb 0xe(%r9,%r11), %cl
shrq %cl, %rbx
subq %rdx, %rax
movl %r10d, %ecx
addl 0x8(%r9,%r11), %ecx
movzwl 0xc(%r9,%r11), %r10d
movq 0x8(%rsp), %r11
imull %ebx, %r10d
movq 0x18(%rsp), %rbx
addl %ecx, %r10d
xorl %ecx, %ecx
cmpl (%rbp,%rsi), %edi
seta %cl
leal (%rcx,%rcx), %edx
movw %di, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %edi
movl 0x4(%rbp,%rsi), %r9d
imulq %rdi, %r9
movb 0xe(%rbp,%rsi), %cl
shrq %cl, %r9
subq %rdx, %rax
movl %edi, %ecx
addl 0x8(%rbp,%rsi), %ecx
movzwl 0xc(%rbp,%rsi), %edi
imull %r9d, %edi
movq 0x30(%rsp), %r9
addl %ecx, %edi
xorl %ecx, %ecx
cmpl (%r12,%r13), %r14d
seta %cl
leal (%rcx,%rcx), %edx
movw %r14w, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %r14d
subq %rdx, %rax
movl 0x4(%r12,%r13), %edx
imulq %r14, %rdx
movb 0xe(%r12,%r13), %cl
movl %r14d, %esi
addl 0x8(%r12,%r13), %esi
movzwl 0xc(%r12,%r13), %r14d
shrq %cl, %rdx
movl 0x38(%rsp), %ecx
imull %edx, %r14d
movq 0x10(%rsp), %rdx
addl %esi, %r14d
decq %rbx
movl %edx, %esi
movl %r9d, %ebp
movq 0x48(%rsp), %r12
movq %r12, %r15
movl %r12d, %r13d
movq 0x28(%rsp), %r12
decl %ecx
jg 0x65e8c
movq %r15, %rbx
movq %r9, %r12
movq %rdx, %rsi
movq %r11, %r15
jmp 0x66095
movzbl %r12b, %ecx
movq %rcx, 0x28(%rsp)
movzbl %r13b, %ebx
movzbl %bpl, %r12d
movzbl %sil, %esi
movl $0x8000, %r14d          # imm = 0x8000
movl $0x8000, %edi           # imm = 0x8000
movl $0x8000, %r10d          # imm = 0x8000
movq 0x8(%rsp), %r15
shll $0x4, %esi
xorl %ecx, %ecx
cmpl (%r15,%rsi), %r8d
seta %cl
leal (%rcx,%rcx), %edx
movw %r8w, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %r8d
movl 0x4(%r15,%rsi), %r9d
imulq %r8, %r9
movb 0xe(%r15,%rsi), %cl
shrq %cl, %r9
subq %rdx, %rax
addl 0x8(%r15,%rsi), %r8d
movzwl 0xc(%r15,%rsi), %esi
imull %r9d, %esi
addl %r8d, %esi
shll $0x4, %r12d
xorl %ecx, %ecx
cmpl (%r15,%r12), %r10d
seta %cl
leal (%rcx,%rcx), %edx
movw %r10w, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %r10d
movl 0x4(%r15,%r12), %r8d
imulq %r10, %r8
movb 0xe(%r15,%r12), %cl
shrq %cl, %r8
subq %rdx, %rax
addl 0x8(%r15,%r12), %r10d
movzwl 0xc(%r15,%r12), %ecx
imull %r8d, %ecx
addl %r10d, %ecx
movl %ecx, %r9d
shll $0x4, %ebx
xorl %ecx, %ecx
cmpl (%r15,%rbx), %edi
seta %cl
leal (%rcx,%rcx), %edx
movw %di, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %edi
movl 0x4(%r15,%rbx), %r8d
imulq %rdi, %r8
movb 0xe(%r15,%rbx), %cl
shrq %cl, %r8
subq %rdx, %rax
addl 0x8(%r15,%rbx), %edi
movzwl 0xc(%r15,%rbx), %ebx
imull %r8d, %ebx
addl %edi, %ebx
movq 0x28(%rsp), %r11
shll $0x4, %r11d
xorl %ecx, %ecx
cmpl (%r15,%r11), %r14d
seta %cl
leal (%rcx,%rcx), %edx
movw %r14w, -0x2(%rax)
shll $0x4, %ecx
shrl %cl, %r14d
movl 0x4(%r15,%r11), %edi
imulq %r14, %rdi
movb 0xe(%r15,%r11), %cl
shrq %cl, %rdi
addl 0x8(%r15,%r11), %r14d
subq %rdx, %rax
movzwl 0xc(%r15,%r11), %ecx
imull %edi, %ecx
addl %r14d, %ecx
movl %esi, -0x4(%rax)
movl %r9d, %edx
movb %dl, -0x8(%rax)
movb %dh, -0x7(%rax)
movl %r9d, %esi
shrl $0x10, %edx
movb %dl, -0x6(%rax)
shrl $0x18, %esi
movb %sil, -0x5(%rax)
movb %bl, -0xc(%rax)
movb %bh, -0xb(%rax)
movl %ebx, %edx
shrl $0x10, %edx
movb %dl, -0xa(%rax)
shrl $0x18, %ebx
movb %bl, -0x9(%rax)
movb %cl, -0x10(%rax)
movb %ch, -0xf(%rax)
movl %ecx, %edx
shrl $0x10, %edx
movb %dl, -0xe(%rax)
shrl $0x18, %ecx
movb %cl, -0xd(%rax)
leaq -0x10(%rax), %rsi
movq 0x40(%rsp), %rdx
subq %rsi, %rdx
movq 0x68(%rsp), %rcx
movl %ecx, %edi
addl %edx, %ecx
movq 0x70(%rsp), %rax
movl %ecx, (%rax)
movq 0x20(%rsp), %rbx
addq %rbx, %rdi
callq 0x4830
movq %r15, %rdi
callq 0x7e26a
jmp 0x65b97
leaq 0x35c9a(%rip), %rdi     # 0x9beb6
leaq 0x35c2d(%rip), %rsi     # 0x9be50
leaq 0x35c46(%rip), %rcx     # 0x9be70
movl $0xcc, %edx
callq 0x42f0
leaq 0x35c97(%rip), %rdi     # 0x9bed2
leaq 0x35c0e(%rip), %rsi     # 0x9be50
leaq 0x35c27(%rip), %rcx     # 0x9be70
movl $0xcd, %edx
callq 0x42f0