// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: check_or
static bool check_or(s7_scheme *sc)
                {
                    s7_pointer p, form;
                    bool any_nils = false;

                    form = sc->code;
                    sc->code = cdr(sc->code);

                    if (is_null(sc->code))
                    {
                        sc->value = sc->F;
                        return(true);
                    }

                    for (p = sc->code; is_pair(p); p = cdr(p))
                    {
                        s7_function callee;
                        callee = fx_choose(sc, p, sc->envir, let_symbol_is_safe);
                        if (!callee) any_nils = true;
                        set_c_call_checked(p, callee);
                    }

                    if (is_not_null(p))
                        eval_error_no_return(sc, sc->syntax_error_symbol, "or: stray dot?: ~A", 18, form);

                    if ((c_callee(sc->code)) &&
                            (is_proper_list_1(sc, cdr(sc->code)))) /* list_1 of cdr so there are 2 exprs */
                        pair_set_syntax_op(form, (any_nils) ? OP_OR_AP : OP_OR_SAFE_AA);
                    else pair_set_syntax_op(form, (any_nils) ? OP_OR_P : OP_OR_N);
                    sc->code = form;
                    return(false);
                }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movb $0x0, 0x37(%rsp)
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, (%rax)
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x48(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x154204
movq 0x48(%rsp), %rax
movq 0x120(%rax), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, 0x57(%rsp)
jmp 0x1543e1
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x1542ae
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdx
leaq -0x4e63c(%rip), %rcx    # 0x105c00
callq 0x103260
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x154253
movb $0x1, 0x37(%rsp)
jmp 0x154255
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x20(%rax)
cmpq $0x0, 0x20(%rsp)
je 0x154287
movq 0x40(%rsp), %rax
movzwl 0x6(%rax), %ecx
orl $0x4, %ecx
movw %cx, 0x6(%rax)
jmp 0x154297
movq 0x40(%rsp), %rax
movzwl 0x6(%rax), %ecx
andl $-0x5, %ecx
movw %cx, 0x6(%rax)
jmp 0x154299
jmp 0x15429b
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x154211
movq 0x40(%rsp), %rax
movq 0x48(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0x154320
movq 0x48(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x48(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
leaq 0x9cde2(%rip), %rsi     # 0x1f10d4
movl $0x12, %edx
callq 0xb880
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x38(%rsp), %rdx
callq 0xb830
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
movq 0x48(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x15438d
movq 0x48(%rsp), %rdi
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rsi
callq 0xfd500
testb $0x1, %al
jne 0x15434b
jmp 0x15438d
jmp 0x15434d
movb 0x37(%rsp), %dl
movl $0x295, %eax            # imm = 0x295
movl $0x294, %ecx            # imm = 0x294
testb $0x1, %dl
cmovnel %ecx, %eax
movw %ax, %cx
movq 0x38(%rsp), %rax
movw %cx, 0x4(%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x38(%rsp), %rax
movq %rcx, (%rax)
jmp 0x1543cf
jmp 0x15438f
movb 0x37(%rsp), %dl
movl $0x298, %eax            # imm = 0x298
movl $0x292, %ecx            # imm = 0x292
testb $0x1, %dl
cmovnel %ecx, %eax
movw %ax, %cx
movq 0x38(%rsp), %rax
movw %cx, 0x4(%rax)
movq 0x38(%rsp), %rax
movq (%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x201, %rcx            # imm = 0x201
movq 0x38(%rsp), %rax
movq %rcx, (%rax)
jmp 0x1543cf
movq 0x38(%rsp), %rcx
movq 0x48(%rsp), %rax
movq %rcx, (%rax)
movb $0x0, 0x57(%rsp)
movb 0x57(%rsp), %al
andb $0x1, %al
addq $0x58, %rsp
retq
nopl (%rax)