// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: fx_tree_out
static bool fx_tree_out(s7_scheme *sc, s7_pointer tree, s7_pointer var1, s7_pointer var2)
                {
                    s7_pointer p;
                    /* fprintf(stderr, "%s[%d] %s %s %d %s: %s\n", __func__, __LINE__, DISPLAY(var1), (var2) ? DISPLAY(var2) : "", has_fx(tree), fx_name(sc, tree),  DISPLAY(tree)); */
                    p = car(tree);
                    if (is_symbol(p))
                    {
                        if (c_callee(tree) == fx_s)
                        {
                            if (p == var1) return(with_c_call(tree, fx_T));
                            if (p == var2) return(with_c_call(tree, fx_U));
                        }
                        return(false);
                    }
                    if ((is_pair(p)) && (is_pair(cdr(p))))
                    {
                        if (cadr(p) == var1)
                        {
                            if (c_callee(tree) == fx_c_s) return(with_c_call(tree, fx_c_T));
                            if (c_callee(tree) == fx_subtract_s1) return(with_c_call(tree, fx_subtract_T1));
                            if (c_callee(tree) == fx_add_s1) return(with_c_call(tree, fx_add_T1));
                            if (c_callee(tree) == fx_c_sca) return(with_c_call(tree, fx_c_Tca));
#if (!WITH_GMP)
                            if (c_callee(tree) == fx_num_eq_si) return(with_c_call(tree, fx_num_eq_Ti));
#endif
                        }
                        if (cadr(p) == var2)
                        {
                            if (c_callee(tree) == fx_subtract_s1) return(with_c_call(tree, fx_subtract_U1));
                            if (c_callee(tree) == fx_add_s1) return(with_c_call(tree, fx_add_U1));
                        }
                        if (is_pair(cddr(p)))
                        {
                            if (caddr(p) == var1)
                            {
#if (!WITH_GMP)
                                if (c_callee(tree) == fx_num_eq_ts) return(with_c_call(tree, fx_num_eq_tT));
                                if (c_callee(tree) == fx_gt_ts) return(with_c_call(tree, fx_gt_tT));
#endif
                            }
                            if (caddr(p) == var2)
                            {
                                if (c_callee(tree) == fx_c_ts) return(with_c_call(tree, fx_c_tU));
#if (!WITH_GMP)
                                if (c_callee(tree) == fx_lt_ts) return(with_c_call(tree, fx_lt_tU));
#endif
                                if (c_callee(tree) == fx_cons_ts) return(with_c_call(tree, fx_cons_tU));
                            }
                        }
                    }
                    return(false);
                }

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0x18abb1
movq 0x20(%rsp), %rax
leaq -0x84e0f(%rip), %rcx    # 0x105d40
cmpq %rcx, 0x20(%rax)
jne 0x18aba7
movq 0x8(%rsp), %rax
cmpq 0x18(%rsp), %rax
jne 0x18ab7d
movq 0x20(%rsp), %rdi
leaq 0x323(%rip), %rsi       # 0x18ae90
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x8(%rsp), %rax
cmpq 0x10(%rsp), %rax
jne 0x18aba5
movq 0x20(%rsp), %rdi
leaq 0x31b(%rip), %rsi       # 0x18aeb0
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
jmp 0x18aba7
movb $0x0, 0x37(%rsp)
jmp 0x18ae80
movq 0x8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18ae7b
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18ae7b
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x18(%rsp), %rax
jne 0x18acd7
movq 0x20(%rsp), %rax
leaq -0x83e4b(%rip), %rcx    # 0x106db0
cmpq %rcx, 0x20(%rax)
jne 0x18ac1d
movq 0x20(%rsp), %rdi
leaq 0x2d3(%rip), %rsi       # 0x18aee0
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x7fd69(%rip), %rcx    # 0x10aec0
cmpq %rcx, 0x20(%rax)
jne 0x18ac4b
movq 0x20(%rsp), %rdi
leaq 0x305(%rip), %rsi       # 0x18af40
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x80127(%rip), %rcx    # 0x10ab30
cmpq %rcx, 0x20(%rax)
jne 0x18ac79
movq 0x20(%rsp), %rdi
leaq 0x3f7(%rip), %rsi       # 0x18b060
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x70eb5(%rip), %rcx    # 0x119dd0
cmpq %rcx, 0x20(%rax)
jne 0x18aca7
movq 0x20(%rsp), %rdi
leaq 0x4f9(%rip), %rsi       # 0x18b190
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x7fad3(%rip), %rcx    # 0x10b1e0
cmpq %rcx, 0x20(%rax)
jne 0x18acd5
movq 0x20(%rsp), %rdi
leaq 0x58b(%rip), %rsi       # 0x18b250
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
jmp 0x18acd7
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x10(%rsp), %rax
jne 0x18ad49
movq 0x20(%rsp), %rax
leaq -0x7fe37(%rip), %rcx    # 0x10aec0
cmpq %rcx, 0x20(%rax)
jne 0x18ad19
movq 0x20(%rsp), %rdi
leaq 0x607(%rip), %rsi       # 0x18b310
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x801f5(%rip), %rcx    # 0x10ab30
cmpq %rcx, 0x20(%rax)
jne 0x18ad47
movq 0x20(%rsp), %rdi
leaq 0x6f9(%rip), %rsi       # 0x18b430
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
jmp 0x18ad49
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x18ae79
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x18(%rsp), %rax
jne 0x18add8
movq 0x20(%rsp), %rax
leaq -0x299f6(%rip), %rcx    # 0x161390
cmpq %rcx, 0x20(%rax)
jne 0x18ada8
movq 0x20(%rsp), %rdi
leaq 0x7c8(%rip), %rsi       # 0x18b560
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x29644(%rip), %rcx    # 0x161770
cmpq %rcx, 0x20(%rax)
jne 0x18add6
movq 0x20(%rsp), %rdi
leaq 0x85a(%rip), %rsi       # 0x18b620
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
jmp 0x18add8
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x10(%rsp), %rax
jne 0x18ae77
movq 0x20(%rsp), %rax
leaq -0x2bcd0(%rip), %rcx    # 0x15f130
cmpq %rcx, 0x20(%rax)
jne 0x18ae1f
movq 0x20(%rsp), %rdi
leaq 0x85e(%rip), %rsi       # 0x18b670
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x2982b(%rip), %rcx    # 0x161600
cmpq %rcx, 0x20(%rax)
jne 0x18ae4a
movq 0x20(%rsp), %rdi
leaq 0x8b3(%rip), %rsi       # 0x18b6f0
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
movq 0x20(%rsp), %rax
leaq -0x29596(%rip), %rcx    # 0x1618c0
cmpq %rcx, 0x20(%rax)
jne 0x18ae75
movq 0x20(%rsp), %rdi
leaq 0x8d8(%rip), %rsi       # 0x18b740
callq 0x15f030
andb $0x1, %al
movb %al, 0x37(%rsp)
jmp 0x18ae80
jmp 0x18ae77
jmp 0x18ae79
jmp 0x18ae7b
movb $0x0, 0x37(%rsp)
movb 0x37(%rsp), %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopl (%rax,%rax)