// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: vector_to_port
static void vector_to_port(s7_scheme *sc, s7_pointer vect, s7_pointer port, use_write_t use_write, shared_info *ci)
    {
        s7_int i, len, plen;
        bool too_long = false;
        char buf[128];

        len = vector_length(vect);
        if (len == 0)
        {
            if (vector_rank(vect) > 1)
            {
                plen = catstrs_direct(buf, "#", pos_int_to_str_direct(sc, vector_ndims(vect)), "d()", NULL);
                port_write_string(port)(sc, buf, plen, port);
            }
            else port_write_string(port)(sc, "#()", 3, port);
            return;
        }

        if (use_write != P_READABLE)
        {
            if (sc->print_length == 0)
            {
                if (vector_rank(vect) > 1)
                {
                    plen = catstrs_direct(buf, "#", pos_int_to_str_direct(sc, vector_ndims(vect)), "d(...)", NULL);
                    port_write_string(port)(sc, buf, plen, port);
                }
                else port_write_string(port)(sc, "#(...)", 6, port);
                return;
            }
            if (len > sc->print_length)
            {
                too_long = true;
                len = sc->print_length;
            }
        }
        if ((!ci) &&
                (len > 1000))
        {
            s7_int vlen;
            s7_pointer p0;
            s7_pointer *els;
            vlen = vector_length(vect);
            els = vector_elements(vect);
            p0 = els[0];
            for (i = 1; i < vlen; i++)
                if (els[i] != p0)
                    break;
            if (i == vlen)
            {
                make_vector_to_port(sc, vect, port);
                object_to_port(sc, p0, port, use_write, NULL);
                port_write_character(port)(sc, ')', port);
                return;
            }
        }

        check_stack_size(sc);
        push_stack_no_let_no_code(sc, OP_GC_PROTECT, vect);
        if (use_write == P_READABLE)
        {
            int32_t vref;
            if ((ci) &&
                    (is_cyclic(vect)) &&
                    ((vref = peek_shared_ref(ci, vect)) != 0))
            {
                s7_pointer *els;
                if (vref < 0) vref = -vref;
                els = vector_elements(vect);

                if ((ci->defined[vref]) || (port == ci->cycle_port))
                {
                    plen = catstrs_direct(buf, "<", pos_int_to_str_direct(sc, vref), ">", NULL);
                    port_write_string(port)(sc, buf, plen, port);
                    unstack(sc);
                    return;
                }

                if (vector_rank(vect) > 1)
                    port_write_string(port)(sc, "(subvector ", 11, port);

                port_write_string(port)(sc, "(vector", 7, port); /* top level let */
                for (i = 0; i < len; i++)
                {
                    if (has_structure(els[i]))
                    {
                        char *indices;
                        int32_t eref;
                        port_write_string(port)(sc, " #f", 3, port);
                        eref = peek_shared_ref(ci, els[i]);

                        if (eref != 0)
                        {
                            if (eref < 0) eref = -eref;
                            if (vector_rank(vect) > 1)
                            {
                                s7_int dimension;
                                block_t *b;
                                dimension = vector_rank(vect) - 1;
                                b = callocate(sc, 128);
                                indices = (char *)block_data(b);
                                plen = catstrs_direct(buf, "  (set! (<", pos_int_to_str_direct(sc, vref), ">",
                                        multivector_indices_to_string(sc, i, vect, indices, dimension),
                                        ") <", pos_int_to_str_direct_1(sc, eref), ">)\n ", NULL);
                                port_write_string(ci->cycle_port)(sc, buf, plen, ci->cycle_port);
                                liberate(sc, b);
                            }
                            else
                            {
                                size_t len1;
                                len1 = catstrs_direct(buf, "  (set! (<", pos_int_to_str_direct(sc, vref), "> ",
                                        integer_to_string(sc, i, &plen), ") <",
                                        pos_int_to_str_direct_1(sc, eref), ">)\n", NULL);
                                port_write_string(ci->cycle_port)(sc, buf, len1, ci->cycle_port);
                            }

                        }
                        else
                        {
                            if (vector_rank(vect) > 1)
                            {
                                s7_int dimension;
                                block_t *b;
                                dimension = vector_rank(vect) - 1;
                                b = callocate(sc, 128);
                                indices = (char *)block_data(b);
                                buf[0] = '\0';
                                multivector_indices_to_string(sc, i, vect, indices, dimension); /* writes to indices */
                                plen = catstrs(buf, 128, "  (set! (<", pos_int_to_str_direct(sc, vref), ">", indices, ") ", NULL);
                                port_write_string(ci->cycle_port)(sc, buf, plen, ci->cycle_port);
                                liberate(sc, b);
                            }
                            else
                            {
                                size_t len1;
                                len1 = catstrs_direct(buf, "  (set! (<", pos_int_to_str_direct(sc, vref), "> ", integer_to_string_no_length(sc, i), ") ", NULL);
                                port_write_string(ci->cycle_port)(sc, buf, len1, ci->cycle_port);
                            }

                            object_to_port_with_circle_check(sc, els[i], ci->cycle_port, P_READABLE, ci);
                            port_write_string(ci->cycle_port)(sc, ")\n", 2, ci->cycle_port);
                        }
                    }
                    else
                    {
                        port_write_character(port)(sc, ' ', port);
                        object_to_port_with_circle_check(sc, els[i], port, P_READABLE, ci);
                    }
                }
                port_write_character(port)(sc, ')', port);
                if (vector_rank(vect) > 1)
                    write_vector_dimensions(sc, vect, port);
            }
            else
            {
                if (vector_rank(vect) > 1)
                    port_write_string(port)(sc, "(subvector ", 11, port);

                if (is_immutable_vector(vect))
                    port_write_string(port)(sc, "(immutable! ", 12, port);

                port_write_string(port)(sc, "(vector", 7, port);
                for (i = 0; i < len; i++)
                {
                    port_write_character(port)(sc, ' ', port);
                    object_to_port_with_circle_check(sc, vector_element(vect, i), port, P_READABLE, ci);
                }
                port_write_character(port)(sc, ')', port);
                if (is_immutable_vector(vect))
                    port_write_character(port)(sc, ')', port);

                if (vector_rank(vect) > 1)
                    write_vector_dimensions(sc, vect, port);
            }
        }
        else /* not readable write */
        {
            if (vector_rank(vect) > 1)
            {
                bool last = false;
                if (vector_ndims(vect) > 1)
                {
                    plen = catstrs_direct(buf, "#", pos_int_to_str_direct(sc, vector_ndims(vect)), "d", NULL);
                    port_write_string(port)(sc, buf, plen, port);
                }
                else port_write_character(port)(sc, '#', port);
                multivector_to_port(sc, vect, port, len, 0, 0, vector_ndims(vect), &last, use_write, ci);
            }
            else
            {
                port_write_string(port)(sc, "#(", 2, port);
                for (i = 0; i < len - 1; i++)
                {
                    object_to_port_with_circle_check(sc, vector_element(vect, i), port, NOT_P_DISPLAY(use_write), ci);
                    port_write_character(port)(sc, ' ', port);
                }
                object_to_port_with_circle_check(sc, vector_element(vect, i), port, NOT_P_DISPLAY(use_write), ci);

                if (too_long)
                    port_write_string(port)(sc, " ...)", 5, port);
                else port_write_character(port)(sc, ')', port);
            }
        }
        unstack(sc);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %rbp
movq 0x8(%rsi), %rax
testq %rax, %rax
je 0xeda81
movl %ecx, %r14d
cmpl $0x2, %ecx
jne 0xedb0c
xorl %edi, %edi
movq %rax, %r12
jmp 0xedb27
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xedb61
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xedb61
leaq 0xb6f(%rbp), %r8
movb $0x0, 0xb6f(%rbp)
leaq 0x28a8b(%rip), %rcx     # 0x116540
movabsq $0x6666666666666667, %rdi # imm = 0x6666666666666667
movq %rsi, %rax
imulq %rdi
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x2, %rdx
addq %rax, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %r9
subq %rax, %r9
movb (%rcx,%r9), %al
movb %al, -0x1(%r8)
decq %r8
addq $0x9, %rsi
cmpq $0x12, %rsi
movq %rdx, %rsi
ja 0xedabf
leaq 0x29b3d(%rip), %rsi     # 0x11763d
leaq 0x2ca42(%rip), %rcx     # 0x11a549
jmp 0xedecc
movq 0x280(%rbp), %r12
testq %r12, %r12
je 0xede46
cmpq %r12, %rax
setg %dil
cmovlq %rax, %r12
testq %r8, %r8
setne %cl
cmpq $0x3e9, %r12            # imm = 0x3E9
setl %dl
orb %cl, %dl
jne 0xedbda
movq 0x10(%r15), %rdx
movq (%rdx), %r13
movl $0x1, %ecx
cmpq $0x2, %rax
jl 0xedb7e
cmpq %r13, (%rdx,%rcx,8)
jne 0xedb7e
incq %rcx
cmpq %rcx, %rax
jne 0xedb51
jmp 0xedb83
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
leaq 0x2ca11(%rip), %rsi     # 0x11a585
movl $0x3, %edx
jmp 0xedf16
cmpq %rax, %rcx
jne 0xedbda
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xf3e5c
movzbl (%r13), %eax
leaq 0x647e3(%rip), %r9      # 0x152380
movq %rbp, %rdi
movq %r13, %rsi
movq %rbx, %rdx
movl %r14d, %ecx
xorl %r8d, %r8d
callq *(%r9,%rax,8)
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rbp, %rdi
movl $0x29, %esi
movq %rbx, %rdx
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq 0x50(%rbp), %rax
cmpq 0x58(%rbp), %rax
movq %r8, 0x10(%rsp)
jb 0xedc00
movl %edi, %r13d
movq %rbp, %rdi
callq 0xb990b
movl %r13d, %edi
movq 0x10(%rsp), %r8
movq 0x50(%rbp), %rax
movq %r15, 0x10(%rax)
movq 0x50(%rbp), %rax
movq $0x1, 0x18(%rax)
addq $0x20, 0x50(%rbp)
movq %r14, 0x20(%rsp)
cmpl $0x2, %r14d
movq %rbp, %r14
movq %rbx, 0x8(%rsp)
jne 0xedc70
testq %r8, %r8
je 0xee752
testb $0x20, 0x6(%r15)
je 0xee752
testb $0x2, 0x2(%r15)
je 0xee752
movslq 0xc(%r8), %rax
testq %rax, %rax
jle 0xee752
movq (%r8), %rdx
xorl %ecx, %ecx
cmpq %r15, (%rdx,%rcx,8)
je 0xedfd9
incq %rcx
cmpq %rcx, %rax
jne 0xedc59
jmp 0xee752
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xedd63
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xedd63
xorl %eax, %eax
movb %al, 0x1f(%rsp)
leaq 0xb6f(%rbp), %r8
movb %al, 0xb6f(%rbp)
leaq 0x28897(%rip), %rcx     # 0x116540
movabsq $0x6666666666666667, %rdi # imm = 0x6666666666666667
movq %rsi, %rax
imulq %rdi
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x2, %rdx
addq %rax, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %r9
subq %rax, %r9
movb (%rcx,%r9), %al
movb %al, -0x1(%r8)
decq %r8
addq $0x9, %rsi
cmpq $0x12, %rsi
movq %rdx, %rsi
ja 0xedcb3
leaq 0x29949(%rip), %rsi     # 0x11763d
leaq 0x29a36(%rip), %rcx     # 0x117731
leaq 0x70(%rsp), %r13
movq %r13, %rdi
movq %r8, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xc442
movq 0x8(%rbx), %rcx
movq 0x48(%rcx), %r8
movq %rbp, %rdi
movq %r13, %rsi
movq %rax, %rdx
movq %rbx, %rcx
callq *0x10(%r8)
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
movl 0x10(%rax), %eax
leaq 0x1f(%rsp), %r10
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movl %r12d, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq 0x10(%rsp)
pushq 0x28(%rsp)
pushq %r10
pushq %rax
callq 0xf4186
addq $0x20, %rsp
jmp 0xee8ab
movl %edi, 0x30(%rsp)
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
leaq 0x2c846(%rip), %rsi     # 0x11a5bc
movl $0x2, %edx
movq %rbp, %rdi
movq %rbx, %rcx
callq *0x10(%rax)
cmpq $0x2, %r12
jl 0xedf2f
movq %r15, 0x28(%rsp)
decq %r12
movq 0x20(%rsp), %rax
cmpl $0x1, %eax
movl %eax, %r13d
adcl $0x0, %r13d
xorl %ebp, %ebp
movq 0x10(%rsp), %r8
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax,%rbp,8), %rsi
movzbl (%rsi), %eax
testq %r8, %r8
je 0xeddf6
leaq 0x64578(%rip), %rcx     # 0x152340
cmpb $0x1, (%rax,%rcx)
jne 0xeddf6
cmpl $0x15, %eax
jne 0xeddde
movl $0x15, %eax
testb $0x1, 0x7(%rsi)
jne 0xeddf6
movq %r14, %rbx
movq %r14, %rdi
movq 0x8(%rsp), %r15
movq %r15, %rdx
movl %r13d, %ecx
callq 0x9596b
jmp 0xede12
movq %r14, %rbx
movq %r14, %rdi
movq 0x8(%rsp), %r15
movq %r15, %rdx
movl %r13d, %ecx
leaq 0x64572(%rip), %r9      # 0x152380
callq *(%r9,%rax,8)
movq 0x8(%r15), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
movl $0x20, %esi
movq %r15, %rdx
callq *0x8(%rax)
incq %rbp
cmpq %rbp, %r12
movq 0x10(%rsp), %r8
jne 0xeddac
movq 0x28(%rsp), %r15
movq %r14, %rbp
jmp 0xedf37
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xedefe
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xedefe
leaq 0xb6f(%rbp), %r8
movb $0x0, 0xb6f(%rbp)
leaq 0x286c6(%rip), %rcx     # 0x116540
movabsq $0x6666666666666667, %rdi # imm = 0x6666666666666667
movq %rsi, %rax
imulq %rdi
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x2, %rdx
addq %rax, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %r9
subq %rax, %r9
movb (%rcx,%r9), %al
movb %al, -0x1(%r8)
decq %r8
addq $0x9, %rsi
cmpq $0x12, %rsi
movq %rdx, %rsi
ja 0xede84
leaq 0x29778(%rip), %rsi     # 0x11763d
leaq 0x2c681(%rip), %rcx     # 0x11a54d
leaq 0x70(%rsp), %r15
movq %r15, %rdi
movq %r8, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xc442
movq 0x8(%rbx), %rcx
movq 0x48(%rcx), %r8
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %rbx, %rcx
callq *0x10(%r8)
jmp 0xee8b0
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
leaq 0x2c678(%rip), %rsi     # 0x11a589
movl $0x6, %edx
movq %rbp, %rdi
movq %rbx, %rcx
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
xorl %r12d, %r12d
movq 0x10(%rsp), %r8
movq 0x10(%r15), %rax
movq (%rax,%r12,8), %rsi
movzbl (%rsi), %eax
testq %r8, %r8
movq 0x20(%rsp), %rcx
je 0xedf81
leaq 0x643ed(%rip), %rdx     # 0x152340
cmpb $0x1, (%rax,%rdx)
movq 0x8(%rsp), %r15
jne 0xedf86
cmpl $0x15, %eax
jne 0xedf6e
movl $0x15, %eax
testb $0x1, 0x7(%rsi)
jne 0xedf86
cmpl $0x1, %ecx
adcl $0x0, %ecx
movq %rbp, %rdi
movq %r15, %rdx
callq 0x9596b
jmp 0xedf9d
movq 0x8(%rsp), %r15
leaq 0x643f3(%rip), %r9      # 0x152380
cmpl $0x1, %ecx
adcl $0x0, %ecx
movq %rbp, %rdi
movq %r15, %rdx
callq *(%r9,%rax,8)
movq 0x8(%r15), %rax
movq 0x48(%rax), %rax
cmpb $0x0, 0x30(%rsp)
je 0xedfc6
leaq 0x2a73d(%rip), %rsi     # 0x1186f0
movl $0x5, %edx
movq %rbp, %rdi
movq %r15, %rcx
callq *0x10(%rax)
jmp 0xee8ab
movq %rbp, %rdi
movl $0x29, %esi
movq %r15, %rdx
callq *0x8(%rax)
jmp 0xee8ab
movq 0x20(%r8), %rax
movl (%rax,%rcx,4), %eax
testl %eax, %eax
je 0xee752
movl %eax, %r13d
negl %r13d
cmovsl %eax, %r13d
movq 0x48(%r8), %rax
cmpb $0x0, (%rax,%r13)
jne 0xee8c2
cmpq %rbx, 0x28(%r8)
je 0xee8c2
movq 0x10(%r15), %rax
movq %rax, 0x20(%rsp)
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xee045
cmpq $0x2, 0x10(%rax)
jl 0xee045
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
leaq 0x2c559(%rip), %rsi     # 0x11a590
movl $0xb, %edx
movq %rbp, %rdi
movq %rbx, %rcx
callq *0x10(%rax)
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
leaq 0x2c548(%rip), %rsi     # 0x11a59c
movl $0x7, %edx
movq %rbp, %rdi
movq %rbx, %rcx
callq *0x10(%rax)
testq %r12, %r12
jle 0xee873
leaq 0x838(%rbp), %rax
movq %rax, 0x50(%rsp)
leaq 0xb0f(%rbp), %rax
movq %rax, 0x60(%rsp)
leaq 0xb2f(%rbp), %rax
movq %rax, 0x68(%rsp)
leaq 0xb6f(%rbp), %rax
movq %rax, 0x30(%rsp)
leaq 0xb8f(%rbp), %rax
movq %rax, 0x58(%rsp)
leaq 0x64292(%rip), %r14     # 0x152340
xorl %edx, %edx
movq %r15, 0x28(%rsp)
movq %r13, 0x48(%rsp)
movq 0x20(%rsp), %rax
movq %rdx, 0x8(%rsp)
movq (%rax,%rdx,8), %rax
movzbl (%rax), %ecx
cmpb $0x1, (%rcx,%r14)
jne 0xee140
cmpb $0x15, %cl
jne 0xee0dd
testb $0x1, 0x7(%rax)
jne 0xee140
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movl $0x3, %edx
movq %rbp, %rdi
leaq 0x1dbc6(%rip), %rsi     # 0x10bcba
movq %rbx, %rcx
callq *0x10(%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %r11
movq (%rax,%r11,8), %rax
testb $0x2, 0x2(%rax)
movq 0x10(%rsp), %rdi
je 0xee371
movslq 0xc(%rdi), %rcx
testq %rcx, %rcx
jle 0xee371
movq (%rdi), %rsi
xorl %edx, %edx
cmpq %rax, (%rsi,%rdx,8)
je 0xee1b3
incq %rdx
cmpq %rdx, %rcx
jne 0xee129
jmp 0xee371
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movq %rbp, %rdi
movl $0x20, %esi
movq %rbx, %rdx
callq *0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movzbl (%rsi), %eax
cmpb $0x1, (%rax,%r14)
jne 0xee193
cmpl $0x15, %eax
jne 0xee179
testb $0x1, 0x7(%rsi)
jne 0xee193
movq %rbp, %rdi
movq %rbx, %rdx
movl $0x2, %ecx
movq 0x10(%rsp), %r8
callq 0x9596b
jmp 0xee5f2
movq %rbp, %rdi
movq %rbx, %rdx
movl $0x2, %ecx
movq 0x10(%rsp), %r8
leaq 0x641d6(%rip), %r9      # 0x152380
callq *(%r9,%rax,8)
jmp 0xee5f2
movq 0x20(%rdi), %rax
movl (%rax,%rdx,4), %eax
testl %eax, %eax
je 0xee371
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
movl %ecx, %r15d
testq %rax, %rax
leaq 0x28362(%rip), %r9      # 0x116540
movabsq $-0x3333333333333333, %r11 # imm = 0xCCCCCCCCCCCCCCCD
je 0xee608
movq 0x10(%rax), %rax
cmpq $0x2, %rax
jl 0xee608
movq %rax, 0x38(%rsp)
movl $0x80, %esi
movq %rbp, %rdi
callq 0x3cdd6
movabsq $-0x3333333333333333, %r8 # imm = 0xCCCCCCCCCCCCCCCD
leaq 0x28321(%rip), %rdi     # 0x116540
movq %rax, 0x40(%rsp)
movq (%rax), %r9
movb $0x0, 0xb6f(%rbp)
movq %r13, %rcx
movq 0x30(%rsp), %r13
movq %rcx, %rax
mulq %r8
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rcx, %rsi
subq %rax, %rsi
movb (%rdi,%rsi), %al
movb %al, -0x1(%r13)
decq %r13
cmpq $0x9, %rcx
movq %rdx, %rcx
ja 0xee236
movq 0x38(%rsp), %r8
decl %r8d
movq %rbp, %rdi
movq 0x8(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r9, 0x38(%rsp)
movq %r9, %rcx
callq 0xf4374
movabsq $-0x3333333333333333, %rdi # imm = 0xCCCCCCCCCCCCCCCD
leaq 0x282ac(%rip), %rsi     # 0x116540
movb $0x0, 0xb8f(%rbp)
movq 0x58(%rsp), %r10
movq %r15, %rax
mulq %rdi
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r15, %rcx
subq %rax, %rcx
movb (%rsi,%rcx), %al
movb %al, -0x1(%r10)
decq %r10
cmpq $0x9, %r15
movq %rdx, %r15
ja 0xee2a0
subq $0x8, %rsp
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0x2c2c6(%rip), %rsi     # 0x11a5a4
movq %r13, %rdx
leaq 0x2c859(%rip), %rcx     # 0x11ab41
movq 0x40(%rsp), %r8
leaq 0x2c2bb(%rip), %r9      # 0x11a5af
xorl %eax, %eax
pushq $0x0
leaq 0x2c2b4(%rip), %r11     # 0x11a5b3
pushq %r11
pushq %r10
callq 0xc442
addq $0x20, %rsp
movq 0x10(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq 0x40(%rsp), %rsi
movslq 0x8(%rsi), %rax
cmpq $0x11, %rax
jne 0xee72b
movq (%rsi), %rdi
testq %rdi, %rdi
movq 0x28(%rsp), %r15
movq 0x48(%rsp), %r13
je 0xee360
callq 0x8050
movq 0x40(%rsp), %rsi
movq $0x0, (%rsi)
movl $0x0, 0x8(%rsi)
movq 0x50(%rsp), %rax
jmp 0xee73e
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
leaq 0x281bd(%rip), %r9      # 0x116540
movabsq $-0x3333333333333333, %r10 # imm = 0xCCCCCCCCCCCCCCCD
je 0xee497
movq 0x10(%rax), %r13
cmpq $0x2, %r13
jl 0xee497
decl %r13d
movl $0x80, %esi
movq %rbp, %rdi
movq %r11, %r14
callq 0x3cdd6
movq %r15, %rdx
movq %rax, 0x40(%rsp)
movq (%rax), %rcx
xorl %r15d, %r15d
movb %r15b, 0x70(%rsp)
movq %rbp, %rdi
movq %r14, %rsi
movq %rcx, 0x38(%rsp)
movl %r13d, %r8d
callq 0xf4374
movabsq $-0x3333333333333333, %r9 # imm = 0xCCCCCCCCCCCCCCCD
leaq 0x28155(%rip), %r8      # 0x116540
movb %r15b, 0xb6f(%rbp)
movq 0x30(%rsp), %rcx
movq 0x48(%rsp), %r13
movq %r13, %rsi
movq %rsi, %rax
mulq %r9
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %rdi
subq %rax, %rdi
movb (%r8,%rdi), %al
movb %al, -0x1(%rcx)
decq %rcx
cmpq $0x9, %rsi
movq %rdx, %rsi
ja 0xee3ff
movl $0x80, %esi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
leaq 0x2c166(%rip), %rdx     # 0x11a5a4
leaq 0x2c6fc(%rip), %r8      # 0x11ab41
movq 0x38(%rsp), %r9
xorl %eax, %eax
pushq $0x0
leaq 0x2c360(%rip), %r10     # 0x11a7b5
pushq %r10
callq 0x9517
addq $0x10, %rsp
movq 0x10(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbp, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq %rbp, %rdi
movq 0x40(%rsp), %rsi
callq 0x9a12
leaq 0x63eae(%rip), %r14     # 0x152340
jmp 0xee572
movb $0x0, 0xb6f(%rbp)
movq 0x30(%rsp), %rcx
movq 0x48(%rsp), %r13
movq %r13, %rsi
movq %rsi, %rax
mulq %r10
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %rdi
subq %rax, %rdi
movb (%r9,%rdi), %al
movb %al, -0x1(%rcx)
decq %rcx
cmpq $0x9, %rsi
movq %rdx, %rsi
ja 0xee4ab
testq %r11, %r11
jne 0xee4eb
testb $0x1, 0x5c546(%rip)     # 0x14aa28
leaq 0x2818f(%rip), %r8      # 0x116678
je 0xee523
movq 0x68(%rsp), %r8
movb $0x0, (%r8)
movq %r11, %rsi
movq %rsi, %rax
mulq %r10
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %rdi
subq %rax, %rdi
movb (%r9,%rdi), %al
movb %al, -0x1(%r8)
decq %r8
cmpq $0x9, %rsi
movq %rdx, %rsi
ja 0xee4f7
subq $0x8, %rsp
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0x2c06e(%rip), %rsi     # 0x11a5a4
movq %rcx, %rdx
leaq 0x285ff(%rip), %rcx     # 0x116b3f
leaq 0x2c26e(%rip), %r9      # 0x11a7b5
xorl %eax, %eax
pushq $0x0
callq 0xc442
addq $0x10, %rsp
movq 0x10(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movzbl (%rsi), %eax
cmpb $0x1, (%rax,%r14)
jne 0xee5b0
cmpl $0x15, %eax
jne 0xee595
testb $0x1, 0x7(%rsi)
jne 0xee5b0
movq 0x10(%rsp), %r15
movq 0x28(%r15), %rdx
movq %rbp, %rdi
movl $0x2, %ecx
movq %r15, %r8
callq 0x9596b
jmp 0xee5cf
movq 0x10(%rsp), %r15
movq 0x28(%r15), %rdx
movq %rbp, %rdi
movl $0x2, %ecx
movq %r15, %r8
leaq 0x63db5(%rip), %r9      # 0x152380
callq *(%r9,%rax,8)
movq 0x28(%r15), %rcx
movq 0x8(%rcx), %rax
movq 0x48(%rax), %rax
movl $0x2, %edx
movq %rbp, %rdi
leaq 0x2bfef(%rip), %rsi     # 0x11a5d9
callq *0x10(%rax)
movq 0x28(%rsp), %r15
movq 0x8(%rsp), %rdx
incq %rdx
cmpq %r12, %rdx
jne 0xee0ba
jmp 0xee873
movb $0x0, 0xb6f(%rbp)
movq 0x30(%rsp), %rcx
movq %r13, %rsi
movq %rsi, %rax
mulq %r11
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %rdi
subq %rax, %rdi
movb (%r9,%rdi), %al
movb %al, -0x1(%rcx)
decq %rcx
cmpq $0x9, %rsi
movq %rdx, %rsi
ja 0xee617
cmpq $0x0, 0x8(%rsp)
jne 0xee65a
testb $0x1, 0x5c3d7(%rip)     # 0x14aa28
leaq 0x28020(%rip), %r8      # 0x116678
je 0xee694
movq 0x60(%rsp), %r8
movb $0x0, (%r8)
movq 0x8(%rsp), %rsi
movq %rsi, %rax
mulq %r11
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %rsi, %rdi
subq %rax, %rdi
movb (%r9,%rdi), %al
movb %al, -0x1(%r8)
decq %r8
cmpq $0x9, %rsi
movq %rdx, %rsi
ja 0xee668
movb $0x0, 0xb8f(%rbp)
movq 0x58(%rsp), %r10
movq %r15, %rax
mulq %r11
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r15, %rsi
subq %rax, %rsi
movb (%r9,%rsi), %al
movb %al, -0x1(%r10)
decq %r10
cmpq $0x9, %r15
movq %rdx, %r15
ja 0xee6a0
subq $0x8, %rsp
leaq 0x78(%rsp), %r15
movq %r15, %rdi
leaq 0x2bec5(%rip), %rsi     # 0x11a5a4
movq %rcx, %rdx
leaq 0x28456(%rip), %rcx     # 0x116b3f
leaq 0x2bebf(%rip), %r9      # 0x11a5af
xorl %eax, %eax
pushq $0x0
leaq 0x2bebd(%rip), %r11     # 0x11a5b8
pushq %r11
pushq %r10
callq 0xc442
addq $0x20, %rsp
movq 0x10(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq *0x10(%r8)
jmp 0xee5ed
movq 0x50(%rsp), %rcx
leaq (%rcx,%rax,8), %rax
movq 0x28(%rsp), %r15
movq 0x48(%rsp), %r13
movq 0x8(%rsp), %rdx
movq (%rax), %rcx
movq %rcx, 0x18(%rsi)
movq %rsi, (%rax)
jmp 0xee5f7
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xee783
cmpq $0x2, 0x10(%rax)
jl 0xee783
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
leaq 0x2be1b(%rip), %rsi     # 0x11a590
movl $0xb, %edx
movq %rbp, %rdi
movq %rbx, %rcx
callq *0x10(%rax)
testb $0x1, 0x3(%r15)
je 0xee7a7
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
leaq 0x283ab(%rip), %rsi     # 0x116b44
movl $0xc, %edx
movq %rbp, %rdi
movq %rbx, %rcx
callq *0x10(%rax)
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
leaq 0x2bde6(%rip), %rsi     # 0x11a59c
movl $0x7, %edx
movq %rbp, %rdi
movq %rbx, %rcx
callq *0x10(%rax)
testq %r12, %r12
jle 0xee84e
xorl %r13d, %r13d
leaq 0x63ba9(%rip), %rbp     # 0x152380
leaq 0x63b62(%rip), %rbx     # 0x152340
movq 0x8(%rsp), %rdx
movq 0x8(%rdx), %rax
movq 0x48(%rax), %rax
movq %r14, %rdi
movl $0x20, %esi
callq *0x8(%rax)
movq 0x10(%r15), %rax
movq (%rax,%r13,8), %rsi
movzbl (%rsi), %eax
movq 0x10(%rsp), %r8
testq %r8, %r8
je 0xee835
cmpb $0x1, (%rax,%rbx)
jne 0xee835
cmpl $0x15, %eax
jne 0xee821
movl $0x15, %eax
testb $0x1, 0x7(%rsi)
jne 0xee835
movq %r14, %rdi
movq 0x8(%rsp), %rdx
movl $0x2, %ecx
callq 0x9596b
jmp 0xee846
movq %r14, %rdi
movq 0x8(%rsp), %rdx
movl $0x2, %ecx
callq *(%rbp,%rax,8)
incq %r13
cmpq %r13, %r12
jne 0xee7de
movq 0x8(%rsp), %rbx
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movq %r14, %rbp
movq %r14, %rdi
movl $0x29, %esi
movq %rbx, %rdx
callq *0x8(%rax)
testb $0x1, 0x3(%r15)
je 0xee889
movq 0x8(%rbx), %rax
movq 0x48(%rax), %rax
movq %rbp, %rdi
movl $0x29, %esi
movq %rbx, %rdx
callq *0x8(%rax)
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xee8ab
cmpq $0x2, 0x10(%rax)
jl 0xee8ab
movq %rbp, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xf444a
addq $-0x20, 0x50(%rbp)
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb6f(%rbp), %r8
movb $0x0, 0xb6f(%rbp)
leaq 0x27c69(%rip), %rcx     # 0x116540
movabsq $-0x3333333333333333, %rsi # imm = 0xCCCCCCCCCCCCCCCD
movq %r13, %rax
mulq %rsi
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r13, %rdi
subq %rax, %rdi
movb (%rcx,%rdi), %al
movb %al, -0x1(%r8)
decq %r8
cmpq $0x9, %r13
movq %rdx, %r13
ja 0xee8e1
leaq 0x2bf58(%rip), %rsi     # 0x11a86b
leaq 0x2c227(%rip), %rcx     # 0x11ab41
leaq 0x70(%rsp), %r15
movq %r15, %rdi
movq %r8, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xc442
movq 0x8(%rbx), %rcx
movq 0x48(%rcx), %r8
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %rbx, %rcx
callq *0x10(%r8)
jmp 0xee8ab