// File: /workspace/github_c_makefile_star2_O3/BernardTatin[P]s7sh/s7.c
// Function: b_ii_ok
static bool b_ii_ok(s7_scheme *sc, opt_info *opc, s7_pointer s_func, s7_pointer car_x, s7_pointer arg1, s7_pointer arg2)
                {
                    s7_b_ii_t bif;
                    bif = s7_b_ii_function(s_func);
                    if (bif)
                    {
                        opc->v[3].b_ii_f = bif;
                        if (is_symbol(arg1))
                        {
                            opc->v[1].p = symbol_to_slot(sc, arg1);
                            if (is_symbol(arg2))
                            {
                                opc->v[2].p = symbol_to_slot(sc, arg2);
                                opc->v[0].fb = opt_b_ii_ss;
                                if (bif == lt_b_ii)
                                    opc->v[0].fb = opt_b_ii_ss_lt;
                                else
                                {
                                    if (bif == gt_b_ii)
                                        opc->v[0].fb = opt_b_ii_ss_gt;
                                    else
                                    {
                                        if (bif == geq_b_ii)
                                            opc->v[0].fb = opt_b_ii_ss_geq;
                                        else
                                        {
                                            if (bif == leq_b_ii)
                                                opc->v[0].fb = opt_b_ii_ss_leq;
                                            else
                                            {
                                                if (bif == num_eq_b_ii)
                                                    opc->v[0].fb = opt_b_ii_ss_eq;
                                            }
                                        }
                                    }
                                }
                                return(oo_set_type_2(opc, 4, 1, 2, OO_I, OO_I));
                            }
                            if (is_opt_int(arg2))
                            {
                                opc->v[2].i = integer(arg2);
                                opc->v[0].fb = (bif == lt_b_ii) ? opt_b_ii_sc_lt : ((bif == geq_b_ii) ? opt_b_ii_sc_geq : ((bif == num_eq_b_ii) ? opt_b_ii_sc_eq : opt_b_ii_sc));
                                return(oo_set_type_1(opc, 4, 1, OO_I));
                            }
                            if (int_optimize(sc, cddr(car_x)))
                            {
                                opc->v[0].fb = opt_b_ii_sf;
                                return(oo_set_type_1(opc, 4, 1, OO_I));
                            }
                            return(return_false(sc, car_x, __func__, __LINE__));
                        }
                        if (is_symbol(arg2))
                        {
                            if (int_optimize(sc, cdr(car_x)))
                            {
                                opc->v[2].p = symbol_to_slot(sc, arg2);
                                opc->v[0].fb = opt_b_ii_fs;
                                return(oo_set_type_1(opc, 4, 2, OO_I));
                            }
                            return(return_false(sc, car_x, __func__, __LINE__));
                        }
                        if ((is_opt_int(arg2)) &&
                                (int_optimize(sc, cdr(car_x))))
                        {
                            opc->v[2].i = integer(arg2);
                            opc->v[0].fb = opt_b_ii_fc;
                            return(oo_set_type_0(opc, 4));
                        }
                        if ((int_optimize(sc, cdr(car_x))) &&
                                (int_optimize(sc, cddr(car_x))))
                        {
                            opc->v[0].fb = opt_b_ii_ff;
                            return(oo_set_type_0(opc, 4));
                        }
                    }
                    return(return_false(sc, car_x, __func__, __LINE__));
                }

// Assembly:
cmpb $0x30, (%rdx)
jb 0xaa532
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq 0x8(%rdx), %rax
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xaa76e
movq %r9, %r14
movq %rcx, %r12
movq %rsi, %rbx
movq %rdi, %r15
cmpl $0x21, (%rax)
je 0xaa535
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xaa51f
jmp 0xaa76e
xorl %eax, %eax
retq
movq 0x8(%rax), %rax
testq %rax, %rax
je 0xaa76e
movq %rax, 0x18(%rbx)
cmpb $0xa, (%r8)
jne 0xaa638
movq 0x8(%r15), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%r8), %rsi
movl $0x18, %ecx
cmpq %rsi, %rdi
je 0xaa57e
jle 0xaa575
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xaa568
cmpq %rsi, %rdi
jne 0xaa77c
movq (%r8,%rcx), %rsi
movq %rsi, 0x8(%rbx)
movzbl (%r14), %ecx
cmpl $0xb, %ecx
je 0xaa6a5
cmpl $0xa, %ecx
jne 0xaa74d
movq 0x8(%r15), %rdx
movq 0x18(%rdx), %rdi
movq 0x20(%r14), %rsi
movl $0x18, %ecx
cmpq %rsi, %rdi
je 0xaa5ca
jle 0xaa5c1
movq 0x10(%rdx), %rdx
movq 0x18(%rdx), %rdi
cmpq %rdi, %rsi
jl 0xaa5b4
cmpq %rsi, %rdi
jne 0xaa7be
movq (%r14,%rcx), %rsi
movq %rsi, 0x10(%rbx)
leaq 0xd46(%rip), %rcx       # 0xab31f
movq %rcx, (%rbx)
leaq -0x21128(%rip), %rcx    # 0x894bb
cmpq %rcx, %rax
je 0xaa7a9
leaq -0x2112a(%rip), %rcx    # 0x894c9
cmpq %rcx, %rax
je 0xaa7eb
leaq -0x21133(%rip), %rcx    # 0x894d0
cmpq %rcx, %rax
je 0xaa815
leaq -0x21151(%rip), %rcx    # 0x894c2
cmpq %rcx, %rax
je 0xaa84b
leaq -0x2116f(%rip), %rcx    # 0x894b4
cmpq %rcx, %rax
jne 0xaa855
leaq 0x10e9(%rip), %rax      # 0xab71c
jmp 0xaa852
movzbl (%r14), %eax
cmpl $0xb, %eax
je 0xaa6ee
cmpl $0xa, %eax
jne 0xaa710
movq 0x10(%r12), %rsi
movq %r15, %rdi
callq 0x9fbc8
testb %al, %al
je 0xaa76e
movq 0x8(%r15), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%r14), %rdx
movl $0x18, %eax
cmpq %rdx, %rsi
je 0xaa691
jle 0xaa688
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xaa67b
cmpq %rdx, %rsi
jne 0xaa81e
movq (%r14,%rax), %rdx
movq %rdx, 0x10(%rbx)
leaq 0x1132(%rip), %rax      # 0xab7d2
jmp 0xaa7fb
movq 0x8(%r14), %rcx
movq %rcx, 0x10(%rbx)
leaq -0x211f9(%rip), %rcx    # 0x894bb
cmpq %rcx, %rax
je 0xaa7b5
leaq -0x211f4(%rip), %rcx    # 0x894d0
cmpq %rcx, %rax
je 0xaa7f4
leaq -0x21220(%rip), %rcx    # 0x894b4
cmpq %rcx, %rax
leaq 0x1082(%rip), %rcx      # 0xab760
leaq 0x108f(%rip), %rax      # 0xab774
cmoveq %rcx, %rax
jmp 0xaa7fb
movq 0x10(%r12), %rsi
movq %r15, %rdi
callq 0x9fbc8
testb %al, %al
je 0xaa710
movq 0x8(%r14), %rax
movq %rax, 0x10(%rbx)
leaq 0x1109(%rip), %rax      # 0xab817
jmp 0xaa73d
movq 0x10(%r12), %rsi
movq %r15, %rdi
callq 0x9fbc8
testb %al, %al
je 0xaa76e
movq 0x10(%r12), %rax
movq 0x10(%rax), %rsi
movq %r15, %rdi
callq 0x9fbc8
testb %al, %al
je 0xaa76e
leaq 0x1117(%rip), %rax      # 0xab854
movq %rax, (%rbx)
movq $0x4, 0x60(%rbx)
jmp 0xaa871
movq 0x10(%r12), %rax
movq 0x10(%rax), %rsi
movq %r15, %rdi
callq 0x9fbc8
testb %al, %al
je 0xaa76e
leaq 0x1021(%rip), %rax      # 0xab78a
jmp 0xaa7fb
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movl $0x10, %ecx
cmpb $0x1c, (%rdx)
jne 0xaa57e
movq 0x8(%rdx), %rsi
testq %rsi, %rsi
je 0xaa7a3
cmpq %r8, 0x8(%rsi)
je 0xaa582
movq 0x18(%rsi), %rsi
jmp 0xaa78e
movq 0x10(%rdx), %rdx
jmp 0xaa781
leaq 0xb8d(%rip), %rax       # 0xab33d
jmp 0xaa852
leaq 0xf7c(%rip), %rax       # 0xab738
jmp 0xaa7fb
movl $0x10, %ecx
cmpb $0x1c, (%rdx)
jne 0xaa5ca
movq 0x8(%rdx), %rsi
testq %rsi, %rsi
je 0xaa7e5
cmpq %r14, 0x8(%rsi)
je 0xaa5ce
movq 0x18(%rsi), %rsi
jmp 0xaa7d0
movq 0x10(%rdx), %rdx
jmp 0xaa7c3
leaq 0xb67(%rip), %rax       # 0xab359
jmp 0xaa852
leaq 0xf51(%rip), %rax       # 0xab74c
movq %rax, (%rbx)
movabsq $0x100000004, %rax      # imm = 0x100000004
movq %rax, 0x60(%rbx)
movl $0x1, 0x70(%rbx)
jmp 0xaa871
leaq 0xb75(%rip), %rax       # 0xab391
jmp 0xaa852
movl $0x10, %eax
cmpb $0x1c, (%rcx)
jne 0xaa691
movq 0x8(%rcx), %rdx
testq %rdx, %rdx
je 0xaa845
cmpq %r14, 0x8(%rdx)
je 0xaa695
movq 0x18(%rdx), %rdx
jmp 0xaa830
movq 0x10(%rcx), %rcx
jmp 0xaa823
leaq 0xb23(%rip), %rax       # 0xab375
movq %rax, (%rbx)
movabsq $0x200000004, %rax      # imm = 0x200000004
movq %rax, 0x60(%rbx)
movabsq $0x100000001, %rax      # imm = 0x100000001
movq %rax, 0x70(%rbx)
movb $0x1, %al
jmp 0xaa770