// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_draw/lv_draw_rect.c
// Function: lv_draw_rect_border_corner
static void lv_draw_rect_border_corner(const lv_area_t * coords, const lv_area_t * mask, const lv_style_t * style,
                                       lv_opa_t opa_scale)
{
    uint16_t radius       = style->body.radius;
    bool aa               = lv_disp_get_antialiasing(lv_refr_get_disp_refreshing());
    lv_coord_t bwidth     = style->body.border.width;
    lv_color_t color      = style->body.border.color;
    lv_border_part_t part = style->body.border.part;
    lv_opa_t opa          = opa_scale == LV_OPA_COVER ? style->body.border.opa
                                             : (uint16_t)((uint16_t)style->body.border.opa * opa_scale) >> 8;
    /*0 px border width drawn as 1 px, so decrement the bwidth*/
    bwidth--;

#if LV_ANTIALIAS
    if(aa) bwidth--; /*Because of anti-aliasing the border seems one pixel ticker*/
#endif

    lv_coord_t width  = lv_area_get_width(coords);
    lv_coord_t height = lv_area_get_height(coords);

    radius = lv_draw_cont_radius_corr(radius, width, height);

    lv_point_t lt_origo; /*Left  Top    origo*/
    lv_point_t lb_origo; /*Left  Bottom origo*/
    lv_point_t rt_origo; /*Right Top    origo*/
    lv_point_t rb_origo; /*Left  Bottom origo*/

    lt_origo.x = coords->x1 + radius + aa;
    lt_origo.y = coords->y1 + radius + aa;

    lb_origo.x = coords->x1 + radius + aa;
    lb_origo.y = coords->y2 - radius - aa;

    rt_origo.x = coords->x2 - radius - aa;
    rt_origo.y = coords->y1 + radius + aa;

    rb_origo.x = coords->x2 - radius - aa;
    rb_origo.y = coords->y2 - radius - aa;

    lv_point_t cir_out;
    lv_coord_t tmp_out;
    lv_circ_init(&cir_out, &tmp_out, radius);

    lv_point_t cir_in;
    lv_coord_t tmp_in;
    lv_coord_t radius_in = radius - bwidth;

    if(radius_in < 0) {
        radius_in = 0;
    }

    lv_circ_init(&cir_in, &tmp_in, radius_in);

    lv_area_t circ_area;
    lv_coord_t act_w1;
    lv_coord_t act_w2;

#if LV_ANTIALIAS
    /*Store some internal states for anti-aliasing*/
    lv_coord_t out_y_seg_start = 0;
    lv_coord_t out_y_seg_end   = 0;
    lv_coord_t out_x_last      = radius;

    lv_coord_t in_y_seg_start = 0;
    lv_coord_t in_y_seg_end   = 0;
    lv_coord_t in_x_last      = radius - bwidth;
#endif

    while(cir_out.y <= cir_out.x) {

        /*Calculate the actual width to avoid overwriting pixels*/
        if(cir_in.y < cir_in.x) {
            act_w1 = cir_out.x - cir_in.x;
            act_w2 = act_w1;
        } else {
            act_w1 = cir_out.x - cir_out.y;
            act_w2 = act_w1 - 1;
        }

#if LV_ANTIALIAS
        if(aa) {
            /*New step in y on the outter circle*/
            if(out_x_last != cir_out.x) {
                out_y_seg_end       = cir_out.y;
                lv_coord_t seg_size = out_y_seg_end - out_y_seg_start;
                lv_point_t aa_p;

                aa_p.x = out_x_last;
                aa_p.y = out_y_seg_start;

                lv_coord_t i;
                for(i = 0; i < seg_size; i++) {
                    lv_opa_t aa_opa;

                    if(seg_size > CIRCLE_AA_NON_LINEAR_OPA_THRESHOLD) { /*Use non-linear opa mapping
                                                                           on the first segment*/
                        aa_opa = antialias_get_opa_circ(seg_size, i, opa);
                    } else {
                        aa_opa = opa - lv_draw_aa_get_opa(seg_size, i, opa);
                    }

                    if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                        lv_draw_px(rb_origo.x + LV_CIRC_OCT1_X(aa_p) + 1, rb_origo.y + LV_CIRC_OCT1_Y(aa_p) + i, mask,
                                   style->body.border.color, aa_opa);
                        lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p) + i, rb_origo.y + LV_CIRC_OCT2_Y(aa_p) + 1, mask,
                                   style->body.border.color, aa_opa);
                    }

                    if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                        lv_draw_px(lb_origo.x + LV_CIRC_OCT3_X(aa_p) - i, lb_origo.y + LV_CIRC_OCT3_Y(aa_p) + 1, mask,
                                   style->body.border.color, aa_opa);
                        lv_draw_px(lb_origo.x + LV_CIRC_OCT4_X(aa_p) - 1, lb_origo.y + LV_CIRC_OCT4_Y(aa_p) + i, mask,
                                   style->body.border.color, aa_opa);
                    }

                    if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                        lv_draw_px(lt_origo.x + LV_CIRC_OCT5_X(aa_p) - 1, lt_origo.y + LV_CIRC_OCT5_Y(aa_p) - i, mask,
                                   style->body.border.color, aa_opa);
                        lv_draw_px(lt_origo.x + LV_CIRC_OCT6_X(aa_p) - i, lt_origo.y + LV_CIRC_OCT6_Y(aa_p) - 1, mask,
                                   style->body.border.color, aa_opa);
                    }

                    if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                        lv_draw_px(rt_origo.x + LV_CIRC_OCT7_X(aa_p) + i, rt_origo.y + LV_CIRC_OCT7_Y(aa_p) - 1, mask,
                                   style->body.border.color, aa_opa);
                        lv_draw_px(rt_origo.x + LV_CIRC_OCT8_X(aa_p) + 1, rt_origo.y + LV_CIRC_OCT8_Y(aa_p) - i, mask,
                                   style->body.border.color, aa_opa);
                    }
                }

                out_x_last      = cir_out.x;
                out_y_seg_start = out_y_seg_end;
            }

            /*New step in y on the inner circle*/
            if(in_x_last != cir_in.x) {
                in_y_seg_end        = cir_out.y;
                lv_coord_t seg_size = in_y_seg_end - in_y_seg_start;
                lv_point_t aa_p;

                aa_p.x = in_x_last;
                aa_p.y = in_y_seg_start;

                lv_coord_t i;
                for(i = 0; i < seg_size; i++) {
                    lv_opa_t aa_opa;

                    if(seg_size > CIRCLE_AA_NON_LINEAR_OPA_THRESHOLD) { /*Use non-linear opa mapping
                                                                           on the first segment*/
                        aa_opa = opa - antialias_get_opa_circ(seg_size, i, opa);
                    } else {
                        aa_opa = lv_draw_aa_get_opa(seg_size, i, opa);
                    }

                    if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                        lv_draw_px(rb_origo.x + LV_CIRC_OCT1_X(aa_p) - 1, rb_origo.y + LV_CIRC_OCT1_Y(aa_p) + i, mask,
                                   style->body.border.color, aa_opa);
                    }

                    if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                        lv_draw_px(lb_origo.x + LV_CIRC_OCT3_X(aa_p) - i, lb_origo.y + LV_CIRC_OCT3_Y(aa_p) - 1, mask,
                                   style->body.border.color, aa_opa);
                    }

                    if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                        lv_draw_px(lt_origo.x + LV_CIRC_OCT5_X(aa_p) + 1, lt_origo.y + LV_CIRC_OCT5_Y(aa_p) - i, mask,
                                   style->body.border.color, aa_opa);
                    }

                    if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                        lv_draw_px(rt_origo.x + LV_CIRC_OCT7_X(aa_p) + i, rt_origo.y + LV_CIRC_OCT7_Y(aa_p) + 1, mask,
                                   style->body.border.color, aa_opa);
                    }

                    /*Be sure the pixels on the middle are not drawn twice*/
                    if(LV_CIRC_OCT1_X(aa_p) - 1 != LV_CIRC_OCT2_X(aa_p) + i) {
                        if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                            lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p) + i, rb_origo.y + LV_CIRC_OCT2_Y(aa_p) - 1,
                                       mask, style->body.border.color, aa_opa);
                        }

                        if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                            lv_draw_px(lb_origo.x + LV_CIRC_OCT4_X(aa_p) + 1, lb_origo.y + LV_CIRC_OCT4_Y(aa_p) + i,
                                       mask, style->body.border.color, aa_opa);
                        }

                        if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                            lv_draw_px(lt_origo.x + LV_CIRC_OCT6_X(aa_p) - i, lt_origo.y + LV_CIRC_OCT6_Y(aa_p) + 1,
                                       mask, style->body.border.color, aa_opa);
                        }

                        if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                            lv_draw_px(rt_origo.x + LV_CIRC_OCT8_X(aa_p) - 1, rt_origo.y + LV_CIRC_OCT8_Y(aa_p) - i,
                                       mask, style->body.border.color, aa_opa);
                        }
                    }
                }

                in_x_last      = cir_in.x;
                in_y_seg_start = in_y_seg_end;
            }
        }
#endif

        /*Draw the octets to the right bottom corner*/
        if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
            circ_area.x1 = rb_origo.x + LV_CIRC_OCT1_X(cir_out) - act_w2;
            circ_area.x2 = rb_origo.x + LV_CIRC_OCT1_X(cir_out);
            circ_area.y1 = rb_origo.y + LV_CIRC_OCT1_Y(cir_out);
            circ_area.y2 = rb_origo.y + LV_CIRC_OCT1_Y(cir_out);
            lv_draw_fill(&circ_area, mask, color, opa);

            circ_area.x1 = rb_origo.x + LV_CIRC_OCT2_X(cir_out);
            circ_area.x2 = rb_origo.x + LV_CIRC_OCT2_X(cir_out);
            circ_area.y1 = rb_origo.y + LV_CIRC_OCT2_Y(cir_out) - act_w1;
            circ_area.y2 = rb_origo.y + LV_CIRC_OCT2_Y(cir_out);
            lv_draw_fill(&circ_area, mask, color, opa);
        }

        /*Draw the octets to the left bottom corner*/
        if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
            circ_area.x1 = lb_origo.x + LV_CIRC_OCT3_X(cir_out);
            circ_area.x2 = lb_origo.x + LV_CIRC_OCT3_X(cir_out);
            circ_area.y1 = lb_origo.y + LV_CIRC_OCT3_Y(cir_out) - act_w2;
            circ_area.y2 = lb_origo.y + LV_CIRC_OCT3_Y(cir_out);
            lv_draw_fill(&circ_area, mask, color, opa);

            circ_area.x1 = lb_origo.x + LV_CIRC_OCT4_X(cir_out);
            circ_area.x2 = lb_origo.x + LV_CIRC_OCT4_X(cir_out) + act_w1;
            circ_area.y1 = lb_origo.y + LV_CIRC_OCT4_Y(cir_out);
            circ_area.y2 = lb_origo.y + LV_CIRC_OCT4_Y(cir_out);
            lv_draw_fill(&circ_area, mask, color, opa);
        }

        /*Draw the octets to the left top corner*/
        if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
            if(lb_origo.y + LV_CIRC_OCT4_Y(cir_out) > lt_origo.y + LV_CIRC_OCT5_Y(cir_out)) {
                /*Don't draw if the lines are common in the middle*/
                circ_area.x1 = lt_origo.x + LV_CIRC_OCT5_X(cir_out);
                circ_area.x2 = lt_origo.x + LV_CIRC_OCT5_X(cir_out) + act_w2;
                circ_area.y1 = lt_origo.y + LV_CIRC_OCT5_Y(cir_out);
                circ_area.y2 = lt_origo.y + LV_CIRC_OCT5_Y(cir_out);
                lv_draw_fill(&circ_area, mask, color, opa);
            }

            circ_area.x1 = lt_origo.x + LV_CIRC_OCT6_X(cir_out);
            circ_area.x2 = lt_origo.x + LV_CIRC_OCT6_X(cir_out);
            circ_area.y1 = lt_origo.y + LV_CIRC_OCT6_Y(cir_out);
            circ_area.y2 = lt_origo.y + LV_CIRC_OCT6_Y(cir_out) + act_w1;
            lv_draw_fill(&circ_area, mask, color, opa);
        }

        /*Draw the octets to the right top corner*/
        if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
            circ_area.x1 = rt_origo.x + LV_CIRC_OCT7_X(cir_out);
            circ_area.x2 = rt_origo.x + LV_CIRC_OCT7_X(cir_out);
            circ_area.y1 = rt_origo.y + LV_CIRC_OCT7_Y(cir_out);
            circ_area.y2 = rt_origo.y + LV_CIRC_OCT7_Y(cir_out) + act_w2;
            lv_draw_fill(&circ_area, mask, color, opa);

            /*Don't draw if the lines are common in the middle*/
            if(rb_origo.y + LV_CIRC_OCT1_Y(cir_out) > rt_origo.y + LV_CIRC_OCT8_Y(cir_out)) {
                circ_area.x1 = rt_origo.x + LV_CIRC_OCT8_X(cir_out) - act_w1;
                circ_area.x2 = rt_origo.x + LV_CIRC_OCT8_X(cir_out);
                circ_area.y1 = rt_origo.y + LV_CIRC_OCT8_Y(cir_out);
                circ_area.y2 = rt_origo.y + LV_CIRC_OCT8_Y(cir_out);
                lv_draw_fill(&circ_area, mask, color, opa);
            }
        }
        lv_circ_next(&cir_out, &tmp_out);

        /*The internal circle will be ready faster
         * so check it! */
        if(cir_in.y < cir_in.x) {
            lv_circ_next(&cir_in, &tmp_in);
        }
    }

#if LV_ANTIALIAS
    if(aa) {
        /*Last parts of the outer anti-alias*/
        out_y_seg_end       = cir_out.y;
        lv_coord_t seg_size = out_y_seg_end - out_y_seg_start;
        lv_point_t aa_p;

        aa_p.x = out_x_last;
        aa_p.y = out_y_seg_start;

        lv_coord_t i;
        for(i = 0; i < seg_size; i++) {
            lv_opa_t aa_opa = opa - lv_draw_aa_get_opa(seg_size, i, opa);
            if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                lv_draw_px(rb_origo.x + LV_CIRC_OCT1_X(aa_p) + 1, rb_origo.y + LV_CIRC_OCT1_Y(aa_p) + i, mask,
                           style->body.border.color, aa_opa);
                lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p) + i, rb_origo.y + LV_CIRC_OCT2_Y(aa_p) + 1, mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                lv_draw_px(lb_origo.x + LV_CIRC_OCT3_X(aa_p) - i, lb_origo.y + LV_CIRC_OCT3_Y(aa_p) + 1, mask,
                           style->body.border.color, aa_opa);
                lv_draw_px(lb_origo.x + LV_CIRC_OCT4_X(aa_p) - 1, lb_origo.y + LV_CIRC_OCT4_Y(aa_p) + i, mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                lv_draw_px(lt_origo.x + LV_CIRC_OCT5_X(aa_p) - 1, lt_origo.y + LV_CIRC_OCT5_Y(aa_p) - i, mask,
                           style->body.border.color, aa_opa);
                lv_draw_px(lt_origo.x + LV_CIRC_OCT6_X(aa_p) - i, lt_origo.y + LV_CIRC_OCT6_Y(aa_p) - 1, mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                lv_draw_px(rt_origo.x + LV_CIRC_OCT7_X(aa_p) + i, rt_origo.y + LV_CIRC_OCT7_Y(aa_p) - 1, mask,
                           style->body.border.color, aa_opa);
                lv_draw_px(rt_origo.x + LV_CIRC_OCT8_X(aa_p) + 1, rt_origo.y + LV_CIRC_OCT8_Y(aa_p) - i, mask,
                           style->body.border.color, aa_opa);
            }
        }

        /*In some cases the last pixel in the outer middle is not drawn*/
        if(LV_MATH_ABS(aa_p.x - aa_p.y) == seg_size) {
            aa_p.x = out_x_last;
            aa_p.y = out_x_last;

            lv_opa_t aa_opa = opa >> 1;

            if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p), rb_origo.y + LV_CIRC_OCT2_Y(aa_p), mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                lv_draw_px(lb_origo.x + LV_CIRC_OCT4_X(aa_p), lb_origo.y + LV_CIRC_OCT4_Y(aa_p), mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                lv_draw_px(lt_origo.x + LV_CIRC_OCT6_X(aa_p), lt_origo.y + LV_CIRC_OCT6_Y(aa_p), mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                lv_draw_px(rt_origo.x + LV_CIRC_OCT8_X(aa_p), rt_origo.y + LV_CIRC_OCT8_Y(aa_p), mask,
                           style->body.border.color, aa_opa);
            }
        }

        /*Last parts of the inner anti-alias*/
        in_y_seg_end = cir_in.y;
        aa_p.x       = in_x_last;
        aa_p.y       = in_y_seg_start;
        seg_size     = in_y_seg_end - in_y_seg_start;

        for(i = 0; i < seg_size; i++) {
            lv_opa_t aa_opa = lv_draw_aa_get_opa(seg_size, i, opa);
            if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                lv_draw_px(rb_origo.x + LV_CIRC_OCT1_X(aa_p) - 1, rb_origo.y + LV_CIRC_OCT1_Y(aa_p) + i, mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                lv_draw_px(lb_origo.x + LV_CIRC_OCT3_X(aa_p) - i, lb_origo.y + LV_CIRC_OCT3_Y(aa_p) - 1, mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                lv_draw_px(lt_origo.x + LV_CIRC_OCT5_X(aa_p) + 1, lt_origo.y + LV_CIRC_OCT5_Y(aa_p) - i, mask,
                           style->body.border.color, aa_opa);
            }

            if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                lv_draw_px(rt_origo.x + LV_CIRC_OCT7_X(aa_p) + i, rt_origo.y + LV_CIRC_OCT7_Y(aa_p) + 1, mask,
                           style->body.border.color, aa_opa);
            }

            if(LV_CIRC_OCT1_X(aa_p) - 1 != LV_CIRC_OCT2_X(aa_p) + i) {
                if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
                    lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p) + i, rb_origo.y + LV_CIRC_OCT2_Y(aa_p) - 1, mask,
                               style->body.border.color, aa_opa);
                }

                if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
                    lv_draw_px(lb_origo.x + LV_CIRC_OCT4_X(aa_p) + 1, lb_origo.y + LV_CIRC_OCT4_Y(aa_p) + i, mask,
                               style->body.border.color, aa_opa);
                }

                if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
                    lv_draw_px(lt_origo.x + LV_CIRC_OCT6_X(aa_p) - i, lt_origo.y + LV_CIRC_OCT6_Y(aa_p) + 1, mask,
                               style->body.border.color, aa_opa);
                }

                if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
                    lv_draw_px(rt_origo.x + LV_CIRC_OCT8_X(aa_p) - 1, rt_origo.y + LV_CIRC_OCT8_Y(aa_p) - i, mask,
                               style->body.border.color, aa_opa);
                }
            }
        }
    }
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movb %cl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq -0x18(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x1c(%rbp)
callq 0xafe0
movq %rax, %rdi
callq 0xdb00
andb $0x1, %al
movb %al, -0x1d(%rbp)
movq -0x18(%rbp), %rax
movw 0xc(%rax), %ax
movw %ax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movw 0xa(%rax), %ax
movw %ax, -0x22(%rbp)
movq -0x18(%rbp), %rax
movb 0xe(%rax), %al
movb %al, -0x23(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0xff, %eax
jne 0x5cb57
movq -0x18(%rbp), %rax
movzbl 0xf(%rax), %eax
movl %eax, -0x84(%rbp)
jmp 0x5cb75
movq -0x18(%rbp), %rax
movzbl 0xf(%rax), %eax
movzwl %ax, %eax
movzbl -0x19(%rbp), %ecx
imull %ecx, %eax
movzwl %ax, %eax
sarl $0x8, %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
movb %al, -0x24(%rbp)
movw -0x20(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x20(%rbp)
testb $0x1, -0x1d(%rbp)
je 0x5cb9c
movw -0x20(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ab30
movw %ax, -0x26(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ab10
movw %ax, -0x28(%rbp)
movw -0x1c(%rbp), %cx
movw -0x26(%rbp), %ax
movzwl %cx, %edi
movswl %ax, %esi
movswl -0x28(%rbp), %edx
callq 0x5e0e0
movw %ax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x34(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x32(%rbp)
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x36(%rbp)
leaq -0x3c(%rbp), %rdi
leaq -0x3e(%rbp), %rsi
movswl -0x1c(%rbp), %edx
callq 0x42540
movzwl -0x1c(%rbp), %eax
movswl -0x20(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x46(%rbp)
movswl -0x46(%rbp), %eax
cmpl $0x0, %eax
jge 0x5cce5
movw $0x0, -0x46(%rbp)
leaq -0x42(%rbp), %rdi
leaq -0x44(%rbp), %rsi
movswl -0x46(%rbp), %edx
callq 0x42540
movw $0x0, -0x54(%rbp)
movw $0x0, -0x56(%rbp)
movw -0x1c(%rbp), %ax
movw %ax, -0x58(%rbp)
movw $0x0, -0x5a(%rbp)
movw $0x0, -0x5c(%rbp)
movzwl -0x1c(%rbp), %eax
movswl -0x20(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x5e(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x3c(%rbp), %ecx
cmpl %ecx, %eax
jg 0x5d87f
movswl -0x40(%rbp), %eax
movswl -0x42(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5cd58
movswl -0x3c(%rbp), %eax
movswl -0x42(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x50(%rbp)
movw -0x50(%rbp), %ax
movw %ax, -0x52(%rbp)
jmp 0x5cd71
movswl -0x3c(%rbp), %eax
movswl -0x3a(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x50(%rbp)
movswl -0x50(%rbp), %eax
subl $0x1, %eax
movw %ax, -0x52(%rbp)
testb $0x1, -0x1d(%rbp)
je 0x5d4b2
movswl -0x58(%rbp), %eax
movswl -0x3c(%rbp), %ecx
cmpl %ecx, %eax
je 0x5d0e8
movw -0x3a(%rbp), %ax
movw %ax, -0x56(%rbp)
movswl -0x56(%rbp), %eax
movswl -0x54(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x60(%rbp)
movw -0x58(%rbp), %ax
movw %ax, -0x64(%rbp)
movw -0x54(%rbp), %ax
movw %ax, -0x62(%rbp)
movw $0x0, -0x66(%rbp)
movswl -0x66(%rbp), %eax
movswl -0x60(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5d0d8
movswl -0x60(%rbp), %eax
cmpl $0x1, %eax
jle 0x5cdec
movw -0x60(%rbp), %cx
movw -0x66(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x24(%rbp), %edx
callq 0x5e2c0
movb %al, -0x67(%rbp)
jmp 0x5ce1d
movzbl -0x24(%rbp), %eax
movl %eax, -0x88(%rbp)
movw -0x60(%rbp), %cx
movw -0x66(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x24(%rbp), %edx
callq 0x5a7e0
movb %al, %cl
movl -0x88(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movb %al, -0x67(%rbp)
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5cebf
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5cebf
movswl -0x38(%rbp), %eax
movswl -0x64(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x62(%rbp), %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x38(%rbp), %eax
movswl -0x62(%rbp), %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x64(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5cf69
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5cf69
movswl -0x30(%rbp), %eax
movswl -0x62(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x64(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x30(%rbp), %eax
movswl -0x64(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x62(%rbp), %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d01b
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d01b
movswl -0x2c(%rbp), %eax
movswl -0x64(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x62(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x2c(%rbp), %eax
movswl -0x62(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x64(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d0c5
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d0c5
movswl -0x34(%rbp), %eax
movswl -0x62(%rbp), %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x64(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x34(%rbp), %eax
movswl -0x64(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x62(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x66(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x67(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x5d0c7
movw -0x66(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x66(%rbp)
jmp 0x5cdb7
movw -0x3c(%rbp), %ax
movw %ax, -0x58(%rbp)
movw -0x56(%rbp), %ax
movw %ax, -0x54(%rbp)
movswl -0x5e(%rbp), %eax
movswl -0x42(%rbp), %ecx
cmpl %ecx, %eax
je 0x5d4b0
movw -0x3a(%rbp), %ax
movw %ax, -0x5c(%rbp)
movswl -0x5c(%rbp), %eax
movswl -0x5a(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x6a(%rbp)
movw -0x5e(%rbp), %ax
movw %ax, -0x6e(%rbp)
movw -0x5a(%rbp), %ax
movw %ax, -0x6c(%rbp)
movw $0x0, -0x70(%rbp)
movswl -0x70(%rbp), %eax
movswl -0x6a(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5d4a0
movswl -0x6a(%rbp), %eax
cmpl $0x1, %eax
jle 0x5d170
movzbl -0x24(%rbp), %eax
movl %eax, -0x8c(%rbp)
movw -0x6a(%rbp), %cx
movw -0x70(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x24(%rbp), %edx
callq 0x5e2c0
movb %al, %cl
movl -0x8c(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movb %al, -0x71(%rbp)
jmp 0x5d18a
movw -0x6a(%rbp), %cx
movw -0x70(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x24(%rbp), %edx
callq 0x5a7e0
movb %al, -0x71(%rbp)
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d1e3
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d1e3
movswl -0x38(%rbp), %eax
movswl -0x6e(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x6c(%rbp), %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d240
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d240
movswl -0x30(%rbp), %eax
movswl -0x6c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x6e(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d2a1
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d2a1
movswl -0x2c(%rbp), %eax
movswl -0x6e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x6c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d2fe
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d2fe
movswl -0x34(%rbp), %eax
movswl -0x6c(%rbp), %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x6e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x6e(%rbp), %eax
subl $0x1, %eax
movswl -0x6c(%rbp), %ecx
movswl -0x70(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x5d48d
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d370
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d370
movswl -0x38(%rbp), %eax
movswl -0x6c(%rbp), %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x6e(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d3cd
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d3cd
movswl -0x30(%rbp), %eax
movswl -0x6e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x6c(%rbp), %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d42e
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d42e
movswl -0x2c(%rbp), %eax
movswl -0x6c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x6e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d48b
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d48b
movswl -0x34(%rbp), %eax
movswl -0x6e(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x6c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x71(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x5d48d
jmp 0x5d48f
movw -0x70(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x70(%rbp)
jmp 0x5d124
movw -0x42(%rbp), %ax
movw %ax, -0x5e(%rbp)
movw -0x5c(%rbp), %ax
movw %ax, -0x5a(%rbp)
jmp 0x5d4b2
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d57c
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d57c
movswl -0x38(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movswl -0x52(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x38(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x36(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x36(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x38(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x38(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x36(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movswl -0x50(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x36(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d656
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d656
movswl -0x30(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x30(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x2e(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movswl -0x52(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x2e(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x30(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x30(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x50(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x2e(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x2e(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d75c
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5d75c
movswl -0x2e(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movswl -0x2a(%rbp), %ecx
movswl -0x3a(%rbp), %esi
xorl %edx, %edx
subl %esi, %edx
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x5d6f7
movswl -0x2c(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x2c(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x52(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x2a(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x2a(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x2c(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x2c(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x2a(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x2a(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x50(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5d854
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d854
movswl -0x34(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x34(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x32(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x32(%rbp), %eax
movswl -0x3c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x52(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x36(%rbp), %eax
movswl -0x3a(%rbp), %ecx
addl %ecx, %eax
movswl -0x32(%rbp), %ecx
movswl -0x3a(%rbp), %esi
xorl %edx, %edx
subl %esi, %edx
addl %edx, %ecx
cmpl %ecx, %eax
jle 0x5d852
movswl -0x34(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movswl -0x50(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x4e(%rbp)
movswl -0x34(%rbp), %eax
movswl -0x3c(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x4a(%rbp)
movswl -0x32(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x4c(%rbp)
movswl -0x32(%rbp), %eax
movswl -0x3a(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, -0x48(%rbp)
movq -0x10(%rbp), %rsi
movb -0x24(%rbp), %al
leaq -0x4e(%rbp), %rdi
movzwl -0x22(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
jmp 0x5d854
leaq -0x3c(%rbp), %rdi
leaq -0x3e(%rbp), %rsi
callq 0x425b0
movswl -0x40(%rbp), %eax
movswl -0x42(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5d87a
leaq -0x42(%rbp), %rdi
leaq -0x44(%rbp), %rsi
callq 0x425b0
jmp 0x5cd24
testb $0x1, -0x1d(%rbp)
je 0x5e0d1
movw -0x3a(%rbp), %ax
movw %ax, -0x56(%rbp)
movswl -0x56(%rbp), %eax
movswl -0x54(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x74(%rbp)
movw -0x58(%rbp), %ax
movw %ax, -0x78(%rbp)
movw -0x54(%rbp), %ax
movw %ax, -0x76(%rbp)
movw $0x0, -0x7a(%rbp)
movswl -0x7a(%rbp), %eax
movswl -0x74(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5dbb1
movzbl -0x24(%rbp), %eax
movl %eax, -0x90(%rbp)
movw -0x74(%rbp), %cx
movw -0x7a(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x24(%rbp), %edx
callq 0x5a7e0
movb %al, %cl
movl -0x90(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movb %al, -0x7b(%rbp)
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5d998
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d998
movswl -0x38(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x38(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5da42
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5da42
movswl -0x30(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x30(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5daf4
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5daf4
movswl -0x2c(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x2c(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5db9e
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5db9e
movswl -0x34(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x34(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7b(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x5dba0
movw -0x7a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x7a(%rbp)
jmp 0x5d8b5
movswl -0x78(%rbp), %eax
movswl -0x76(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
jle 0x5dbd2
movswl -0x78(%rbp), %eax
movswl -0x76(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x94(%rbp)
jmp 0x5dbe6
movswl -0x78(%rbp), %ecx
movswl -0x76(%rbp), %eax
subl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movswl -0x74(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5dd63
movw -0x58(%rbp), %ax
movw %ax, -0x78(%rbp)
movw -0x58(%rbp), %ax
movw %ax, -0x76(%rbp)
movzbl -0x24(%rbp), %eax
sarl %eax
movb %al, -0x7c(%rbp)
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5dc61
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5dc61
movswl -0x38(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7c(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5dcb5
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5dcb5
movswl -0x30(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7c(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5dd0d
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5dd0d
movswl -0x2c(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7c(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5dd61
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5dd61
movswl -0x34(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7c(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x5dd63
movw -0x40(%rbp), %ax
movw %ax, -0x5c(%rbp)
movw -0x5e(%rbp), %ax
movw %ax, -0x78(%rbp)
movw -0x5a(%rbp), %ax
movw %ax, -0x76(%rbp)
movswl -0x5c(%rbp), %eax
movswl -0x5a(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x74(%rbp)
movw $0x0, -0x7a(%rbp)
movswl -0x7a(%rbp), %eax
movswl -0x74(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5e0cf
movw -0x74(%rbp), %cx
movw -0x7a(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x24(%rbp), %edx
callq 0x5a7e0
movb %al, -0x7d(%rbp)
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5de12
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5de12
movswl -0x38(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5de6f
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5de6f
movswl -0x30(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5ded0
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5ded0
movswl -0x2c(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5df2d
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5df2d
movswl -0x34(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x78(%rbp), %eax
subl $0x1, %eax
movswl -0x76(%rbp), %ecx
movswl -0x7a(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x5e0bc
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5df9f
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5df9f
movswl -0x38(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movswl -0x36(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5dffc
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5dffc
movswl -0x30(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movswl -0x2e(%rbp), %eax
movswl -0x76(%rbp), %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5e05d
movzbl -0x23(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5e05d
movswl -0x2c(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movswl -0x2a(%rbp), %eax
movswl -0x78(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzbl -0x23(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5e0ba
movzbl -0x23(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5e0ba
movswl -0x34(%rbp), %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movswl -0x32(%rbp), %eax
movswl -0x76(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x7a(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
movb -0x7d(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0xa(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x5e0bc
jmp 0x5e0be
movw -0x7a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x7a(%rbp)
jmp 0x5dd8f
jmp 0x5e0d1
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)