// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_core/lv_obj.c
// Function: lv_obj_create
lv_obj_t * lv_obj_create(lv_obj_t * parent, const lv_obj_t * copy)
{

    lv_obj_t * new_obj = NULL;
    /*Create a screen if the parent is NULL*/
    if(parent == NULL) {
        LV_LOG_TRACE("Screen create started");
        lv_disp_t * disp = lv_disp_get_default();
        if(!disp) {
            LV_LOG_WARN("lv_obj_create: not display created to so far. No place to assign the new screen");
            return NULL;
        }

        new_obj = lv_ll_ins_head(&disp->scr_ll);
        LV_ASSERT_MEM(new_obj);
        if(new_obj == NULL) return NULL;

        new_obj->par = NULL; /*Screens has no a parent*/
        lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t));

        /*Set the callbacks*/
        new_obj->signal_cb = lv_obj_signal;
        new_obj->design_cb = lv_obj_design;
        new_obj->event_cb = NULL;

        /*Set coordinates to full screen size*/
        new_obj->coords.x1    = 0;
        new_obj->coords.y1    = 0;
        new_obj->coords.x2    = lv_disp_get_hor_res(NULL) - 1;
        new_obj->coords.y2    = lv_disp_get_ver_res(NULL) - 1;
        new_obj->ext_draw_pad = 0;

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_FULL
        memset(&new_obj->ext_click_pad, 0, sizeof(new_obj->ext_click_pad));
#endif

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_TINY
        new_obj->ext_click_pad_hor = 0;
        new_obj->ext_click_pad_ver = 0;
#endif

        /*Init realign*/
#if LV_USE_OBJ_REALIGN
        new_obj->realign.align        = LV_ALIGN_CENTER;
        new_obj->realign.xofs         = 0;
        new_obj->realign.yofs         = 0;
        new_obj->realign.base         = NULL;
        new_obj->realign.auto_realign = 0;
#endif

        /*Set the default styles*/
        lv_theme_t * th = lv_theme_get_current();
        if(th) {
            new_obj->style_p = th->style.scr;
        } else {
            new_obj->style_p = &lv_style_scr;
        }

        /*Init. user date*/
#if LV_USE_USER_DATA
        memset(&new_obj->user_data, 0, sizeof(lv_obj_user_data_t));
#endif

#if LV_USE_GROUP
        new_obj->group_p = NULL;
#endif
        /*Set attributes*/
        new_obj->click        = 0;
        new_obj->drag         = 0;
        new_obj->drag_throw   = 0;
        new_obj->drag_parent  = 0;
        new_obj->hidden       = 0;
        new_obj->top          = 0;
        new_obj->protect      = LV_PROTECT_NONE;
        new_obj->opa_scale_en = 0;
        new_obj->opa_scale    = LV_OPA_COVER;
        new_obj->parent_event = 0;
#if LV_USE_BIDI
        new_obj->base_dir     = LV_BIDI_BASE_DIR_DEF;
#else
        new_obj->base_dir     = LV_BIDI_DIR_LTR;
#endif

        new_obj->reserved     = 0;

        new_obj->ext_attr = NULL;

        LV_LOG_INFO("Screen create ready");
    }
    /*parent != NULL create normal obj. on a parent*/
    else {
        LV_LOG_TRACE("Object create started");
        LV_ASSERT_OBJ(parent, LV_OBJX_NAME);

        new_obj = lv_ll_ins_head(&parent->child_ll);
        LV_ASSERT_MEM(new_obj);
        if(new_obj == NULL) return NULL;

        new_obj->par = parent; /*Set the parent*/
        lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t));

        /*Set the callbacks*/
        new_obj->signal_cb = lv_obj_signal;
        new_obj->design_cb = lv_obj_design;
        new_obj->event_cb = NULL;

#if LV_USE_BIDI
        new_obj->base_dir     = LV_BIDI_DIR_INHERIT;
#else
        new_obj->base_dir     = LV_BIDI_DIR_LTR;
#endif

        /*Set coordinates left top corner of parent*/
        new_obj->coords.y1    = parent->coords.y1;
        new_obj->coords.y2    = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
        if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) {
            new_obj->coords.x2    = parent->coords.x2;
            new_obj->coords.x1    = parent->coords.x2 - LV_OBJ_DEF_WIDTH;
        } else {
            new_obj->coords.x1    = parent->coords.x1;
            new_obj->coords.x2    = parent->coords.x1 + LV_OBJ_DEF_WIDTH;
        }
        new_obj->ext_draw_pad = 0;

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_FULL
        memset(&new_obj->ext_click_pad, 0, sizeof(new_obj->ext_click_pad));
#endif

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_TINY
        new_obj->ext_click_pad_hor = 0;
        new_obj->ext_click_pad_ver = 0;
#endif

        /*Init realign*/
#if LV_USE_OBJ_REALIGN
        new_obj->realign.align        = LV_ALIGN_CENTER;
        new_obj->realign.xofs         = 0;
        new_obj->realign.yofs         = 0;
        new_obj->realign.base         = NULL;
        new_obj->realign.auto_realign = 0;
#endif
        /*Set appearance*/
        lv_theme_t * th = lv_theme_get_current();
        if(th) {
            new_obj->style_p = th->style.panel;
        } else {
            new_obj->style_p = &lv_style_plain_color;
        }

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_FULL
        memset(&new_obj->ext_click_pad, 0, sizeof(new_obj->ext_click_pad));
#endif

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_TINY
        new_obj->ext_click_pad_hor = 0;
        new_obj->ext_click_pad_ver = 0;
#endif

        /*Init. user date*/
#if LV_USE_USER_DATA
        memset(&new_obj->user_data, 0, sizeof(lv_obj_user_data_t));
#endif

#if LV_USE_GROUP
        new_obj->group_p = NULL;
#endif

        /*Set attributes*/
        new_obj->click        = 1;
        new_obj->drag         = 0;
        new_obj->drag_dir     = LV_DRAG_DIR_ALL;
        new_obj->drag_throw   = 0;
        new_obj->drag_parent  = 0;
        new_obj->hidden       = 0;
        new_obj->top          = 0;
        new_obj->protect      = LV_PROTECT_NONE;
        new_obj->opa_scale    = LV_OPA_COVER;
        new_obj->opa_scale_en = 0;
        new_obj->parent_event = 0;
        new_obj->reserved     = 0;

        new_obj->ext_attr = NULL;
    }

    /*Copy the attributes if required*/
    if(copy != NULL) {
        LV_ASSERT_OBJ(copy, LV_OBJX_NAME);
        lv_area_copy(&new_obj->coords, &copy->coords);
        new_obj->ext_draw_pad = copy->ext_draw_pad;

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_FULL
        lv_area_copy(&new_obj->ext_click_pad, &copy->ext_click_pad);
#endif

#if LV_USE_EXT_CLICK_AREA == LV_EXT_CLICK_AREA_TINY
        new_obj->ext_click_pad_hor = copy->ext_click_pad_hor;
        new_obj->ext_click_pad_ver = copy->ext_click_pad_ver;
#endif

        /*Set free data*/
#if LV_USE_USER_DATA
        memcpy(&new_obj->user_data, &copy->user_data, sizeof(lv_obj_user_data_t));
#endif
        /*Copy realign*/
#if LV_USE_OBJ_REALIGN
        new_obj->realign.align        = copy->realign.align;
        new_obj->realign.xofs         = copy->realign.xofs;
        new_obj->realign.yofs         = copy->realign.yofs;
        new_obj->realign.base         = copy->realign.base;
        new_obj->realign.auto_realign = copy->realign.auto_realign;
#endif

        /*Only copy the `event_cb`. `signal_cb` and `design_cb` will be copied in the derived
         * object type (e.g. `lv_btn`)*/
        new_obj->event_cb = copy->event_cb;

        /*Copy attributes*/
        new_obj->click        = copy->click;
        new_obj->drag         = copy->drag;
        new_obj->drag_dir     = copy->drag_dir;
        new_obj->drag_throw   = copy->drag_throw;
        new_obj->drag_parent  = copy->drag_parent;
        new_obj->hidden       = copy->hidden;
        new_obj->top          = copy->top;
        new_obj->parent_event = copy->parent_event;

        new_obj->opa_scale_en = copy->opa_scale_en;
        new_obj->protect      = copy->protect;
        new_obj->opa_scale    = copy->opa_scale;

        new_obj->style_p = copy->style_p;

#if LV_USE_GROUP
        /*Add to the same group*/
        if(copy->group_p != NULL) {
            lv_group_add_obj(copy->group_p, new_obj);
        }
#endif

        /*Set the same coordinates for non screen objects*/
        if(lv_obj_get_parent(copy) != NULL && parent != NULL) {
            lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy));
        } else {
            lv_obj_set_pos(new_obj, 0, 0);
        }

        LV_LOG_INFO("Object create ready");
    }

    /*Send a signal to the parent to notify it about the new child*/
    if(parent != NULL) {
        parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj);

        /*Invalidate the area if not screen created*/
        lv_obj_invalidate(new_obj);
    }

    return new_obj;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x6929
callq 0xdad0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x66f0
movq $0x0, -0x8(%rbp)
jmp 0x6f1f
movq -0x28(%rbp), %rdi
addq $0x48, %rdi
callq 0x453f0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x6720
movq -0x20(%rbp), %rsi
leaq 0x6192b(%rip), %rdi     # 0x68044
callq 0xd410
jmp 0x671e
cmpq $0x0, -0x20(%rbp)
jne 0x6734
movq $0x0, -0x8(%rbp)
jmp 0x6f1f
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
movq -0x20(%rbp), %rdi
addq $0x8, %rdi
movl $0x70, %esi
callq 0x453a0
movq -0x20(%rbp), %rax
leaq 0x7d4(%rip), %rcx       # 0x6f30
movq %rcx, 0x30(%rax)
movq -0x20(%rbp), %rax
leaq 0x895(%rip), %rcx       # 0x7000
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x20(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x22(%rax)
xorl %eax, %eax
movl %eax, %edi
callq 0xd940
cwtl
subl $0x1, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x24(%rax)
xorl %eax, %eax
movl %eax, %edi
callq 0xd9b0
cwtl
subl $0x1, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x26(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x5c(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0x6c(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x68(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x6a(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x60(%rax)
movq -0x20(%rbp), %rax
movb 0x6d(%rax), %cl
andb $-0x2, %cl
orb $0x0, %cl
movb %cl, 0x6d(%rax)
callq 0x4cfc0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x6822
movq -0x30(%rbp), %rax
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x48(%rax)
jmp 0x6831
movq -0x20(%rbp), %rax
leaq 0x82773(%rip), %rcx     # 0x88fa0
movq %rcx, 0x48(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x50(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x2, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x3, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x5, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x9, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x11, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x21, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0x5a(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x41, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movb $-0x1, 0x5b(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0xff7f, %cx            # imm = 0xFF7F
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0xf3ff, %cx            # imm = 0xF3FF
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0x8fff, %cx            # imm = 0x8FFF
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x40(%rax)
jmp 0x6bd4
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x6948
movq -0x10(%rbp), %rsi
leaq 0x617bb(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x6946
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
callq 0x453f0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x6978
movq -0x20(%rbp), %rsi
leaq 0x616d3(%rip), %rdi     # 0x68044
callq 0xd410
jmp 0x6976
cmpq $0x0, -0x20(%rbp)
jne 0x698c
movq $0x0, -0x8(%rbp)
jmp 0x6f1f
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rdi
addq $0x8, %rdi
movl $0x70, %esi
callq 0x453a0
movq -0x20(%rbp), %rax
leaq 0x57c(%rip), %rcx       # 0x6f30
movq %rcx, 0x30(%rax)
movq -0x20(%rbp), %rax
leaq 0x63d(%rip), %rcx       # 0x7000
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0xf3ff, %cx            # imm = 0xF3FF
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x10(%rbp), %rax
movw 0x22(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x22(%rax)
movq -0x10(%rbp), %rax
movswl 0x22(%rax), %eax
addl $0x42, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x26(%rax)
movq -0x20(%rbp), %rdi
callq 0x7180
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x6a47
movq -0x10(%rbp), %rax
movw 0x24(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x24(%rax)
movq -0x10(%rbp), %rax
movswl 0x24(%rax), %eax
subl $0x64, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x20(%rax)
jmp 0x6a6d
movq -0x10(%rbp), %rax
movw 0x20(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x20(%rax)
movq -0x10(%rbp), %rax
movswl 0x20(%rax), %eax
addl $0x64, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x24(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x5c(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0x6c(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x68(%rax)
movq -0x20(%rbp), %rax
movw $0x0, 0x6a(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x60(%rax)
movq -0x20(%rbp), %rax
movb 0x6d(%rax), %cl
andb $-0x2, %cl
orb $0x0, %cl
movb %cl, 0x6d(%rax)
callq 0x4cfc0
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x6ad1
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x48(%rax)
jmp 0x6ae0
movq -0x20(%rbp), %rax
leaq 0x82554(%rip), %rcx     # 0x89030
movq %rcx, 0x48(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x50(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x2, %cx
orw $0x1, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x3, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0xfcff, %cx            # imm = 0xFCFF
orw $0x300, %cx             # imm = 0x300
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x5, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x9, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x11, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x21, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movb $0x0, 0x5a(%rax)
movq -0x20(%rbp), %rax
movb $-0x1, 0x5b(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $-0x41, %cx
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0xff7f, %cx            # imm = 0xFF7F
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movw 0x58(%rax), %cx
andw $0x8fff, %cx            # imm = 0x8FFF
orw $0x0, %cx
movw %cx, 0x58(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x40(%rax)
cmpq $0x0, -0x18(%rbp)
je 0x6ef0
movq -0x18(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x6bfe
movq -0x18(%rbp), %rsi
leaq 0x61505(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x6bfc
movq -0x20(%rbp), %rdi
addq $0x20, %rdi
movq -0x18(%rbp), %rsi
addq $0x20, %rsi
callq 0x7190
movq -0x18(%rbp), %rax
movw 0x5c(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x5c(%rax)
movq -0x18(%rbp), %rax
movb 0x6c(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x6c(%rax)
movq -0x18(%rbp), %rax
movw 0x68(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x68(%rax)
movq -0x18(%rbp), %rax
movw 0x6a(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x6a(%rax)
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x60(%rax)
movq -0x18(%rbp), %rax
movb 0x6d(%rax), %dl
andb $0x1, %dl
movq -0x20(%rbp), %rax
movb 0x6d(%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x6d(%rax)
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
andw $-0x2, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw %dx
andw $-0x3, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x8, %ax
andw $0x3, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x3, %dx
shlw $0x8, %dx
andw $0xfcff, %cx            # imm = 0xFCFF
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x2, %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw $0x2, %dx
andw $-0x5, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x3, %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw $0x3, %dx
andw $-0x9, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x4, %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw $0x4, %dx
andw $-0x11, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x5, %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw $0x5, %dx
andw $-0x21, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x7, %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw $0x7, %dx
andw $0xff7f, %cx            # imm = 0xFF7F
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movw 0x58(%rax), %ax
shrw $0x6, %ax
andw $0x1, %ax
movb %al, %cl
movq -0x20(%rbp), %rax
movzbl %cl, %ecx
movw %cx, %dx
movw 0x58(%rax), %cx
andw $0x1, %dx
shlw $0x6, %dx
andw $-0x41, %cx
orw %dx, %cx
movw %cx, 0x58(%rax)
movq -0x18(%rbp), %rax
movb 0x5a(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x5a(%rax)
movq -0x18(%rbp), %rax
movb 0x5b(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x5b(%rax)
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x6e98
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0x2670
movq -0x18(%rbp), %rdi
callq 0x71b0
cmpq $0x0, %rax
je 0x6ee1
cmpq $0x0, -0x10(%rbp)
je 0x6ee1
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
callq 0x7350
movw %ax, -0x3a(%rbp)
movq -0x18(%rbp), %rdi
callq 0x73c0
movq -0x48(%rbp), %rdi
movw -0x3a(%rbp), %cx
movswl %cx, %esi
movswl %ax, %edx
callq 0x71f0
jmp 0x6eee
movq -0x20(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x71f0
jmp 0x6ef0
cmpq $0x0, -0x10(%rbp)
je 0x6f17
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl $0x1, %esi
callq *%rax
movq -0x20(%rbp), %rdi
callq 0x7430
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)