// File: /workspace/github_c_makefile_star2_O1/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 $0xe8, %rsp
movq %rdx, %r14
movq %rsi, %rbp
movq %rdi, %r12
movq 0x8(%rsi), %rax
testq %rax, %rax
je 0xf6883
movl %ecx, %r15d
cmpl $0x2, %ecx
jne 0xf6911
movl $0x0, 0x20(%rsp)
movq %rax, %rbx
jmp 0xf6930
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf6a4d
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xf6a4d
leaq 0xb6f(%r12), %r8
movb $0x0, 0xb6f(%r12)
leaq 0x28b76(%rip), %rcx     # 0x11f430
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 0xf68c4
leaq 0x29c28(%rip), %rsi     # 0x12052d
leaq 0x2cb2d(%rip), %rcx     # 0x123439
jmp 0xf6ca4
movq 0x280(%r12), %rbx
testq %rbx, %rbx
je 0xf6c1b
cmpq %rbx, %rax
setg %cl
movl %ecx, 0x20(%rsp)
cmovlq %rax, %rbx
testq %r8, %r8
setne %cl
cmpq $0x3e9, %rbx            # imm = 0x3E9
setl %dl
orb %cl, %dl
jne 0xf69c3
movq 0x10(%rbp), %rdx
movq (%rdx), %r13
movl $0x1, %ecx
cmpq $0x2, %rax
jl 0xf6967
cmpq %r13, (%rdx,%rcx,8)
jne 0xf6967
incq %rcx
cmpq %rcx, %rax
jne 0xf6956
movq %rax, %rcx
cmpq %rax, %rcx
jne 0xf69c3
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
callq 0xfcc05
movzbl (%r13), %eax
leaq 0x639fa(%rip), %r9      # 0x15a380
movq %r12, %rdi
movq %r13, %rsi
movq %r14, %rdx
movl %r15d, %ecx
xorl %r8d, %r8d
callq *(%r9,%rax,8)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %r12, %rdi
movl $0x29, %esi
movq %r14, %rdx
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq 0x50(%r12), %rax
cmpq 0x58(%r12), %rax
movq %r8, 0x8(%rsp)
jb 0xf69e1
movq %r12, %rdi
callq 0xc15d0
movq 0x8(%rsp), %r8
movq 0x50(%r12), %rax
movq %rbp, 0x10(%rax)
movq 0x50(%r12), %rax
movq $0x1, 0x18(%rax)
addq $0x20, 0x50(%r12)
cmpl $0x2, %r15d
jne 0xf6a6a
testq %r8, %r8
je 0xf7543
testb $0x20, 0x6(%rbp)
je 0xf7543
xorl %eax, %eax
testb $0x2, 0x2(%rbp)
je 0xf6daf
movslq 0xc(%r8), %rcx
testq %rcx, %rcx
jle 0xf6daf
movq (%r8), %rdx
xorl %eax, %eax
cmpq %rbp, (%rdx,%rax,8)
je 0xf6da8
incq %rax
cmpq %rax, %rcx
jne 0xf6a34
xorl %eax, %eax
jmp 0xf6daf
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
leaq 0x2ca15(%rip), %rsi     # 0x123475
movl $0x3, %edx
jmp 0xf6cee
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf6b5d
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xf6b5d
xorl %eax, %eax
movb %al, 0x17(%rsp)
leaq 0xb6f(%r12), %r8
movb %al, 0xb6f(%r12)
leaq 0x2898a(%rip), %rcx     # 0x11f430
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 0xf6ab0
leaq 0x29a3c(%rip), %rsi     # 0x12052d
leaq 0x29b29(%rip), %rcx     # 0x120621
leaq 0x60(%rsp), %r13
movq %r13, %rdi
movq %r8, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xd1cb
movq 0x8(%r14), %rcx
movq 0x48(%rcx), %r8
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq *0x10(%r8)
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x10(%rax), %eax
leaq 0x17(%rsp), %r10
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movl %ebx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq 0x8(%rsp)
pushq %r15
pushq %r10
pushq %rax
callq 0xfcf2f
addq $0x20, %rsp
jmp 0xf772a
movq %r15, 0x18(%rsp)
movq %rbp, %r15
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x2c938(%rip), %rsi     # 0x1234ac
movl $0x2, %edx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
cmpq $0x2, %rbx
jl 0xf6d07
movq 0x18(%rsp), %rax
cmpl $0x1, %eax
movl %eax, %r13d
adcl $0x0, %r13d
decq %rbx
xorl %ebp, %ebp
movq 0x8(%rsp), %r8
movq 0x10(%r15), %rax
movq (%rax,%rbp,8), %rsi
testq %r8, %r8
je 0xf6bdc
movzbl (%rsi), %eax
leaq 0x63784(%rip), %rcx     # 0x15a340
cmpb $0x1, (%rax,%rcx)
jne 0xf6bdc
cmpb $0x15, %al
jne 0xf6bcc
testb $0x1, 0x7(%rsi)
jne 0xf6bdc
movq %r12, %rdi
movq %r14, %rdx
movl %r13d, %ecx
callq 0x9c033
jmp 0xf6bf3
movzbl (%rsi), %eax
movq %r12, %rdi
movq %r14, %rdx
movl %r13d, %ecx
leaq 0x63791(%rip), %r9      # 0x15a380
callq *(%r9,%rax,8)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %r12, %rdi
movl $0x20, %esi
movq %r14, %rdx
callq *0x8(%rax)
incq %rbp
cmpq %rbp, %rbx
movq 0x8(%rsp), %r8
jne 0xf6ba5
jmp 0xf6d0e
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf6cd6
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xf6cd6
leaq 0xb6f(%r12), %r8
movb $0x0, 0xb6f(%r12)
leaq 0x287de(%rip), %rcx     # 0x11f430
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 0xf6c5c
leaq 0x29890(%rip), %rsi     # 0x12052d
leaq 0x2c799(%rip), %rcx     # 0x12343d
leaq 0x60(%rsp), %r15
movq %r15, %rdi
movq %r8, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xd1cb
movq 0x8(%r14), %rcx
movq 0x48(%rcx), %r8
movq %r12, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq *0x10(%r8)
jmp 0xf7730
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
leaq 0x2c790(%rip), %rsi     # 0x123479
movl $0x6, %edx
movq %r12, %rdi
movq %r14, %rcx
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
xorl %ebp, %ebp
movq 0x8(%rsp), %r8
movq 0x10(%r15), %rax
movq (%rax,%rbp,8), %rsi
testq %r8, %r8
je 0xf6d4d
movzbl (%rsi), %eax
leaq 0x6361b(%rip), %rcx     # 0x15a340
cmpb $0x1, (%rax,%rcx)
jne 0xf6d4d
cmpb $0x15, %al
jne 0xf6d35
testb $0x1, 0x7(%rsi)
jne 0xf6d4d
movq 0x18(%rsp), %rcx
cmpl $0x1, %ecx
adcl $0x0, %ecx
movq %r12, %rdi
movq %r14, %rdx
callq 0x9c033
jmp 0xf6d6c
movzbl (%rsi), %eax
leaq 0x63629(%rip), %r9      # 0x15a380
movq 0x18(%rsp), %rcx
cmpl $0x1, %ecx
adcl $0x0, %ecx
movq %r12, %rdi
movq %r14, %rdx
callq *(%r9,%rax,8)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
cmpb $0x0, 0x20(%rsp)
je 0xf6d95
leaq 0x2a85e(%rip), %rsi     # 0x1215e0
movl $0x5, %edx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
jmp 0xf772a
movq %r12, %rdi
movl $0x29, %esi
movq %r14, %rdx
callq *0x8(%rax)
jmp 0xf772a
movq 0x20(%r8), %rcx
movl (%rcx,%rax,4), %eax
testl %eax, %eax
je 0xf7543
movl %eax, %r15d
negl %r15d
cmovsl %eax, %r15d
movq 0x48(%r8), %rax
cmpb $0x0, (%rax,%r15)
jne 0xf76a2
cmpq %r14, 0x28(%r8)
je 0xf76a2
movq 0x10(%rbp), %r13
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf6e0f
cmpq $0x2, 0x10(%rax)
jl 0xf6e0f
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x2c67f(%rip), %rsi     # 0x123480
movl $0xb, %edx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x2c66e(%rip), %rsi     # 0x12348c
movl $0x7, %edx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
testq %rbx, %rbx
jle 0xf7506
leaq 0xb6f(%r12), %rax
movq %rax, 0x40(%rsp)
leaq 0xb2f(%r12), %rax
movq %rax, 0x50(%rsp)
leaq 0xb8f(%r12), %rax
movq %rax, 0x48(%rsp)
leaq 0xb0f(%r12), %rax
movq %rax, 0x58(%rsp)
xorl %eax, %eax
movq %rbp, 0x38(%rsp)
movq %r13, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movq (%r13,%rax,8), %rax
movzbl (%rax), %ecx
leaq 0x634b7(%rip), %rdx     # 0x15a340
cmpb $0x1, (%rcx,%rdx)
jne 0xf6ee3
cmpb $0x15, %cl
jne 0xf6e9a
testb $0x1, 0x7(%rax)
jne 0xf6ee3
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movl $0x3, %edx
movq %r12, %rdi
leaq 0x1dcf9(%rip), %rsi     # 0x114baa
movq %r14, %rcx
callq *0x10(%rax)
movq 0x20(%rsp), %r10
movq (%r13,%r10,8), %rcx
xorl %eax, %eax
testb $0x2, 0x2(%rcx)
jne 0xf6f58
leaq 0x2855c(%rip), %r9      # 0x11f430
movabsq $-0x3333333333333333, %r11 # imm = 0xCCCCCCCCCCCCCCCD
jmp 0xf6f93
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %r12, %rdi
movl $0x20, %esi
movq %r14, %rdx
callq *0x8(%rax)
movq 0x20(%rsp), %rax
movq (%r13,%rax,8), %rsi
movzbl (%rsi), %eax
leaq 0x63433(%rip), %rcx     # 0x15a340
cmpb $0x1, (%rax,%rcx)
jne 0xf6f38
cmpl $0x15, %eax
jne 0xf6f1e
testb $0x1, 0x7(%rsi)
jne 0xf6f38
movq %r12, %rdi
movq %r14, %rdx
movl $0x2, %ecx
movq 0x8(%rsp), %r8
callq 0x9c033
jmp 0xf74f5
movq %r12, %rdi
movq %r14, %rdx
movl $0x2, %ecx
movq 0x8(%rsp), %r8
leaq 0x63431(%rip), %r9      # 0x15a380
callq *(%r9,%rax,8)
jmp 0xf74f5
movq 0x8(%rsp), %r8
movslq 0xc(%r8), %rdx
testq %rdx, %rdx
leaq 0x284c5(%rip), %r9      # 0x11f430
movabsq $-0x3333333333333333, %r11 # imm = 0xCCCCCCCCCCCCCCCD
jle 0xf6f93
movq (%r8), %rdi
xorl %esi, %esi
cmpq %rcx, (%rdi,%rsi,8)
je 0xf6f8c
incq %rsi
cmpq %rsi, %rdx
jne 0xf6f7c
jmp 0xf6f93
movq 0x20(%r8), %rax
movl (%rax,%rsi,4), %eax
testl %eax, %eax
je 0xf726f
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, %r13d
testq %rax, %rax
je 0xf7148
movq 0x10(%rax), %rax
cmpq $0x2, %rax
jl 0xf7148
movq %rax, 0x28(%rsp)
movl $0x80, %esi
movq %r12, %rdi
callq 0x3f3bd
movabsq $-0x3333333333333333, %r8 # imm = 0xCCCCCCCCCCCCCCCD
leaq 0x28449(%rip), %rdi     # 0x11f430
movq %rax, 0x30(%rsp)
movq (%rax), %rcx
movb $0x0, 0xb6f(%r12)
movq 0x40(%rsp), %rbp
movq %r15, %r9
movq %r9, %rax
mulq %r8
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r9, %rsi
subq %rax, %rsi
movb (%rdi,%rsi), %al
movb %al, -0x1(%rbp)
decq %rbp
cmpq $0x9, %r9
movq %rdx, %r9
ja 0xf7000
movq 0x28(%rsp), %r8
decl %r8d
movq %r12, %rdi
movq 0x20(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %rcx, 0x28(%rsp)
callq 0xfd11a
movabsq $-0x3333333333333333, %rdi # imm = 0xCCCCCCCCCCCCCCCD
leaq 0x283d6(%rip), %rsi     # 0x11f430
movb $0x0, 0xb8f(%r12)
movq 0x48(%rsp), %r10
movq %r13, %rax
mulq %rdi
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r13, %rcx
subq %rax, %rcx
movb (%rsi,%rcx), %al
movb %al, -0x1(%r10)
decq %r10
cmpq $0x9, %r13
movq %rdx, %r13
ja 0xf7068
subq $0x8, %rsp
leaq 0x68(%rsp), %r13
movq %r13, %rdi
leaq 0x2c3ee(%rip), %rsi     # 0x123494
movq %rbp, %rdx
leaq 0x2c981(%rip), %rcx     # 0x123a31
movq 0x30(%rsp), %r8
leaq 0x2c3e3(%rip), %r9      # 0x12349f
xorl %eax, %eax
pushq $0x0
leaq 0x2c3dc(%rip), %r11     # 0x1234a3
pushq %r11
pushq %r10
callq 0xd1cb
addq $0x20, %rsp
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq 0x30(%rsp), %rdx
movslq 0x8(%rdx), %rax
cmpq $0x11, %rax
jne 0xf74d7
movq (%rdx), %rdi
testq %rdi, %rdi
movq 0x38(%rsp), %rbp
movq 0x18(%rsp), %r13
je 0xf7128
callq 0x9050
movq 0x30(%rsp), %rdx
movq $0x0, (%rdx)
movl $0x0, 0x8(%rdx)
movq 0x838(%r12), %rax
movq %rax, 0x18(%rdx)
movq %rdx, 0x838(%r12)
jmp 0xf74f5
movb $0x0, 0xb6f(%r12)
movq 0x40(%rsp), %rcx
movq %r15, %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 0xf7159
testq %r10, %r10
jne 0xf7199
testb $0x1, 0x5b898(%rip)     # 0x152a28
leaq 0x283d1(%rip), %r8      # 0x11f568
je 0xf71d6
movb $0x0, 0xb0f(%r12)
movq 0x58(%rsp), %r8
movq %r10, %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 0xf71aa
movb $0x0, 0xb8f(%r12)
movq 0x48(%rsp), %r10
movq %r13, %rax
mulq %r11
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r13, %rsi
subq %rax, %rsi
movb (%r9,%rsi), %al
movb %al, -0x1(%r10)
decq %r10
cmpq $0x9, %r13
movq %rdx, %r13
ja 0xf71e4
subq $0x8, %rsp
leaq 0x68(%rsp), %r13
movq %r13, %rdi
leaq 0x2c271(%rip), %rsi     # 0x123494
movq %rcx, %rdx
leaq 0x28802(%rip), %rcx     # 0x11fa2f
leaq 0x2c26b(%rip), %r9      # 0x12349f
xorl %eax, %eax
pushq $0x0
leaq 0x2c269(%rip), %r11     # 0x1234a8
pushq %r11
pushq %r10
callq 0xd1cb
addq $0x20, %rsp
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq *0x10(%r8)
jmp 0xf74f0
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf737c
movq 0x10(%rax), %r13
cmpq $0x2, %r13
jl 0xf737c
decl %r13d
movl $0x80, %esi
movq %r12, %rdi
callq 0x3f3bd
movq %rbp, %rdx
movq %rax, 0x30(%rsp)
movq (%rax), %rcx
xorl %ebp, %ebp
movb %bpl, 0x60(%rsp)
movq %r12, %rdi
movq 0x20(%rsp), %rsi
movq %rcx, 0x28(%rsp)
movl %r13d, %r8d
callq 0xfd11a
movabsq $-0x3333333333333333, %r9 # imm = 0xCCCCCCCCCCCCCCCD
leaq 0x2815a(%rip), %r8      # 0x11f430
movb %bpl, 0xb6f(%r12)
movq 0x40(%rsp), %rcx
movq %r15, %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 0xf72e6
movl $0x80, %esi
leaq 0x60(%rsp), %r13
movq %r13, %rdi
leaq 0x2c16f(%rip), %rdx     # 0x123494
leaq 0x2c705(%rip), %r8      # 0x123a31
movq 0x28(%rsp), %r9
xorl %eax, %eax
pushq $0x0
leaq 0x2c369(%rip), %r10     # 0x1236a5
pushq %r10
callq 0xa4d7
addq $0x10, %rsp
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq %r12, %rdi
movq 0x30(%rsp), %rsi
callq 0xa9a3
movq 0x38(%rsp), %rbp
jmp 0xf744e
movq 0x40(%rsp), %rcx
movb $0x0, (%rcx)
movq %r15, %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 0xf7387
testq %r10, %r10
jne 0xf73c7
testb $0x1, 0x5b66a(%rip)     # 0x152a28
leaq 0x281a3(%rip), %r8      # 0x11f568
je 0xf73ff
movq 0x50(%rsp), %r8
movb $0x0, (%r8)
movq %r10, %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 0xf73d3
subq $0x8, %rsp
leaq 0x68(%rsp), %r13
movq %r13, %rdi
leaq 0x2c082(%rip), %rsi     # 0x123494
movq %rcx, %rdx
leaq 0x28613(%rip), %rcx     # 0x11fa2f
leaq 0x2c282(%rip), %r9      # 0x1236a5
xorl %eax, %eax
pushq $0x0
callq 0xd1cb
addq $0x10, %rsp
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %r12, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq %r15, %r13
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movzbl (%rsi), %eax
leaq 0x62ed7(%rip), %rcx     # 0x15a340
cmpb $0x1, (%rax,%rcx)
jne 0xf7495
cmpl $0x15, %eax
jne 0xf747a
testb $0x1, 0x7(%rsi)
jne 0xf7495
movq 0x8(%rsp), %r15
movq 0x28(%r15), %rdx
movq %r12, %rdi
movl $0x2, %ecx
movq %r15, %r8
callq 0x9c033
jmp 0xf74b4
movq 0x8(%rsp), %r15
movq 0x28(%r15), %rdx
movq %r12, %rdi
movl $0x2, %ecx
movq %r15, %r8
leaq 0x62ed0(%rip), %r9      # 0x15a380
callq *(%r9,%rax,8)
movq 0x28(%r15), %rcx
movq 0x8(%rcx), %rax
movq 0x48(%rax), %rax
movl $0x2, %edx
movq %r12, %rdi
leaq 0x2bffa(%rip), %rsi     # 0x1234c9
callq *0x10(%rax)
movq %r13, %r15
jmp 0xf74f0
movq 0x838(%r12,%rax,8), %rcx
movq %rcx, 0x18(%rdx)
movq %rdx, 0x838(%r12,%rax,8)
movq 0x38(%rsp), %rbp
movq 0x18(%rsp), %r13
movq 0x20(%rsp), %rax
incq %rax
cmpq %rbx, %rax
jne 0xf6e75
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %r12, %rdi
movl $0x29, %esi
movq %r14, %rdx
callq *0x8(%rax)
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf772a
cmpq $0x2, 0x10(%rax)
jl 0xf772a
movq %r12, %rdi
movq %rbp, %rsi
jmp 0xf7695
movq 0x18(%rbp), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf7574
cmpq $0x2, 0x10(%rax)
jl 0xf7574
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x2bf1a(%rip), %rsi     # 0x123480
movl $0xb, %edx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
movq %rbx, %r13
movq %rbp, %r15
testb $0x1, 0x3(%rbp)
je 0xf759d
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x284a5(%rip), %rsi     # 0x11fa34
movl $0xc, %edx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x2bee0(%rip), %rsi     # 0x12348c
movl $0x7, %edx
movq %r12, %rbx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
testq %r13, %r13
jle 0xf763d
movq %r13, %r12
xorl %r13d, %r13d
leaq 0x62db1(%rip), %rbp     # 0x15a380
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
movl $0x20, %esi
movq %r14, %rdx
callq *0x8(%rax)
movq 0x10(%r15), %rax
movq (%rax,%r13,8), %rsi
movq 0x8(%rsp), %r8
testq %r8, %r8
je 0xf7623
movzbl (%rsi), %eax
leaq 0x62d3f(%rip), %rcx     # 0x15a340
cmpb $0x1, (%rax,%rcx)
jne 0xf7623
cmpb $0x15, %al
jne 0xf7611
testb $0x1, 0x7(%rsi)
jne 0xf7623
movq %rbx, %rdi
movq %r14, %rdx
movl $0x2, %ecx
callq 0x9c033
jmp 0xf7635
movzbl (%rsi), %eax
movq %rbx, %rdi
movq %r14, %rdx
movl $0x2, %ecx
callq *(%rbp,%rax,8)
incq %r13
cmpq %r13, %r12
jne 0xf75cf
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %rbx, %r12
movq %rbx, %rdi
movl $0x29, %esi
movq %r14, %rdx
callq *0x8(%rax)
testb $0x1, 0x3(%r15)
je 0xf7673
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %r12, %rdi
movl $0x29, %esi
movq %r14, %rdx
callq *0x8(%rax)
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf772a
cmpq $0x2, 0x10(%rax)
jl 0xf772a
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xfd1f0
jmp 0xf772a
leaq 0xb6f(%r12), %r8
movb $0x0, 0xb6f(%r12)
leaq 0x27d76(%rip), %rcx     # 0x11f430
movabsq $-0x3333333333333333, %rsi # imm = 0xCCCCCCCCCCCCCCCD
movq %r15, %rax
mulq %rsi
shrq $0x3, %rdx
leaq (%rdx,%rdx), %rax
leaq (%rax,%rax,4), %rax
movq %r15, %rdi
subq %rax, %rdi
movb (%rcx,%rdi), %al
movb %al, -0x1(%r8)
decq %r8
cmpq $0x9, %r15
movq %rdx, %r15
ja 0xf76c4
leaq 0x2c065(%rip), %rsi     # 0x12375b
leaq 0x2c334(%rip), %rcx     # 0x123a31
leaq 0x60(%rsp), %r15
movq %r15, %rdi
movq %r8, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xd1cb
movq 0x8(%r14), %rcx
movq 0x48(%rcx), %r8
movq %r12, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq *0x10(%r8)
addq $-0x20, 0x50(%r12)
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq