// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: eval_car_pair
static bool eval_car_pair(s7_scheme *sc)
                {
                    s7_pointer code, carc;
                    code = sc->code;
                    carc = car(code);
                    /* evaluate the inner list but that list can be circular: carc: #1=(#1# #1#)!
                     *   and the cycle can be well-hidden -- #1=((#1 2) . 2) and other such stuff
                     */
                    if (sc->stack_end >= sc->stack_resize_trigger)
                        check_for_cyclic_code(sc, code);
                    push_stack(sc, OP_EVAL_ARGS, sc->nil, code);

                    if (is_syntactic_symbol(car(carc)))
                        /* was checking for is_syntactic here but that can be confused by successive optimizer passes:
                         *  (define (hi) (((lambda () list)) 1 2 3)) etc
                         */
                    {
                        if ((car(carc) == sc->quote_symbol) &&        /* ('and #f) */
                                ((!is_pair(cdr(carc))) ||                 /* ((quote . #\h) (2 . #\i)) ! */
                                 (is_syntactic(cadr(carc)))))
                            apply_error(sc, (is_pair(cdr(carc))) ? cadr(carc) : carc, cdr(code));

                        sc->code = carc;
                        sc->cur_op = (opcode_t)symbol_syntax_op_checked(sc->code);
                        pair_set_syntax_op(sc->code, sc->cur_op);
                        return(true);
                    }
                    set_optimize_op(code, OP_PAIR_PAIR);
                    push_stack(sc, OP_EVAL_ARGS, sc->nil, carc);
                    sc->code = car(carc);
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x58(%rcx), %rax
jb 0x19ae27
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x16dd20
jmp 0x19ae29
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x110(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x192, %ecx            # imm = 0x192
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movzwl (%rax), %eax
cmpl $0x20a, %eax            # imm = 0x20A
jne 0x19afd6
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x17b0(%rcx), %rax
jne 0x19af36
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x19aee5
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzwl (%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x19af36
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x19af14
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x19af1e
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdx
callq 0xd9820
movq 0x18(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movzwl (%rax), %eax
cmpl $0x201, %eax            # imm = 0x201
jne 0x19af67
movq 0x28(%rsp), %rax
movq (%rax), %rax
movzwl 0x4(%rax), %eax
movq %rax, (%rsp)
jmp 0x19af83
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rax
movw %ax, %cx
movq 0x28(%rsp), %rax
movq (%rax), %rax
movw %cx, 0x4(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movb $0x1, 0x37(%rsp)
jmp 0x19b05a
movq 0x20(%rsp), %rax
movw $0x18a, 0x4(%rax)       # imm = 0x18A
movq 0x18(%rsp), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x110(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x192, %ecx            # imm = 0x192
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)