// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_draw/lv_draw_rect.c
// Function: lv_draw_rect_main_corner
static void lv_draw_rect_main_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_color_t mcolor = style->body.main_color;
    lv_color_t gcolor = style->body.grad_color;
    lv_color_t act_color;
    lv_opa_t opa = opa_scale == LV_OPA_COVER ? style->body.opa : (uint16_t)((uint16_t)style->body.opa * opa_scale) >> 8;
    uint8_t mix;
    lv_coord_t height = lv_area_get_height(coords);
    lv_coord_t width  = lv_area_get_width(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_area_t edge_top_area;
    lv_area_t mid_top_area;
    lv_area_t mid_bot_area;
    lv_area_t edge_bot_area;

    lv_point_t cir;
    lv_coord_t cir_tmp;
    lv_circ_init(&cir, &cir_tmp, radius);

    /*Init the areas*/
    lv_area_set(&mid_bot_area, lb_origo.x + LV_CIRC_OCT4_X(cir), lb_origo.y + LV_CIRC_OCT4_Y(cir),
                rb_origo.x + LV_CIRC_OCT1_X(cir), rb_origo.y + LV_CIRC_OCT1_Y(cir));

    lv_area_set(&edge_bot_area, lb_origo.x + LV_CIRC_OCT3_X(cir), lb_origo.y + LV_CIRC_OCT3_Y(cir),
                rb_origo.x + LV_CIRC_OCT2_X(cir), rb_origo.y + LV_CIRC_OCT2_Y(cir));

    lv_area_set(&mid_top_area, lt_origo.x + LV_CIRC_OCT5_X(cir), lt_origo.y + LV_CIRC_OCT5_Y(cir),
                rt_origo.x + LV_CIRC_OCT8_X(cir), rt_origo.y + LV_CIRC_OCT8_Y(cir));

    lv_area_set(&edge_top_area, lt_origo.x + LV_CIRC_OCT6_X(cir), lt_origo.y + LV_CIRC_OCT6_Y(cir),
                rt_origo.x + LV_CIRC_OCT7_X(cir), rt_origo.y + LV_CIRC_OCT7_Y(cir));
#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_color_t aa_color_hor_top;
    lv_color_t aa_color_hor_bottom;
    lv_color_t aa_color_ver;
#endif

    while(lv_circ_cont(&cir)) {
#if LV_ANTIALIAS
        if(aa) {
            /*New step in y on the outter circle*/
            if(out_x_last != cir.x) {
                out_y_seg_end       = cir.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;

                mix                 = (uint32_t)((uint32_t)(radius - out_x_last) * 255) / height;
                aa_color_hor_top    = lv_color_mix(gcolor, mcolor, mix);
                aa_color_hor_bottom = lv_color_mix(mcolor, gcolor, mix);

                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);
                    }

                    lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p) + i, rb_origo.y + LV_CIRC_OCT2_Y(aa_p) + 1, mask,
                               aa_color_hor_bottom, aa_opa);
                    lv_draw_px(lb_origo.x + LV_CIRC_OCT3_X(aa_p) - i, lb_origo.y + LV_CIRC_OCT3_Y(aa_p) + 1, mask,
                               aa_color_hor_bottom, 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,
                               aa_color_hor_top, aa_opa);
                    lv_draw_px(rt_origo.x + LV_CIRC_OCT7_X(aa_p) + i, rt_origo.y + LV_CIRC_OCT7_Y(aa_p) - 1, mask,
                               aa_color_hor_top, aa_opa);

                    mix          = (uint32_t)((uint32_t)(radius - out_y_seg_start + i) * 255) / height;
                    aa_color_ver = lv_color_mix(mcolor, gcolor, mix);
                    lv_draw_px(rb_origo.x + LV_CIRC_OCT1_X(aa_p) + 1, rb_origo.y + LV_CIRC_OCT1_Y(aa_p) + i, mask,
                               aa_color_ver, 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,
                               aa_color_ver, aa_opa);

                    aa_color_ver = lv_color_mix(gcolor, mcolor, mix);
                    lv_draw_px(lt_origo.x + LV_CIRC_OCT5_X(aa_p) - 1, lt_origo.y + LV_CIRC_OCT5_Y(aa_p) - i, mask,
                               aa_color_ver, 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,
                               aa_color_ver, aa_opa);
                }

                out_x_last      = cir.x;
                out_y_seg_start = out_y_seg_end;
            }
        }
#endif
        uint8_t edge_top_refr = 0;
        uint8_t mid_top_refr  = 0;
        uint8_t mid_bot_refr  = 0;
        uint8_t edge_bot_refr = 0;

        /* If a new row coming draw the previous
         * The y coordinate can remain the same so wait for a new*/
        if(mid_bot_area.y1 != LV_CIRC_OCT4_Y(cir) + lb_origo.y) mid_bot_refr = 1;

        if(edge_bot_area.y1 != LV_CIRC_OCT2_Y(cir) + lb_origo.y) edge_bot_refr = 1;

        if(mid_top_area.y1 != LV_CIRC_OCT8_Y(cir) + lt_origo.y) mid_top_refr = 1;

        if(edge_top_area.y1 != LV_CIRC_OCT7_Y(cir) + lt_origo.y) edge_top_refr = 1;

        /*Draw the areas which are not disabled*/
        if(edge_top_refr != 0) {
            if(mcolor.full == gcolor.full)
                act_color = mcolor;
            else {
                mix       = (uint32_t)((uint32_t)(coords->y2 - edge_top_area.y1) * 255) / height;
                act_color = lv_color_mix(mcolor, gcolor, mix);
            }
            lv_draw_fill(&edge_top_area, mask, act_color, opa);
        }

        if(mid_top_refr != 0) {
            if(mcolor.full == gcolor.full)
                act_color = mcolor;
            else {
                mix       = (uint32_t)((uint32_t)(coords->y2 - mid_top_area.y1) * 255) / height;
                act_color = lv_color_mix(mcolor, gcolor, mix);
            }
            lv_draw_fill(&mid_top_area, mask, act_color, opa);
        }

        if(mid_bot_refr != 0) {
            if(mcolor.full == gcolor.full)
                act_color = mcolor;
            else {
                mix       = (uint32_t)((uint32_t)(coords->y2 - mid_bot_area.y1) * 255) / height;
                act_color = lv_color_mix(mcolor, gcolor, mix);
            }
            lv_draw_fill(&mid_bot_area, mask, act_color, opa);
        }

        if(edge_bot_refr != 0) {

            if(mcolor.full == gcolor.full)
                act_color = mcolor;
            else {
                mix       = (uint32_t)((uint32_t)(coords->y2 - edge_bot_area.y1) * 255) / height;
                act_color = lv_color_mix(mcolor, gcolor, mix);
            }
            lv_draw_fill(&edge_bot_area, mask, act_color, opa);
        }

        /*Save the current coordinates*/
        lv_area_set(&mid_bot_area, lb_origo.x + LV_CIRC_OCT4_X(cir), lb_origo.y + LV_CIRC_OCT4_Y(cir),
                    rb_origo.x + LV_CIRC_OCT1_X(cir), rb_origo.y + LV_CIRC_OCT1_Y(cir));

        lv_area_set(&edge_bot_area, lb_origo.x + LV_CIRC_OCT3_X(cir), lb_origo.y + LV_CIRC_OCT3_Y(cir),
                    rb_origo.x + LV_CIRC_OCT2_X(cir), rb_origo.y + LV_CIRC_OCT2_Y(cir));

        lv_area_set(&mid_top_area, lt_origo.x + LV_CIRC_OCT5_X(cir), lt_origo.y + LV_CIRC_OCT5_Y(cir),
                    rt_origo.x + LV_CIRC_OCT8_X(cir), rt_origo.y + LV_CIRC_OCT8_Y(cir));

        lv_area_set(&edge_top_area, lt_origo.x + LV_CIRC_OCT6_X(cir), lt_origo.y + LV_CIRC_OCT6_Y(cir),
                    rt_origo.x + LV_CIRC_OCT7_X(cir), rt_origo.y + LV_CIRC_OCT7_Y(cir));

        lv_circ_next(&cir, &cir_tmp);
    }

    if(mcolor.full == gcolor.full)
        act_color = mcolor;
    else {
        mix       = (uint32_t)((uint32_t)(coords->y2 - edge_top_area.y1) * 255) / height;
        act_color = lv_color_mix(mcolor, gcolor, mix);
    }
    lv_draw_fill(&edge_top_area, mask, act_color, opa);

    if(edge_top_area.y1 != mid_top_area.y1) {

        if(mcolor.full == gcolor.full)
            act_color = mcolor;
        else {
            mix       = (uint32_t)((uint32_t)(coords->y2 - mid_top_area.y1) * 255) / height;
            act_color = lv_color_mix(mcolor, gcolor, mix);
        }
        lv_draw_fill(&mid_top_area, mask, act_color, opa);
    }

    if(mcolor.full == gcolor.full)
        act_color = mcolor;
    else {
        mix       = (uint32_t)((uint32_t)(coords->y2 - mid_bot_area.y1) * 255) / height;
        act_color = lv_color_mix(mcolor, gcolor, mix);
    }
    lv_draw_fill(&mid_bot_area, mask, act_color, opa);

    if(edge_bot_area.y1 != mid_bot_area.y1) {

        if(mcolor.full == gcolor.full)
            act_color = mcolor;
        else {
            mix       = (uint32_t)((uint32_t)(coords->y2 - edge_bot_area.y1) * 255) / height;
            act_color = lv_color_mix(mcolor, gcolor, mix);
        }
        lv_draw_fill(&edge_bot_area, mask, act_color, opa);
    }

#if LV_ANTIALIAS
    if(aa) {
        /*The first and the last line is not drawn*/
        edge_top_area.x1 = coords->x1 + radius + 2;
        edge_top_area.x2 = coords->x2 - radius - 2;
        edge_top_area.y1 = coords->y1;
        edge_top_area.y2 = coords->y1;
        lv_draw_fill(&edge_top_area, mask, style->body.main_color, opa);

        edge_top_area.y1 = coords->y2;
        edge_top_area.y2 = coords->y2;
        lv_draw_fill(&edge_top_area, mask, style->body.grad_color, opa);

        /*Last parts of the anti-alias*/
        out_y_seg_end       = cir.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;

        mix                 = (uint32_t)((uint32_t)(radius - out_x_last) * 255) / height;
        aa_color_hor_bottom = lv_color_mix(gcolor, mcolor, mix);
        aa_color_hor_top    = lv_color_mix(mcolor, gcolor, mix);

        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);
            lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p) + i, rb_origo.y + LV_CIRC_OCT2_Y(aa_p) + 1, mask,
                       aa_color_hor_top, aa_opa);
            lv_draw_px(lb_origo.x + LV_CIRC_OCT3_X(aa_p) - i, lb_origo.y + LV_CIRC_OCT3_Y(aa_p) + 1, mask,
                       aa_color_hor_top, 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,
                       aa_color_hor_bottom, aa_opa);
            lv_draw_px(rt_origo.x + LV_CIRC_OCT7_X(aa_p) + i, rt_origo.y + LV_CIRC_OCT7_Y(aa_p) - 1, mask,
                       aa_color_hor_bottom, aa_opa);

            mix          = (uint32_t)((uint32_t)(radius - out_y_seg_start + i) * 255) / height;
            aa_color_ver = lv_color_mix(mcolor, gcolor, mix);
            lv_draw_px(rb_origo.x + LV_CIRC_OCT1_X(aa_p) + 1, rb_origo.y + LV_CIRC_OCT1_Y(aa_p) + i, mask, aa_color_ver,
                       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, aa_color_ver,
                       aa_opa);

            aa_color_ver = lv_color_mix(gcolor, mcolor, mix);
            lv_draw_px(lt_origo.x + LV_CIRC_OCT5_X(aa_p) - 1, lt_origo.y + LV_CIRC_OCT5_Y(aa_p) - i, mask, aa_color_ver,
                       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, aa_color_ver,
                       aa_opa);
        }

        /*In some cases the last pixel 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;

            mix                 = (uint32_t)((uint32_t)(out_x_last)*255) / height;
            aa_color_hor_top    = lv_color_mix(gcolor, mcolor, mix);
            aa_color_hor_bottom = lv_color_mix(mcolor, gcolor, mix);

            lv_opa_t aa_opa = opa >> 1;
            lv_draw_px(rb_origo.x + LV_CIRC_OCT2_X(aa_p), rb_origo.y + LV_CIRC_OCT2_Y(aa_p), mask, aa_color_hor_bottom,
                       aa_opa);
            lv_draw_px(lb_origo.x + LV_CIRC_OCT4_X(aa_p), lb_origo.y + LV_CIRC_OCT4_Y(aa_p), mask, aa_color_hor_bottom,
                       aa_opa);
            lv_draw_px(lt_origo.x + LV_CIRC_OCT6_X(aa_p), lt_origo.y + LV_CIRC_OCT6_Y(aa_p), mask, aa_color_hor_top,
                       aa_opa);
            lv_draw_px(rt_origo.x + LV_CIRC_OCT8_X(aa_p), rt_origo.y + LV_CIRC_OCT8_Y(aa_p), mask, aa_color_hor_top,
                       aa_opa);
        }
    }
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %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 0x2(%rax), %ax
movw %ax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x22(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0xff, %eax
jne 0x5af8d
movq -0x18(%rbp), %rax
movzbl 0x8(%rax), %eax
movl %eax, -0xb0(%rbp)
jmp 0x5afab
movq -0x18(%rbp), %rax
movzbl 0x8(%rax), %eax
movzwl %ax, %eax
movzbl -0x19(%rbp), %ecx
imull %ecx, %eax
movzwl %ax, %eax
sarl $0x8, %eax
movl %eax, -0xb0(%rbp)
movl -0xb0(%rbp), %eax
movb %al, -0x25(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ab10
movw %ax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ab30
movw %ax, -0x2a(%rbp)
movw -0x1c(%rbp), %cx
movw -0x2a(%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, -0x2e(%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, -0x2c(%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, -0x32(%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, -0x30(%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, -0x36(%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, -0x34(%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, -0x3a(%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, -0x38(%rbp)
leaq -0x5e(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movswl -0x1c(%rbp), %edx
callq 0x42540
movswl -0x32(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x5c(%rbp), %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x3a(%rbp), %eax
movswl -0x5e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x38(%rbp), %eax
movswl -0x5c(%rbp), %edi
addl %edi, %eax
leaq -0x52(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movswl -0x32(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x5e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x3a(%rbp), %eax
movswl -0x5c(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x38(%rbp), %eax
movswl -0x5e(%rbp), %edi
addl %edi, %eax
leaq -0x5a(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movswl -0x2e(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x36(%rbp), %eax
movswl -0x5e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x34(%rbp), %eax
movswl -0x5c(%rbp), %r8d
xorl %edi, %edi
subl %r8d, %edi
addl %edi, %eax
leaq -0x4a(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movswl -0x2e(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x36(%rbp), %eax
movswl -0x5c(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x34(%rbp), %eax
movswl -0x5e(%rbp), %r8d
xorl %edi, %edi
subl %r8d, %edi
addl %edi, %eax
leaq -0x42(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movw $0x0, -0x62(%rbp)
movw $0x0, -0x64(%rbp)
movw -0x1c(%rbp), %ax
movw %ax, -0x66(%rbp)
leaq -0x5e(%rbp), %rdi
callq 0x42580
testb $0x1, %al
jne 0x5b246
jmp 0x5b9a9
testb $0x1, -0x1d(%rbp)
je 0x5b5e1
movswl -0x66(%rbp), %eax
movswl -0x5e(%rbp), %ecx
cmpl %ecx, %eax
je 0x5b5df
movw -0x5c(%rbp), %ax
movw %ax, -0x64(%rbp)
movswl -0x64(%rbp), %eax
movswl -0x62(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x6e(%rbp)
movw -0x66(%rbp), %ax
movw %ax, -0x72(%rbp)
movw -0x62(%rbp), %ax
movw %ax, -0x70(%rbp)
movzwl -0x1c(%rbp), %eax
movswl -0x66(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x22(%rbp), %cx
movzwl %cx, %edi
movzwl -0x20(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x74(%rbp)
movw -0x74(%rbp), %ax
movw %ax, -0x68(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x76(%rbp)
movw -0x76(%rbp), %ax
movw %ax, -0x6a(%rbp)
movw $0x0, -0x78(%rbp)
movswl -0x78(%rbp), %eax
movswl -0x6e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5b5cf
movswl -0x6e(%rbp), %eax
cmpl $0x1, %eax
jle 0x5b320
movw -0x6e(%rbp), %cx
movw -0x78(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x25(%rbp), %edx
callq 0x5e2c0
movb %al, -0x79(%rbp)
jmp 0x5b351
movzbl -0x25(%rbp), %eax
movl %eax, -0xb4(%rbp)
movw -0x6e(%rbp), %cx
movw -0x78(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x25(%rbp), %edx
callq 0x5a7e0
movb %al, %cl
movl -0xb4(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movb %al, -0x79(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x38(%rbp), %eax
movswl -0x72(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6a(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x32(%rbp), %eax
movswl -0x70(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x72(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6a(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x2e(%rbp), %eax
movswl -0x70(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x72(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x68(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x36(%rbp), %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x34(%rbp), %eax
movswl -0x72(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x68(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzwl -0x1c(%rbp), %eax
movswl -0x62(%rbp), %ecx
subl %ecx, %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x7c(%rbp)
movw -0x7c(%rbp), %ax
movw %ax, -0x6c(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x72(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x38(%rbp), %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x32(%rbp), %eax
movswl -0x72(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movb -0x26(%rbp), %al
movw -0x22(%rbp), %cx
movzwl %cx, %edi
movzwl -0x20(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x7e(%rbp)
movw -0x7e(%rbp), %ax
movw %ax, -0x6c(%rbp)
movswl -0x2e(%rbp), %eax
movswl -0x72(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x70(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
subl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x36(%rbp), %eax
movswl -0x72(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x34(%rbp), %eax
movswl -0x70(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x78(%rbp), %ecx
subl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x79(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movw -0x78(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x78(%rbp)
jmp 0x5b2eb
movw -0x5e(%rbp), %ax
movw %ax, -0x66(%rbp)
movw -0x64(%rbp), %ax
movw %ax, -0x62(%rbp)
jmp 0x5b5e1
movb $0x0, -0x7f(%rbp)
movb $0x0, -0x80(%rbp)
movb $0x0, -0x81(%rbp)
movb $0x0, -0x82(%rbp)
movswl -0x50(%rbp), %eax
movswl -0x5c(%rbp), %ecx
movswl -0x30(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x5b610
movb $0x1, -0x81(%rbp)
movswl -0x58(%rbp), %eax
movswl -0x5e(%rbp), %ecx
movswl -0x30(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x5b629
movb $0x1, -0x82(%rbp)
movswl -0x48(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
movswl -0x2c(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x5b643
movb $0x1, -0x80(%rbp)
movswl -0x40(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
movswl -0x2c(%rbp), %edx
addl %edx, %ecx
cmpl %ecx, %eax
je 0x5b65d
movb $0x1, -0x7f(%rbp)
movzbl -0x7f(%rbp), %eax
cmpl $0x0, %eax
je 0x5b6da
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5b67c
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5b6c3
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x40(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x84(%rbp)
movw -0x84(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x42(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x80(%rbp), %eax
cmpl $0x0, %eax
je 0x5b757
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5b6f9
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5b740
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x48(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x86(%rbp)
movw -0x86(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x4a(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x81(%rbp), %eax
cmpl $0x0, %eax
je 0x5b7d7
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5b779
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5b7c0
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x50(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x88(%rbp)
movw -0x88(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x52(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x82(%rbp), %eax
cmpl $0x0, %eax
je 0x5b857
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5b7f9
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5b840
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x58(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x8a(%rbp)
movw -0x8a(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x5a(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x32(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x5c(%rbp), %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x3a(%rbp), %eax
movswl -0x5e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x38(%rbp), %eax
movswl -0x5c(%rbp), %edi
addl %edi, %eax
leaq -0x52(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movswl -0x32(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x5e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x3a(%rbp), %eax
movswl -0x5c(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x38(%rbp), %eax
movswl -0x5e(%rbp), %edi
addl %edi, %eax
leaq -0x5a(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movswl -0x2e(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x36(%rbp), %eax
movswl -0x5e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x34(%rbp), %eax
movswl -0x5c(%rbp), %r8d
xorl %edi, %edi
subl %r8d, %edi
addl %edi, %eax
leaq -0x4a(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
movswl -0x2e(%rbp), %eax
movswl -0x5c(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x5e(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %dx
movswl -0x36(%rbp), %eax
movswl -0x5c(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movswl -0x34(%rbp), %eax
movswl -0x5e(%rbp), %r8d
xorl %edi, %edi
subl %r8d, %edi
addl %edi, %eax
leaq -0x42(%rbp), %rdi
movswl %si, %esi
movswl %dx, %edx
movswl %cx, %ecx
movswl %ax, %r8d
callq 0x42630
leaq -0x5e(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x425b0
jmp 0x5b234
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5b9bf
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5ba06
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x40(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x8c(%rbp)
movw -0x8c(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x42(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x40(%rbp), %eax
movswl -0x48(%rbp), %ecx
cmpl %ecx, %eax
je 0x5ba9d
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5ba3f
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5ba86
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x48(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x8e(%rbp)
movw -0x8e(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x4a(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5bab3
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5bafa
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x50(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x90(%rbp)
movw -0x90(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x52(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x58(%rbp), %eax
movswl -0x50(%rbp), %ecx
cmpl %ecx, %eax
je 0x5bb91
movzwl -0x20(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5bb33
movw -0x20(%rbp), %ax
movw %ax, -0x24(%rbp)
jmp 0x5bb7a
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x58(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x92(%rbp)
movw -0x92(%rbp), %ax
movw %ax, -0x24(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x5a(%rbp), %rdi
movzwl -0x24(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
testb $0x1, -0x1d(%rbp)
je 0x5c1f9
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
addl $0x2, %eax
movw %ax, -0x42(%rbp)
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
subl $0x2, %eax
movw %ax, -0x3e(%rbp)
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x3c(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rcx
movb -0x25(%rbp), %al
leaq -0x42(%rbp), %rdi
movzwl 0x2(%rcx), %edx
movzbl %al, %ecx
callq 0x58ea0
movq -0x8(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x3c(%rbp)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rcx
movb -0x25(%rbp), %al
leaq -0x42(%rbp), %rdi
movzwl 0x4(%rcx), %edx
movzbl %al, %ecx
callq 0x58ea0
movw -0x5c(%rbp), %ax
movw %ax, -0x64(%rbp)
movswl -0x64(%rbp), %eax
movswl -0x62(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x94(%rbp)
movw -0x66(%rbp), %ax
movw %ax, -0x98(%rbp)
movw -0x62(%rbp), %ax
movw %ax, -0x96(%rbp)
movzwl -0x1c(%rbp), %eax
movswl -0x66(%rbp), %ecx
subl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x22(%rbp), %cx
movzwl %cx, %edi
movzwl -0x20(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x9a(%rbp)
movw -0x9a(%rbp), %ax
movw %ax, -0x6a(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0x9c(%rbp)
movw -0x9c(%rbp), %ax
movw %ax, -0x68(%rbp)
movw $0x0, -0x9e(%rbp)
movswl -0x9e(%rbp), %eax
movswl -0x94(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5c010
movzbl -0x25(%rbp), %eax
movl %eax, -0xb8(%rbp)
movw -0x94(%rbp), %cx
movw -0x9e(%rbp), %ax
movswl %cx, %edi
movswl %ax, %esi
movzbl -0x25(%rbp), %edx
callq 0x5a7e0
movb %al, %cl
movl -0xb8(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movb %al, -0x9f(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x96(%rbp), %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x38(%rbp), %eax
movswl -0x98(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x68(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x32(%rbp), %eax
movswl -0x96(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x98(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x68(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x2e(%rbp), %eax
movswl -0x96(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x98(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6a(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x36(%rbp), %eax
movswl -0x96(%rbp), %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x34(%rbp), %eax
movswl -0x98(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6a(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movzwl -0x1c(%rbp), %eax
movswl -0x62(%rbp), %ecx
subl %ecx, %eax
movswl -0x9e(%rbp), %ecx
addl %ecx, %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0xa2(%rbp)
movw -0xa2(%rbp), %ax
movw %ax, -0x6c(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x98(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x38(%rbp), %eax
movswl -0x96(%rbp), %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x32(%rbp), %eax
movswl -0x98(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x96(%rbp), %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movb -0x26(%rbp), %al
movw -0x22(%rbp), %cx
movzwl %cx, %edi
movzwl -0x20(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0xa4(%rbp)
movw -0xa4(%rbp), %ax
movw %ax, -0x6c(%rbp)
movswl -0x2e(%rbp), %eax
movswl -0x98(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x96(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
subl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x36(%rbp), %eax
movswl -0x98(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x34(%rbp), %eax
movswl -0x96(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movswl -0x9e(%rbp), %ecx
subl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0x9f(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6c(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movw -0x9e(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x9e(%rbp)
jmp 0x5bccd
movswl -0x98(%rbp), %eax
movswl -0x96(%rbp), %ecx
subl %ecx, %eax
cmpl $0x0, %eax
jle 0x5c03d
movswl -0x98(%rbp), %eax
movswl -0x96(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0xbc(%rbp)
jmp 0x5c057
movswl -0x98(%rbp), %ecx
movswl -0x96(%rbp), %eax
subl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0xbc(%rbp)
movl -0xbc(%rbp), %eax
movswl -0x94(%rbp), %ecx
cmpl %ecx, %eax
jne 0x5c1f7
movw -0x66(%rbp), %ax
movw %ax, -0x98(%rbp)
movw -0x66(%rbp), %ax
movw %ax, -0x96(%rbp)
movswl -0x66(%rbp), %eax
imull $0xff, %eax, %eax
movswl -0x28(%rbp), %ecx
xorl %edx, %edx
divl %ecx
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
movw -0x22(%rbp), %cx
movzwl %cx, %edi
movzwl -0x20(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0xa6(%rbp)
movw -0xa6(%rbp), %ax
movw %ax, -0x68(%rbp)
movb -0x26(%rbp), %al
movw -0x20(%rbp), %cx
movzwl %cx, %edi
movzwl -0x22(%rbp), %esi
movzbl %al, %edx
callq 0x5e1a0
movw %ax, -0xa8(%rbp)
movw -0xa8(%rbp), %ax
movw %ax, -0x6a(%rbp)
movzbl -0x25(%rbp), %eax
sarl %eax
movb %al, -0xa9(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x96(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x38(%rbp), %eax
movswl -0x98(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0xa9(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6a(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x32(%rbp), %eax
movswl -0x98(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x30(%rbp), %eax
movswl -0x96(%rbp), %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0xa9(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x6a(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x2e(%rbp), %eax
movswl -0x96(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x2c(%rbp), %eax
movswl -0x98(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0xa9(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x68(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
movswl -0x36(%rbp), %eax
movswl -0x98(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x34(%rbp), %eax
movswl -0x96(%rbp), %edx
xorl %ecx, %ecx
subl %edx, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x10(%rbp), %rdx
movb -0xa9(%rbp), %al
movswl %si, %edi
movswl %cx, %esi
movzwl -0x68(%rbp), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x5c1f9
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)