// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: check_let_one_var
static s7_pointer check_let_one_var(s7_scheme *sc, s7_pointer form, s7_pointer start)
                {
                    s7_pointer binding;
#if S7_DEBUGGING
                    if (cdr(form) != sc->code) fprintf(stderr, "%s[%d]: form: %s, code: %s\n", __func__, __LINE__, DISPLAY_80(form), DISPLAY_80(sc->code));
#endif

                    binding = car(start);
                    if (is_pair(cadr(binding)))
                    {
                        /* this is not a named let */
                        pair_set_syntax_op(form, ((is_pair(cdr(sc->code))) && (is_null(cddr(sc->code)))) ? OP_LET_ONE_P_OLD : OP_LET_ONE_OLD);
                        set_opt2_sym(cdr(sc->code), car(binding)); /* these don't collide -- cdr(code) and code */
                        set_opt2_pair(sc->code, cadr(binding));

                        if (is_optimized(cadr(binding)))
                        {
                            /* if (not_in_heap(form)) fprintf(stderr, "unheap %s\n", DISPLAY_80(form)); */

                            if (is_null(cddr(sc->code)))                   /* one statement body */
                            {
                                if (optimize_op(cadr(binding)) == HOP_SAFE_C_SS)
                                {
                                    /* no lt fx here, 4 s7test */
                                    set_opt2_pair(sc->code, cadr(binding));
                                    pair_set_syntax_op(form, OP_LET_opSSq_E_OLD);
                                    if (c_callee(cadr(binding)) == g_assq)
                                        pair_set_syntax_op(form, OP_LET_opaSSq_E_OLD);
                                    set_opt3_sym(cdr(sc->code), caddr(cadr(binding)));
                                    return(sc->code);
                                }
                                if (is_fxable(sc, cadr(binding)))
                                {
                                    set_opt2_pair(sc->code, binding);
                                    pair_set_syntax_op(form, OP_LET_A_OLD);
                                    annotate_arg(sc, cdr(binding), sc->envir);
                                    check_let_a_body(sc, form);
                                    return(sc->code);
                                }
                            }
                            if (optimize_op(cadr(binding)) == HOP_SAFE_C_SS)
                            {
                                if (c_callee(cadr(binding)) == g_assq)
                                    pair_set_syntax_op(form, OP_LET_opaSSq_OLD);
                                else pair_set_syntax_op(form, OP_LET_opSSq_OLD);
                                set_opt3_sym(cdr(sc->code), caddr(cadr(binding)));
                            }
                            else
                            {
                                if (is_fxable(sc, cadr(binding)))
                                {
                                    set_opt2_pair(sc->code, binding);
                                    pair_set_syntax_op(form, OP_LET_A_OLD);
                                    annotate_arg(sc, cdr(binding), sc->envir);
                                    if (is_null(cddr(sc->code)))
                                        check_let_a_body(sc, form);
                                    else
                                    {
                                        s7_pointer p;
                                        for (p = cdr(sc->code); is_pair(p); p = cdr(p))
                                            if (!is_fxable(sc, car(p)))
                                                break;
                                        if (is_null(p))
                                        {
                                            pair_set_syntax_op(form, OP_LET_A_FX_OLD);
                                            annotate_args(sc, cdr(sc->code), set_plist_1(sc, car(binding)));
                                            fx_tree(sc, cdr(sc->code), car(binding), NULL);
                                            return(sc->code);
                                        }}}}}}
                    else
                    {
                        set_opt2_pair(sc->code, binding);
                        pair_set_syntax_op(form, OP_LET_A_OLD);
                        annotate_arg(sc, cdr(binding), sc->envir);
                        if (is_null(cddr(sc->code))) check_let_a_body(sc, form);
                    }

                    if ((optimize_op(form) == OP_LET_A_OLD) &&
                            (is_pair(cddr(sc->code))) && (is_null(cdddr(sc->code))))
                        pair_set_syntax_op(form, OP_LET_A_OLD_2);

                    return(sc->code);
                }

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x196a8f
jmp 0x19658c
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x1, %ecx
movb %al, 0x17(%rsp)
jne 0x1965c9
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x110(%rcx), %rax
sete %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %dl
movl $0x252, %eax            # imm = 0x252
movl $0x254, %ecx            # imm = 0x254
testb $0x1, %dl
cmovnel %ecx, %eax
movw %ax, %cx
movq 0x30(%rsp), %rax
movw %cx, 0x4(%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzwl (%rax), %eax
cmpl $0x801, %eax            # imm = 0x801
jne 0x196a8a
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x196805
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzwl 0x4(%rax), %eax
cmpl $0x7, %eax
jne 0x19676f
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x30(%rsp), %rax
movw $0x24c, 0x4(%rax)       # imm = 0x24C
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
leaq -0x105e36(%rip), %rcx   # 0x908b0
cmpq %rcx, 0x20(%rax)
jne 0x196719
jmp 0x1966ee
movq 0x30(%rsp), %rax
movw $0x250, 0x4(%rax)       # imm = 0x250
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x196719
jmp 0x19671b
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x28(%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x196b98
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x19678c
jmp 0x196803
movq 0x20(%rsp), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x30(%rsp), %rax
movw $0x25a, 0x4(%rax)       # imm = 0x25A
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdx
callq 0x15d020
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x196bb0
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x196b98
jmp 0x196805
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzwl 0x4(%rax), %eax
cmpl $0x7, %eax
jne 0x1968dc
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
leaq -0x105f83(%rip), %rcx   # 0x908b0
cmpq %rcx, 0x20(%rax)
jne 0x196866
jmp 0x19683b
movq 0x30(%rsp), %rax
movw $0x24e, 0x4(%rax)       # imm = 0x24E
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x196893
jmp 0x196868
movq 0x30(%rsp), %rax
movw $0x24a, 0x4(%rax)       # imm = 0x24A
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x196893
jmp 0x196895
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x28(%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
andq $-0x40001, %rcx         # imm = 0xFFFBFFFF
movq %rcx, (%rax)
jmp 0x196a88
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1968fc
jmp 0x196a86
movq 0x20(%rsp), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x30(%rsp), %rax
movw $0x25a, 0x4(%rax)       # imm = 0x25A
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdx
callq 0x15d020
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x196984
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x196bb0
jmp 0x196a84
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x1969cd
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x15cfb0
testb $0x1, %al
jne 0x1969bb
jmp 0x1969cd
jmp 0x1969bd
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x196995
movq 0x18(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x196a82
jmp 0x1969e6
movq 0x30(%rsp), %rax
movw $0x260, 0x4(%rax)       # imm = 0x260
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rax
movq %rax, (%rsp)
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x35ea0
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rax, %rdx
callq 0x164800
movq 0x38(%rsp), %rdi
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x15d170
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x196b98
jmp 0x196a84
jmp 0x196a86
jmp 0x196a88
jmp 0x196a8a
jmp 0x196b14
movq 0x20(%rsp), %rcx
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rcx, 0x20(%rax)
movq 0x30(%rsp), %rax
movw $0x25a, 0x4(%rax)       # imm = 0x25A
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rdx
callq 0x15d020
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x196b12
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x196bb0
jmp 0x196b14
movq 0x30(%rsp), %rax
movzwl 0x4(%rax), %eax
cmpl $0x25a, %eax            # imm = 0x25A
jne 0x196b8b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x196b8b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x196b8b
jmp 0x196b60
movq 0x30(%rsp), %rax
movw $0x262, 0x4(%rax)       # imm = 0x262
movq 0x30(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x196b8b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)