// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: g_fv_set_3
static s7_pointer g_fv_set_3(s7_scheme *sc, s7_pointer args)
                {
                    s7_pointer fv, index, value;
                    s7_int ind;
                    fv = car(args);
                    if (!is_float_vector(fv))
                        return(method_or_bust(sc, fv, sc->float_vector_set_symbol, args, T_FLOAT_VECTOR, 1));
                    if (vector_rank(fv) != 1)
                        return(univect_set(sc, args, sc->float_vector_set_symbol, T_FLOAT_VECTOR));
                    index = cadr(args);
                    if (!s7_is_integer(index))
                        return(method_or_bust(sc, index, sc->float_vector_set_symbol, args, T_INTEGER, 2));
                    ind = s7_integer(index);
                    if ((ind < 0) || (ind >= vector_length(fv)))
                        return(simple_out_of_range(sc, sc->float_vector_set_symbol, index, (ind < 0) ? its_negative_string : its_too_large_string));
                    value = caddr(args);
                    if (!s7_is_real(value))
                        return(method_or_bust(sc, value, sc->float_vector_set_symbol, args, T_REAL, 3));
                    if (is_immutable_vector(fv))
                        return(immutable_object_error(sc, set_elist_3(sc, immutable_error_string, sc->float_vector_set_symbol, fv)));
                    float_vector(fv, ind) = s7_real(value);
                    return(value);
                }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rcx
movq 0x8(%rsi), %rbx
cmpb $0x17, (%rbx)
jne 0x1023b0
movq 0x18(%rbx), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x102352
cmpq $0x1, 0x10(%rax)
jne 0x1023e5
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rsi
cmpb $0xb, (%rsi)
jne 0x1023c8
movq 0x8(%rsi), %r15
testq %r15, %r15
js 0x1023fe
cmpq 0x8(%rbx), %r15
jge 0x1023fe
movq 0x10(%rax), %rax
movq 0x8(%rax), %r14
movzbl (%r14), %eax
leaq 0x48627(%rip), %rdx     # 0x14a9b0
cmpb $0x0, (%rax,%rdx)
je 0x10245f
testb $0x1, 0x3(%rbx)
jne 0x10247a
cmpb $0xd, %al
jne 0x1024b3
movsd 0x8(%r14), %xmm0
jmp 0x1024c9
movq 0xef8(%rdi), %rdx
movq %rbx, %rsi
movl $0x17, %r8d
movl $0x1, %r9d
jmp 0x1023db
movq 0xef8(%rdi), %rdx
movl $0xb, %r8d
movl $0x2, %r9d
popq %rbx
popq %r14
popq %r15
jmp 0xe42d
movq 0xef8(%rdi), %rdx
movq %rcx, %rsi
movl $0x17, %ecx
popq %rbx
popq %r14
popq %r15
jmp 0xfec8b
testq %r15, %r15
movq 0xef8(%rdi), %rax
movq 0x8(%rax), %rax
leaq 0x48635(%rip), %rcx     # 0x14aa48
leaq 0x48626(%rip), %rdx     # 0x14aa40
cmovsq %rcx, %rdx
movq (%rdx), %rcx
movq 0x1ef8(%rdi), %rdx
movq 0x10(%rdx), %rdx
movq %rax, 0x8(%rdx)
movq 0x10(%rdx), %rax
movq %rsi, 0x8(%rax)
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x1948(%rdi), %r14
movq 0x1ef8(%rdi), %rdx
movq %r14, %rsi
callq 0x38dfa
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
movq 0xef8(%rdi), %rdx
movq %r14, %rsi
movl $0xd, %r8d
movl $0x3, %r9d
jmp 0x1023db
movq 0x484e7(%rip), %rax     # 0x14a968
movq 0xef8(%rdi), %rcx
movq 0x6e8(%rdi), %rdx
movq %rax, 0x8(%rdx)
movq 0x10(%rdx), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rax), %rax
movq %rbx, 0x8(%rax)
movq 0x6e8(%rdi), %rdx
movq 0xea8(%rdi), %r14
jmp 0x10244e
movq 0x48576(%rip), %rdi     # 0x14aa30
leaq 0x7bb7(%rip), %rdx      # 0x10a078
movq %r14, %rsi
callq 0xd498
movq 0x10(%rbx), %rax
movsd %xmm0, (%rax,%r15,8)
jmp 0x102456