// File: /workspace/github_c_makefile_star2_O2/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 $0xc8, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0x8(%rsi), %rax
testq %rax, %rax
je 0xbd39a
movl %ecx, %r12d
cmpl $0x2, %ecx
jne 0xbd3d0
movl $0x0, 0x8(%rsp)
movq %rax, %rbp
jmp 0xbd3ee
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbd42b
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xbd42b
movq %rbx, %rdi
callq 0x91f9
leaq 0x26219(%rip), %rsi     # 0xe35dd
leaq 0x2911e(%rip), %rcx     # 0xe64e9
jmp 0xbdcd0
movq 0x280(%rbx), %rbp
testq %rbp, %rbp
je 0xbdca3
cmpq %rbp, %rax
setg %cl
movl %ecx, 0x8(%rsp)
cmovlq %rax, %rbp
testq %r8, %r8
setne %cl
cmpq $0x3e9, %rbp            # imm = 0x3E9
setl %dl
orb %cl, %dl
jne 0xbd4a2
movq 0x10(%r15), %rdx
movq (%rdx), %r13
cmpq $0x2, %rax
pushq $0x1
popq %rsi
movq %rsi, %rcx
cmovgeq %rax, %rcx
cmpq %rax, %rsi
jge 0xbd448
cmpq %r13, (%rdx,%rsi,8)
jne 0xbd445
incq %rsi
jmp 0xbd41b
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
leaq 0x290e7(%rip), %rsi     # 0xe6525
pushq $0x3
jmp 0xbdd17
movq %rsi, %rcx
cmpq %rax, %rcx
jne 0xbd4a2
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xc2073
movzbl (%r13), %eax
leaq 0x63f19(%rip), %r9      # 0x121380
movq %rbx, %rdi
movq %r13, %rsi
movq %r14, %rdx
movl %r12d, %ecx
xorl %r8d, %r8d
callq *(%r9,%rax,8)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
pushq $0x29
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq 0x50(%rbx), %rax
cmpq 0x58(%rbx), %rax
movq %r8, (%rsp)
jb 0xbd4c0
movq %rbx, %rdi
callq 0x91caf
movq (%rsp), %r8
movq 0x50(%rbx), %rax
movq %r15, 0x10(%rax)
movq 0x50(%rbx), %rax
movq $0x1, 0x18(%rax)
addq $0x20, 0x50(%rbx)
cmpl $0x2, %r12d
jne 0xbd9a8
testq %r8, %r8
je 0xbda55
testb $0x20, 0x6(%r15)
je 0xbda55
movq %r8, %rdi
movq %r15, %rsi
callq 0x7855f
movq (%rsp), %rcx
testl %eax, %eax
je 0xbda55
movl %eax, %r12d
negl %r12d
cmovsl %eax, %r12d
movq 0x48(%rcx), %rax
cmpb $0x0, (%rax,%r12)
jne 0xbdd7c
cmpq %r14, 0x28(%rcx)
je 0xbdd7c
movq 0x10(%r15), %r13
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbd560
cmpq $0x2, 0x10(%rax)
jl 0xbd560
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x28fdc(%rip), %rsi     # 0xe6530
pushq $0xb
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
callq *0x10(%rax)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x28fcd(%rip), %rsi     # 0xe653c
pushq $0x7
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
callq *0x10(%rax)
xorl %eax, %eax
testq %rbp, %rbp
cmovleq %rax, %rbp
movq %rbp, 0x20(%rsp)
xorl %ebp, %ebp
movq %r13, 0x8(%rsp)
movq %r12, 0x28(%rsp)
cmpq %rbp, 0x20(%rsp)
je 0xbddd9
movq (%r13,%rbp,8), %rax
movzbl (%rax), %ecx
leaq 0x63d91(%rip), %rdx     # 0x121340
cmpb $0x1, (%rcx,%rdx)
jne 0xbd6e9
cmpb $0x15, %cl
jne 0xbd5c8
testb $0x1, 0x7(%rax)
jne 0xbd6e9
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
leaq 0x1a680(%rip), %rsi     # 0xd7c5a
pushq $0x3
popq %rdx
movq %r14, %rcx
callq *0x10(%rax)
movq (%r13,%rbp,8), %rsi
movq (%rsp), %rdi
callq 0x7855f
testl %eax, %eax
je 0xbd7ec
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
movl %ecx, %ecx
movq %rcx, 0x10(%rsp)
testq %rax, %rax
je 0xbd751
movq 0x10(%rax), %r13
cmpq $0x2, %r13
jl 0xbd751
decl %r13d
movl $0x80, %esi
movq %rbx, %rdi
callq 0x2ff1e
movq %rax, 0x18(%rsp)
movq (%rax), %r12
movq %rbx, %rdi
movq 0x28(%rsp), %rsi
callq 0x91f9
movq %rax, 0x30(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r12, %rcx
movl %r13d, %r8d
callq 0xc23b3
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0xc2437
movq %rax, %r10
subq $0x8, %rsp
leaq 0x48(%rsp), %r13
movq %r13, %rdi
leaq 0x28ebd(%rip), %rsi     # 0xe6544
movq 0x38(%rsp), %rdx
leaq 0x2944e(%rip), %rcx     # 0xe6ae1
movq %r12, %r8
movq 0x30(%rsp), %r12
leaq 0x28ead(%rip), %r9      # 0xe654f
xorl %eax, %eax
pushq $0x0
leaq 0x28ea6(%rip), %r11     # 0xe6553
pushq %r11
pushq %r10
callq 0xb3a5
addq $0x20, %rsp
movq (%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
callq 0x9439
jmp 0xbd99b
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
pushq $0x20
popq %rsi
movq %r14, %rdx
callq *0x8(%rax)
movq (%r13,%rbp,8), %rsi
movzbl (%rsi), %eax
leaq 0x63c34(%rip), %rcx     # 0x121340
cmpb $0x1, (%rax,%rcx)
jne 0xbd734
cmpl $0x15, %eax
jne 0xbd71d
testb $0x1, 0x7(%rsi)
jne 0xbd734
movq %rbx, %rdi
movq %r14, %rdx
pushq $0x2
popq %rcx
movq (%rsp), %r8
callq 0x77872
jmp 0xbd9a0
movq %rbx, %rdi
movq %r14, %rdx
pushq $0x2
popq %rcx
movq (%rsp), %r8
leaq 0x63c38(%rip), %r9      # 0x121380
callq *(%r9,%rax,8)
jmp 0xbd9a0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x91f9
movq %rax, 0x18(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
leaq 0x38(%rsp), %rdx
callq 0x73b88
movq %rax, %r13
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0xc2437
movq %rax, %r10
subq $0x8, %rsp
leaq 0x48(%rsp), %r12
movq %r12, %rdi
leaq 0x28dad(%rip), %rsi     # 0xe6544
movq 0x20(%rsp), %rdx
leaq 0x2533c(%rip), %rcx     # 0xe2adf
movq %r13, %r8
leaq 0x28da2(%rip), %r9      # 0xe654f
xorl %eax, %eax
pushq $0x0
leaq 0x28da0(%rip), %r11     # 0xe6558
pushq %r11
pushq %r10
callq 0xb3a5
addq $0x20, %rsp
movq (%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbx, %rdi
movq %r12, %rsi
movq 0x28(%rsp), %r12
movq %rax, %rdx
callq *0x10(%r8)
jmp 0xbd99b
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbd8b1
movq 0x10(%rax), %r13
cmpq $0x2, %r13
jl 0xbd8b1
decl %r13d
movl $0x80, %esi
movq %rbx, %rdi
callq 0x2ff1e
movq %rax, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movb $0x0, 0x40(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movl %r13d, %r8d
callq 0xc23b3
movq %rbx, %rdi
movq %r12, %rsi
callq 0x91f9
movl $0x80, %esi
movq %r12, %r13
leaq 0x40(%rsp), %r12
movq %r12, %rdi
leaq 0x28ce4(%rip), %rdx     # 0xe6544
movq %rax, %rcx
leaq 0x29277(%rip), %r8      # 0xe6ae1
movq 0x18(%rsp), %r9
xorl %eax, %eax
pushq $0x0
leaq 0x28edb(%rip), %r10     # 0xe6755
pushq %r10
callq 0x90f7
addq $0x10, %rsp
movq (%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
callq 0x9439
jmp 0xbd921
movq %rbx, %rdi
movq %r12, %rsi
callq 0x91f9
movq %rax, %r13
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x73af1
subq $0x8, %rsp
movq %r12, %rcx
leaq 0x48(%rsp), %r12
movq %r12, %rdi
leaq 0x28c64(%rip), %rsi     # 0xe6544
movq %r13, %rdx
movq %rcx, %r13
leaq 0x251f2(%rip), %rcx     # 0xe2adf
movq %rax, %r8
leaq 0x28e5e(%rip), %r9      # 0xe6755
xorl %eax, %eax
pushq $0x0
callq 0xb3a5
addq $0x10, %rsp
movq (%rsp), %rcx
movq 0x28(%rcx), %rcx
movq 0x8(%rcx), %rdx
movq 0x48(%rdx), %r8
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq *0x10(%r8)
movq 0x8(%rsp), %rax
movq (%rax,%rbp,8), %rsi
movzbl (%rsi), %eax
leaq 0x63a0c(%rip), %rcx     # 0x121340
cmpb $0x1, (%rax,%rcx)
jne 0xbd95e
cmpl $0x15, %eax
jne 0xbd945
testb $0x1, 0x7(%rsi)
jne 0xbd95e
movq (%rsp), %r12
movq 0x28(%r12), %rdx
movq %rbx, %rdi
pushq $0x2
popq %rcx
movq %r12, %r8
callq 0x77872
jmp 0xbd97b
movq (%rsp), %r12
movq 0x28(%r12), %rdx
movq %rbx, %rdi
pushq $0x2
popq %rcx
movq %r12, %r8
leaq 0x63a09(%rip), %r9      # 0x121380
callq *(%r9,%rax,8)
movq 0x28(%r12), %rcx
movq 0x8(%rcx), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
leaq 0x28be7(%rip), %rsi     # 0xe6579
pushq $0x2
popq %rdx
callq *0x10(%rax)
movq %r13, %r12
movq 0x8(%rsp), %r13
incq %rbp
jmp 0xbd595
movq %r12, %r13
movq %rbx, %r12
movq %r15, 0x20(%rsp)
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbdb9e
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xbdb9e
leaq 0x38(%rsp), %r15
movb $0x0, (%r15)
movq %r12, %rbx
movq %r12, %rdi
callq 0x91f9
leaq 0x25bf0(%rip), %rsi     # 0xe35dd
leaq 0x25cdd(%rip), %rcx     # 0xe36d1
leaq 0x40(%rsp), %r12
movq %r12, %rdi
movq %rax, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xb3a5
movq 0x8(%r14), %rcx
movq 0x48(%rcx), %r8
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq *0x10(%r8)
movq 0x20(%rsp), %rsi
movq 0x18(%rsi), %rax
movq 0x20(%rax), %rax
movl 0x10(%rax), %eax
movq %rbx, %rdi
movq %r14, %rdx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq (%rsp)
pushq %r13
pushq %r15
pushq %rax
callq 0xc21db
addq $0x20, %rsp
jmp 0xbddc2
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbda84
cmpq $0x2, 0x10(%rax)
jl 0xbda84
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x28ab8(%rip), %rsi     # 0xe6530
pushq $0xb
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
callq *0x10(%rax)
movq %r15, %r12
testb $0x1, 0x3(%r15)
je 0xbdaa9
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x25047(%rip), %rsi     # 0xe2ae4
pushq $0xc
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
callq *0x10(%rax)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x28a84(%rip), %rsi     # 0xe653c
pushq $0x7
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
callq *0x10(%rax)
xorl %r15d, %r15d
testq %rbp, %rbp
cmovleq %r15, %rbp
pushq $0x2
popq %r13
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
cmpq %r15, %rbp
je 0xbdb47
movq %rbx, %rdi
pushq $0x20
popq %rsi
movq %r14, %rdx
callq *%rax
movq 0x10(%r12), %rax
movq (%rax,%r15,8), %rsi
movzbl (%rsi), %eax
movq (%rsp), %r8
testq %r8, %r8
je 0xbdb2e
leaq 0x63836(%rip), %rcx     # 0x121340
cmpb $0x1, (%rax,%rcx)
jne 0xbdb2e
cmpl $0x15, %eax
jne 0xbdb1e
testb $0x1, 0x7(%rsi)
pushq $0x15
popq %rax
jne 0xbdb2e
movq %rbx, %rdi
movq %r14, %rdx
movl %r13d, %ecx
callq 0x77872
jmp 0xbdb42
movq %rbx, %rdi
movq %r14, %rdx
movl %r13d, %ecx
leaq 0x63842(%rip), %r9      # 0x121380
callq *(%r9,%rax,8)
incq %r15
jmp 0xbdad2
pushq $0x29
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq *%rax
testb $0x1, 0x3(%r12)
je 0xbdb6e
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
pushq $0x29
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq *0x8(%rax)
movq 0x18(%r12), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbddc2
cmpq $0x2, 0x10(%rax)
jl 0xbddc2
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0xc2472
jmp 0xbddc2
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
leaq 0x289af(%rip), %rsi     # 0xe655c
pushq $0x2
popq %rdx
movq %r12, %rdi
movq %r14, %rcx
callq *0x10(%rax)
cmpl $0x1, %r13d
adcl $0x0, %r13d
cmpq $0x2, %rbp
pushq $0x1
popq %rcx
cmovgeq %rbp, %rcx
movq %rcx, 0x10(%rsp)
leaq -0x1(%rcx), %r15
xorl %ebp, %ebp
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
cmpq %rbp, %r15
movq (%rsp), %r8
je 0xbdc53
movq (%rax,%rbp,8), %rsi
movzbl (%rsi), %eax
testq %r8, %r8
je 0xbdc23
leaq 0x63744(%rip), %rcx     # 0x121340
cmpb $0x1, (%rax,%rcx)
jne 0xbdc23
cmpl $0x15, %eax
jne 0xbdc10
testb $0x1, 0x7(%rsi)
pushq $0x15
popq %rax
jne 0xbdc23
movq %r12, %rbx
movq %r12, %rdi
movq %r14, %rdx
movl %r13d, %ecx
callq 0x77872
jmp 0xbdc3a
movq %r12, %rbx
movq %r12, %rdi
movq %r14, %rdx
movl %r13d, %ecx
leaq 0x6374a(%rip), %r9      # 0x121380
callq *(%r9,%rax,8)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq %rbx, %rdi
pushq $0x20
popq %rsi
movq %r14, %rdx
callq *0x8(%rax)
incq %rbp
jmp 0xbdbd7
movq 0x10(%rsp), %rcx
movq -0x8(%rax,%rcx,8), %rsi
movzbl (%rsi), %eax
testq %r8, %r8
je 0xbdd31
leaq 0x636d0(%rip), %rcx     # 0x121340
cmpb $0x1, (%rax,%rcx)
movq %r12, %rbx
jne 0xbdd34
cmpl $0x15, %eax
movl 0x8(%rsp), %ebp
jne 0xbdc90
testb $0x1, 0x7(%rsi)
jne 0xbde0c
movq %rbx, %rdi
movq %r14, %rdx
movl %r13d, %ecx
callq 0x77872
jmp 0xbdd4c
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbdd02
movq 0x10(%rax), %rsi
cmpq $0x2, %rsi
jl 0xbdd02
movq %rbx, %rdi
callq 0x91f9
leaq 0x25914(%rip), %rsi     # 0xe35dd
leaq 0x2881d(%rip), %rcx     # 0xe64ed
leaq 0x40(%rsp), %r15
movq %r15, %rdi
movq %rax, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xb3a5
movq 0x8(%r14), %rcx
movq 0x48(%rcx), %r8
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq *0x10(%r8)
jmp 0xbddc7
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
movq 0x10(%rax), %rax
leaq 0x28814(%rip), %rsi     # 0xe6529
pushq $0x6
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %r12, %rbx
movl 0x8(%rsp), %ebp
movq %rbx, %rdi
movq %r14, %rdx
movl %r13d, %ecx
leaq 0x63638(%rip), %r9      # 0x121380
callq *(%r9,%rax,8)
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
testb %bpl, %bpl
je 0xbdd6e
leaq 0x26930(%rip), %rsi     # 0xe4690
pushq $0x5
popq %rdx
movq %rbx, %rdi
movq %r14, %rcx
callq *0x10(%rax)
jmp 0xbddc2
pushq $0x29
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq *0x8(%rax)
jmp 0xbddc2
movq %rbx, %rdi
movq %r12, %rsi
callq 0x91f9
leaq 0x28a7d(%rip), %rsi     # 0xe680b
leaq 0x28d4c(%rip), %rcx     # 0xe6ae1
leaq 0x40(%rsp), %r15
movq %r15, %rdi
movq %rax, %rdx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0xb3a5
movq 0x8(%r14), %rcx
movq 0x48(%rcx), %r8
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq *0x10(%r8)
addq $-0x20, 0x50(%rbx)
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%r14), %rax
movq 0x48(%rax), %rax
pushq $0x29
popq %rsi
movq %rbx, %rdi
movq %r14, %rdx
callq *0x8(%rax)
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xbddc2
cmpq $0x2, 0x10(%rax)
jl 0xbddc2
movq %rbx, %rdi
movq %r15, %rsi
jmp 0xbdb91
pushq $0x15
popq %rax
jmp 0xbdd38