// File: /workspace/github_c_makefile_star2_O0/BernardTatin[P]s7sh/s7.c
// Function: opt_cell_do
static bool opt_cell_do(s7_scheme *sc, s7_pointer car_x, int32_t len)
                {
                    opt_info *opc;
                    s7_pointer p, end, frame = NULL, old_e, slot, stop, ind, ind_step, var;
                    int32_t i, var_len, body_len, body_index, step_len, rtn_len, step_pc;
                    bool has_set = false;

                    /* fprintf(stderr, "%s: %s\n", __func__, DISPLAY_80(car_x)); */

                    if (len < 3)
                        return(return_false(sc, car_x, __func__, __LINE__));

                    if (!s7_is_proper_list(sc, cadr(car_x)))
                        return(return_false(sc, car_x, __func__, __LINE__));
                    var_len = safe_list_length(cadr(car_x));
                    step_len = var_len;
                    body_len = len - 3;
                    end = caddr(car_x);
                    if (!is_pair(end))
                        return(return_false(sc, car_x, __func__, __LINE__));

                    old_e = sc->envir;
                    opc = alloc_opo(sc, car_x);

                    new_frame(sc, sc->envir, frame);
                    push_stack(sc, OP_GC_PROTECT, old_e, frame);

                    /* the vars have to be added to the frame before evaluating the inits
                     *    else symbol_id can be > let_id (see "(test (do ((i (do ((i (do ((i 0 (+ i 1)))...")
                     */
                    clear_symbol_list(sc);
                    for (p = cadr(car_x); is_pair(p); p = cdr(p))
                    {
                        s7_pointer var, sym;
                        var = car(p);
                        if ((is_pair(var)) &&
                                (is_symbol(car(var))) &&
                                (is_pair(cdr(var))))
                        {
                            sym = car(var);

                            if ((is_constant_symbol(sc, sym)) ||
                                    (symbol_has_setter(sym)))
                                return(return_false(sc, car_x, __func__, __LINE__));
                            if (symbol_is_in_list(sc, sym))
                                eval_error(sc, "duplicate identifier in do: ~A", 30, var);
                            add_symbol_to_list(sc, sym);
                            add_slot(frame, sym, sc->undefined);
                        }
                        else return(return_false(sc, car_x, __func__, __LINE__));
                    }

                    if (tis_slot(let_slots(frame)))
                        let_set_slots(frame, reverse_slots(sc, let_slots(frame)));

                    for (p = cadr(car_x), slot = let_slots(frame); is_pair(p); p = cdr(p), slot = next_slot(slot))
                    {
                        s7_pointer var;
                        var = car(p);
                        if (!cell_optimize(sc, cdr(var))) /* opt init in outer env */
                            return(return_false(sc, car_x, __func__, __LINE__));
                        if (is_pair(cddr(var)))
                        {
                            set_has_stepper(slot);
                            if (!is_null(cdddr(var)))
                                return(return_false(sc, car_x, __func__, __LINE__));
                        }
                        else
                        {
                            step_len--;
                            if (!is_null(cddr(var)))
                                return(return_false(sc, car_x, __func__, __LINE__));
                        }
                        if (is_symbol(cadr(var)))
                            slot_set_value(slot, slot_value(symbol_to_slot(sc, cadr(var))));
                        else
                        {
                            if (!is_pair(cadr(var)))
                                slot_set_value(slot, cadr(var));
                            else
                            {
                                if (is_proper_quote(sc, cadr(var)))
                                    slot_set_value(slot, cadadr(var));
                                else
                                {
                                    s7_pointer sf;
                                    sf = lookup_checked(sc, caadr(var));
                                    if (is_c_function(sf))
                                    {
                                        s7_pointer sig;
                                        sig = c_function_signature(sf);
                                        if ((is_pair(sig)) &&
                                                ((car(sig) == sc->is_integer_symbol) ||
                                                 ((is_pair(car(sig))) &&
                                                  (direct_memq(sc->is_integer_symbol, car(sig))))))
                                            slot_set_value(slot, small_int(0));
                                    }}}}}
                    sc->envir = frame;
                    for (p = cadr(car_x); is_pair(p); p = cdr(p))
                    {
                        s7_pointer var;
                        var = car(p);
                        if (is_pair(cddr(var)))
                        {
                            s7_pointer init_type;
                            init_type = opt_arg_type(sc, cdr(var));
                            if (((init_type == sc->is_integer_symbol) ||
                                        (init_type == sc->is_float_symbol)) &&
                                    (opt_arg_type(sc, cddr(var)) != init_type))
                            {
#if OPT_PRINT
                                fprintf(stderr, "init_type: %s, but opt_arg: %s\n", DISPLAY(init_type), DISPLAY(opt_arg_type(sc, cddr(var))));
#endif
                                unstack(sc); /* not pop_stack! */
                                sc->envir = old_e;
                                return(return_false(sc, car_x, __func__, __LINE__));
                            }
                        }
                    }

                    if (!bool_optimize_nw(sc, end))
                    {
                        unstack(sc); /* not pop_stack! */
                        sc->envir = old_e;
                        return(return_false(sc, car_x, __func__, __LINE__));
                    }

                    stop = car(end);
                    if ((is_proper_list_3(sc, stop)) &&
                            ((car(stop) == sc->num_eq_symbol) || (car(stop) == sc->geq_symbol) || (car(stop) == sc->gt_symbol)) &&
                            (is_symbol(cadr(stop))) &&
                            ((is_opt_int(caddr(stop))) || (is_symbol(caddr(stop)))))
                    {
                        s7_pointer stop_slot;
                        if (is_symbol(caddr(stop)))
                            stop_slot = opt_integer_symbol(sc, caddr(stop));
                        else stop_slot = sc->nil;
                        if (stop_slot)
                        {
                            s7_int lim;
                            bool set_stop = false;
                            s7_pointer slot;

                            if (is_slot(stop_slot))
                                lim = integer(slot_value(stop_slot));
                            else lim = integer(caddr(stop));
                            if (car(stop) == sc->gt_symbol) lim++;

                            for (p = cadr(car_x), slot = let_slots(frame); is_pair(p); p = cdr(p), slot = next_slot(slot))
                            {
                                /* this could be put off until it is needed (ref/set), but this code is not called much
                                 *    another choice: go from init downto 0: init is lim
                                 */
                                if (slot_symbol(slot) == cadr(stop))
                                    set_stop = true; /* don't overrule this decision below */
                                if (has_stepper(slot))
                                {
                                    s7_pointer var, step;
                                    var = car(p);
                                    step = caddr(var);
                                    if ((is_opt_int(slot_value(slot))) &&
                                            (is_pair(step)) &&
                                            (is_pair(cdr(step))) &&
                                            (car(var) == cadr(stop)) &&
                                            (car(var) == cadr(step)) &&
                                            ((car(stop) != sc->num_eq_symbol) || /* else > protects at least the top */
                                             ((caddr(step) == small_int(1)) && (car(step) == sc->add_symbol))))
                                    {
                                        set_step_end(slot);
                                        denominator(slot_value(slot)) = lim;
                                    }
                                }
                            }

                            if (!set_stop)
                            {
                                s7_pointer slot;
                                slot = opt_integer_symbol(sc, cadr(stop));
                                if ((slot) &&
                                        (stop_is_safe(sc, cadr(stop), cddr(car_x))))
                                {
                                    set_step_end(slot);
                                    denominator(slot_value(slot)) = lim;
                                }
                            }
                        }
                    }

                    /* opt body */
                    body_index = sc->pc;
                    for (i = 3, p = cdddr(car_x); i < len; i++, p = cdr(p))
                    {
                        opt_info *start;
                        start = sc->opts[sc->pc];
                        if (!cell_optimize(sc, p))
                            break;
                        oo_idp_nr_fixup(start);
                    }

                    if (!is_null(p))
                    {
                        unstack(sc);
                        sc->envir = old_e;
                        return(return_false(sc, car_x, __func__, __LINE__));
                    }

                    /* we faked up sc->envir above, so s7_optimize_1 (float_optimize) isn't safe here
                     *    this means if clm nested loops get here, they aren't fully optimized -- fallback into dox would be better
                     */
                    step_pc = sc->pc;
                    for (p = cadr(car_x); is_pair(p); p = cdr(p))
                    {
                        s7_pointer var;
                        var = car(p);
                        opc->v[9].i = sc->pc;
                        if ((is_pair(cddr(var))) &&
                                (!cell_optimize(sc, cddr(var))))
                            break;
                    }

                    if (!is_null(p))
                    {
                        unstack(sc);
                        sc->envir = old_e;
                        return(return_false(sc, car_x, __func__, __LINE__));
                    }

                    rtn_len = 0;
                    opc->v[1].i = sc->pc - 1;
                    if (!is_list(cdr(end)))
                    {
                        unstack(sc);
                        sc->envir = old_e;
                        return(return_false(sc, car_x, __func__, __LINE__));
                    }
                    for (p = cdr(end); is_pair(p); p = cdr(p), rtn_len++)
                        if (!cell_optimize(sc, p))
                            break;
                    if (!is_null(p))
                    {
                        unstack(sc);
                        sc->envir = old_e;
                        return(return_false(sc, car_x, __func__, __LINE__));
                    }
                    opc->v[2].p = frame;
                    opc->v[3].i = len - 3; /* body_len */
                    opc->v[4].i = rtn_len;
                    opc->v[5].i = sc->pc - 1;
                    opc->v[9].o1 = sc->opts[step_pc];
                    sc->envir = old_e;

                    if ((var_len == 0) && (rtn_len == 0))
                    {
                        opc->v[0].fp = opt_do_no_vars;
                        return(oo_set_type_0(opc, 10));
                    }
                    opc->v[8].i = 0;
                    if (body_len == 1)
                    {
                        s7_pointer expr;
                        expr = cadddr(car_x);
                        if ((is_pair(expr)) &&
                                ((is_safe_setter(car(expr))) ||
                                 ((car(expr) == sc->vector_set_symbol) &&
                                  (is_null(cddddr(expr))) &&
                                  (is_code_constant(sc, cadddr(expr))))))
                            opc->v[8].i = 1;
                    }
                    if ((var_len != 1) || (step_len != 1) || (rtn_len != 0))
                    {
                        opc->v[0].fp = ((step_len == 1) && (body_len == 1) && (rtn_len == 1)) ? opt_do_step_1 : opt_do_any;
                        /* (do ((sum 0.0) (k 0 (+ k 1))) ((= k size) (set! (C i j) sum)) (set! sum (+ sum (* (A i k) (B k j))))) tmat */
                        return(oo_set_type_0(opc, 10));
                    }

                    opc->v[0].fp = (body_len == 1) ? opt_do_1 : opt_do_n;

                    var = caadr(car_x);
                    ind = car(var);
                    ind_step = caddr(var);
                    end = caaddr(car_x);
                    slot = let_slots(frame);

                    if ((is_pair(end)) &&                      /* (= i len|100) */
                            (cadr(end) == ind) &&
                            (is_pair(ind_step)))                   /* (+ i 1) */
                    {
                        if (((car(end) == sc->num_eq_symbol) || (car(end) == sc->geq_symbol)) &&
                                ((is_symbol(caddr(end))) || (is_t_integer(caddr(end)))) &&
                                (is_null(cdddr(end))) &&
                                (car(ind_step) == sc->add_symbol) &&
                                (cadr(ind_step) == ind) &&
                                (caddr(ind_step) == small_int(1)) &&
                                (is_null(cdddr(ind_step))) &&
                                (do_is_safe(sc, cdddr(car_x), sc->w = list_1(sc, ind), sc->nil, &has_set)))
                        {
                            let_set_dox_slot1(frame, slot);
                            let_set_dox_slot2_unchecked(frame, (is_symbol(caddr(end))) ? symbol_to_slot(sc, caddr(end)) : sc->undefined);
                            slot_set_value(slot, make_mutable_integer(sc, integer(slot_value(slot))));
                            opc->v[4].i = body_index;
                            if (body_len == 1)
                            {
                                opt_info *o1;
                                opc->v[0].fp = opt_do_very_simple;
                                if (is_t_integer(caddr(end)))
                                    opc->v[3].i = integer(caddr(end));

                                o1 = sc->opts[body_index];
                                /* v2, v3, v4, v5 are in use */
                                if (o1->v[0].fp == d_to_p_nr)
                                {
                                    /* snd-test: (do ((k 0 (+ k 1))) ((= k N)) (float-vector-set! rl k (read-sample rd))) */
                                    opc->v[0].fp = opt_do_prepackaged;
                                    opc->v[7].fp = opt_do_dpnr;
                                }
                                else
                                {
                                    if (o1->v[0].fp == i_to_p_nr)
                                    {
                                        opc->v[0].fp = opt_do_prepackaged;
                                        opc->v[7].fp = opt_do_ipnr;
                                    }
                                    else
                                    {
                                        if (o1->v[0].fp == opt_set_p_i_fo1)
                                        {
                                            opc->v[0].fp = opt_do_prepackaged;
                                            opc->v[7].fp = opt_do_setpif;
                                        }}}}
                            else
                            {
                                opc->v[0].fp = opt_dotimes_2;
                                if (is_t_integer(caddr(end)))
                                    opc->v[6].i = integer(caddr(end));
                            }
                        }
                        else
                        {
                            if ((car(end) == sc->is_null_symbol) &&
                                    (is_null(cddr(end))) &&
                                    (car(ind_step) == sc->cdr_symbol) &&
                                    (cadr(ind_step) == ind) &&
                                    (is_null(cddr(ind_step))) &&
                                    (body_len == 1) &&
                                    (do_is_safe(sc, cdddr(car_x), sc->w = list_1(sc, ind), sc->nil, &has_set)))
                                opc->v[0].fp = opt_do_list_simple;
                        }
                    }
                    return(oo_set_type_0(opc, 10));
                }

// Assembly:
subq $0x1e8, %rsp            # imm = 0x1E8
movq %rdi, 0x1d8(%rsp)
movq %rsi, 0x1d0(%rsp)
movl %edx, 0x1cc(%rsp)
movq $0x0, 0x1a8(%rsp)
movb $0x0, 0x15b(%rsp)
cmpl $0x3, 0x1cc(%rsp)
jge 0xf3359
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1d8(%rsp), %rdi
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x31a40
testb $0x1, %al
jne 0xf3387
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x3a070
movl %eax, 0x170(%rsp)
movl 0x170(%rsp), %eax
movl %eax, 0x164(%rsp)
movl 0x1cc(%rsp), %eax
subl $0x3, %eax
movl %eax, 0x16c(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1b0(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0xf33fb
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1d8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1a0(%rsp)
movq 0x1d8(%rsp), %rdi
callq 0xe15e0
movq %rax, 0x1c0(%rsp)
jmp 0xf3426
movq 0x1d8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0xf3453
movq 0x1d8(%rsp), %rdi
callq 0xc670
movq 0x1d8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x150(%rsp)
movq 0x150(%rsp), %rax
movq $0x20001c, (%rax)       # imm = 0x20001C
movq 0x1d8(%rsp), %rax
movq 0x250(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x250(%rax)
movq 0x150(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x150(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x1d8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x150(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x150(%rsp), %rax
movq %rax, 0x1a8(%rsp)
jmp 0xf34eb
movq 0x1a8(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, (%rax)
movq 0x1d8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rax
movq %rcx, 0x10(%rax)
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rax
movl $0x1, %ecx
movq %rcx, 0x18(%rax)
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1d8(%rsp), %rdi
callq 0xdd1b0
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3839
movq 0x1b8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x148(%rsp)
movq 0x148(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3811
movq 0x148(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xf3811
movq 0x148(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3811
movq 0x148(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x140(%rsp)
movq 0x1d8(%rsp), %rdi
movq 0x140(%rsp), %rsi
callq 0xc57c0
testb $0x1, %al
jne 0xf3634
movq 0x140(%rsp), %rax
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0xf3641
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x140(%rsp), %rax
movl 0x2c(%rax), %eax
movq 0x1d8(%rsp), %rcx
cmpl 0xa88(%rcx), %eax
jne 0xf370a
movq 0x140(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rax
movl 0xc(%rax), %eax
movq 0x1d8(%rsp), %rcx
cmpl 0xa8c(%rcx), %eax
jne 0xf370a
movq 0x1d8(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x1918(%rax), %rax
movq %rax, 0x50(%rsp)
movq 0x1d8(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x1d8(%rsp), %rdi
leaq 0xfbd2b(%rip), %rsi     # 0x1ef3ef
movl $0x1e, %edx
callq 0xb880
movq 0x40(%rsp), %rdi
movq %rax, %rsi
movq 0x148(%rsp), %rdx
callq 0xb830
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq %rax, %rdx
callq 0x2f940
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movb %al, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1d8(%rsp), %rdi
movq 0x140(%rsp), %rsi
callq 0xde160
movq 0x140(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x128(%rax), %rax
movq %rax, 0x128(%rsp)
movq 0x1d8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x138(%rsp)
movq 0x138(%rsp), %rax
movq $0x20, (%rax)
movq 0x130(%rsp), %rcx
movq 0x138(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x128(%rsp), %rcx
movq 0x138(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x138(%rsp), %rcx
movq 0x130(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x1a8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x130(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x130(%rsp), %rax
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
movq 0x1a8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x138(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x138(%rsp), %rcx
movq 0x1a8(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0xf381e
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
jmp 0xf3820
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
jmp 0xf3584
movq 0x1a8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0xf3870
movq 0x1d8(%rsp), %rdi
movq 0x1a8(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xfd760
movq %rax, %rcx
movq 0x1a8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1a8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x198(%rsp)
movq 0x1b8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3bc2
movq 0x1b8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x120(%rsp)
movq 0x1d8(%rsp), %rdi
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0xf38ee
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf394f
movq 0x198(%rsp), %rax
movq (%rax), %rcx
orq $0x800000, %rcx         # imm = 0x800000
movq %rcx, (%rax)
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0xf394d
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
jmp 0xf3990
movl 0x164(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x164(%rsp)
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0xf398e
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
jmp 0xf3990
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xf39da
movq 0x1d8(%rsp), %rdi
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfc80
movq 0x10(%rax), %rcx
movq 0x198(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0xf3b93
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0xf3a13
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x198(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0xf3b91
movq 0x1d8(%rsp), %rdi
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xf6a10
testb $0x1, %al
jne 0xf3a36
jmp 0xf3a5f
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x198(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0xf3b8f
movq 0x1d8(%rsp), %rdi
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xde990
movq %rax, 0x110(%rsp)
cmpq $0x0, 0x110(%rsp)
je 0xf3aa2
movq 0x110(%rsp), %rax
movq %rax, 0x38(%rsp)
jmp 0xf3ac8
movq 0x1d8(%rsp), %rdi
movq 0x120(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xdead0
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x108(%rsp)
movq 0x108(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0x118(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x30, %eax
jl 0xf3b8d
movq 0x118(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x38(%rax), %rax
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3b8b
movq 0x100(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x10d0(%rcx), %rax
je 0xf3b78
movq 0x100(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3b8b
movq 0x1d8(%rsp), %rax
movq 0x10d0(%rax), %rdi
movq 0x100(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0xde1a0
testb $0x1, %al
jne 0xf3b78
jmp 0xf3b8b
movq 0x122901(%rip), %rcx    # 0x216480
movq 0x198(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0xf3b8d
jmp 0xf3b8f
jmp 0xf3b91
jmp 0xf3b93
jmp 0xf3b95
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x198(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x198(%rsp)
jmp 0xf389c
movq 0x1a8(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3cfe
movq 0x1b8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xf8(%rsp)
movq 0xf8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf3ce3
movq 0x1d8(%rsp), %rdi
movq 0xf8(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0xf5990
movq %rax, 0xf0(%rsp)
movq 0xf0(%rsp), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x10d0(%rcx), %rax
je 0xf3c85
movq 0xf0(%rsp), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x11e0(%rcx), %rax
jne 0xf3ce1
movq 0x1d8(%rsp), %rdi
movq 0xf8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
callq 0xf5990
cmpq 0xf0(%rsp), %rax
je 0xf3ce1
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
jmp 0xf3ce3
jmp 0xf3ce5
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
jmp 0xf3bee
movq 0x1d8(%rsp), %rdi
movq 0x1b0(%rsp), %rsi
callq 0xf8720
testb $0x1, %al
jne 0xf3d4c
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1b0(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x190(%rsp)
movq 0x1d8(%rsp), %rdi
movq 0x190(%rsp), %rsi
callq 0xfd7c0
testb $0x1, %al
jne 0xf3d7e
jmp 0xf41b3
movq 0x190(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xea0(%rcx), %rax
je 0xf3dd9
movq 0x190(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xf48(%rcx), %rax
je 0xf3dd9
movq 0x190(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xf58(%rcx), %rax
jne 0xf41b3
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xf41b3
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
je 0xf3e31
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xf41b3
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xf3e78
movq 0x1d8(%rsp), %rdi
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xe5260
movq %rax, 0xe8(%rsp)
jmp 0xf3e8f
movq 0x1d8(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, 0xe8(%rsp)
cmpq $0x0, 0xe8(%rsp)
je 0xf41b1
movb $0x0, 0xdf(%rsp)
movq 0xe8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x20, %eax
jne 0xf3ed0
movq 0xe8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xe0(%rsp)
jmp 0xf3ef0
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xe0(%rsp)
movq 0x190(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xf58(%rcx), %rax
jne 0xf3f21
movq 0xe0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xe0(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1a8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xd0(%rsp)
movq 0x1b8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf410f
movq 0xd0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x190(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0xf3f87
movb $0x1, 0xdf(%rsp)
movq 0xd0(%rsp), %rax
movq (%rax), %rax
andq $0x800000, %rax         # imm = 0x800000
cmpq $0x0, %rax
je 0xf40e0
movq 0x1b8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xc0(%rsp)
movq 0xd0(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0xf40de
movq 0xc0(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf40de
movq 0xc0(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf40de
movq 0xc8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x190(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0xf40de
movq 0xc8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0xc0(%rsp), %rcx
movq 0x10(%rcx), %rcx
cmpq 0x8(%rcx), %rax
jne 0xf40de
movq 0x190(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xea0(%rcx), %rax
jne 0xf40b1
movq 0xc0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x1223f6(%rip), %rax    # 0x216488
jne 0xf40de
movq 0xc0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xba8(%rcx), %rax
jne 0xf40de
movq 0xd0(%rsp), %rax
movq (%rax), %rcx
orq $0x4000000, %rcx        # imm = 0x4000000
movq %rcx, (%rax)
movq 0xe0(%rsp), %rcx
movq 0xd0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rax)
jmp 0xf40e0
jmp 0xf40e2
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0xd0(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0xd0(%rsp)
jmp 0xf3f4d
testb $0x1, 0xdf(%rsp)
jne 0xf41af
movq 0x1d8(%rsp), %rdi
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xe5260
movq %rax, 0xb8(%rsp)
cmpq $0x0, 0xb8(%rsp)
je 0xf41ad
movq 0x1d8(%rsp), %rdi
movq 0x190(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rdx
callq 0xfd840
testb $0x1, %al
jne 0xf4180
jmp 0xf41ad
movq 0xb8(%rsp), %rax
movq (%rax), %rcx
orq $0x4000000, %rcx        # imm = 0x4000000
movq %rcx, (%rax)
movq 0xe0(%rsp), %rcx
movq 0xb8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x10(%rax)
jmp 0xf41af
jmp 0xf41b1
jmp 0xf41b3
movq 0x1d8(%rsp), %rax
movl 0x2258(%rax), %eax
movl %eax, 0x168(%rsp)
movl $0x3, 0x174(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
movl 0x174(%rsp), %eax
cmpl 0x1cc(%rsp), %eax
jge 0xf4278
movq 0x1d8(%rsp), %rax
movq 0x1d8(%rsp), %rcx
movslq 0x2258(%rcx), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0xb0(%rsp)
movq 0x1d8(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0xf4241
jmp 0xf4278
movq 0xb0(%rsp), %rdi
callq 0xf7f60
movl 0x174(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x174(%rsp)
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
jmp 0xf41ef
movq 0x1b8(%rsp), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0xf42c6
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1d8(%rsp), %rax
movl 0x2258(%rax), %eax
movl %eax, 0x15c(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf438c
movq 0x1b8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0xa8(%rsp)
movq 0x1d8(%rsp), %rax
movslq 0x2258(%rax), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0xa8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf4371
movq 0x1d8(%rsp), %rdi
movq 0xa8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0xf4371
jmp 0xf438c
jmp 0xf4373
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
jmp 0xf42f3
movq 0x1b8(%rsp), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0xf43da
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movl $0x0, 0x160(%rsp)
movq 0x1d8(%rsp), %rax
movl 0x2258(%rax), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
je 0xf4462
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movzbl (%rax), %eax
cmpl $0x2, %eax
je 0xf4462
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
movq 0x1b8(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf44ca
movq 0x1d8(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0xe9db0
testb $0x1, %al
jne 0xf44a1
jmp 0xf44ca
jmp 0xf44a3
movq 0x1b8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x1b8(%rsp)
movl 0x160(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x160(%rsp)
jmp 0xf4476
movq 0x1b8(%rsp), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
je 0xf4518
movq 0x1d8(%rsp), %rax
movq 0x50(%rax), %rcx
addq $-0x20, %rcx
movq %rcx, 0x50(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb $0x0, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1a8(%rsp), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x10(%rax)
movl 0x1cc(%rsp), %eax
subl $0x3, %eax
movslq %eax, %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x18(%rax)
movslq 0x160(%rsp), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x1d8(%rsp), %rax
movl 0x2258(%rax), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x1d8(%rsp), %rax
movslq 0x15c(%rsp), %rcx
movq 0x2260(%rax,%rcx,8), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x1a0(%rsp), %rcx
movq 0x1d8(%rsp), %rax
movq %rcx, 0x8(%rax)
cmpl $0x0, 0x170(%rsp)
jne 0xf4603
cmpl $0x0, 0x160(%rsp)
jne 0xf4603
movq 0x1c0(%rsp), %rax
leaq 0x933c(%rip), %rcx      # 0xfd910
movq %rcx, (%rax)
movq 0x1c0(%rsp), %rdi
movl $0xa, %esi
leaq 0xfae23(%rip), %rdx     # 0x1ef40e
movl $0xfced, %ecx           # imm = 0xFCED
callq 0xe4820
andb $0x1, %al
movb %al, 0x1e7(%rsp)
jmp 0xf4f46
movq 0x1c0(%rsp), %rax
movq $0x0, 0x40(%rax)
cmpl $0x1, 0x16c(%rsp)
jne 0xf46f2
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf46f0
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rax
movzwl 0x6(%rax), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
jne 0xf46e0
movq 0xa0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x1668(%rcx), %rax
jne 0xf46f0
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xf46f0
movq 0x1d8(%rsp), %rdi
movq 0xa0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfdac0
testb $0x1, %al
jne 0xf46e0
jmp 0xf46f0
movq 0x1c0(%rsp), %rax
movq $0x1, 0x40(%rax)
jmp 0xf46f2
cmpl $0x1, 0x170(%rsp)
jne 0xf4710
cmpl $0x1, 0x164(%rsp)
jne 0xf4710
cmpl $0x0, 0x160(%rsp)
je 0xf478f
xorl %eax, %eax
cmpl $0x1, 0x164(%rsp)
movb %al, 0x37(%rsp)
jne 0xf473f
xorl %eax, %eax
cmpl $0x1, 0x16c(%rsp)
movb %al, 0x37(%rsp)
jne 0xf473f
cmpl $0x1, 0x160(%rsp)
sete %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %dl
leaq 0x9666(%rip), %rcx      # 0xfddb0
leaq 0x93ef(%rip), %rax      # 0xfdb40
testb $0x1, %dl
cmovneq %rax, %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, (%rax)
movq 0x1c0(%rsp), %rdi
movl $0xa, %esi
leaq 0xfac97(%rip), %rdx     # 0x1ef40e
movl $0xfcff, %ecx           # imm = 0xFCFF
callq 0xe4820
andb $0x1, %al
movb %al, 0x1e7(%rsp)
jmp 0xf4f46
movl 0x16c(%rsp), %edx
leaq 0x9c83(%rip), %rcx      # 0xfe420
leaq 0x995c(%rip), %rax      # 0xfe100
cmpl $0x1, %edx
cmoveq %rax, %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, (%rax)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x178(%rsp)
movq 0x178(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x188(%rsp)
movq 0x178(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x180(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1a8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x198(%rsp)
movq 0x1b0(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf4f1f
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x188(%rsp), %rax
jne 0xf4f1f
movq 0x180(%rsp), %rax
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0xf4f1f
movq 0x1b0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xea0(%rcx), %rax
je 0xf48ba
movq 0x1b0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xf48(%rcx), %rax
jne 0xf4d45
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
je 0xf48f6
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0xf4d45
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xf4d45
movq 0x180(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xba8(%rcx), %rax
jne 0xf4d45
movq 0x180(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x188(%rsp), %rax
jne 0xf4d45
movq 0x180(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x121b0f(%rip), %rax    # 0x216488
jne 0xf4d45
movq 0x180(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xf4d45
movq 0x1d8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x188(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, 0x88(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0xf4a22
movq 0x1d8(%rsp), %rdi
callq 0xc670
movq 0x1d8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdi
movq 0x90(%rsp), %rcx
movq 0x98(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x88(%rsp), %rcx
movq 0x98(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x98(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rdx
movq 0x1d8(%rsp), %rax
movq %rdx, 0x4d8(%rax)
movq 0x1d8(%rsp), %rax
movq 0x110(%rax), %rcx
leaq 0x15b(%rsp), %r8
callq 0xfe710
testb $0x1, %al
jne 0xf4ad8
jmp 0xf4d45
jmp 0xf4ada
movq 0x198(%rsp), %rcx
movq 0x1a8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x1a8(%rsp), %rax
movq (%rax), %rcx
orq $0x10000, %rcx          # imm = 0x10000
movq %rcx, (%rax)
jmp 0xf4b05
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xa, %eax
jne 0xf4b49
movq 0x1d8(%rsp), %rdi
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xfc80
movq %rax, 0x18(%rsp)
jmp 0xf4b5d
movq 0x1d8(%rsp), %rax
movq 0x128(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rcx
movq 0x1a8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x1a8(%rsp), %rax
movq (%rax), %rcx
orq $0x800000, %rcx         # imm = 0x800000
movq %rcx, (%rax)
movq 0x1d8(%rsp), %rdi
movq 0x198(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0xdd130
movq %rax, %rcx
movq 0x198(%rsp), %rax
movq %rcx, 0x10(%rax)
movslq 0x168(%rsp), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x20(%rax)
cmpl $0x1, 0x16c(%rsp)
jne 0xf4cec
movq 0x1c0(%rsp), %rax
leaq 0xab50(%rip), %rcx      # 0xff730
movq %rcx, (%rax)
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0xf4c23
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x1d8(%rsp), %rax
movslq 0x168(%rsp), %rcx
movq 0x2260(%rax,%rcx,8), %rax
movq %rax, 0x78(%rsp)
movq 0x78(%rsp), %rax
leaq 0x3544(%rip), %rcx      # 0xf8190
cmpq %rcx, (%rax)
jne 0xf4c78
movq 0x1c0(%rsp), %rax
leaq 0xb2d0(%rip), %rcx      # 0xfff30
movq %rcx, (%rax)
movq 0x1c0(%rsp), %rax
leaq 0xb43e(%rip), %rcx      # 0x1000b0
movq %rcx, 0x38(%rax)
jmp 0xf4cea
movq 0x78(%rsp), %rax
leaq 0x373c(%rip), %rcx      # 0xf83c0
cmpq %rcx, (%rax)
jne 0xf4cb0
movq 0x1c0(%rsp), %rax
leaq 0xb298(%rip), %rcx      # 0xfff30
movq %rcx, (%rax)
movq 0x1c0(%rsp), %rax
leaq 0xb4b6(%rip), %rcx      # 0x100160
movq %rcx, 0x38(%rax)
jmp 0xf4ce8
movq 0x78(%rsp), %rax
leaq 0x28e4(%rip), %rcx      # 0xf75a0
cmpq %rcx, (%rax)
jne 0xf4ce6
movq 0x1c0(%rsp), %rax
leaq 0xb260(%rip), %rcx      # 0xfff30
movq %rcx, (%rax)
movq 0x1c0(%rsp), %rax
leaq 0xb52e(%rip), %rcx      # 0x100210
movq %rcx, 0x38(%rax)
jmp 0xf4ce8
jmp 0xf4cea
jmp 0xf4d40
movq 0x1c0(%rsp), %rax
leaq 0xb625(%rip), %rcx      # 0x100320
movq %rcx, (%rax)
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
cmpl $0xb, %eax
jne 0xf4d3e
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x1c0(%rsp), %rax
movq %rcx, 0x30(%rax)
jmp 0xf4d40
jmp 0xf4f1d
movq 0x1b0(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x1118(%rcx), %rax
jne 0xf4f1b
movq 0x1b0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xf4f1b
movq 0x180(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0xda0(%rcx), %rax
jne 0xf4f1b
movq 0x180(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpq 0x188(%rsp), %rax
jne 0xf4f1b
movq 0x180(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x110(%rcx), %rax
jne 0xf4f1b
cmpl $0x1, 0x16c(%rsp)
jne 0xf4f1b
movq 0x1d8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x1d0(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x110(%rax), %rax
movq %rax, 0x60(%rsp)
movq 0x1d8(%rsp), %rax
movq 0x90(%rax), %rax
movq 0x1d8(%rsp), %rcx
cmpq 0x98(%rcx), %rax
ja 0xf4e71
movq 0x1d8(%rsp), %rdi
callq 0xc670
movq 0x1d8(%rsp), %rcx
movq 0x90(%rcx), %rax
movq %rax, %rdx
addq $-0x8, %rdx
movq %rdx, 0x90(%rcx)
movq -0x8(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq $0x200001, (%rax)       # imm = 0x200001
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq 0x68(%rsp), %rcx
movq 0x70(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x60(%rsp), %rcx
movq 0x70(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x70(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdx
movq 0x1d8(%rsp), %rax
movq %rdx, 0x4d8(%rax)
movq 0x1d8(%rsp), %rax
movq 0x110(%rax), %rcx
leaq 0x15b(%rsp), %r8
callq 0xfe710
testb $0x1, %al
jne 0xf4f09
jmp 0xf4f1b
movq 0x1c0(%rsp), %rax
leaq 0xb6c8(%rip), %rcx      # 0x1005e0
movq %rcx, (%rax)
jmp 0xf4f1d
jmp 0xf4f1f
movq 0x1c0(%rsp), %rdi
movl $0xa, %esi
leaq 0xfa4db(%rip), %rdx     # 0x1ef40e
movl $0xfd4b, %ecx           # imm = 0xFD4B
callq 0xe4820
andb $0x1, %al
movb %al, 0x1e7(%rsp)
movb 0x1e7(%rsp), %al
andb $0x1, %al
addq $0x1e8, %rsp            # imm = 0x1E8
retq
nopw (%rax,%rax)