// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: vector_set_p_piip
static s7_pointer vector_set_p_piip(s7_scheme *sc, s7_pointer v, s7_int i1, s7_int i2, s7_pointer p)
                {
                    if ((!is_any_vector(v)) ||
                            (vector_rank(v) != 2) ||
                            (i1 < 0) || (i2 < 0) ||
                            (i1 >= vector_dimension(v, 0)) ||
                            (i2 >= vector_dimension(v, 1)))
                        return(g_vector_set(sc, set_elist_4(sc, v, make_integer(sc, i1), make_integer(sc, i2), p)));

                    if (is_typed_vector(v))
                        return(typed_vector_setter(sc, v, i2 + (i1 * vector_offset(v, 0)), p));

                    vector_setter(v)(sc, v, i2 + (i1 * vector_offset(v, 0)), p);
                    return(p);
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %r14
movzbl (%rsi), %eax
leaq 0xca6bb(%rip), %rcx     # 0x152c20
cmpb $0x1, (%rax,%rcx)
jne 0x885cf
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x88582
cmpq $0x2, 0x10(%rax)
setne %cl
jmp 0x88584
movb $0x1, %cl
movq %r12, %rdx
orq %r13, %rdx
js 0x885cf
testb %cl, %cl
jne 0x885cf
movq (%rax), %rcx
cmpq %r13, (%rcx)
jle 0x885cf
cmpq %r12, 0x8(%rcx)
jle 0x885cf
testb $0x2, 0x6(%r15)
jne 0x886b3
movq 0x18(%rax), %rax
imulq (%rax), %r13
addq %r12, %r13
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rdx
movq %r8, %rcx
movq %r8, %rbx
callq *0x28(%r15)
movq %rbx, %r8
jmp 0x88724
leaq 0xc637a(%rip), %rbx     # 0x14e950
cmpq $0x7ff, %r13            # imm = 0x7FF
ja 0x885e5
movq (%rbx,%r13,8), %rbp
jmp 0x88625
movq 0x90(%r14), %rax
cmpq 0x98(%r14), %rax
ja 0x88603
movq %r14, %rdi
movq %r8, %rbp
callq 0xb389
movq %rbp, %r8
movq 0x90(%r14), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r14)
movq -0x8(%rax), %rbp
movq $0xb, (%rbp)
movq %r13, 0x8(%rbp)
cmpq $0x7ff, %r12            # imm = 0x7FF
ja 0x88634
movq (%rbx,%r12,8), %rax
jmp 0x88673
movq 0x90(%r14), %rax
cmpq 0x98(%r14), %rax
ja 0x88652
movq %r14, %rdi
movq %r8, %rbx
callq 0xb389
movq %rbx, %r8
movq 0x90(%r14), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x90(%r14)
movq -0x8(%rax), %rax
movq $0xb, (%rax)
movq %r12, 0x8(%rax)
movq 0x6f0(%r14), %rcx
movq %r15, 0x8(%rcx)
movq 0x10(%rcx), %rcx
movq %rbp, 0x8(%rcx)
movq 0x10(%rcx), %rcx
movq %rax, 0x8(%rcx)
movq 0x10(%rcx), %rax
movq %r8, 0x8(%rax)
movq 0x6f0(%r14), %rsi
movq %r14, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7fcf5
movq 0x18(%rax), %rax
imulq (%rax), %r13
cmpq $0x0, 0x6a0(%r14)
js 0x88717
movq 0x28(%r15), %rsi
cmpb $0x30, (%rsi)
jb 0x886ee
movq 0x10(%rsi), %rax
movq 0x700(%r14), %rcx
movq %r8, %rbx
movq %r8, 0x8(%rcx)
movq 0x700(%r14), %rsi
movq %r14, %rdi
callq *%rax
jmp 0x8870b
movq 0x700(%r14), %rax
movq %r8, %rbx
movq %r8, 0x8(%rax)
movq 0x700(%r14), %rdx
movq %r14, %rdi
callq 0xbd41
cmpq 0x120(%r14), %rax
movq %rbx, %r8
je 0x88736
shlq $0x3, %r13
addq 0x10(%r15), %r13
movq %r8, (%r13,%r12,8)
movq %r8, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r8, %rbx
movq 0x28(%r15), %rsi
cmpb $0x30, (%rsi)
jb 0x88748
movq 0x8(%rsi), %rax
jmp 0x8875c
movq 0x18(%rsi), %rdx
movq %r14, %rdi
callq 0xa05a7
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rsi
movq %r14, %rdi
movl $0x1, %edx
callq 0xa0491
leaq 0x932d5(%rip), %rsi     # 0x11ba48
movl $0x3, %edx
movq %r14, %rdi
movq %rbx, %rcx
movq %rax, %r8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe25f