// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: int_vector_ref_i_7piii
static s7_int int_vector_ref_i_7piii(s7_scheme *sc, s7_pointer v, s7_int i1, s7_int i2, s7_int i3)
                {
                    if ((i1 >= 0) && (i1 < vector_dimension(v, 0)))
                    {
                        if ((i2 >= 0) && (i2 < vector_dimension(v, 1)))
                        {
                            if ((i3 >= 0) && (i3 < vector_dimension(v, 2)))
                                return(int_vector(v, i3 + (i2 * vector_offset(v, 1)) + (i1 * vector_offset(v, 0))));
                            out_of_range(sc, sc->int_vector_ref_symbol, small_int(4), wrap_integer1(sc, i3), (i3 < 0) ? its_negative_string : its_too_large_string);
                        }
                        out_of_range(sc, sc->int_vector_ref_symbol, small_int(3), wrap_integer1(sc, i2), (i2 < 0) ? its_negative_string : its_too_large_string);
                    }
                    out_of_range(sc, sc->int_vector_ref_symbol, small_int(2), wrap_integer1(sc, i1), (i1 < 0) ? its_negative_string : its_too_large_string);
                    return(0);
                }

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0x98(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdx, 0x88(%rsp)
movq %rcx, 0x80(%rsp)
movq %r8, 0x78(%rsp)
cmpq $0x0, 0x88(%rsp)
jl 0xa815c
movq 0x88(%rsp), %rax
movq 0x90(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0x20(%rcx), %rcx
movq (%rcx), %rcx
cmpq (%rcx), %rax
jge 0xa815c
cmpq $0x0, 0x80(%rsp)
jl 0xa80ce
movq 0x80(%rsp), %rax
movq 0x90(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0x20(%rcx), %rcx
movq (%rcx), %rcx
cmpq 0x8(%rcx), %rax
jge 0xa80ce
cmpq $0x0, 0x78(%rsp)
jl 0xa8046
movq 0x78(%rsp), %rax
movq 0x90(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0x20(%rcx), %rcx
movq (%rcx), %rcx
cmpq 0x10(%rcx), %rax
jge 0xa8046
movq 0x90(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %rdx
movq 0x90(%rsp), %rsi
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %rsi
movq 0x18(%rsi), %rsi
imulq 0x8(%rsi), %rdx
addq %rdx, %rcx
movq 0x88(%rsp), %rdx
movq 0x90(%rsp), %rsi
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %rsi
movq 0x18(%rsi), %rsi
imulq (%rsi), %rdx
addq %rdx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0xa0(%rsp)
jmp 0xa81f3
movq 0x98(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x98(%rsp), %rax
movq 0xfa8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x16e42e(%rip), %rax    # 0x2164a0
movq %rax, 0x68(%rsp)
movq 0x98(%rsp), %rdi
movq 0x78(%rsp), %rsi
callq 0x12430
movq %rax, 0x70(%rsp)
cmpq $0x0, 0x78(%rsp)
jge 0xa80a4
movq 0x1724db(%rip), %rax    # 0x21a578
movq %rax, 0x50(%rsp)
jmp 0xa80b0
movq 0x1724c5(%rip), %rax    # 0x21a570
movq %rax, 0x50(%rsp)
movq 0x70(%rsp), %rcx
movq 0x68(%rsp), %rdx
movq 0x60(%rsp), %rsi
movq 0x58(%rsp), %rdi
movq 0x50(%rsp), %r8
callq 0x13880
movq 0x98(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x98(%rsp), %rax
movq 0xfa8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x16e39e(%rip), %rax    # 0x216498
movq %rax, 0x40(%rsp)
movq 0x98(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x12430
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x80(%rsp)
jge 0xa8132
movq 0x17244d(%rip), %rax    # 0x21a578
movq %rax, 0x28(%rsp)
jmp 0xa813e
movq 0x172437(%rip), %rax    # 0x21a570
movq %rax, 0x28(%rsp)
movq 0x48(%rsp), %rcx
movq 0x40(%rsp), %rdx
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %r8
callq 0x13880
movq 0x98(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x98(%rsp), %rax
movq 0xfa8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x16e308(%rip), %rax    # 0x216490
movq %rax, 0x18(%rsp)
movq 0x98(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x12430
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x88(%rsp)
jge 0xa81bf
movq 0x1723bf(%rip), %rax    # 0x21a578
movq %rax, (%rsp)
jmp 0xa81ca
movq 0x1723aa(%rip), %rax    # 0x21a570
movq %rax, (%rsp)
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq (%rsp), %r8
callq 0x13880
movq $0x0, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
addq $0xa8, %rsp
retq
nopw %cs:(%rax,%rax)