// File: /workspace/github_c_makefile_star2_O2/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 0xb7c49
cmpb $0x1, (%r15)
jne 0xb7c49
movq 0x8(%r15), %rcx
cmpq 0x1368(%rbx), %rcx
je 0xb7ebc
xorl %r13d, %r13d
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%r14)
testb %bpl, %bpl
jne 0xb7c70
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 0xb7d2d
cmpl $0x1, %eax
jne 0xb7de4
cmpw $0x801, (%r15)          # imm = 0x801
jne 0xb7e23
movl %r13d, (%rsp)
movzwl 0x4(%r15), %r13d
cmpl $0x5, %r13d
je 0xb7ee6
cmpl $0x3, %r13d
jne 0xb7faa
xorl %eax, %eax
movl (%rsp), %edi
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 0xb8072
movq 0x8(%rsi), %rax
movq 0x10(%rax), %rsi
movq 0x8(%rbx), %rdx
leaq -0x2a56b(%rip), %rcx    # 0x8d79b
movq %rbx, %rdi
callq 0x8c0ba
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 0xb808f
movq %rbx, %rdi
movq %r15, %rsi
callq 0xb00b
cmpb $0x20, (%rax)
jne 0xb7de4
xorl %eax, %eax
testb %r13b, %r13b
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2af, %ecx            # imm = 0x2AF
leal (%rax,%rax,2), %eax
addl $0x2ae, %eax            # imm = 0x2AE
testb %r12b, %r12b
movl $0x2b0, %edx            # imm = 0x2B0
cmovel %eax, %edx
testb %bpl, %bpl
cmovel %ecx, %edx
movw %dx, 0x4(%r14)
shlq $0x20, %rdx
movw $0x201, (%r14)          # imm = 0x201
movabsq $0x2af00000000, %rax    # imm = 0x2AF00000000
cmpq %rax, %rdx
jne 0xb8248
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xa2689
testb %al, %al
je 0xb8248
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), %rsi
movq %rbx, %rdi
callq 0xa26b2
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%r14)
jmp 0xb8248
cmpq 0x120(%rbx), %r15
setne %al
xorb $0x1, %bpl
orb %al, %bpl
jne 0xb8248
movq (%rbx), %rax
movq 0x10(%rax), %rax
cmpq %r15, 0x8(%rax)
setne %al
orb %al, %r13b
jne 0xb8248
orb $0x8, 0x1(%r14)
movw $0x18c, 0x4(%r14)       # imm = 0x18C
jmp 0xb8248
xorl %eax, %eax
testb %r13b, %r13b
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
leaq 0x10(%rax), %rcx
testb %bpl, %bpl
je 0xb7e6b
movq (%rcx), %rcx
addq $0x8, %rcx
movq (%rcx), %rcx
movq %rcx, 0x20(%rax)
movq (%rbx), %rax
movq %rax, %rcx
testb %r13b, %r13b
je 0xb7e85
movq 0x8(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq %rcx, 0x28(%rax)
movq (%rbx), %rax
andq $-0x40001, (%rax)       # imm = 0xFFFBFFFF
movq 0x8(%r15), %rax
cmpw $0x20a, (%rax)          # imm = 0x20A
jne 0xb8248
cmpw $0x201, (%r15)          # imm = 0x201
jne 0xb800e
movzwl 0x4(%r15), %ecx
jmp 0xb801a
movq 0x10(%r15), %rcx
cmpb $0x1, (%rcx)
jne 0xb8248
movq 0x10(%rcx), %rdx
cmpq 0x110(%rbx), %rdx
jne 0xb8248
movq 0x8(%rcx), %r15
movb $0x1, %r13b
jmp 0xb7c4c
movq 0x8(%r15), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movzbl 0x10(%rax), %eax
testq %rax, %rax
je 0xb8107
xorl %ecx, %ecx
cmpb $0x0, (%rsp)
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 0xb813d
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xa2689
testb %al, %al
je 0xb813d
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 0xa26b2
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x20(%r14)
jmp 0xb813d
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa2689
testb %al, %al
je 0xb8099
xorl %eax, %eax
cmpl $0x28e, %r13d           # imm = 0x28E
je 0xb82c0
cmpl $0x28f, %r13d           # imm = 0x28F
je 0xb8257
cmpl $0x296, %r13d           # imm = 0x296
jne 0xb830f
cmpb $0x0, (%rsp)
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2db, %ecx            # imm = 0x2DB
testb %r12b, %r12b
movl $0x2dd, %edx            # imm = 0x2DD
cmovel %ecx, %edx
leal (%rax,%rax,2), %eax
addl $0x2dc, %eax            # imm = 0x2DC
jmp 0xb82e3
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 0xb8248
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 0xb8159
movq %rbx, %rdi
callq 0xa0506
jmp 0xb8161
movq 0x8(%rbx), %rdx
leaq -0x2a8e2(%rip), %rcx    # 0x8d79b
movq %rbx, %rdi
callq 0x8c0ba
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq (%rbx), %rax
orw $0x4, 0x6(%rax)
jmp 0xb8248
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
leaq 0x10(%rax), %rcx
testb %bpl, %bpl
je 0xb80e4
movq (%rcx), %rcx
addq $0x8, %rcx
movq (%rcx), %rcx
movq %rcx, 0x20(%rax)
movq (%rbx), %rax
movq %rax, %rcx
testb %sil, %sil
je 0xb80fe
movq 0x8(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
jmp 0xb823a
xorl %eax, %eax
cmpb $0x0, (%rsp)
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 0xb8248
movq %rbx, %rdi
callq 0xa07f3
cmpw $0x201, (%r15)          # imm = 0x201
jne 0xb8170
movzwl 0x4(%r15), %eax
jmp 0xb8180
movq 0x8(%r15), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq (%rsp), %rcx
movq %rcx, (%rbx)
addq $-0x285, %rax           # imm = 0xFD7B
cmpq $0x10, %rax
ja 0xb8248
movl $0x8fd, %ecx            # imm = 0x8FD
btq %rax, %rcx
jae 0xb81c5
xorl %eax, %eax
testb %r13b, %r13b
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 0xb81f1
movl $0x1a000, %ecx          # imm = 0x1A000
btq %rax, %rcx
jae 0xb8248
xorl %eax, %eax
testb %r13b, %r13b
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
leaq 0x10(%rax), %rcx
testb %bpl, %bpl
je 0xb8218
movq (%rcx), %rcx
addq $0x8, %rcx
movq (%rcx), %rcx
movq %rcx, 0x20(%rax)
movq (%rbx), %rax
movq %rax, %rcx
testb %r13b, %r13b
je 0xb8232
movq 0x8(%rax), %rcx
movq 0x10(%rcx), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x28(%rax)
movq (%rbx), %rax
andq $-0x40001, (%rax)       # imm = 0xFFFBFFFF
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x0, (%rsp)
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(%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 0xb8248
cmpb $0x0, (%rsp)
setne %al
leal (%rax,%rax,2), %ecx
addl $0x2c2, %ecx            # imm = 0x2C2
testb %r12b, %r12b
movl $0x2c4, %edx            # imm = 0x2C4
cmovel %ecx, %edx
leal (%rax,%rax,2), %eax
addl $0x2c3, %eax            # imm = 0x2C3
testb %bpl, %bpl
cmovel %eax, %edx
movw %dx, 0x4(%r14)
movw $0x201, (%r14)          # imm = 0x201
movq 0x10(%r15), %rax
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq 0x10(%rax), %rax
movq (%rbx), %rcx
movq %rax, 0x28(%rcx)
jmp 0xb823e
movl (%rsp), %edi
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 0xb8384
movq 0x8(%rsi), %rax
movq 0x10(%rax), %rsi
movq 0x8(%rbx), %rdx
leaq -0x2abc5(%rip), %rcx    # 0x8d79b
movq %rbx, %rdi
callq 0x8c0ba
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 0xb83a1
movq 0x8(%rbx), %rdx
leaq -0x2abf4(%rip), %rcx    # 0x8d79b
movq %rbx, %rdi
callq 0x8c0ba
movq (%rbx), %rcx
movq %rax, 0x20(%rcx)
movq %rbx, %rax
movq (%rax), %rax
orw $0x4, 0x6(%rax)
cmpw $0x2be, 0x4(%r14)       # imm = 0x2BE
jne 0xb8248
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0xa2689
testb %al, %al
je 0xb8248
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 0xa26b2
movq (%rbx), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%r14)
jmp 0xb8248