// File: /workspace/github_c_makefile_star2_O3/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 0xc8b87(%rip), %rcx     # 0x14ac20
cmpb $0x1, (%rax,%rcx)
jne 0x820fa
movq 0x18(%r15), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0x820fa
movq %r12, %rcx
orq %r13, %rcx
js 0x820fa
cmpq $0x2, 0x10(%rax)
jne 0x820fa
movq (%rax), %rcx
cmpq %r13, (%rcx)
jle 0x820fa
cmpq %r12, 0x8(%rcx)
jle 0x820fa
testb $0x2, 0x6(%r15)
jne 0x821de
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 0x8224f
leaq 0xc484f(%rip), %rbx     # 0x146950
cmpq $0x7ff, %r13            # imm = 0x7FF
ja 0x82110
movq (%rbx,%r13,8), %rbp
jmp 0x82150
movq 0x90(%r14), %rax
cmpq 0x98(%r14), %rax
ja 0x82135
movq %r14, %rdi
movq %r8, %rbp
callq 0xa550
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 0x8215f
movq (%rbx,%r12,8), %rax
jmp 0x8219e
movq 0x90(%r14), %rax
cmpq 0x98(%r14), %rax
ja 0x82184
movq %r14, %rdi
movq %r8, %rbx
callq 0xa550
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 0x79cc5
movq 0x18(%rax), %rax
imulq (%rax), %r13
cmpq $0x0, 0x6a0(%r14)
js 0x82242
movq 0x28(%r15), %rsi
cmpb $0x30, (%rsi)
jb 0x82219
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 0x82236
movq 0x700(%r14), %rax
movq %r8, %rbx
movq %r8, 0x8(%rax)
movq 0x700(%r14), %rdx
movq %r14, %rdi
callq 0xaee6
cmpq 0x120(%r14), %rax
movq %rbx, %r8
je 0x82261
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 0x82273
movq 0x8(%rsi), %rax
jmp 0x82287
movq 0x18(%rsi), %rdx
movq %r14, %rdi
callq 0x99caa
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rsi
movq %r14, %rdi
movl $0x1, %edx
callq 0x99bbf
leaq 0x908ba(%rip), %rsi     # 0x112b58
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 0xd4e5