// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_draw/lv_draw_rect.c
// Function: lv_draw_rect_border_straight
static void lv_draw_rect_border_straight(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 width  = lv_area_get_width(coords);
    lv_coord_t height = lv_area_get_height(coords);
    lv_coord_t bwidth = style->body.border.width;
    lv_opa_t opa      = opa_scale == LV_OPA_COVER ? style->body.border.opa
                                             : (uint16_t)((uint16_t)style->body.border.opa * opa_scale) >> 8;
    lv_border_part_t part = style->body.border.part;
    lv_color_t color      = style->body.border.color;
    lv_area_t work_area;
    lv_coord_t length_corr = 0;
    lv_coord_t corner_size = 0;

    /*the 0 px border width drawn as 1 px, so decrement the b_width*/
    bwidth--;

    radius = lv_draw_cont_radius_corr(radius, width, height);

    if(radius < bwidth) {
        length_corr = bwidth - radius - aa;
        corner_size = bwidth;
    } else {
        corner_size = radius + aa;
    }

    /*If radius == 0 is a special case*/
    if(style->body.radius == 0) {
        /*Left top corner*/
        if(part & LV_BORDER_TOP) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y1;
            work_area.y2 = coords->y1 + bwidth;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Right top corner*/
        if(part & LV_BORDER_RIGHT) {
            work_area.x1 = coords->x2 - bwidth;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y1 + (part & LV_BORDER_TOP ? bwidth + 1 : 0);
            work_area.y2 = coords->y2 - (part & LV_BORDER_BOTTOM ? bwidth + 1 : 0);
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Left bottom corner*/
        if(part & LV_BORDER_LEFT) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x1 + bwidth;
            work_area.y1 = coords->y1 + (part & LV_BORDER_TOP ? bwidth + 1 : 0);
            work_area.y2 = coords->y2 - (part & LV_BORDER_BOTTOM ? bwidth + 1 : 0);
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Right bottom corner*/
        if(part & LV_BORDER_BOTTOM) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y2 - bwidth;
            work_area.y2 = coords->y2;
            lv_draw_fill(&work_area, mask, color, opa);
        }
        return;
    }

    /* Modify the corner_size if corner is drawn */
    corner_size++;

    /*Depending one which part's are drawn modify the area lengths */
    if(part & LV_BORDER_TOP)
        work_area.y1 = coords->y1 + corner_size;
    else
        work_area.y1 = coords->y1 + radius;

    if(part & LV_BORDER_BOTTOM)
        work_area.y2 = coords->y2 - corner_size;
    else
        work_area.y2 = coords->y2 - radius;

    /*Left border*/
    if(part & LV_BORDER_LEFT) {
        work_area.x1 = coords->x1;
        work_area.x2 = work_area.x1 + bwidth;
        lv_draw_fill(&work_area, mask, color, opa);
    }

    /*Right border*/
    if(part & LV_BORDER_RIGHT) {
        work_area.x2 = coords->x2;
        work_area.x1 = work_area.x2 - bwidth;
        lv_draw_fill(&work_area, mask, color, opa);
    }

    work_area.x1 = coords->x1 + corner_size - length_corr;
    work_area.x2 = coords->x2 - corner_size + length_corr;

    /*Upper border*/
    if(part & LV_BORDER_TOP) {
        work_area.y1 = coords->y1;
        work_area.y2 = coords->y1 + bwidth;
        lv_draw_fill(&work_area, mask, color, opa);
    }

    /*Lower border*/
    if(part & LV_BORDER_BOTTOM) {
        work_area.y2 = coords->y2;
        work_area.y1 = work_area.y2 - bwidth;
        lv_draw_fill(&work_area, mask, color, opa);
    }

    /*Draw the a remaining rectangles if the radius is smaller then bwidth */
    if(length_corr != 0) {
        /*Left top correction*/
        if((part & LV_BORDER_TOP) && (part & LV_BORDER_LEFT)) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x1 + radius + aa;
            work_area.y1 = coords->y1 + radius + 1 + aa;
            work_area.y2 = coords->y1 + bwidth;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Right top correction*/
        if((part & LV_BORDER_TOP) && (part & LV_BORDER_RIGHT)) {
            work_area.x1 = coords->x2 - radius - aa;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y1 + radius + 1 + aa;
            work_area.y2 = coords->y1 + bwidth;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Left bottom correction*/
        if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_LEFT)) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x1 + radius + aa;
            work_area.y1 = coords->y2 - bwidth;
            work_area.y2 = coords->y2 - radius - 1 - aa;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Right bottom correction*/
        if((part & LV_BORDER_BOTTOM) && (part & LV_BORDER_RIGHT)) {
            work_area.x1 = coords->x2 - radius - aa;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y2 - bwidth;
            work_area.y2 = coords->y2 - radius - 1 - aa;
            lv_draw_fill(&work_area, mask, color, opa);
        }
    }

    /*If radius == 0 one px on the corners are not drawn by main drawer*/
    if(style->body.radius == 0) {
        /*Left top corner*/
        if(part & (LV_BORDER_TOP | LV_BORDER_LEFT)) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x1 + aa;
            work_area.y1 = coords->y1;
            work_area.y2 = coords->y1 + aa;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Right top corner*/
        if(part & (LV_BORDER_TOP | LV_BORDER_RIGHT)) {
            work_area.x1 = coords->x2 - aa;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y1;
            work_area.y2 = coords->y1 + aa;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Left bottom corner*/
        if(part & (LV_BORDER_BOTTOM | LV_BORDER_LEFT)) {
            work_area.x1 = coords->x1;
            work_area.x2 = coords->x1 + aa;
            work_area.y1 = coords->y2 - aa;
            work_area.y2 = coords->y2;
            lv_draw_fill(&work_area, mask, color, opa);
        }

        /*Right bottom corner*/
        if(part & (LV_BORDER_BOTTOM | LV_BORDER_RIGHT)) {
            work_area.x1 = coords->x2 - aa;
            work_area.x2 = coords->x2;
            work_area.y1 = coords->y2 - aa;
            work_area.y2 = coords->y2;
            lv_draw_fill(&work_area, mask, color, opa);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %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 -0x8(%rbp), %rdi
callq 0x5ab30
movw %ax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5ab10
movw %ax, -0x22(%rbp)
movq -0x18(%rbp), %rax
movw 0xc(%rax), %ax
movw %ax, -0x24(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0xff, %eax
jne 0x5c285
movq -0x18(%rbp), %rax
movzbl 0xf(%rax), %eax
movl %eax, -0x38(%rbp)
jmp 0x5c2a0
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, -0x38(%rbp)
movl -0x38(%rbp), %eax
movb %al, -0x25(%rbp)
movq -0x18(%rbp), %rax
movb 0xe(%rax), %al
movb %al, -0x26(%rbp)
movq -0x18(%rbp), %rax
movw 0xa(%rax), %ax
movw %ax, -0x28(%rbp)
movw $0x0, -0x32(%rbp)
movw $0x0, -0x34(%rbp)
movw -0x24(%rbp), %ax
addw $-0x1, %ax
movw %ax, -0x24(%rbp)
movw -0x1c(%rbp), %cx
movw -0x20(%rbp), %ax
movzwl %cx, %edi
movswl %ax, %esi
movswl -0x22(%rbp), %edx
callq 0x5e0e0
movw %ax, -0x1c(%rbp)
movzwl -0x1c(%rbp), %eax
movswl -0x24(%rbp), %ecx
cmpl %ecx, %eax
jge 0x5c31e
movswl -0x24(%rbp), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x32(%rbp)
movw -0x24(%rbp), %ax
movw %ax, -0x34(%rbp)
jmp 0x5c331
movzwl -0x1c(%rbp), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x34(%rbp)
movq -0x18(%rbp), %rax
movswl 0x6(%rax), %eax
cmpl $0x0, %eax
jne 0x5c557
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c39a
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5c44b
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movswl -0x24(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x3c(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c3eb
movswl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x5c3f2
xorl %eax, %eax
movl %eax, -0x40(%rbp)
jmp 0x5c3f2
movl -0x3c(%rbp), %eax
movl -0x40(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movl %eax, -0x44(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c421
movswl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x5c428
xorl %eax, %eax
movl %eax, -0x48(%rbp)
jmp 0x5c428
movl -0x44(%rbp), %eax
movl -0x48(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5c4fa
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x4c(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c49a
movswl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x5c4a1
xorl %eax, %eax
movl %eax, -0x50(%rbp)
jmp 0x5c4a1
movl -0x4c(%rbp), %eax
movl -0x50(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movl %eax, -0x54(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c4d0
movswl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x5c4d7
xorl %eax, %eax
movl %eax, -0x58(%rbp)
jmp 0x5c4d7
movl -0x54(%rbp), %eax
movl -0x58(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c552
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x24(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
jmp 0x5cad3
movw -0x34(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x34(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c583
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movswl -0x34(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2e(%rbp)
jmp 0x5c595
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2e(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c5b5
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x34(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
jmp 0x5c5c7
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5c603
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%rbp)
movswl -0x30(%rbp), %eax
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5c640
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movswl -0x2c(%rbp), %eax
movswl -0x24(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x30(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movswl -0x34(%rbp), %ecx
addl %ecx, %eax
movswl -0x32(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movswl -0x34(%rbp), %ecx
subl %ecx, %eax
movswl -0x32(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c6b0
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c6ed
movq -0x8(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x2a(%rbp)
movswl -0x2a(%rbp), %eax
movswl -0x24(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movswl -0x32(%rbp), %eax
cmpl $0x0, %eax
je 0x5c920
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c782
movzbl -0x26(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5c782
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%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
addl $0x1, %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
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x5c80c
movzbl -0x26(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5c80c
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, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movzwl -0x1c(%rbp), %ecx
addl %ecx, %eax
addl $0x1, %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
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c894
movzbl -0x26(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x5c894
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%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 0x6(%rax), %eax
movswl -0x24(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
subl $0x1, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x5c91e
movzbl -0x26(%rbp), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5c91e
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, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movswl -0x24(%rbp), %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movzwl -0x1c(%rbp), %ecx
subl %ecx, %eax
subl $0x1, %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
jmp 0x5c920
movq -0x18(%rbp), %rax
movswl 0x6(%rax), %eax
cmpl $0x0, %eax
jne 0x5cad3
movzbl -0x26(%rbp), %eax
andl $0x6, %eax
cmpl $0x0, %eax
je 0x5c998
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0xa, %eax
cmpl $0x0, %eax
je 0x5ca01
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movw 0x2(%rax), %ax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movswl 0x2(%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x5, %eax
cmpl $0x0, %eax
je 0x5ca68
movq -0x8(%rbp), %rax
movw (%rax), %ax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movswl (%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
movzbl -0x26(%rbp), %eax
andl $0x9, %eax
cmpl $0x0, %eax
je 0x5cad1
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movw 0x4(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movb -0x1d(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movw %ax, -0x2e(%rbp)
movq -0x8(%rbp), %rax
movw 0x6(%rax), %ax
movw %ax, -0x2a(%rbp)
movq -0x10(%rbp), %rsi
movb -0x25(%rbp), %al
leaq -0x30(%rbp), %rdi
movzwl -0x28(%rbp), %edx
movzbl %al, %ecx
callq 0x58ea0
jmp 0x5cad3
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)