// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_draw/lv_draw_line.c
// Function: line_draw_skew
static void line_draw_skew(line_draw_t * main_line, bool dir_ori, const lv_area_t * mask, const lv_style_t * style,
                           lv_opa_t opa_scale)
{

    lv_opa_t opa = opa_scale == LV_OPA_COVER ? style->line.opa : (uint16_t)((uint16_t)style->line.opa * opa_scale) >> 8;
#if LV_ANTIALIAS
    bool aa = lv_disp_get_antialiasing(lv_refr_get_disp_refreshing());
#endif
    lv_point_t vect_main, vect_norm;
    vect_main.x = main_line->p2.x - main_line->p1.x;
    vect_main.y = main_line->p2.y - main_line->p1.y;

    if(main_line->hor) {
        if(main_line->p1.y < main_line->p2.y + dir_ori) {
            vect_norm.x = -vect_main.y;
            vect_norm.y = vect_main.x;
        } else {
            vect_norm.x = vect_main.y;
            vect_norm.y = -vect_main.x;
        }
    } else {
        if(main_line->p1.x < main_line->p2.x + dir_ori) {
            vect_norm.x = vect_main.y;
            vect_norm.y = -vect_main.x;
        } else {
            vect_norm.x = -vect_main.y;
            vect_norm.y = vect_main.x;
        }
    }

    /* In case of a short but tick line the perpendicular ending is longer then the real line.
     * it would break the calculations so make the normal vector larger*/
    vect_norm.x = vect_norm.x << 4;
    vect_norm.y = vect_norm.y << 4;

    lv_coord_t width;
    width = style->line.width;

    /* The pattern stores the points of the line ending. It has the good direction and length.
     * The worth case is the 45° line where pattern can have 1.41 x `width` points*/

    lv_coord_t pattern_size = width * 2;
    lv_point_t * pattern = lv_draw_get_buf(pattern_size * sizeof(lv_point_t));
    lv_coord_t i = 0;

    /*Create a perpendicular pattern (a small line)*/
    if(width != 0) {
        line_draw_t pattern_line;
        lv_point_t p0 = {0, 0};
        line_init(&pattern_line, &p0, &vect_norm);

        uint32_t width_sqr = width * width;
        /* Run for a lot of times. Meanwhile the real width will be determined as well */
        for(i = 0; i < (lv_coord_t)pattern_size - 1; i++) {
            pattern[i].x = pattern_line.p_act.x;
            pattern[i].y = pattern_line.p_act.y;

            /*Finish the pattern line if it's length equal to the desired width (Use Pythagoras
             * theorem)*/
            uint32_t sqr = pattern_line.p_act.x * pattern_line.p_act.x + pattern_line.p_act.y * pattern_line.p_act.y;
            if(sqr >= width_sqr) {
                width = i;
#if LV_ANTIALIAS
                if(aa) width--;
#endif
                break;
            }

            line_next(&pattern_line);
        }
    }

#if LV_ANTIALIAS
    lv_coord_t aa_last_corner;
    lv_coord_t width_safe = width;
    if(aa) {
        if(width == 0) width_safe = 1;

        aa_last_corner = 0;
    }
#endif

    lv_coord_t x_center_ofs = 0;
    lv_coord_t y_center_ofs = 0;

    if(width != 0) {
        x_center_ofs = pattern[width - 1].x / 2;
        y_center_ofs = pattern[width - 1].y / 2;
    } else {
        if(main_line->hor && main_line->p1.y >= main_line->p2.y + dir_ori) pattern[0].y--;
        if(!main_line->hor && main_line->p1.x >= main_line->p2.x + dir_ori) pattern[0].x--;
    }

    /* Make the coordinates relative to the center */
    for(i = 0; i < width; i++) {
        pattern[i].x -= x_center_ofs;
        pattern[i].y -= y_center_ofs;
#if LV_ANTIALIAS
        if(aa) {
            if(i != 0) {
                if(main_line->hor) {
                    if(pattern[i - 1].x != pattern[i].x) {
                        lv_coord_t seg_w = pattern[i].y - pattern[aa_last_corner].y;
                        if(main_line->sy < 0) {
                            lv_draw_aa_ver_seg(main_line->p1.x + pattern[aa_last_corner].x - 1,
                                               main_line->p1.y + pattern[aa_last_corner].y + seg_w + 1, seg_w, mask,
                                               style->line.color, opa);

                            lv_draw_aa_ver_seg(main_line->p2.x + pattern[aa_last_corner].x + 1,
                                               main_line->p2.y + pattern[aa_last_corner].y + seg_w + 1, -seg_w, mask,
                                               style->line.color, opa);
                        } else {
                            lv_draw_aa_ver_seg(main_line->p1.x + pattern[aa_last_corner].x - 1,
                                               main_line->p1.y + pattern[aa_last_corner].y, seg_w, mask,
                                               style->line.color, opa);

                            lv_draw_aa_ver_seg(main_line->p2.x + pattern[aa_last_corner].x + 1,
                                               main_line->p2.y + pattern[aa_last_corner].y, -seg_w, mask,
                                               style->line.color, opa);
                        }
                        aa_last_corner = i;
                    }
                } else {
                    if(pattern[i - 1].y != pattern[i].y) {
                        lv_coord_t seg_w = pattern[i].x - pattern[aa_last_corner].x;
                        if(main_line->sx < 0) {
                            lv_draw_aa_hor_seg(main_line->p1.x + pattern[aa_last_corner].x + seg_w + 1,
                                               main_line->p1.y + pattern[aa_last_corner].y - 1, seg_w, mask,
                                               style->line.color, opa);

                            lv_draw_aa_hor_seg(main_line->p2.x + pattern[aa_last_corner].x + seg_w + 1,
                                               main_line->p2.y + pattern[aa_last_corner].y + 1, -seg_w, mask,
                                               style->line.color, opa);
                        } else {
                            lv_draw_aa_hor_seg(main_line->p1.x + pattern[aa_last_corner].x,
                                               main_line->p1.y + pattern[aa_last_corner].y - 1, seg_w, mask,
                                               style->line.color, opa);

                            lv_draw_aa_hor_seg(main_line->p2.x + pattern[aa_last_corner].x,
                                               main_line->p2.y + pattern[aa_last_corner].y + 1, -seg_w, mask,
                                               style->line.color, opa);
                        }
                        aa_last_corner = i;
                    }
                }
            }
        }
#endif
    }

#if LV_ANTIALIAS
    /*Add the last part of anti-aliasing for the perpendicular ending*/
    if(width != 0 && aa) { /*Due to rounding error with very thin lines it looks ugly*/
        if(main_line->hor) {
            lv_coord_t seg_w = pattern[width_safe - 1].y - pattern[aa_last_corner].y;
            if(main_line->sy < 0) {
                lv_draw_aa_ver_seg(main_line->p1.x + pattern[aa_last_corner].x - 1,
                                   main_line->p1.y + pattern[aa_last_corner].y + seg_w, seg_w + main_line->sy, mask,
                                   style->line.color, opa);

                lv_draw_aa_ver_seg(main_line->p2.x + pattern[aa_last_corner].x + 1,
                                   main_line->p2.y + pattern[aa_last_corner].y + seg_w, -(seg_w + main_line->sy), mask,
                                   style->line.color, opa);

            } else {
                lv_draw_aa_ver_seg(main_line->p1.x + pattern[aa_last_corner].x - 1,
                                   main_line->p1.y + pattern[aa_last_corner].y, seg_w + main_line->sy, mask,
                                   style->line.color, opa);

                lv_draw_aa_ver_seg(main_line->p2.x + pattern[aa_last_corner].x + 1,
                                   main_line->p2.y + pattern[aa_last_corner].y, -(seg_w + main_line->sy), mask,
                                   style->line.color, opa);
            }
        } else {
            lv_coord_t seg_w = pattern[width_safe - 1].x - pattern[aa_last_corner].x;
            if(main_line->sx < 0) {
                lv_draw_aa_hor_seg(main_line->p1.x + pattern[aa_last_corner].x + seg_w,
                                   main_line->p1.y + pattern[aa_last_corner].y - 1, seg_w + main_line->sx, mask,
                                   style->line.color, opa);

                lv_draw_aa_hor_seg(main_line->p2.x + pattern[aa_last_corner].x + seg_w,
                                   main_line->p2.y + pattern[aa_last_corner].y + 1, -(seg_w + main_line->sx), mask,
                                   style->line.color, opa);

            } else {
                lv_draw_aa_hor_seg(main_line->p1.x + pattern[aa_last_corner].x,
                                   main_line->p1.y + pattern[aa_last_corner].y - 1, seg_w + main_line->sx, mask,
                                   style->line.color, opa);

                lv_draw_aa_hor_seg(main_line->p2.x + pattern[aa_last_corner].x,
                                   main_line->p2.y + pattern[aa_last_corner].y + 1, -(seg_w + main_line->sx), mask,
                                   style->line.color, opa);
            }
        }
    }
#endif

#if LV_ANTIALIAS

    /*Shift the anti aliasing on the edges (-1, 1 or 0 (zero only in case width == 0))*/
    lv_coord_t aa_shift1 = 0;
    lv_coord_t aa_shift2 = 0;
    if(aa) {
        if(main_line->hor == false) {
            if(main_line->sx < 0) {
                aa_shift1 = -1;
                aa_shift2 = width == 0 ? 0 : aa_shift1;
            } else {
                aa_shift2 = 1;
                aa_shift1 = width == 0 ? 0 : aa_shift2;
            }
        } else {
            if(main_line->sy < 0) {
                aa_shift1 = -1;
                aa_shift2 = width == 0 ? 0 : aa_shift1;
            } else {
                aa_shift2 = 1;
                aa_shift1 = width == 0 ? 0 : aa_shift2;
            }
        }
    }
#endif

    volatile lv_point_t prev_p;
    prev_p.x = main_line->p1.x;
    prev_p.y = main_line->p1.y;
    lv_area_t draw_area;
    bool first_run = true;

    if(main_line->hor) {
        while(line_next_y(main_line)) {
            for(i = 0; i < width; i++) {
                draw_area.x1 = prev_p.x + pattern[i].x;
                draw_area.y1 = prev_p.y + pattern[i].y;
                draw_area.x2 = draw_area.x1 + main_line->p_act.x - prev_p.x - 1;
                draw_area.y2 = draw_area.y1;
                lv_draw_fill(&draw_area, mask, style->line.color, opa);

                /* Fill the gaps
                 * When stepping in y one pixel remains empty on every corner (don't do this on the
                 * first segment ) */
                if(i != 0 && pattern[i].x != pattern[i - 1].x && !first_run) {
                    lv_draw_px(draw_area.x1, draw_area.y1 - main_line->sy, mask, style->line.color, opa);
                }
            }

#if LV_ANTIALIAS
            if(aa) {
                lv_draw_aa_hor_seg(prev_p.x + pattern[0].x, prev_p.y + pattern[0].y - aa_shift1,
                                   -(main_line->p_act.x - prev_p.x), mask, style->line.color, opa);
                lv_draw_aa_hor_seg(prev_p.x + pattern[width_safe - 1].x,
                                   prev_p.y + pattern[width_safe - 1].y + aa_shift2, main_line->p_act.x - prev_p.x,
                                   mask, style->line.color, opa);
            }
#endif

            first_run = false;

            prev_p.x = main_line->p_act.x;
            prev_p.y = main_line->p_act.y;
        }

        for(i = 0; i < width; i++) {
            draw_area.x1 = prev_p.x + pattern[i].x;
            draw_area.y1 = prev_p.y + pattern[i].y;
            draw_area.x2 = draw_area.x1 + main_line->p_act.x - prev_p.x;
            draw_area.y2 = draw_area.y1;
            lv_draw_fill(&draw_area, mask, style->line.color, opa);

            /* Fill the gaps
             * When stepping in y one pixel remains empty on every corner */
            if(i != 0 && pattern[i].x != pattern[i - 1].x && !first_run) {
                lv_draw_px(draw_area.x1, draw_area.y1 - main_line->sy, mask, style->line.color, opa);
            }
        }

#if LV_ANTIALIAS
        if(aa) {
            lv_draw_aa_hor_seg(prev_p.x + pattern[0].x, prev_p.y + pattern[0].y - aa_shift1,
                               -(main_line->p_act.x - prev_p.x + 1), mask, style->line.color, opa);
            lv_draw_aa_hor_seg(prev_p.x + pattern[width_safe - 1].x, prev_p.y + pattern[width_safe - 1].y + aa_shift2,
                               main_line->p_act.x - prev_p.x + 1, mask, style->line.color, opa);
        }
#endif
    }
    /*Rather a vertical line*/
    else {

        while(line_next_x(main_line)) {
            for(i = 0; i < width; i++) {
                draw_area.x1 = prev_p.x + pattern[i].x;
                draw_area.y1 = prev_p.y + pattern[i].y;
                draw_area.x2 = draw_area.x1;
                draw_area.y2 = draw_area.y1 + main_line->p_act.y - prev_p.y - 1;

                lv_draw_fill(&draw_area, mask, style->line.color, opa);

                /* Fill the gaps
                 * When stepping in x one pixel remains empty on every corner (don't do this on the
                 * first segment ) */
                if(i != 0 && pattern[i].y != pattern[i - 1].y && !first_run) {
                    lv_draw_px(draw_area.x1 - main_line->sx, draw_area.y1, mask, style->line.color, opa);
                }
            }

#if LV_ANTIALIAS
            if(aa) {
                lv_draw_aa_ver_seg(prev_p.x + pattern[0].x - aa_shift1, prev_p.y + pattern[0].y,
                                   -(main_line->p_act.y - prev_p.y), mask, style->line.color, opa);
                lv_draw_aa_ver_seg(prev_p.x + pattern[width_safe - 1].x + aa_shift2,
                                   prev_p.y + pattern[width_safe - 1].y, main_line->p_act.y - prev_p.y, mask,
                                   style->line.color, opa);
            }
#endif

            first_run = false;

            prev_p.x = main_line->p_act.x;
            prev_p.y = main_line->p_act.y;
        }

        /*Draw the last part*/
        for(i = 0; i < width; i++) {
            draw_area.x1 = prev_p.x + pattern[i].x;
            draw_area.y1 = prev_p.y + pattern[i].y;
            draw_area.x2 = draw_area.x1;
            draw_area.y2 = draw_area.y1 + main_line->p_act.y - prev_p.y;

            lv_draw_fill(&draw_area, mask, style->line.color, opa);

            /* Fill the gaps
             * When stepping in x one pixel remains empty on every corner */
            if(i != 0 && pattern[i].y != pattern[i - 1].y && !first_run) {
                lv_draw_px(draw_area.x1 - main_line->sx, draw_area.y1, mask, style->line.color, opa);
            }
        }

#if LV_ANTIALIAS
        if(aa) {
            lv_draw_aa_ver_seg(prev_p.x + pattern[0].x - aa_shift1, prev_p.y + pattern[0].y,
                               -(main_line->p_act.y - prev_p.y + 1), mask, style->line.color, opa);
            lv_draw_aa_ver_seg(prev_p.x + pattern[width_safe - 1].x + aa_shift2, prev_p.y + pattern[width_safe - 1].y,
                               main_line->p_act.y - prev_p.y + 1, mask, style->line.color, opa);
        }
#endif
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movb %r8b, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %sil
movb %sil, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %eax
cmpl $0xff, %eax
jne 0x606e0
movq -0x20(%rbp), %rax
movzbl 0x40(%rax), %eax
movl %eax, -0x88(%rbp)
jmp 0x606fe
movq -0x20(%rbp), %rax
movzbl 0x40(%rax), %eax
movzwl %ax, %eax
movzbl -0x21(%rbp), %ecx
imull %ecx, %eax
movzwl %ax, %eax
sarl $0x8, %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
movb %al, -0x22(%rbp)
callq 0xafe0
movq %rax, %rdi
callq 0xdb00
andb $0x1, %al
movb %al, -0x23(%rbp)
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x8(%rbp), %rcx
movswl (%rcx), %ecx
subl %ecx, %eax
movw %ax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x2(%rcx), %ecx
subl %ecx, %eax
movw %ax, -0x26(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x60799
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x6(%rcx), %ecx
movb -0x9(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
addl %edx, %ecx
cmpl %ecx, %eax
jge 0x60783
movswl -0x26(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x2c(%rbp)
movw -0x28(%rbp), %ax
movw %ax, -0x2a(%rbp)
jmp 0x60797
movw -0x26(%rbp), %ax
movw %ax, -0x2c(%rbp)
movswl -0x28(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
jmp 0x607e3
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x4(%rcx), %ecx
movb -0x9(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
addl %edx, %ecx
cmpl %ecx, %eax
jge 0x607cd
movw -0x26(%rbp), %ax
movw %ax, -0x2c(%rbp)
movswl -0x28(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
jmp 0x607e1
movswl -0x26(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x2c(%rbp)
movw -0x28(%rbp), %ax
movw %ax, -0x2a(%rbp)
jmp 0x607e3
movswl -0x2c(%rbp), %eax
shll $0x4, %eax
movw %ax, -0x2c(%rbp)
movswl -0x2a(%rbp), %eax
shll $0x4, %eax
movw %ax, -0x2a(%rbp)
movq -0x20(%rbp), %rax
movw 0x3e(%rax), %ax
movw %ax, -0x2e(%rbp)
movswl -0x2e(%rbp), %eax
shll %eax
movw %ax, -0x30(%rbp)
movswq -0x30(%rbp), %rax
shlq $0x2, %rax
movl %eax, %edi
callq 0x5a6a0
movq %rax, -0x38(%rbp)
movw $0x0, -0x3a(%rbp)
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
je 0x608f8
leaq -0x58(%rbp), %rdi
xorl %esi, %esi
movl $0x4, %edx
callq 0x2090
leaq -0x54(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0x2c(%rbp), %rdx
callq 0x601d0
movswl -0x2e(%rbp), %eax
movswl -0x2e(%rbp), %ecx
imull %ecx, %eax
movl %eax, -0x5c(%rbp)
movw $0x0, -0x3a(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x608f6
movw -0x4c(%rbp), %dx
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movw %dx, (%rax,%rcx,4)
movw -0x4a(%rbp), %dx
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movw %dx, 0x2(%rax,%rcx,4)
movswl -0x4c(%rbp), %eax
movswl -0x4c(%rbp), %ecx
imull %ecx, %eax
movswl -0x4a(%rbp), %ecx
movswl -0x4a(%rbp), %edx
imull %edx, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x60(%rbp), %eax
cmpl -0x5c(%rbp), %eax
jb 0x608dc
movw -0x3a(%rbp), %ax
movw %ax, -0x2e(%rbp)
testb $0x1, -0x23(%rbp)
je 0x608da
movw -0x2e(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x2e(%rbp)
jmp 0x608f6
leaq -0x54(%rbp), %rdi
callq 0x61bd0
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x6086b
jmp 0x608f8
movw -0x2e(%rbp), %ax
movw %ax, -0x64(%rbp)
testb $0x1, -0x23(%rbp)
je 0x6091b
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
jne 0x60915
movw $0x1, -0x64(%rbp)
movw $0x0, -0x62(%rbp)
movw $0x0, -0x66(%rbp)
movw $0x0, -0x68(%rbp)
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
je 0x6096f
movq -0x38(%rbp), %rax
movswl -0x2e(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl (%rax,%rcx,4), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movw %ax, -0x66(%rbp)
movq -0x38(%rbp), %rax
movswl -0x2e(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl 0x2(%rax,%rcx,4), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movw %ax, -0x68(%rbp)
jmp 0x609e0
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x609a8
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x6(%rcx), %ecx
movb -0x9(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
addl %edx, %ecx
cmpl %ecx, %eax
jl 0x609a8
movq -0x38(%rbp), %rax
movw 0x2(%rax), %cx
addw $-0x1, %cx
movw %cx, 0x2(%rax)
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
jne 0x609de
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x4(%rcx), %ecx
movb -0x9(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
addl %edx, %ecx
cmpl %ecx, %eax
jl 0x609de
movq -0x38(%rbp), %rax
movw (%rax), %cx
addw $-0x1, %cx
movw %cx, (%rax)
jmp 0x609e0
movw $0x0, -0x3a(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x2e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x60e63
movswl -0x66(%rbp), %esi
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl (%rax,%rcx,4), %edx
subl %esi, %edx
movw %dx, (%rax,%rcx,4)
movswl -0x68(%rbp), %esi
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl 0x2(%rax,%rcx,4), %edx
subl %esi, %edx
movw %dx, 0x2(%rax,%rcx,4)
testb $0x1, -0x23(%rbp)
je 0x60e50
movswl -0x3a(%rbp), %eax
cmpl $0x0, %eax
je 0x60e4e
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x60c4d
movq -0x38(%rbp), %rax
movswl -0x3a(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl (%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
cmpl %ecx, %eax
je 0x60c48
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl 0x2(%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
subl %ecx, %eax
movw %ax, -0x6a(%rbp)
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
cmpl $0x0, %eax
jge 0x60b7e
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x6a(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movw -0x6a(%rbp), %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x6a(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x6a(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
jmp 0x60c40
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %si
movw -0x6a(%rbp), %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x6a(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movw -0x3a(%rbp), %ax
movw %ax, -0x62(%rbp)
jmp 0x60e4c
movq -0x38(%rbp), %rax
movswl -0x3a(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl 0x2(%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
cmpl %ecx, %eax
je 0x60e4a
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl (%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
subl %ecx, %eax
movw %ax, -0x6c(%rbp)
movq -0x8(%rbp), %rax
movswl 0xe(%rax), %eax
cmpl $0x0, %eax
jge 0x60d80
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x6c(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movw -0x6c(%rbp), %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x6c(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x6c(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
jmp 0x60e42
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movw -0x6c(%rbp), %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x6c(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movw -0x3a(%rbp), %ax
movw %ax, -0x62(%rbp)
jmp 0x60e4c
jmp 0x60e4e
jmp 0x60e50
jmp 0x60e52
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x609e6
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
je 0x61285
testb $0x1, -0x23(%rbp)
je 0x61285
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x61088
movq -0x38(%rbp), %rax
movswl -0x64(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl 0x2(%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
subl %ecx, %eax
movw %ax, -0x6e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
cmpl $0x0, %eax
jge 0x60faa
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x6e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x6e(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x12(%rcx), %ecx
addl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x6e(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x6e(%rbp), %ecx
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
addl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
jmp 0x61083
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x6e(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x12(%rcx), %ecx
addl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %si
movswl -0x6e(%rbp), %ecx
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
addl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
jmp 0x61283
movq -0x38(%rbp), %rax
movswl -0x64(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movswl (%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
subl %ecx, %eax
movw %ax, -0x70(%rbp)
movq -0x8(%rbp), %rax
movswl 0xe(%rax), %eax
cmpl $0x0, %eax
jge 0x611a8
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movswl -0x70(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0xe(%rcx), %ecx
addl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x70(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x70(%rbp), %ecx
movq -0x8(%rbp), %rax
movswl 0xe(%rax), %eax
addl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
jmp 0x61281
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %si
movswl -0x70(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0xe(%rcx), %ecx
addl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %di
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x38(%rbp), %rcx
movswq -0x62(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
addl $0x1, %eax
movw %ax, %si
movswl -0x70(%rbp), %ecx
movq -0x8(%rbp), %rax
movswl 0xe(%rax), %eax
addl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
jmp 0x61283
jmp 0x61285
movw $0x0, -0x72(%rbp)
movw $0x0, -0x74(%rbp)
testb $0x1, -0x23(%rbp)
je 0x61384
movq -0x8(%rbp), %rax
movb 0x18(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x61317
movq -0x8(%rbp), %rax
movswl 0xe(%rax), %eax
cmpl $0x0, %eax
jge 0x612e8
movw $0xffff, -0x72(%rbp)    # imm = 0xFFFF
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
jne 0x612d2
xorl %eax, %eax
movl %eax, -0x8c(%rbp)
jmp 0x612dc
movswl -0x72(%rbp), %eax
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movw %ax, -0x74(%rbp)
jmp 0x61315
movw $0x1, -0x74(%rbp)
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
jne 0x61301
xorl %eax, %eax
movl %eax, -0x90(%rbp)
jmp 0x6130b
movswl -0x74(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
movw %ax, -0x72(%rbp)
jmp 0x61382
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
cmpl $0x0, %eax
jge 0x61353
movw $0xffff, -0x72(%rbp)    # imm = 0xFFFF
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
jne 0x6133d
xorl %eax, %eax
movl %eax, -0x94(%rbp)
jmp 0x61347
movswl -0x72(%rbp), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movw %ax, -0x74(%rbp)
jmp 0x61380
movw $0x1, -0x74(%rbp)
movswl -0x2e(%rbp), %eax
cmpl $0x0, %eax
jne 0x6136c
xorl %eax, %eax
movl %eax, -0x98(%rbp)
jmp 0x61376
movswl -0x74(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %eax
movw %ax, -0x72(%rbp)
jmp 0x61382
jmp 0x61384
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x78(%rbp)
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x76(%rbp)
movb $0x1, -0x81(%rbp)
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x617b6
jmp 0x613b2
movq -0x8(%rbp), %rdi
callq 0x61cb0
testb $0x1, %al
jne 0x613c4
jmp 0x615cb
movw $0x0, -0x3a(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x2e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x614c7
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x80(%rbp)
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x7e(%rbp)
movswl -0x80(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x8(%rcx), %ecx
addl %ecx, %eax
movw -0x78(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
subl $0x1, %eax
movw %ax, -0x7c(%rbp)
movw -0x7e(%rbp), %ax
movw %ax, -0x7a(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
leaq -0x80(%rbp), %rdi
movzwl 0x3c(%rcx), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x3a(%rbp), %eax
cmpl $0x0, %eax
je 0x614b4
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl (%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswl -0x3a(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl (%rcx,%rdx,4), %ecx
cmpl %ecx, %eax
je 0x614b4
testb $0x1, -0x81(%rbp)
jne 0x614b4
movw -0x80(%rbp), %di
movswl -0x7e(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x12(%rcx), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0x3c(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x614b6
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x613ca
testb $0x1, -0x23(%rbp)
je 0x615a7
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl (%rcx), %ecx
addl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl 0x2(%rcx), %ecx
addl %ecx, %eax
movswl -0x72(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %ecx
movw -0x78(%rbp), %ax
cwtl
subl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x74(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %eax
movw -0x78(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movb $0x0, -0x81(%rbp)
movq -0x8(%rbp), %rax
movw 0x8(%rax), %ax
movw %ax, -0x78(%rbp)
movq -0x8(%rbp), %rax
movw 0xa(%rax), %ax
movw %ax, -0x76(%rbp)
jmp 0x613b2
movw $0x0, -0x3a(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x2e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x616cb
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x80(%rbp)
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x7e(%rbp)
movswl -0x80(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x8(%rcx), %ecx
addl %ecx, %eax
movw -0x78(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
movw %ax, -0x7c(%rbp)
movw -0x7e(%rbp), %ax
movw %ax, -0x7a(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
leaq -0x80(%rbp), %rdi
movzwl 0x3c(%rcx), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x3a(%rbp), %eax
cmpl $0x0, %eax
je 0x616b8
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl (%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswl -0x3a(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl (%rcx,%rdx,4), %ecx
cmpl %ecx, %eax
je 0x616b8
testb $0x1, -0x81(%rbp)
jne 0x616b8
movw -0x80(%rbp), %di
movswl -0x7e(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x12(%rcx), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0x3c(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x616ba
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x615d1
testb $0x1, -0x23(%rbp)
je 0x617b1
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl (%rcx), %ecx
addl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl 0x2(%rcx), %ecx
addl %ecx, %eax
movswl -0x72(%rbp), %ecx
subl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %ecx
movw -0x78(%rbp), %ax
cwtl
subl %eax, %ecx
addl $0x1, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x74(%rbp), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0x8(%rax), %eax
movw -0x78(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
addl $0x1, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a920
jmp 0x61bbd
jmp 0x617b8
movq -0x8(%rbp), %rdi
callq 0x61d00
testb $0x1, %al
jne 0x617ca
jmp 0x619d3
movw $0x0, -0x3a(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x2e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x618cf
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x80(%rbp)
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x7e(%rbp)
movw -0x80(%rbp), %ax
movw %ax, -0x7c(%rbp)
movswl -0x7e(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0xa(%rcx), %ecx
addl %ecx, %eax
movw -0x76(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
subl $0x1, %eax
movw %ax, -0x7a(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
leaq -0x80(%rbp), %rdi
movzwl 0x3c(%rcx), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x3a(%rbp), %eax
cmpl $0x0, %eax
je 0x618bc
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl 0x2(%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswl -0x3a(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
cmpl %ecx, %eax
je 0x618bc
testb $0x1, -0x81(%rbp)
jne 0x618bc
movswl -0x80(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0xe(%rcx), %ecx
subl %ecx, %eax
movw %ax, %di
movw -0x7e(%rbp), %si
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0x3c(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x618be
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x617d0
testb $0x1, -0x23(%rbp)
je 0x619af
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl (%rcx), %ecx
addl %ecx, %eax
movswl -0x72(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl 0x2(%rcx), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0xa(%rax), %ecx
movw -0x76(%rbp), %ax
cwtl
subl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x74(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0xa(%rax), %eax
movw -0x76(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movb $0x0, -0x81(%rbp)
movq -0x8(%rbp), %rax
movw 0x8(%rax), %ax
movw %ax, -0x78(%rbp)
movq -0x8(%rbp), %rax
movw 0xa(%rax), %ax
movw %ax, -0x76(%rbp)
jmp 0x617b8
movw $0x0, -0x3a(%rbp)
movswl -0x3a(%rbp), %eax
movswl -0x2e(%rbp), %ecx
cmpl %ecx, %eax
jge 0x61ad5
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x80(%rbp)
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswq -0x3a(%rbp), %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, -0x7e(%rbp)
movw -0x80(%rbp), %ax
movw %ax, -0x7c(%rbp)
movswl -0x7e(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0xa(%rcx), %ecx
addl %ecx, %eax
movw -0x76(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
movw %ax, -0x7a(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
leaq -0x80(%rbp), %rdi
movzwl 0x3c(%rcx), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x3a(%rbp), %eax
cmpl $0x0, %eax
je 0x61ac2
movq -0x38(%rbp), %rax
movswq -0x3a(%rbp), %rcx
movswl 0x2(%rax,%rcx,4), %eax
movq -0x38(%rbp), %rcx
movswl -0x3a(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
cmpl %ecx, %eax
je 0x61ac2
testb $0x1, -0x81(%rbp)
jne 0x61ac2
movswl -0x80(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0xe(%rcx), %ecx
subl %ecx, %eax
movw %ax, %di
movw -0x7e(%rbp), %si
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movzwl 0x3c(%rcx), %ecx
movzbl %al, %r8d
callq 0x58ba0
jmp 0x61ac4
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x619d9
testb $0x1, -0x23(%rbp)
je 0x61bbb
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl (%rcx), %ecx
addl %ecx, %eax
movswl -0x72(%rbp), %ecx
subl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl 0x2(%rcx), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0xa(%rax), %ecx
movw -0x76(%rbp), %ax
cwtl
subl %eax, %ecx
addl $0x1, %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
movw -0x78(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl (%rcx,%rdx,4), %ecx
addl %ecx, %eax
movswl -0x74(%rbp), %ecx
addl %ecx, %eax
movw %ax, %di
movw -0x76(%rbp), %ax
cwtl
movq -0x38(%rbp), %rcx
movswl -0x64(%rbp), %edx
subl $0x1, %edx
movslq %edx, %rdx
movswl 0x2(%rcx,%rdx,4), %ecx
addl %ecx, %eax
movw %ax, %si
movq -0x8(%rbp), %rax
movswl 0xa(%rax), %eax
movw -0x76(%rbp), %cx
movswl %cx, %ecx
subl %ecx, %eax
addl $0x1, %eax
movw %ax, %dx
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %r8
movb -0x22(%rbp), %al
movswl %di, %edi
movswl %si, %esi
movswl %dx, %edx
movzwl 0x3c(%r8), %r8d
movzbl %al, %r9d
callq 0x5a860
jmp 0x61bbd
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)