// File: /workspace/github_c_makefile_star2_O1/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 0x10b7e8
movq 0x18(%rbx), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x10b78a
cmpq $0x1, 0x10(%rax)
jne 0x10b81d
movq 0x10(%rcx), %rax
movq 0x8(%rax), %rsi
cmpb $0xb, (%rsi)
jne 0x10b800
movq 0x8(%rsi), %r15
testq %r15, %r15
js 0x10b836
cmpq 0x8(%rbx), %r15
jge 0x10b836
movq 0x10(%rax), %rax
movq 0x8(%rax), %r14
movzbl (%r14), %eax
leaq 0x471ef(%rip), %rdx     # 0x1529b0
cmpb $0x0, (%rax,%rdx)
je 0x10b897
testb $0x1, 0x3(%rbx)
jne 0x10b8b2
cmpb $0xd, %al
jne 0x10b8eb
movsd 0x8(%r14), %xmm0
jmp 0x10b901
movq 0xef8(%rdi), %rdx
movq %rbx, %rsi
movl $0x17, %r8d
movl $0x1, %r9d
jmp 0x10b813
movq 0xef8(%rdi), %rdx
movl $0xb, %r8d
movl $0x2, %r9d
popq %rbx
popq %r14
popq %r15
jmp 0xf1ae
movq 0xef8(%rdi), %rdx
movq %rcx, %rsi
movl $0x17, %ecx
popq %rbx
popq %r14
popq %r15
jmp 0x107e66
testq %r15, %r15
movq 0xef8(%rdi), %rax
movq 0x8(%rax), %rax
leaq 0x471fd(%rip), %rcx     # 0x152a48
leaq 0x471ee(%rip), %rdx     # 0x152a40
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 0x3b366
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
movq 0xef8(%rdi), %rdx
movq %r14, %rsi
movl $0xd, %r8d
movl $0x3, %r9d
jmp 0x10b813
movq 0x470af(%rip), %rax     # 0x152968
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 0x10b886
movq 0x4713e(%rip), %rdi     # 0x152a30
leaq 0x766f(%rip), %rdx      # 0x112f68
movq %r14, %rsi
callq 0xe212
movq 0x10(%rbx), %rax
movsd %xmm0, (%rax,%r15,8)
jmp 0x10b88e