// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: s7_apply_n_5
s7_pointer s7_apply_n_5(s7_scheme *sc, s7_pointer args,
            s7_pointer (*f5)(s7_pointer a1, s7_pointer a2, s7_pointer a3, s7_pointer a4, s7_pointer a5))
    {
        if (is_pair(args))
        {
            s7_pointer a1;
            a1 = car(args); args = cdr(args);
            if (is_pair(args))
            {
                s7_pointer a2;
                a2 = car(args); args = cdr(args);
                if (is_pair(args))
                {
                    s7_pointer a3;
                    a3 = car(args); args = cdr(args);
                    if (is_pair(args))
                    {
                        s7_pointer a4;
                        a4 = car(args);
                        if (is_pair(cdr(args)))
                            return(f5(a1, a2, a3, a4, cadr(args)));
                        return(f5(a1, a2, a3, a4, sc->undefined));
                    }
                    return(f5(a1, a2, a3, sc->undefined, sc->undefined));
                }
                return(f5(a1, a2, sc->undefined, sc->undefined, sc->undefined));
            }
            return(f5(a1, sc->undefined, sc->undefined, sc->undefined, sc->undefined));
        }
        return(f5(sc->undefined, sc->undefined, sc->undefined, sc->undefined, sc->undefined));
    }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq 0x30(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x2ec47
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x2ec04
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x2ebc5
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x2eb8d
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x2eb5c
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x10(%r8), %r8
movq 0x8(%r8), %r8
callq *%rax
movq %rax, 0x40(%rsp)
jmp 0x2ec8f
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rcx
movq 0x38(%rsp), %r8
movq 0x128(%r8), %r8
callq *%rax
movq %rax, 0x40(%rsp)
jmp 0x2ec8f
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rcx
movq 0x38(%rsp), %r8
movq 0x128(%r8), %r8
callq *%rax
movq %rax, 0x40(%rsp)
jmp 0x2ec8f
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rdx
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rcx
movq 0x38(%rsp), %r8
movq 0x128(%r8), %r8
callq *%rax
movq %rax, 0x40(%rsp)
jmp 0x2ec8f
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rsi
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rdx
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rcx
movq 0x38(%rsp), %r8
movq 0x128(%r8), %r8
callq *%rax
movq %rax, 0x40(%rsp)
jmp 0x2ec8f
movq 0x28(%rsp), %rax
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rdi
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rsi
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rdx
movq 0x38(%rsp), %rcx
movq 0x128(%rcx), %rcx
movq 0x38(%rsp), %r8
movq 0x128(%r8), %r8
callq *%rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopl (%rax)