// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_label.c
// Function: lv_label_refr_text
static void lv_label_refr_text(lv_obj_t * label)
{
    lv_label_ext_t * ext = lv_obj_get_ext_attr(label);

    if(ext->text == NULL) return;
#if LV_LABEL_LONG_TXT_HINT
    ext->hint.line_start = -1; /*The hint is invalid if the text changes*/
#endif

    lv_coord_t max_w         = lv_obj_get_width(label);
    const lv_style_t * style = lv_obj_get_style(label);
    const lv_font_t * font   = style->text.font;

    /*If the width will be expanded set the max length to very big */
    if(ext->long_mode == LV_LABEL_LONG_EXPAND) {
        max_w = LV_COORD_MAX;
    }

    /*Calc. the height and longest line*/
    lv_point_t size;
    lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
    if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
    if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
    lv_txt_get_size(&size, ext->text, font, style->text.letter_space, style->text.line_space, max_w, flag);

    /*Set the full size in expand mode*/
    if(ext->long_mode == LV_LABEL_LONG_EXPAND) {
        lv_obj_set_size(label, size.x, size.y);
    }
    /*In roll mode keep the size but start offset animations*/
    else if(ext->long_mode == LV_LABEL_LONG_SROLL) {
#if LV_USE_ANIMATION
        lv_anim_t anim;
        anim.var      = label;
        anim.repeat   = 1;
        anim.playback = 1;
        anim.start    = 0;
        anim.ready_cb = NULL;
        anim.path_cb  = lv_anim_path_linear;
        anim.playback_pause =
            (((lv_font_get_glyph_width(style->text.font, ' ', ' ') + style->text.letter_space) * 1000) /
             ext->anim_speed) *
            LV_LABEL_WAIT_CHAR_COUNT;
        anim.repeat_pause = anim.playback_pause;
        anim.act_time     = -anim.playback_pause;

        bool hor_anim = false;
        if(size.x > lv_obj_get_width(label)) {
            anim.end     = lv_obj_get_width(label) - size.x;
            anim.exec_cb = (lv_anim_exec_xcb_t)lv_label_set_offset_x;
            anim.time    = lv_anim_speed_to_time(ext->anim_speed, anim.start, anim.end);
            lv_anim_create(&anim);
            hor_anim = true;
        } else {
            /*Delete the offset animation if not required*/
            lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
            ext->offset.x = 0;
        }

        if(size.y > lv_obj_get_height(label) && hor_anim == false) {
            anim.end     = lv_obj_get_height(label) - size.y - (lv_font_get_line_height(font));
            anim.exec_cb = (lv_anim_exec_xcb_t)lv_label_set_offset_y;

            anim.time = lv_anim_speed_to_time(ext->anim_speed, anim.start, anim.end);
            lv_anim_create(&anim);
        } else {
            /*Delete the offset animation if not required*/
            lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
            ext->offset.y = 0;
        }
#endif
    }
    /*In roll inf. mode keep the size but start offset animations*/
    else if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) {
#if LV_USE_ANIMATION
        lv_label_align_t align = lv_label_get_align(label);

        lv_anim_t anim;
        anim.var      = label;
        anim.repeat   = 1;
        anim.playback = 0;
        anim.act_time = -(((lv_font_get_glyph_width(style->text.font, ' ', ' ') + style->text.letter_space) * 1000) /
                          ext->anim_speed) *
                        LV_LABEL_WAIT_CHAR_COUNT;
        anim.ready_cb       = NULL;
        anim.path_cb        = lv_anim_path_linear;
        anim.playback_pause = 0;
        anim.repeat_pause   = 0;

        bool hor_anim = false;
        if(size.x > lv_obj_get_width(label)) {
            if(align == LV_LABEL_ALIGN_RIGHT) {
                anim.end    = 0;
                anim.start     = -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
            } else {
                anim.start    = 0;
                anim.end     = -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
            }

            anim.exec_cb = (lv_anim_exec_xcb_t)lv_label_set_offset_x;
            anim.time    = lv_anim_speed_to_time(ext->anim_speed, anim.start, anim.end);
            lv_anim_create(&anim);
            hor_anim = true;
        } else {
            /*Delete the offset animation if not required*/
            lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
            ext->offset.x = 0;
        }

        if(size.y > lv_obj_get_height(label) && hor_anim == false) {
            if(align == LV_LABEL_ALIGN_RIGHT) {
                  anim.end    = 0;
                  anim.start     = -size.y - (lv_font_get_line_height(font));
              } else {
                  anim.start    = 0;
                  anim.end     = -size.y - (lv_font_get_line_height(font));
              }

            anim.exec_cb = (lv_anim_exec_xcb_t)lv_label_set_offset_y;
            anim.time    = lv_anim_speed_to_time(ext->anim_speed, anim.start, anim.end);
            lv_anim_create(&anim);
        } else {
            /*Delete the offset animation if not required*/
            lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
            ext->offset.y = 0;
        }
#endif
    } else if(ext->long_mode == LV_LABEL_LONG_DOT) {
        if(size.y <= lv_obj_get_height(label)) { /*No dots are required, the text is short enough*/
            ext->dot_end = LV_LABEL_DOT_END_INV;
        } else if(lv_txt_get_encoded_length(ext->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/
            ext->dot_end = LV_LABEL_DOT_END_INV;
        } else {
            lv_point_t p;
            p.x = lv_obj_get_width(label) -
                  (lv_font_get_glyph_width(style->text.font, '.', '.') + style->text.letter_space) *
                      LV_LABEL_DOT_NUM; /*Shrink with dots*/
            p.y = lv_obj_get_height(label);
            p.y -= p.y %
                   (lv_font_get_line_height(style->text.font) + style->text.line_space); /*Round down to the last line*/
            p.y -= style->text.line_space;                                               /*Trim the last line space*/
            uint32_t letter_id = lv_label_get_letter_on(label, &p);

            /*Save letters under the dots and replace them with dots*/
            uint32_t i;
            uint32_t byte_id     = lv_txt_encoded_get_byte_id(ext->text, letter_id);
            uint32_t byte_id_ori = byte_id;
            uint8_t len          = 0;
            for(i = 0; i <= LV_LABEL_DOT_NUM; i++) {
                len += lv_txt_encoded_size(&ext->text[byte_id]);
                lv_txt_encoded_next(ext->text, &byte_id);
            }

            if(lv_label_set_dot_tmp(label, &ext->text[byte_id_ori], len)) {
                for(i = 0; i < LV_LABEL_DOT_NUM; i++) {
                    ext->text[byte_id_ori + i] = '.';
                }
                ext->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0';
                ext->dot_end                              = letter_id + LV_LABEL_DOT_NUM;
            }
        }
    }
    /*In break mode only the height can change*/
    else if(ext->long_mode == LV_LABEL_LONG_BREAK) {
        lv_obj_set_height(label, size.y);
    }
    /*Do not set the size in Clip mode*/
    else if(ext->long_mode == LV_LABEL_LONG_CROP) {
        /*Do nothing*/
    }

    lv_obj_invalidate(label);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x2adeb
jmp 0x2b64e
movq -0x8(%rbp), %rdi
callq 0x8310
movw %ax, -0x12(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa080
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2ae2b
movw $0x7c18, -0x12(%rbp)    # imm = 0x7C18
movb $0x0, -0x2d(%rbp)
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
shrw $0x6, %ax
andw $0x1, %ax
movzbl %al, %eax
cmpl $0x0, %eax
je 0x2ae51
movzbl -0x2d(%rbp), %eax
orl $0x1, %eax
movb %al, -0x2d(%rbp)
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
shrw $0x7, %ax
andw $0x1, %ax
movzbl %al, %eax
cmpl $0x0, %eax
je 0x2ae73
movzbl -0x2d(%rbp), %eax
orl $0x2, %eax
movb %al, -0x2d(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rax
movw 0x30(%rax), %cx
movq -0x20(%rbp), %rax
movw 0x32(%rax), %r8w
movw -0x12(%rbp), %ax
leaq -0x2c(%rbp), %rdi
movswl %cx, %ecx
movswl %r8w, %r8d
movswl %ax, %r9d
movzbl -0x2d(%rbp), %eax
movl %eax, (%rsp)
callq 0x46820
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2aedb
movq -0x8(%rbp), %rdi
movw -0x2c(%rbp), %ax
movswl %ax, %esi
movswl -0x2a(%rbp), %edx
callq 0x8180
jmp 0x2b645
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x3, %eax
jne 0x2b0be
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
movb -0x38(%rbp), %al
andb $-0x3, %al
orb $0x2, %al
movb %al, -0x38(%rbp)
movb -0x38(%rbp), %al
andb $-0x2, %al
orb $0x1, %al
movb %al, -0x38(%rbp)
movl $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
leaq 0x1950b(%rip), %rax     # 0x44430
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
movl $0x20, %edx
movl %edx, %esi
callq 0x415e0
movzwl %ax, %eax
movq -0x20(%rbp), %rcx
movswl 0x30(%rcx), %ecx
addl %ecx, %eax
imull $0x3e8, %eax, %eax      # imm = 0x3E8
movq -0x10(%rbp), %rcx
movzwl 0x16(%rcx), %ecx
cltd
idivl %ecx
imull $0x3, %eax, %eax
movw %ax, -0x3c(%rbp)
movw -0x3c(%rbp), %ax
movw %ax, -0x3a(%rbp)
movzwl -0x3c(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x3e(%rbp)
movb $0x0, -0x69(%rbp)
movswl -0x2c(%rbp), %eax
movl %eax, -0xc8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8310
movw %ax, %cx
movl -0xc8(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
jle 0x2afed
movq -0x8(%rbp), %rdi
callq 0x8310
cwtl
movswl -0x2c(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0x44(%rbp)
leaq 0x9f9(%rip), %rax       # 0x2b9b0
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rax
movw 0x16(%rax), %dx
movl -0x48(%rbp), %eax
movw %ax, %cx
movl -0x44(%rbp), %eax
movzwl %dx, %edi
movswl %cx, %esi
movswl %ax, %edx
callq 0x44660
movw %ax, -0x40(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x444a0
movb $0x1, -0x69(%rbp)
jmp 0x2b007
movq -0x8(%rbp), %rdi
leaq 0x9b8(%rip), %rsi       # 0x2b9b0
callq 0x44560
movq -0x10(%rbp), %rax
movw $0x0, 0x12(%rax)
movswl -0x2a(%rbp), %eax
movl %eax, -0xcc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8350
movw %ax, %cx
movl -0xcc(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
jle 0x2b09f
movb -0x69(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2b09f
movq -0x8(%rbp), %rdi
callq 0x8350
cwtl
movswl -0x2a(%rbp), %ecx
subl %ecx, %eax
movl %eax, -0xd0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x2c020
movb %al, %cl
movl -0xd0(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x44(%rbp)
leaq 0x983(%rip), %rax       # 0x2b9f0
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rax
movw 0x16(%rax), %dx
movl -0x48(%rbp), %eax
movw %ax, %cx
movl -0x44(%rbp), %eax
movzwl %dx, %edi
movswl %cx, %esi
movswl %ax, %edx
callq 0x44660
movw %ax, -0x40(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x444a0
jmp 0x2b0b9
movq -0x8(%rbp), %rdi
leaq 0x946(%rip), %rsi       # 0x2b9f0
callq 0x44560
movq -0x10(%rbp), %rax
movw $0x0, 0x14(%rax)
jmp 0x2b643
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x4, %eax
jne 0x2b394
movq -0x8(%rbp), %rdi
callq 0x2ab50
movb %al, -0x6a(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movb -0x78(%rbp), %al
andb $-0x3, %al
orb $0x2, %al
movb %al, -0x78(%rbp)
movb -0x78(%rbp), %al
andb $-0x2, %al
orb $0x0, %al
movb %al, -0x78(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
movl $0x20, %edx
movl %edx, %esi
callq 0x415e0
movzwl %ax, %eax
movq -0x20(%rbp), %rcx
movswl 0x30(%rcx), %ecx
addl %ecx, %eax
imull $0x3e8, %eax, %eax      # imm = 0x3E8
movq -0x10(%rbp), %rcx
movzwl 0x16(%rcx), %ecx
cltd
idivl %ecx
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
imull $0x3, %eax, %eax
movw %ax, -0x7e(%rbp)
movq $0x0, -0x90(%rbp)
leaq 0x192de(%rip), %rax     # 0x44430
movq %rax, -0x98(%rbp)
movw $0x0, -0x7c(%rbp)
movw $0x0, -0x7a(%rbp)
movb $0x0, -0xa9(%rbp)
movswl -0x2c(%rbp), %eax
movl %eax, -0xd4(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8310
movw %ax, %cx
movl -0xd4(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
jle 0x2b268
movzbl -0x6a(%rbp), %eax
cmpl $0x2, %eax
jne 0x2b1dd
movl $0x0, -0x84(%rbp)
movswl -0x2c(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0xd8(%rbp)
movq -0x28(%rbp), %rdi
movl $0x20, %edx
movl %edx, %esi
callq 0x415e0
movw %ax, %cx
movl -0xd8(%rbp), %eax
movzwl %cx, %ecx
imull $0x3, %ecx, %ecx
subl %ecx, %eax
movl %eax, -0x88(%rbp)
jmp 0x2b21c
movl $0x0, -0x88(%rbp)
movswl -0x2c(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0xdc(%rbp)
movq -0x28(%rbp), %rdi
movl $0x20, %edx
movl %edx, %esi
callq 0x415e0
movw %ax, %cx
movl -0xdc(%rbp), %eax
movzwl %cx, %ecx
imull $0x3, %ecx, %ecx
subl %ecx, %eax
movl %eax, -0x84(%rbp)
leaq 0x78d(%rip), %rax       # 0x2b9b0
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movw 0x16(%rax), %dx
movl -0x88(%rbp), %eax
movw %ax, %cx
movl -0x84(%rbp), %eax
movzwl %dx, %edi
movswl %cx, %esi
movswl %ax, %edx
callq 0x44660
movw %ax, -0x80(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x444a0
movb $0x1, -0xa9(%rbp)
jmp 0x2b282
movq -0x8(%rbp), %rdi
leaq 0x73d(%rip), %rsi       # 0x2b9b0
callq 0x44560
movq -0x10(%rbp), %rax
movw $0x0, 0x12(%rax)
movswl -0x2a(%rbp), %eax
movl %eax, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8350
movw %ax, %cx
movl -0xe0(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
jle 0x2b375
movb -0xa9(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2b375
movzbl -0x6a(%rbp), %eax
cmpl $0x2, %eax
jne 0x2b2fc
movl $0x0, -0x84(%rbp)
movswl -0x2a(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0xe4(%rbp)
movq -0x28(%rbp), %rdi
callq 0x2c020
movb %al, %cl
movl -0xe4(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x88(%rbp)
jmp 0x2b330
movl $0x0, -0x88(%rbp)
movswl -0x2a(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0xe8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x2c020
movb %al, %cl
movl -0xe8(%rbp), %eax
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x84(%rbp)
leaq 0x6b9(%rip), %rax       # 0x2b9f0
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movw 0x16(%rax), %dx
movl -0x88(%rbp), %eax
movw %ax, %cx
movl -0x84(%rbp), %eax
movzwl %dx, %edi
movswl %cx, %esi
movswl %ax, %edx
callq 0x44660
movw %ax, -0x80(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x444a0
jmp 0x2b38f
movq -0x8(%rbp), %rdi
leaq 0x670(%rip), %rsi       # 0x2b9f0
callq 0x44560
movq -0x10(%rbp), %rax
movw $0x0, 0x14(%rax)
jmp 0x2b641
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x2, %eax
jne 0x2b602
movswl -0x2a(%rbp), %eax
movl %eax, -0xec(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8350
movw %ax, %cx
movl -0xec(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
jg 0x2b3de
movq -0x10(%rbp), %rax
movw $0xffff, 0x10(%rax)     # imm = 0xFFFF
jmp 0x2b600
leaq 0x512fb(%rip), %rax     # 0x7c6e0
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rdi
callq *%rax
cmpl $0x3, %eax
ja 0x2b405
movq -0x10(%rbp), %rax
movw $0xffff, 0x10(%rax)     # imm = 0xFFFF
jmp 0x2b5fe
movq -0x8(%rbp), %rdi
callq 0x8310
cwtl
movl %eax, -0xf4(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
movl $0x2e, %edx
movl %edx, %esi
callq 0x415e0
movw %ax, %cx
movl -0xf4(%rbp), %eax
movzwl %cx, %ecx
movq -0x20(%rbp), %rdx
movswl 0x30(%rdx), %edx
addl %edx, %ecx
imull $0x3, %ecx, %ecx
subl %ecx, %eax
movw %ax, -0xae(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8350
movw %ax, -0xac(%rbp)
movswl -0xac(%rbp), %eax
movl %eax, -0xf0(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x2c020
movb %al, %cl
movl -0xf0(%rbp), %eax
movzbl %cl, %ecx
movq -0x20(%rbp), %rdx
movswl 0x32(%rdx), %edx
addl %edx, %ecx
cltd
idivl %ecx
movswl -0xac(%rbp), %eax
subl %edx, %eax
movw %ax, -0xac(%rbp)
movq -0x20(%rbp), %rax
movswl 0x32(%rax), %ecx
movswl -0xac(%rbp), %eax
subl %ecx, %eax
movw %ax, -0xac(%rbp)
movq -0x8(%rbp), %rdi
leaq -0xae(%rbp), %rsi
callq 0x2c040
movzwl %ax, %eax
movl %eax, -0xb4(%rbp)
leaq 0x511fb(%rip), %rax     # 0x7c6d0
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rdi
movl -0xb4(%rbp), %esi
callq *%rax
movl %eax, -0xbc(%rbp)
movl -0xbc(%rbp), %eax
movl %eax, -0xc0(%rbp)
movb $0x0, -0xc1(%rbp)
movl $0x0, -0xb8(%rbp)
cmpl $0x3, -0xb8(%rbp)
ja 0x2b56c
leaq 0x5118e(%rip), %rax     # 0x7c6a8
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rdi
movl -0xbc(%rbp), %ecx
addq %rcx, %rdi
callq *%rax
movzbl %al, %ecx
movzbl -0xc1(%rbp), %eax
addl %ecx, %eax
movb %al, -0xc1(%rbp)
leaq 0x51178(%rip), %rax     # 0x7c6c0
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rcx), %rdi
leaq -0xbc(%rbp), %rsi
callq *%rax
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0x2b50a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movl -0xc0(%rbp), %eax
addq %rax, %rsi
movzbl -0xc1(%rbp), %eax
movzwl %ax, %edx
callq 0x2ace0
testb $0x1, %al
jne 0x2b595
jmp 0x2b5fc
movl $0x0, -0xb8(%rbp)
cmpl $0x3, -0xb8(%rbp)
jae 0x2b5d2
movq -0x10(%rbp), %rax
movq (%rax), %rax
movl -0xc0(%rbp), %ecx
addl -0xb8(%rbp), %ecx
movl %ecx, %ecx
movb $0x2e, (%rax,%rcx)
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0x2b59f
movq -0x10(%rbp), %rax
movq (%rax), %rax
movl -0xc0(%rbp), %ecx
addl $0x3, %ecx
movl %ecx, %ecx
movb $0x0, (%rax,%rcx)
movl -0xb4(%rbp), %eax
addl $0x3, %eax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x10(%rax)
jmp 0x2b5fe
jmp 0x2b600
jmp 0x2b63f
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x2b625
movq -0x8(%rbp), %rdi
movswl -0x2a(%rbp), %esi
callq 0x84a0
jmp 0x2b63d
movq -0x10(%rbp), %rax
movw 0x18(%rax), %ax
andw $0x7, %ax
movzbl %al, %eax
cmpl $0x5, %eax
jne 0x2b63b
jmp 0x2b63b
jmp 0x2b63d
jmp 0x2b63f
jmp 0x2b641
jmp 0x2b643
jmp 0x2b645
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopw (%rax,%rax)