// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: vector_fill
static void vector_fill(s7_scheme *sc, s7_pointer vec, s7_pointer obj)
                {
                    switch (type(vec))
                    {
                        case T_FLOAT_VECTOR:
                            if (!s7_is_real(obj))
                                s7_wrong_type_arg_error(sc, "float-vector fill!", 2, obj, "a real");
                            else float_vector_fill(sc, vec, s7_real(obj));
                            break;

                        case T_INT_VECTOR:
                            if (!s7_is_integer(obj)) /* possibly a bignum */
                                s7_wrong_type_arg_error(sc, "int-vector fill!", 2, obj, "an integer");
                            else int_vector_fill(sc, vec, s7_integer(obj));
                            break;

                        case T_BYTE_VECTOR:
                            if (!is_byte(obj))
                                s7_wrong_type_arg_error(sc, "byte-vector fill!", 2, obj, "a byte");
                            else byte_vector_fill(sc, vec, (uint8_t)s7_integer(obj));
                            break;

                        default:
                            normal_vector_fill(sc, vec, obj);
                    }
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movzbl (%rsi), %eax
cmpl $0x16, %eax
je 0x3b1a4
cmpl $0x18, %eax
je 0x3b135
cmpl $0x17, %eax
jne 0x3b1c0
movzbl (%rbx), %eax
leaq 0x10f897(%rip), %rcx    # 0x14a9b0
cmpb $0x0, (%rax,%rcx)
je 0x3b225
cmpb $0xd, %al
jne 0x3b24e
movsd 0x8(%rbx), %xmm0
jmp 0x3b264
cmpb $0xb, (%rbx)
jne 0x3b205
movq 0x8(%rbx), %rax
cmpq $0x100, %rax            # imm = 0x100
jae 0x3b205
movq 0x8(%r14), %rbx
testq %rbx, %rbx
je 0x3b40d
movq 0x10(%r14), %r14
testq %rax, %rax
je 0x3b2ad
cmpq $0x8, %rbx
jb 0x3b199
movq %rbx, %rcx
shrq $0x3, %rcx
movabsq $0x101010101010101, %rdx # imm = 0x101010101010101
imulq %rax, %rdx
movq %rdx, (%r14)
addq $0x8, %r14
decq %rcx
jne 0x3b183
andq $0x7, %rbx
je 0x3b40d
movzbl %al, %esi
movq %r14, %rdi
jmp 0x3b2d9
cmpb $0xb, (%rbx)
jne 0x3b215
movq 0x8(%rbx), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x99a75
movq 0x8(%r14), %r12
testq %r12, %r12
je 0x3b40d
testb $0x2, 0x6(%r14)
je 0x3b32a
movq 0x28(%r14), %rsi
cmpb $0x30, (%rsi)
jb 0x3b277
movq 0x10(%rsi), %rax
movq 0x700(%r15), %rcx
movq %rbx, 0x8(%rcx)
movq 0x700(%r15), %rsi
movq %r15, %rdi
callq *%rax
jmp 0x3b291
leaq 0xdbeed(%rip), %rsi     # 0x1170f9
leaq 0xdbeb4(%rip), %r8      # 0x1170c7
jmp 0x3b233
leaq 0xdbecc(%rip), %rsi     # 0x1170e8
leaq 0xdbf4f(%rip), %r8      # 0x117172
jmp 0x3b233
leaq 0xdbea2(%rip), %rsi     # 0x1170ce
leaq 0xdbeae(%rip), %r8      # 0x1170e1
movl $0x2, %edx
movq %r15, %rdi
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0xd4e5
movq 0x10f7db(%rip), %rdi    # 0x14aa30
leaq 0xcee1c(%rip), %rdx     # 0x10a078
movq %rbx, %rsi
callq 0xd498
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x9992a
movq 0x700(%r15), %rax
movq %rbx, 0x8(%rax)
movq 0x700(%r15), %rdx
movq %r15, %rdi
callq 0xaee6
cmpq 0x120(%r15), %rax
jne 0x3b32a
movq 0x28(%r14), %rsi
cmpb $0x30, (%rsi)
jb 0x3b2ec
movq 0x8(%rsi), %rax
jmp 0x3b300
cmpq $0x8, %rbx
jb 0x3b2d4
movq %rbx, %r15
andq $-0x8, %r15
movq %r14, %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0x8270
andq $0x7, %rbx
je 0x3b40d
addq %r15, %r14
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x8270
movq 0x18(%rsi), %rdx
movq %r15, %rdi
callq 0x99caa
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rsi
movq %r15, %rdi
movl $0x1, %edx
callq 0x99bbf
leaq 0xdbde7(%rip), %rsi     # 0x1170fe
movl $0x2, %edx
movq %r15, %rdi
movq %rbx, %rcx
movq %rax, %r8
callq 0xd4e5
movq 0x10(%r14), %rcx
cmpq $0x8, %r12
jge 0x3b338
xorl %edx, %edx
jmp 0x3b36f
leaq -0x8(%r12), %rax
xorl %edx, %edx
movq %rbx, (%rcx,%rdx,8)
movq %rbx, 0x8(%rcx,%rdx,8)
movq %rbx, 0x10(%rcx,%rdx,8)
movq %rbx, 0x18(%rcx,%rdx,8)
movq %rbx, 0x20(%rcx,%rdx,8)
movq %rbx, 0x28(%rcx,%rdx,8)
movq %rbx, 0x30(%rcx,%rdx,8)
movq %rbx, 0x38(%rcx,%rdx,8)
addq $0x8, %rdx
cmpq %rax, %rdx
jle 0x3b33f
subq %rdx, %r12
jle 0x3b40d
leaq 0x1(%r12), %rax
andq $-0x2, %rax
decq %r12
movq %r12, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq (%rcx,%rdx,8), %rcx
addq $0x8, %rcx
xorl %edx, %edx
movdqa 0xceb30(%rip), %xmm1    # 0x109ed0
movdqa 0xceb38(%rip), %xmm2    # 0x109ee0
pxor %xmm2, %xmm0
pcmpeqd %xmm3, %xmm3
movq %rdx, %xmm4
pshufd $0x44, %xmm4, %xmm4     # xmm4 = xmm4[0,1,0,1]
por %xmm1, %xmm4
pxor %xmm2, %xmm4
movdqa %xmm4, %xmm5
pcmpgtd %xmm0, %xmm5
pcmpeqd %xmm0, %xmm4
pshufd $0xf5, %xmm4, %xmm6     # xmm6 = xmm4[1,1,3,3]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm5, %xmm4     # xmm4 = xmm5[1,1,3,3]
por %xmm6, %xmm4
movd %xmm4, %esi
notl %esi
testb $0x1, %sil
je 0x3b3f1
movq %rbx, -0x8(%rcx,%rdx,8)
pxor %xmm3, %xmm4
pextrw $0x4, %xmm4, %esi
testb $0x1, %sil
je 0x3b404
movq %rbx, (%rcx,%rdx,8)
addq $0x2, %rdx
cmpq %rdx, %rax
jne 0x3b3b0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq