// File: /workspace/github_c_makefile_star2_O1/BernardTatin[P]s7sh/s7.c
// Function: set_if_opts
static void set_if_opts(s7_scheme *sc, s7_pointer form, bool one_branch, bool reversed) /* cdr(form) == sc->code */
                {
                    s7_pointer test;
                    bool not_case = false;

                    test = car(sc->code);
                    if ((!reversed) &&
                            (is_pair(test)) &&
                            (car(test) == sc->not_symbol))
                    {
                        if (!is_proper_list_1(sc, cdr(test))) return; /* (not) or (not a b) */
                        not_case = true;
                        test = cadr(test);
                    }

                    set_opt1_any(form, cadr(sc->code));
                    if (!one_branch) set_opt2_any(form, caddr(sc->code));

                    /* perhaps: assume "normal" case and choose pf fp pp from fxable
                     *   cfx-counts
                     *   if_a_f_p [(hash 1.5M, sndtest 300k lg 1.2M)] | p_f (test, lg 700k)
                     *   if_is_type_s_p_f [(hash 500k lg 400k)] | f_p (b 300k)
                     *   if_and2_p_f (index 90k)
                     *   if_or2_p_f (b 200k)
                     *   if_s_p_f [(lg 2M)]
                     *   if_opsq_n_n (lg 500k)
                     */

                    /*  [and2 tset > 5% 3088->3268][is_type titer 2836->2931][cs fb 2694->2720] */
                    if (is_pair(test))
                    {
                        if (is_optimized(test))
                        {
                            if (is_h_safe_c_d(test)) /* replace these with fx_and* */
                            {
                                pair_set_syntax_op(form, choose_if_optc(IF_A, one_branch, reversed, not_case));
                                if (not_case)
                                    set_c_call(cdar(sc->code), fx_choose(sc, cdar(sc->code), sc->envir, let_symbol_is_safe));
                                else set_c_call(sc->code, fx_choose(sc, sc->code, sc->envir, let_symbol_is_safe));
                                return;
                            }

                            if (is_h_safe_c_s(test))
                            {
                                uint8_t typ;
                                typ = symbol_type(car(test));
                                if (typ > 0)
                                {
                                    pair_set_syntax_op(form, choose_if_optc(IF_IS_TYPE_S, one_branch, reversed, not_case));
                                    set_opt3_byte(sc->code, typ);

                                    if ((optimize_op(form) == OP_IF_IS_TYPE_S_P_P) &&
                                            (is_fxable(sc, caddr(sc->code))))
                                    {
                                        pair_set_syntax_op(form, OP_IF_IS_TYPE_S_P_A);
                                        annotate_arg(sc, cddr(sc->code), sc->envir);
                                        set_opt2_any(form, cddr(sc->code));
                                    }
                                }
                                else pair_set_syntax_op(form, choose_if_optc(IF_opSq, one_branch, reversed, not_case));
                                clear_has_fx(sc->code);
                                set_opt2_sym(sc->code, cadr(test));
                                return;
                            }
                            if (is_fxable(sc, test))
                            {
                                /* if (one_branch) fprintf(stderr, "%s\n", DISPLAY_80(sc->code)); */

                                if (optimize_op(test) == OP_OR_2)
                                {
                                    pair_set_syntax_op(form, choose_if_optc(IF_OR2, one_branch, reversed, not_case));
                                    set_opt2_pair(sc->code, cdr(test));
                                    set_opt3_pair(sc->code, cddr(test));
                                    return;
                                }
                                if (optimize_op(test) == OP_AND_2)
                                {
                                    pair_set_syntax_op(form, choose_if_optc(IF_AND2, one_branch, reversed, not_case));
                                    set_opt2_pair(sc->code, cdr(test));
                                    set_opt3_pair(sc->code, cddr(test));
                                    return;
                                }
                                if (optimize_op(test) == OP_AND_3)
                                {
                                    pair_set_syntax_op(form, choose_if_optc(IF_AND3, one_branch, reversed, not_case));
                                    set_opt2_pair(sc->code, cdr(test));
                                    set_opt3_pair(sc->code, cddr(test));
                                    set_opt1_pair(sc->code, cdddr(test));
                                    return;
                                }

                                pair_set_syntax_op(form, choose_if_optc(IF_A, one_branch, reversed, not_case));
                                if (not_case)
                                    set_c_call(cdar(sc->code), fx_choose(sc, cdar(sc->code), sc->envir, let_symbol_is_safe));
                                else set_c_call(sc->code, fx_choose(sc, sc->code, sc->envir, let_symbol_is_safe));
                                if ((optimize_op(form) == OP_IF_A_P_P) &&
                                        (is_fxable(sc, cadr(sc->code))))
                                {
                                    pair_set_syntax_op(form, OP_IF_A_A_P);
                                    annotate_arg(sc, cdr(sc->code), sc->envir);
                                    set_opt1_any(form, cdr(sc->code));
                                }
                            }
                            else
                            {
                                pair_set_syntax_op(form, choose_if_optc(IF_P, one_branch, reversed, not_case));
                                set_opt2_any(sc->code, (one_branch) ? cadr(sc->code) : cdr(sc->code));
                                set_opt3_any(sc->code, (not_case) ? cadar(sc->code) : car(sc->code));
                            }
                        }
                        else
                        {
                            pair_set_syntax_op(form, choose_if_optc(IF_P, one_branch, reversed, not_case));
                            set_opt2_any(sc->code, (one_branch) ? cadr(sc->code) : cdr(sc->code));
                            set_opt3_any(sc->code, (not_case) ? cadar(sc->code) : car(sc->code));
                            if (is_syntactic_symbol(car(test)))
                            {
                                pair_set_syntax_op(test, symbol_syntax_op_checked(test));
                                if ((symbol_syntax_op(car(test)) == OP_AND) ||
                                        (symbol_syntax_op(car(test)) == OP_OR))
                                {
                                    opcode_t new_op;
                                    s7_pointer old_code;
                                    old_code = sc->code;
                                    sc->code = test;
                                    if (symbol_syntax_op(car(test)) == OP_AND) check_and(sc); else check_or(sc);
                                    new_op = symbol_syntax_op_checked(test);
                                    sc->code = old_code;
                                    if ((new_op == OP_AND_P) || (new_op == OP_AND_AP) || (new_op == OP_AND_PAIR_P) || (new_op == OP_AND_SAFE_AA) ||
                                            (new_op == OP_AND_N) || (new_op == OP_AND_SAFE_P1) || (new_op == OP_AND_SAFE_P2) || (new_op == OP_AND_SAFE_P3))
                                    {
                                        pair_set_syntax_op(form, choose_if_optc(IF_ANDP, one_branch, reversed, not_case));
                                        set_opt2_any(sc->code, (one_branch) ? cadr(sc->code) : cdr(sc->code));
                                        set_opt3_pair(sc->code, (not_case) ? cdadar(sc->code) : cdar(sc->code));
                                    }
                                    else
                                    {
                                        if ((new_op == OP_OR_P) || (new_op == OP_OR_AP) || (new_op == OP_OR_SAFE_AA))
                                        {
                                            pair_set_syntax_op(form, choose_if_optc(IF_ORP, one_branch, reversed, not_case));
                                            set_opt2_any(sc->code, (one_branch) ? cadr(sc->code) : cdr(sc->code));
                                            set_opt3_pair(sc->code, (not_case) ? cdadar(sc->code) : cdar(sc->code));
                                        }
                                    }}}}
                    }
                    else /* test is symbol or constant, but constant here is nutty */
                    {
                        if (is_safe_symbol(test))
                        {
                            /* if (!not_case) fprintf(stderr, "if_s: %s\n", DISPLAY_80(form)); */
                            pair_set_syntax_op(form, choose_if_optc(IF_S, one_branch, reversed, not_case));
                            if ((optimize_op(form) == OP_IF_S_P_P) &&
                                    (is_fxable(sc, caddr(sc->code))))
                            {
                                pair_set_syntax_op(form, OP_IF_S_P_A);
                                annotate_arg(sc, cddr(sc->code), sc->envir);
                                set_opt2_any(form, cddr(sc->code));
                            }
                        }
                        else /* (if #f #f) */
                        {
                            if ((test == sc->F) && (one_branch) && (cadr(sc->code) == sc->F) && (!not_case))
                                set_safe_optimize_op(form, OP_UNSPECIFIED);
                        }
                    }
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %r12d
movl %edx, %ebp
movq %rsi, %r14
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x8(%rax), %r15
testl %ecx, %ecx
jne 0xf001d
cmpb $0x1, (%r15)
jne 0xf001d
movq 0x8(%r15), %rcx
cmpq 0x1368(%rbx), %rcx
je 0xf0305
xorl %r8d, %r8d
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%r14)
testb %bpl, %bpl
jne 0xf0044
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%r14)
movzbl (%r15), %eax
cmpl $0xa, %eax
je 0xf00fa
cmpl $0x1, %eax
jne 0xf0221
cmpw $0x801, (%r15)          # imm = 0x801
jne 0xf0263
movzwl 0x4(%r15), %r13d
cmpl $0x5, %r13d
je 0xf032f
cmpl $0x3, %r13d
jne 0xf03f2
xorl %eax, %eax
testb %r8b, %r8b
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2bd, %ecx            # imm = 0x2BD
testb %r12b, %r12b
movl $0x2bf, %edx            # imm = 0x2BF
cmovel %ecx, %edx
leal (%rax,%rax,2), %eax
addl $0x2be, %eax            # imm = 0x2BE
testb %bpl, %bpl
cmovel %eax, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rsi
testb %r8b, %r8b
je 0xf04c0
movq 0x8(%rsi), %rax
movq 0x10(%rax), %rsi
movq 0x8(%rbx), %rdx
leaq -0x37f4b(%rip), %rcx    # 0xb8188
movq %rbx, %rdi
callq 0xb69b9
movq (%rbx), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x20(%rcx)
movq (%rbx), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
jmp 0xf04dd
movq 0x8(%rbx), %rcx
movq 0x18(%rcx), %rsi
movq 0x20(%r15), %rdx
movl $0x18, %eax
cmpq %rdx, %rsi
je 0xf015b
jle 0xf011f
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rsi
cmpq %rsi, %rdx
jl 0xf0112
cmpq %rdx, %rsi
je 0xf015b
movl $0x10, %eax
cmpb $0x1c, (%rcx)
jne 0xf015b
movq 0x8(%rcx), %rdx
testq %rdx, %rdx
sete %dil
je 0xf0147
cmpq %r15, 0x8(%rdx)
je 0xf014a
movq 0x18(%rdx), %rdx
jmp 0xf0132
movq %rsi, %rdx
testb %dil, %dil
je 0xf015f
movq 0x10(%rcx), %rcx
cmpb $0x1c, (%rcx)
movq %rdx, %rsi
je 0xf012e
movq (%r15,%rax), %rdx
cmpb $0x20, (%rdx)
jne 0xf0221
xorl %eax, %eax
testb %r8b, %r8b
setne %al
leal (%rax,%rax,2), %ecx
movl $0x2af, %edx            # imm = 0x2AF
addl %edx, %ecx
leal (%rax,%rax,2), %eax
addl $0x2ae, %eax            # imm = 0x2AE
testb %r12b, %r12b
movl $0x2b0, %esi            # imm = 0x2B0
cmovel %eax, %esi
testb %bpl, %bpl
cmovel %ecx, %esi
movw %si, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
cmpl %edx, %esi
jne 0xf0760
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xd5a05
testb %al, %al
je 0xf0760
movw $0x2ac, 0x4(%r14)       # imm = 0x2AC
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
movq 0x10(%rax), %rax
movq 0x10(%rax), %r15
movb (%rdx), %al
decb %al
cmpb $0x2, %al
leaq -0x1a770(%rip), %rax    # 0xd5a7e
leaq -0x3806d(%rip), %rcx    # 0xb8188
cmovbq %rax, %rcx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xb69b9
movq %rax, 0x20(%r15)
orb $0x4, 0x6(%r15)
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%r14)
jmp 0xf0760
movq 0x120(%rbx), %rax
cmpq %rax, %r15
setne %cl
xorb $0x1, %bpl
orb %cl, %bpl
jne 0xf0760
movq (%rbx), %rcx
movq 0x10(%rcx), %rcx
cmpq %rax, 0x8(%rcx)
setne %al
orb %al, %r8b
jne 0xf0760
orb $0x8, 0x1(%r14)
movw $0x18c, 0x4(%r14)       # imm = 0x18C
jmp 0xf0760
xorl %eax, %eax
testb %r8b, %r8b
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2cd, %ecx            # imm = 0x2CD
leal (%rax,%rax,2), %eax
addl $0x2cc, %eax            # imm = 0x2CC
testb %r12b, %r12b
movl $0x2ce, %edx            # imm = 0x2CE
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
addq $0x10, %rax
testb %bpl, %bpl
je 0xf02ab
movq (%rax), %rax
addq $0x8, %rax
movq (%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq %rbx, %rax
testb %r8b, %r8b
je 0xf02c8
movq (%rbx), %rax
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x28(%rcx)
movq (%rbx), %rax
andq $-0x40001, (%rax)       # imm = 0xFFFBFFFF
movq 0x8(%r15), %rax
cmpw $0x20a, (%rax)          # imm = 0x20A
jne 0xf0760
cmpw $0x201, (%r15)          # imm = 0x201
jne 0xf0459
movzwl 0x4(%r15), %ecx
jmp 0xf0465
movq 0x10(%r15), %rcx
cmpb $0x1, (%rcx)
jne 0xf0760
movq 0x10(%rcx), %rdx
cmpq 0x110(%rbx), %rdx
jne 0xf0760
movq 0x8(%rcx), %r15
movb $0x1, %r8b
jmp 0xf0020
movq 0x8(%r15), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movzbl 0x10(%rax), %eax
testq %rax, %rax
je 0xf055b
xorl %ecx, %ecx
testb %r8b, %r8b
setne %cl
leal (%rcx,%rcx,2), %edx
addl $0x2b8, %edx            # imm = 0x2B8
testb %r12b, %r12b
movl $0x2ba, %esi            # imm = 0x2BA
cmovel %edx, %esi
leal (%rcx,%rcx,2), %ecx
addl $0x2b9, %ecx            # imm = 0x2B9
testb %bpl, %bpl
cmovel %ecx, %esi
movw %si, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rcx
movb %al, 0x28(%rcx)
movq (%rbx), %rax
andq $-0x40001, (%rax)       # imm = 0xFFFBFFFF
cmpw $0x2b9, 0x4(%r14)       # imm = 0x2B9
jne 0xf0590
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xd5a05
testb %al, %al
je 0xf0590
movw $0x2ad, 0x4(%r14)       # imm = 0x2AD
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
movq %rbx, %rdi
callq 0xd5a53
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%r14)
jmp 0xf0590
movl %r8d, (%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0xd5a05
testb %al, %al
je 0xf04e7
cmpl $0x28e, %r13d           # imm = 0x28E
movl (%rsp), %edi
je 0xf0707
xorl %eax, %eax
cmpl $0x28f, %r13d           # imm = 0x28F
je 0xf069b
cmpl $0x296, %r13d           # imm = 0x296
jne 0xf076f
testb %dil, %dil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2dc, %ecx            # imm = 0x2DC
leal (%rax,%rax,2), %eax
addl $0x2db, %eax            # imm = 0x2DB
testb %r12b, %r12b
movl $0x2dd, %edx            # imm = 0x2DD
jmp 0xf0728
movq 0x10(%rax), %rcx
movq 0x10(%rcx), %rcx
movzwl 0x10(%rcx), %ecx
movw %cx, 0x4(%r15)
movw $0x201, (%r15)          # imm = 0x201
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
andq $-0x2, %rax
cmpq $0x1ca, %rax            # imm = 0x1CA
jne 0xf0760
movl %r8d, %r13d
movq (%rbx), %rax
movq %rax, (%rsp)
movq %r15, (%rbx)
movq 0x8(%r15), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
cmpq $0x1ca, 0x10(%rax)      # imm = 0x1CA
jne 0xf05ac
movq %rbx, %rdi
callq 0xd3202
jmp 0xf05b4
movq 0x8(%rbx), %rdx
leaq -0x38343(%rip), %rcx    # 0xb8188
movq %rbx, %rdi
callq 0xb69b9
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq (%rbx), %rax
orw $0x4, 0x6(%rax)
jmp 0xf0760
xorl %eax, %eax
movl (%rsp), %esi
testb %sil, %sil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2cd, %ecx            # imm = 0x2CD
leal (%rax,%rax,2), %eax
addl $0x2cc, %eax            # imm = 0x2CC
testb %r12b, %r12b
movl $0x2ce, %edx            # imm = 0x2CE
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
addq $0x10, %rax
testb %bpl, %bpl
je 0xf0532
movq (%rax), %rax
addq $0x8, %rax
movq (%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq %rbx, %rax
testb %sil, %sil
je 0xf054f
movq (%rbx), %rax
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
jmp 0xf074f
xorl %eax, %eax
testb %r8b, %r8b
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2b4, %ecx            # imm = 0x2B4
leal (%rax,%rax,2), %eax
addl $0x2b3, %eax            # imm = 0x2B3
testb %r12b, %r12b
movl $0x2b5, %edx            # imm = 0x2B5
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
andw $-0x5, 0x6(%rax)
movq 0x10(%r15), %rax
movq 0x8(%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
jmp 0xf0760
movq %rbx, %rdi
callq 0xd357e
cmpw $0x201, (%r15)          # imm = 0x201
jne 0xf05c3
movzwl 0x4(%r15), %eax
jmp 0xf05d3
movq 0x8(%r15), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movl %r13d, %esi
movq (%rsp), %rcx
movq %rcx, (%rbx)
addq $-0x285, %rax           # imm = 0xFD7B
cmpq $0x10, %rax
ja 0xf0760
movl $0x8fd, %ecx            # imm = 0x8FD
btq %rax, %rcx
jae 0xf061b
xorl %eax, %eax
testb %sil, %sil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2d2, %ecx            # imm = 0x2D2
leal (%rax,%rax,2), %eax
addl $0x2d1, %eax            # imm = 0x2D1
testb %r12b, %r12b
movl $0x2d3, %edx            # imm = 0x2D3
jmp 0xf064b
movl $0x1a000, %ecx          # imm = 0x1A000
btq %rax, %rcx
jae 0xf0760
xorl %eax, %eax
testb %sil, %sil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2d7, %ecx            # imm = 0x2D7
leal (%rax,%rax,2), %eax
addl $0x2d6, %eax            # imm = 0x2D6
testb %r12b, %r12b
movl $0x2d8, %edx            # imm = 0x2D8
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
addq $0x10, %rax
testb %bpl, %bpl
je 0xf0672
movq (%rax), %rax
addq $0x8, %rax
movq (%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq %rbx, %rax
testb %sil, %sil
je 0xf068f
movq (%rbx), %rax
movq 0x8(%rax), %rax
addq $0x10, %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
jmp 0xf074b
testb %dil, %dil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2c8, %ecx            # imm = 0x2C8
leal (%rax,%rax,2), %eax
addl $0x2c7, %eax            # imm = 0x2C7
testb %r12b, %r12b
movl $0x2c9, %edx            # imm = 0x2C9
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq 0x10(%r15), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq 0x10(%r15), %rax
movq 0x10(%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x28(%rcx)
movq (%rbx), %rax
andq $-0x40001, (%rax)       # imm = 0xFFFBFFFF
movq 0x10(%r15), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x18(%rcx)
jmp 0xf0760
xorl %eax, %eax
testb %dil, %dil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2c3, %ecx            # imm = 0x2C3
leal (%rax,%rax,2), %eax
addl $0x2c2, %eax            # imm = 0x2C2
testb %r12b, %r12b
movl $0x2c4, %edx            # imm = 0x2C4
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq 0x10(%r15), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq 0x10(%r15), %rax
movq 0x10(%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x28(%rcx)
movq (%rbx), %rax
andq $-0x40001, (%rax)       # imm = 0xFFFBFFFF
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %dil, %dil
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2bd, %ecx            # imm = 0x2BD
testb %r12b, %r12b
movl $0x2bf, %edx            # imm = 0x2BF
cmovel %ecx, %edx
leal (%rax,%rax,2), %eax
addl $0x2be, %eax            # imm = 0x2BE
testb %bpl, %bpl
cmovel %eax, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rsi
testb %dil, %dil
je 0xf07e1
movq 0x8(%rsi), %rax
movq 0x10(%rax), %rsi
movq 0x8(%rbx), %rdx
leaq -0x38635(%rip), %rcx    # 0xb8188
movq %rbx, %rdi
callq 0xb69b9
movq (%rbx), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x20(%rcx)
movq (%rbx), %rax
movq 0x8(%rax), %rax
addq $0x10, %rax
jmp 0xf07fe
movq 0x8(%rbx), %rdx
leaq -0x38664(%rip), %rcx    # 0xb8188
movq %rbx, %rdi
callq 0xb69b9
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq %rbx, %rax
movq (%rax), %rax
orw $0x4, 0x6(%rax)
cmpw $0x2be, 0x4(%r14)       # imm = 0x2BE
jne 0xf0760
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xd5a05
testb %al, %al
je 0xf0760
movw $0x2ab, 0x4(%r14)       # imm = 0x2AB
movw $0x201, (%r14)          # imm = 0x201
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
movq 0x10(%rax), %rsi
movq %rbx, %rdi
callq 0xd5a53
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%r14)
jmp 0xf0760