// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: opt_dotimes
static bool opt_dotimes(s7_scheme *sc, s7_pointer code, s7_pointer scc, bool safe_step)
                {
                    s7_int end;
                    if (safe_step)
                        set_safe_stepper(sc->args);
                    else set_safe_stepper(let_dox_slot1(sc->envir));

                    /* I think safe_step means the stepper is completely unproblematic */
                    if (is_null(cdr(code)))
                    {
                        s7_function func;

                        if (no_cell_opt(code)) return(false);
                        func = s7_optimize_nr(sc, code);
                        if (!func)
                        {
                            set_no_cell_opt(code);
                            return(false);
                        }
                        end = denominator(slot_value(sc->args));
                        if (safe_step)
                        {
                            s7_pointer stepper;
                            slot_set_value(sc->args, stepper = make_mutable_integer(sc, integer(slot_value(sc->args))));
                            if ((func == opt_float_any_nr) ||
                                    (func == opt_cell_any_nr))
                            {
                                opt_info *o;
                                o = sc->opts[0];
                                if (func == opt_float_any_nr)
                                {
                                    s7_double (*fd)(opt_info *o);
                                    fd = o->v[0].fd;
                                    if ((fd == opt_d_id_sf) && /* by far the most common case in clm: (outa i ...) etc */
                                            (is_slot(o->v[1].p)) &&
                                            (stepper == slot_value(o->v[1].p)))
                                    {
                                        opt_info *o1;
                                        s7_int end8;
                                        s7_d_id_t f0;
                                        f0 = o->v[3].d_id_f;
                                        o1 = sc->opts[1];
                                        fd = o1->v[0].fd;
                                        end8 = end - 8;
                                        while (integer(stepper) < end8)
                                            LOOP_8(sc->pc = 1; f0(integer(stepper), fd(o1)); integer(stepper)++);
                                        while (integer(stepper) < end)
                                        {
                                            sc->pc = 1;
                                            f0(integer(stepper), fd(o1));
                                            integer(stepper)++;
                                        }
                                    }
                                    else
                                    {
                                        for (; integer(stepper) < end; integer(stepper)++)
                                        {
                                            sc->pc = 0;
                                            fd(o);
                                        }
                                    }
                                }
                                else
                                {
                                    s7_pointer (*fp)(opt_info *o);
                                    fp = o->v[0].fp;
                                    /* an experiment -- altogether 100 times as fast! */
                                    if ((fp == opt_p_pip_ssc) &&                     /* or any opt without f? */
                                            (stepper == slot_value(o->v[2].p)) &&        /* i.e. index by do counter */
                                            (o->v[3].p_pip_f == string_set_unchecked) && /* or any similar setter? */
                                            (end <= string_length(slot_value(o->v[1].p))))
                                    {
                                        char *str;
                                        str = (char *)(string_value(slot_value(o->v[1].p) + integer(stepper)));
                                        local_memset((void *)str, character(o->v[4].p), end - integer(stepper));
                                        integer(stepper) = end;
                                    }
                                    else
                                    {
                                        int32_t first_pc = 0;
                                        if (fp == opt_if_bp)
                                            fp = opt_if_bp_nr;
                                        else
                                        {
                                            if (fp == opt_if_nbp_fs)
                                            {
                                                fp = opt_if_nbp_fs_nr;
                                                first_pc = 2;
                                            }
                                        }
                                        for (; integer(stepper) < end; integer(stepper)++)
                                        {
                                            sc->pc = first_pc;
                                            fp(o);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (func == opt_int_any_nr)
                                {
                                    s7_int (*fi)(opt_info *o);
                                    opt_info *o;
                                    o = sc->opts[0];
                                    fi = o->v[0].fi;
                                    if ((fi == opt_i_7pii_ssc) &&
                                            (stepper == slot_value(o->v[2].p)) &&
                                            (o->v[3].i_7pii_f == int_vector_set_unchecked) &&
                                            (end <= vector_length(slot_value(o->v[1].p))))
                                    {
                                        s7_int val;
                                        s7_int *ex;
                                        ex = int_vector_ints(slot_value(o->v[1].p));
                                        val = o->v[4].i;
                                        if (val == 0)
                                        {
                                            memclr((void *)(ex + integer(stepper)), (end - integer(stepper)) * sizeof(s7_int)); /* memclr64 assumes multiple of 8 */
                                            integer(stepper) = end;
                                        }
                                        else
                                        {
                                            for (; integer(stepper) < end; integer(stepper)++)
                                                ex[integer(stepper)] = val;
                                        }
                                    }
                                    else
                                    {
                                        for (; integer(stepper) < end; integer(stepper)++)
                                        {
                                            sc->pc = 0;
                                            fi(o);
                                        }
                                        /* if fi = opt_i_i_s for example, -> o->v[2].i_i_f(integer(slot_value(o->v[1].p)))
                                         *   and o->v[2].i_i_f can be pulled out leaving a loop of sc->pc = 0; ov2(integer(slot_value(o->v[1].p)));
                                         */
                                    }
                                }
                                else
                                {
                                    for (; integer(stepper) < end; integer(stepper)++)
                                        func(sc, car(code));
                                }
                            }
                            clear_mutable_integer(stepper);
                        }
                        else
                        {
                            s7_int step;
                            s7_pointer step_slot, end_slot;
                            step_slot = let_dox_slot1(sc->envir);
                            end_slot = let_dox_slot2(sc->envir);

                            if (func == opt_cell_any_nr)
                            {
                                opt_info *o;
                                s7_pointer (*fp)(opt_info *o);
                                o = sc->opts[0];
                                fp = o->v[0].fp;

                                if (fp == opt_if_bp_ii_fc)
                                {                      /* can this call opt_if_bp_ii_fc directly and declare it inline? */
                                    opt_info *o1, *o2;
                                    s7_b_ii_t bif;
                                    s7_int i1;
                                    o1 = sc->opts[1];
                                    bif = o1->v[3].b_ii_f;
                                    i1 = o1->v[2].i;
                                    o2 = sc->opts[2];
                                    while (true)
                                    {
                                        sc->pc = 2;
                                        if (bif(o2->v[0].fi(o2), i1))
                                        {
                                            opt_info *o3;
                                            o3 = sc->opts[++sc->pc];
                                            o3->v[0].fp(o3);
                                        }
                                        step = integer(slot_value(step_slot)) + 1;
                                        slot_set_value(step_slot, make_integer(sc, step));
                                        if (step == integer(slot_value(end_slot))) break;
                                    }
                                }
                                else
                                {
                                    if (!opt_do_copy(sc, o, integer(slot_value(step_slot)), integer(slot_value(end_slot))))
                                    {
                                        while (true)
                                        {
                                            sc->pc = 0;
                                            fp(o);
                                            step = integer(slot_value(step_slot)) + 1;
                                            slot_set_value(step_slot, make_integer(sc, step));
                                            if (step == integer(slot_value(end_slot))) break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                while (true)
                                {
                                    func(sc, car(code));
                                    step = integer(slot_value(step_slot)) + 1;
                                    slot_set_value(step_slot, make_integer(sc, step));
                                    if (step == integer(slot_value(end_slot))) break;
                                }
                            }
                        }
                        sc->value = sc->T;
                        sc->code = cdadr(scc);
                        return(true);
                    }

                    if (setjmp(sc->opt_exit) == 0)
                    {
                        s7_pointer p;
                        s7_int body_len;

                        body_len = s7_list_length(sc, code);
                        sc->pc = 0;
                        reset_opts(sc);

                        if (!no_float_opt(code))
                        {
                            for (p = code; is_pair(p); p = cdr(p))
                                if (!float_optimize(sc, p))
                                    break;
                            if (is_pair(p))
                            {
                                pc_fallback(sc, 0);
                                set_no_float_opt(code);
                            }
                            else
                            {
                                int32_t i;
                                end = denominator(slot_value(sc->args));
                                if (safe_step)
                                {
                                    s7_pointer stepper;
                                    slot_set_value(sc->args, stepper = make_mutable_integer(sc, integer(slot_value(sc->args))));
                                    for (; integer(stepper) < end; integer(stepper)++)
                                    {
                                        sc->pc = 0;
                                        for (i = 0; i < body_len; i++)
                                        {
                                            sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                                            sc->pc++;
                                        }
                                    }
                                    clear_mutable_integer(stepper);
                                }
                                else
                                {
                                    s7_pointer step_slot, end_slot;
                                    step_slot = let_dox_slot1(sc->envir);
                                    end_slot = let_dox_slot2(sc->envir);
                                    while (true)
                                    {
                                        s7_int step;
                                        sc->pc = 0;
                                        for (i = 0; i < body_len; i++)
                                        {
                                            sc->opts[sc->pc]->v[0].fd(sc->opts[sc->pc]);
                                            sc->pc++;
                                        }

                                        step = integer(slot_value(step_slot)) + 1;
                                        slot_set_value(step_slot, make_integer(sc, step));
                                        if (step == integer(slot_value(end_slot))) break;
                                    }
                                }
                                sc->value = sc->T;
                                sc->code = cdadr(scc);
                                return(true);
                            }
                        }

                        /* not float opt */
                        for (p = code; is_pair(p); p = cdr(p))
                        {
                            opt_info *start;
                            start = sc->opts[sc->pc];
                            if (!cell_optimize(sc, p))
                                break;
                            if (start->v[0].fp == d_to_p)
                                start->v[0].fp = d_to_p_nr;
                        }

                        if (is_null(p))
                        {
                            int32_t i;
                            end = denominator(slot_value(sc->args));
                            if (safe_step)
                            {
                                s7_pointer stepper;
                                slot_set_value(sc->args, stepper = make_mutable_integer(sc, integer(slot_value(sc->args))));
                                for (; integer(stepper) < end; integer(stepper)++)
                                {
                                    sc->pc = 0;
                                    for (i = 0; i < body_len; i++)
                                    {
                                        opt_info *o;
                                        o = sc->opts[sc->pc];
                                        o->v[0].fp(o);
                                        sc->pc++;
                                    }
                                }
                                clear_mutable_integer(stepper);
                            }
                            else
                            {
                                s7_pointer step_slot, end_slot;
                                step_slot = let_dox_slot1(sc->envir);
                                end_slot = let_dox_slot2(sc->envir);
                                while (true)
                                {
                                    s7_int step;
                                    sc->pc = 0;
                                    for (i = 0; i < body_len; i++)
                                    {
                                        opt_info *o;
                                        o = sc->opts[sc->pc];
                                        o->v[0].fp(o);
                                        sc->pc++;
                                    }

                                    step = integer(slot_value(step_slot)) + 1;
                                    slot_set_value(step_slot, make_integer(sc, step));
                                    if (step == integer(slot_value(end_slot))) break;
                                }
                            }
                            sc->value = sc->T;
                            sc->code = cdadr(scc);
                            return(true);
                        }
                    }
                    /* (((i 0 (+ i 1))) ((= i 10) 'gad) (set! ctr (+ ctr 1)) (if (= i 1) (exit arg)))
                     * (((k j (+ k 1))) ((= k len2) obj) (set! (obj n) (seq2 k)) (set! n (+ n 1)))
                     */
                    return(false);
                }

// Assembly:
subq $0x2c8, %rsp            # imm = 0x2C8
movb %cl, %al
movq %rdi, 0x2b8(%rsp)
movq %rsi, 0x2b0(%rsp)
movq %rdx, 0x2a8(%rsp)
andb $0x1, %al
movb %al, 0x2a7(%rsp)
testb $0x1, 0x2a7(%rsp)
je 0x16f07f
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
orq $0x8000000, %rcx        # imm = 0x8000000
movq %rcx, (%rax)
jmp 0x16f09c
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq (%rax), %rcx
orq $0x8000000, %rcx        # imm = 0x8000000
movq %rcx, (%rax)
movq 0x2b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x1700ae
movq 0x2b0(%rsp), %rax
movq (%rax), %rax
andq $0x4000000, %rax        # imm = 0x4000000
cmpq $0x0, %rax
je 0x16f0e1
movb $0x0, 0x2c7(%rsp)
jmp 0x170997
movq 0x2b8(%rsp), %rdi
movq 0x2b0(%rsp), %rsi
callq 0x47ae0
movq %rax, 0x290(%rsp)
cmpq $0x0, 0x290(%rsp)
jne 0x16f12b
movq 0x2b0(%rsp), %rax
movq (%rax), %rcx
orq $0x4000000, %rcx        # imm = 0x4000000
movq %rcx, (%rax)
movb $0x0, 0x2c7(%rsp)
jmp 0x170997
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x298(%rsp)
testb $0x1, 0x2a7(%rsp)
je 0x16fac0
movq 0x2b8(%rsp), %rdi
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xdd130
movq %rax, %rcx
movq %rcx, 0x288(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rax)
leaq -0x57678(%rip), %rax    # 0x117b20
cmpq %rax, 0x290(%rsp)
je 0x16f1b7
leaq -0x574b9(%rip), %rax    # 0x117cf0
cmpq %rax, 0x290(%rsp)
jne 0x16f878
movq 0x2b8(%rsp), %rax
movq 0x2260(%rax), %rax
movq %rax, 0x280(%rsp)
leaq -0x576b5(%rip), %rax    # 0x117b20
cmpq %rax, 0x290(%rsp)
jne 0x16f6cb
movq 0x280(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x278(%rsp)
leaq -0x58c5d(%rip), %rax    # 0x1165a0
cmpq %rax, 0x278(%rsp)
jne 0x16f672
movq 0x280(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jne 0x16f672
movq 0x288(%rsp), %rax
movq 0x280(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x16f672
movq 0x280(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x260(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x2268(%rax), %rax
movq %rax, 0x270(%rsp)
movq 0x270(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x278(%rsp)
movq 0x298(%rsp), %rax
subq $0x8, %rax
movq %rax, 0x268(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x268(%rsp), %rax
jge 0x16f5f4
jmp 0x16f2af
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x80(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x80(%rsp), %rdi
movq 0x88(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x90(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x90(%rsp), %rdi
movq 0x98(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xa0(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0xa0(%rsp), %rdi
movq 0xa8(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xb0(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16f293
jmp 0x16f5f6
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x16f670
movq 0x2b8(%rsp), %rax
movl $0x1, 0x2258(%rax)
movq 0x260(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x278(%rsp), %rax
movq 0x270(%rsp), %rdi
callq *%rax
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rax
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16f5f6
jmp 0x16f6c6
jmp 0x16f674
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x16f6c4
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x278(%rsp), %rax
movq 0x280(%rsp), %rdi
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16f674
jmp 0x16f6c6
jmp 0x16f873
movq 0x280(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x258(%rsp)
leaq -0x78c55(%rip), %rax    # 0xf6a90
cmpq %rax, 0x258(%rsp)
jne 0x16f7c0
movq 0x288(%rsp), %rax
movq 0x280(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x16f7c0
movq 0x280(%rsp), %rax
leaq -0x78ea0(%rip), %rcx    # 0xf6880
cmpq %rcx, 0x18(%rax)
jne 0x16f7c0
movq 0x298(%rsp), %rax
movq 0x280(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jg 0x16f7c0
movq 0x280(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x288(%rsp), %rcx
imulq $0x30, 0x8(%rcx), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq %rax, 0x250(%rsp)
movq 0x250(%rsp), %rdi
movq 0x280(%rsp), %rax
movq 0x20(%rax), %rax
movb 0x8(%rax), %al
movq 0x298(%rsp), %rdx
movq 0x288(%rsp), %rcx
subq 0x8(%rcx), %rdx
movzbl %al, %esi
callq 0xc85e0
movq 0x298(%rsp), %rcx
movq 0x288(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x16f871
movl $0x0, 0x24c(%rsp)
leaq -0x729f2(%rip), %rax    # 0xfcde0
cmpq %rax, 0x258(%rsp)
jne 0x16f7ed
leaq -0x6eeb3(%rip), %rax    # 0x100930
movq %rax, 0x258(%rsp)
jmp 0x16f81a
leaq -0x72fc4(%rip), %rax    # 0xfc830
cmpq %rax, 0x258(%rsp)
jne 0x16f818
leaq 0x234b(%rip), %rax      # 0x171b50
movq %rax, 0x258(%rsp)
movl $0x2, 0x24c(%rsp)
jmp 0x16f81a
jmp 0x16f81c
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x16f86f
movl 0x24c(%rsp), %ecx
movq 0x2b8(%rsp), %rax
movl %ecx, 0x2258(%rax)
movq 0x258(%rsp), %rax
movq 0x280(%rsp), %rdi
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16f81c
jmp 0x16f871
jmp 0x16f873
jmp 0x16faa6
leaq -0x57e9f(%rip), %rax    # 0x1179e0
cmpq %rax, 0x290(%rsp)
jne 0x16fa56
movq 0x2b8(%rsp), %rax
movq 0x2260(%rax), %rax
movq %rax, 0x238(%rsp)
movq 0x238(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x240(%rsp)
leaq -0x8664e(%rip), %rax    # 0xe9270
cmpq %rax, 0x240(%rsp)
jne 0x16fa00
movq 0x288(%rsp), %rax
movq 0x238(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x16fa00
movq 0x238(%rsp), %rax
leaq -0x86709(%rip), %rcx    # 0xe91f0
cmpq %rcx, 0x18(%rax)
jne 0x16fa00
movq 0x298(%rsp), %rax
movq 0x238(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jg 0x16fa00
movq 0x238(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x228(%rsp)
movq 0x238(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x230(%rsp)
cmpq $0x0, 0x230(%rsp)
jne 0x16f9ae
movq 0x228(%rsp), %rdi
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq 0x298(%rsp), %rsi
movq 0x288(%rsp), %rax
subq 0x8(%rax), %rsi
shlq $0x3, %rsi
callq 0xd2340
movq 0x298(%rsp), %rcx
movq 0x288(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x16f9fe
jmp 0x16f9b0
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x16f9fc
movq 0x230(%rsp), %rdx
movq 0x228(%rsp), %rax
movq 0x288(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16f9b0
jmp 0x16f9fe
jmp 0x16fa54
jmp 0x16fa02
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x16fa52
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x240(%rsp), %rax
movq 0x238(%rsp), %rdi
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16fa02
jmp 0x16fa54
jmp 0x16faa4
jmp 0x16fa58
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x16faa2
movq 0x290(%rsp), %rax
movq 0x2b8(%rsp), %rdi
movq 0x2b0(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq 0x288(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x16fa58
jmp 0x16faa4
jmp 0x16faa6
movq 0x288(%rsp), %rax
movq (%rax), %rcx
andq $-0x4000001, %rcx       # imm = 0xFBFFFFFF
movq %rcx, (%rax)
jmp 0x170067
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, 0x218(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, 0x210(%rsp)
leaq -0x57e07(%rip), %rax    # 0x117cf0
cmpq %rax, 0x290(%rsp)
jne 0x16ff0c
movq 0x2b8(%rsp), %rax
movq 0x2260(%rax), %rax
movq %rax, 0x208(%rsp)
movq 0x208(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x200(%rsp)
leaq -0x72ac6(%rip), %rax    # 0xfd070
cmpq %rax, 0x200(%rsp)
jne 0x16fd69
movq 0x2b8(%rsp), %rax
movq 0x2268(%rax), %rax
movq %rax, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x1e8(%rsp)
movq 0x1f8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1e0(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x2270(%rax), %rax
movq %rax, 0x1f0(%rsp)
movq 0x2b8(%rsp), %rax
movl $0x2, 0x2258(%rax)
movq 0x1e8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x1f0(%rsp), %rax
movq (%rax), %rax
movq 0x1f0(%rsp), %rdi
callq *%rax
movq %rax, %rdi
movq 0x28(%rsp), %rax
movq 0x1e0(%rsp), %rsi
callq *%rax
testb $0x1, %al
jne 0x16fbe6
jmp 0x16fc2d
movq 0x2b8(%rsp), %rax
movq 0x2b8(%rsp), %rdx
movl 0x2258(%rdx), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rdx)
movslq %ecx, %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x1d8(%rsp)
movq 0x1d8(%rsp), %rax
movq (%rax), %rax
movq 0x1d8(%rsp), %rdi
callq *%rax
movq 0x218(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x220(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movq 0x1d0(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x16fc8a
movq 0x1d0(%rsp), %rcx
leaq 0xa6804(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
jmp 0x16fd22
jmp 0x16fc8c
movq 0x2b8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x16fcb9
movq 0x2b8(%rsp), %rdi
callq 0xc670
movq 0x2b8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x1c0(%rsp)
movq 0x1c0(%rsp), %rax
movq $0xb, (%rax)
movq 0x1d0(%rsp), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1c0(%rsp), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rcx
movq 0x218(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x220(%rsp), %rax
movq 0x210(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x16fd5f
jmp 0x16fd64
jmp 0x16fb9a
jmp 0x16ff07
movq 0x2b8(%rsp), %rdi
movq 0x208(%rsp), %rsi
movq 0x218(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
movq 0x210(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
callq 0x171c20
testb $0x1, %al
jne 0x16ff05
jmp 0x16fda8
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x200(%rsp), %rax
movq 0x208(%rsp), %rdi
callq *%rax
movq 0x218(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x220(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x16fe29
movq 0x1b0(%rsp), %rcx
leaq 0xa6665(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
jmp 0x16fec1
jmp 0x16fe2b
movq 0x2b8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x16fe58
movq 0x2b8(%rsp), %rdi
callq 0xc670
movq 0x2b8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x1a0(%rsp)
movq 0x1a0(%rsp), %rax
movq $0xb, (%rax)
movq 0x1b0(%rsp), %rcx
movq 0x1a0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1a0(%rsp), %rax
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movq 0x1a8(%rsp), %rcx
movq 0x218(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x220(%rsp), %rax
movq 0x210(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x16fefe
jmp 0x16ff03
jmp 0x16fda8
jmp 0x16ff05
jmp 0x16ff07
jmp 0x170065
jmp 0x16ff0e
movq 0x290(%rsp), %rax
movq 0x2b8(%rsp), %rdi
movq 0x2b0(%rsp), %rcx
movq 0x8(%rcx), %rsi
callq *%rax
movq 0x218(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x220(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x190(%rsp)
movq 0x190(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x16ff89
movq 0x190(%rsp), %rcx
leaq 0xa6505(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
jmp 0x170021
jmp 0x16ff8b
movq 0x2b8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x16ffb8
movq 0x2b8(%rsp), %rdi
callq 0xc670
movq 0x2b8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rax
movq $0xb, (%rax)
movq 0x190(%rsp), %rcx
movq 0x180(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x180(%rsp), %rax
movq %rax, 0x178(%rsp)
movq 0x178(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x188(%rsp)
movq 0x188(%rsp), %rcx
movq 0x218(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x220(%rsp), %rax
movq 0x210(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x17005e
jmp 0x170063
jmp 0x16ff0e
jmp 0x170065
jmp 0x170067
movq 0x2b8(%rsp), %rax
movq 0x118(%rax), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x2a8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x2c7(%rsp)
jmp 0x170997
movq 0x2b8(%rsp), %rdi
addq $0x2190, %rdi           # imm = 0x2190
callq 0x9350
cmpl $0x0, %eax
jne 0x17098f
movq 0x2b8(%rsp), %rdi
movq 0x2b0(%rsp), %rsi
callq 0x31900
movq %rax, 0x168(%rsp)
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movq 0x2b0(%rsp), %rax
movq (%rax), %rax
andq $0x800000, %rax         # imm = 0x800000
cmpq $0x0, %rax
jne 0x170540
movq 0x2b0(%rsp), %rax
movq %rax, 0x170(%rsp)
movq 0x170(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x170168
movq 0x2b8(%rsp), %rdi
movq 0x170(%rsp), %rsi
callq 0x473f0
testb $0x1, %al
jne 0x170150
jmp 0x170168
jmp 0x170152
movq 0x170(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x170(%rsp)
jmp 0x170125
movq 0x170(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x1701a1
movq 0x2b8(%rsp), %rdi
xorl %esi, %esi
callq 0xe59a0
movq 0x2b0(%rsp), %rax
movq (%rax), %rcx
orq $0x800000, %rcx         # imm = 0x800000
movq %rcx, (%rax)
jmp 0x17053e
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x298(%rsp)
testb $0x1, 0x2a7(%rsp)
je 0x1702f2
movq 0x2b8(%rsp), %rdi
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xdd130
movq %rax, %rcx
movq %rcx, 0x158(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x158(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x1702d8
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movl $0x0, 0x164(%rsp)
movslq 0x164(%rsp), %rax
cmpq 0x168(%rsp), %rax
jge 0x1702bd
movq 0x2b8(%rsp), %rax
movq 0x2b8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x2b8(%rsp), %rcx
movq 0x2b8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x2b8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movl 0x164(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x164(%rsp)
jmp 0x17023e
jmp 0x1702bf
movq 0x158(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x170207
movq 0x158(%rsp), %rax
movq (%rax), %rcx
andq $-0x4000001, %rcx       # imm = 0xFBFFFFFF
movq %rcx, (%rax)
jmp 0x1704f7
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, 0x150(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, 0x148(%rsp)
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movl $0x0, 0x164(%rsp)
movslq 0x164(%rsp), %rax
cmpq 0x168(%rsp), %rax
jge 0x1703be
movq 0x2b8(%rsp), %rax
movq 0x2b8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq (%rax), %rax
movq 0x2b8(%rsp), %rcx
movq 0x2b8(%rsp), %rdx
movslq 0x2258(%rdx), %rdx
movq 0x2260(%rcx,%rdx,8), %rdi
callq *%rax
movq 0x2b8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movl 0x164(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x164(%rsp)
jmp 0x17033f
movq 0x150(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0x140(%rsp)
movq 0x140(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x138(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x17041b
movq 0x138(%rsp), %rcx
leaq 0xa6073(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
jmp 0x1704b3
jmp 0x17041d
movq 0x2b8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x17044a
movq 0x2b8(%rsp), %rdi
callq 0xc670
movq 0x2b8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x128(%rsp)
movq 0x128(%rsp), %rax
movq $0xb, (%rax)
movq 0x138(%rsp), %rcx
movq 0x128(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x128(%rsp), %rax
movq %rax, 0x120(%rsp)
movq 0x120(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x130(%rsp), %rcx
movq 0x150(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x140(%rsp), %rax
movq 0x148(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1704f0
jmp 0x1704f5
jmp 0x170322
jmp 0x1704f7
movq 0x2b8(%rsp), %rax
movq 0x118(%rax), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x2a8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x2c7(%rsp)
jmp 0x170997
jmp 0x170540
movq 0x2b0(%rsp), %rax
movq %rax, 0x170(%rsp)
movq 0x170(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x1705e7
movq 0x2b8(%rsp), %rax
movq 0x2b8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x118(%rsp)
movq 0x2b8(%rsp), %rdi
movq 0x170(%rsp), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0x1705a6
jmp 0x1705e7
movq 0x118(%rsp), %rax
leaq -0x84275(%rip), %rcx    # 0xec340
cmpq %rcx, (%rax)
jne 0x1705cc
movq 0x118(%rsp), %rax
leaq -0x78439(%rip), %rcx    # 0xf8190
movq %rcx, (%rax)
jmp 0x1705ce
movq 0x170(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x170(%rsp)
jmp 0x170550
movq 0x170(%rsp), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0x17098d
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x298(%rsp)
testb $0x1, 0x2a7(%rsp)
je 0x17074e
movq 0x2b8(%rsp), %rdi
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xdd130
movq %rax, %rcx
movq %rcx, 0x108(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x108(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x298(%rsp), %rax
jge 0x170734
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movl $0x0, 0x114(%rsp)
movslq 0x114(%rsp), %rax
cmpq 0x168(%rsp), %rax
jge 0x170719
movq 0x2b8(%rsp), %rax
movq 0x2b8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rax
movq (%rax), %rax
movq 0x100(%rsp), %rdi
callq *%rax
movq 0x2b8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movl 0x114(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x114(%rsp)
jmp 0x1706a1
jmp 0x17071b
movq 0x108(%rsp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0x17066a
movq 0x108(%rsp), %rax
movq (%rax), %rcx
andq $-0x4000001, %rcx       # imm = 0xFBFFFFFF
movq %rcx, (%rax)
jmp 0x170949
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, 0xf8(%rsp)
movq 0x2b8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, 0xf0(%rsp)
movq 0x2b8(%rsp), %rax
movl $0x0, 0x2258(%rax)
movl $0x0, 0x114(%rsp)
movslq 0x114(%rsp), %rax
cmpq 0x168(%rsp), %rax
jge 0x170813
movq 0x2b8(%rsp), %rax
movq 0x2b8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rax
movq (%rax), %rax
movq 0xe0(%rsp), %rdi
callq *%rax
movq 0x2b8(%rsp), %rax
movl 0x2258(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2258(%rax)
movl 0x114(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x114(%rsp)
jmp 0x17079b
movq 0xf8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
addq $0x1, %rax
movq %rax, 0xe8(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0xd8(%rsp), %rax
andq $-0x800, %rax           # imm = 0xF800
cmpq $0x0, %rax
jne 0x17086f
movq 0xd8(%rsp), %rcx
leaq 0xa5c1e(%rip), %rax     # 0x216480
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
jmp 0x170906
jmp 0x170871
movq 0x2b8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x2b8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0x17089e
movq 0x2b8(%rsp), %rdi
callq 0xc670
movq 0x2b8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rax
movq $0xb, (%rax)
movq 0xd8(%rsp), %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xc8(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0xd0(%rsp), %rcx
movq 0xf8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0xe8(%rsp), %rax
movq 0xf0(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0x170942
jmp 0x170947
jmp 0x17077e
jmp 0x170949
movq 0x2b8(%rsp), %rax
movq 0x118(%rax), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x2a8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x2c7(%rsp)
jmp 0x170997
jmp 0x17098f
movb $0x0, 0x2c7(%rsp)
movb 0x2c7(%rsp), %al
andb $0x1, %al
addq $0x2c8, %rsp            # imm = 0x2C8
retq
nopl (%rax,%rax)