// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: lxw_worksheet_prepare_image
void
lxw_worksheet_prepare_image(lxw_worksheet *self,
                            uint32_t image_ref_id, uint32_t drawing_id,
                            lxw_object_properties *object_props)
{
    lxw_drawing_object *drawing_object;
    lxw_rel_tuple *relationship;
    double width;
    double height;
    char *url;
    char *found_string;
    size_t i;
    char filename[LXW_FILENAME_LENGTH];
    enum cell_types link_type = HYPERLINK_URL;

    if (!self->drawing) {
        self->drawing = lxw_drawing_new();
        self->drawing->embedded = LXW_TRUE;
        RETURN_VOID_ON_MEM_ERROR(self->drawing);

        relationship = calloc(1, sizeof(lxw_rel_tuple));
        GOTO_LABEL_ON_MEM_ERROR(relationship, mem_error);

        relationship->type = lxw_strdup("/drawing");
        GOTO_LABEL_ON_MEM_ERROR(relationship->type, mem_error);

        lxw_snprintf(filename, LXW_FILENAME_LENGTH,
                     "../drawings/drawing%d.xml", drawing_id);

        relationship->target = lxw_strdup(filename);
        GOTO_LABEL_ON_MEM_ERROR(relationship->target, mem_error);

        STAILQ_INSERT_TAIL(self->external_drawing_links, relationship,
                           list_pointers);
    }

    drawing_object = calloc(1, sizeof(lxw_drawing_object));
    RETURN_VOID_ON_MEM_ERROR(drawing_object);

    drawing_object->anchor = LXW_OBJECT_MOVE_DONT_SIZE;
    if (object_props->object_position)
        drawing_object->anchor = object_props->object_position;

    drawing_object->type = LXW_DRAWING_IMAGE;
    drawing_object->description = lxw_strdup(object_props->description);
    drawing_object->tip = lxw_strdup(object_props->tip);
    drawing_object->rel_index = 0;
    drawing_object->url_rel_index = 0;
    drawing_object->decorative = object_props->decorative;

    /* Scale to user scale. */
    width = object_props->width * object_props->x_scale;
    height = object_props->height * object_props->y_scale;

    /* Scale by non 96dpi resolutions. */
    width *= 96.0 / object_props->x_dpi;
    height *= 96.0 / object_props->y_dpi;

    object_props->width = width;
    object_props->height = height;

    _worksheet_position_object_emus(self, object_props, drawing_object);

    /* Convert from pixels to emus. */
    drawing_object->width = (uint32_t) (0.5 + width * 9525);
    drawing_object->height = (uint32_t) (0.5 + height * 9525);

    lxw_add_drawing_object(self->drawing, drawing_object);

    if (object_props->url) {
        url = object_props->url;

        relationship = calloc(1, sizeof(lxw_rel_tuple));
        GOTO_LABEL_ON_MEM_ERROR(relationship, mem_error);

        relationship->type = lxw_strdup("/hyperlink");
        GOTO_LABEL_ON_MEM_ERROR(relationship->type, mem_error);

        /* Check the link type. Default to external hyperlinks. */
        if (strstr(url, "internal:"))
            link_type = HYPERLINK_INTERNAL;
        else if (strstr(url, "external:"))
            link_type = HYPERLINK_EXTERNAL;
        else
            link_type = HYPERLINK_URL;

        /* Set the relationship object for each type of link. */
        if (link_type == HYPERLINK_INTERNAL) {
            relationship->target_mode = NULL;
            relationship->target = lxw_strdup(url + sizeof("internal") - 1);
            GOTO_LABEL_ON_MEM_ERROR(relationship->target, mem_error);

            /* We need to prefix the internal link/range with #. */
            relationship->target[0] = '#';
        }
        else if (link_type == HYPERLINK_EXTERNAL) {
            relationship->target_mode = lxw_strdup("External");
            GOTO_LABEL_ON_MEM_ERROR(relationship->target_mode, mem_error);

            /* Look for Windows style "C:/" link or Windows share "\\" link. */
            found_string = strchr(url + sizeof("external:") - 1, ':');
            if (!found_string)
                found_string = strstr(url, "\\\\");

            if (found_string) {
                /* Copy the url with some space at the start to overwrite
                 * "external:" with "file:///". */
                relationship->target = lxw_escape_url_characters(url + 1,
                                                                 LXW_TRUE);
                GOTO_LABEL_ON_MEM_ERROR(relationship->target, mem_error);

                /* Add the file:/// URI to the url if absolute path. */
                memcpy(relationship->target, "file:///",
                       sizeof("file:///") - 1);
            }
            else {
                /* Copy the relative url without "external:". */
                relationship->target =
                    lxw_escape_url_characters(url + sizeof("external:") - 1,
                                              LXW_TRUE);
                GOTO_LABEL_ON_MEM_ERROR(relationship->target, mem_error);

                /* Switch backslash to forward slash. */
                for (i = 0; i <= strlen(relationship->target); i++)
                    if (relationship->target[i] == '\\')
                        relationship->target[i] = '/';
            }

        }
        else {
            relationship->target_mode = lxw_strdup("External");
            GOTO_LABEL_ON_MEM_ERROR(relationship->target_mode, mem_error);

            relationship->target =
                lxw_escape_url_characters(object_props->url, LXW_FALSE);
            GOTO_LABEL_ON_MEM_ERROR(relationship->target, mem_error);
        }

        /* Check if URL exceeds Excel's length limit. */
        if (lxw_utf8_strlen(url) > self->max_url_length) {
            LXW_WARN_FORMAT2("worksheet_insert_image()/_opt(): URL exceeds "
                             "Excel's allowable length of %d characters: %s",
                             self->max_url_length, url);
            goto mem_error;
        }

        if (!_find_drawing_rel_index(self, url)) {
            STAILQ_INSERT_TAIL(self->drawing_links, relationship,
                               list_pointers);
        }
        else {
            free(relationship->type);
            free(relationship->target);
            free(relationship->target_mode);
            free(relationship);
        }

        drawing_object->url_rel_index = _get_drawing_rel_index(self, url);

    }

    if (!_find_drawing_rel_index(self, object_props->md5)) {
        relationship = calloc(1, sizeof(lxw_rel_tuple));
        GOTO_LABEL_ON_MEM_ERROR(relationship, mem_error);

        relationship->type = lxw_strdup("/image");
        GOTO_LABEL_ON_MEM_ERROR(relationship->type, mem_error);

        lxw_snprintf(filename, 32, "../media/image%d.%s", image_ref_id,
                     object_props->extension);

        relationship->target = lxw_strdup(filename);
        GOTO_LABEL_ON_MEM_ERROR(relationship->target, mem_error);

        STAILQ_INSERT_TAIL(self->drawing_links, relationship, list_pointers);
    }

    drawing_object->rel_index =
        _get_drawing_rel_index(self, object_props->md5);

    return;

mem_error:
    if (relationship) {
        free(relationship->type);
        free(relationship->target);
        free(relationship->target_mode);
        free(relationship);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movl $0xb, -0xd4(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x290(%rax)
jne 0x494f7
callq 0xc9b0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x290(%rax)
movq -0x8(%rbp), %rax
movq 0x290(%rax), %rax
movb $0x1, 0x8(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x290(%rax)
jne 0x493be
movq 0x33c5c(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1cd2a(%rip), %rsi     # 0x660d0
leaq 0x23047(%rip), %rdx     # 0x6c3f4
movl $0xcda, %ecx            # imm = 0xCDA
movb $0x0, %al
callq 0xc8f0
jmp 0x49d12
jmp 0x493c0
movl $0x1, %edi
movl $0x20, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x49403
movq 0x33c17(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1cce5(%rip), %rsi     # 0x660d0
leaq 0x23002(%rip), %rdx     # 0x6c3f4
movl $0xcdd, %ecx            # imm = 0xCDD
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49405
leaq 0x234b8(%rip), %rdi     # 0x6c8c4
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x4944e
movq 0x33bcc(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1cc9a(%rip), %rsi     # 0x660d0
leaq 0x22fb7(%rip), %rdx     # 0x6c3f4
movl $0xce0, %ecx            # imm = 0xCE0
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49450
leaq -0xd0(%rbp), %rdi
movl -0x10(%rbp), %ecx
movl $0x80, %esi
leaq 0x23467(%rip), %rdx     # 0x6c8cd
movb $0x0, %al
callq 0xc5d0
leaq -0xd0(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x494b8
movq 0x33b62(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1cc30(%rip), %rsi     # 0x660d0
leaq 0x22f4d(%rip), %rdx     # 0x6c3f4
movl $0xce6, %ecx            # imm = 0xCE6
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x494ba
jmp 0x494bc
movq -0x28(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x220(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x220(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x494f7
movl $0x1, %edi
movl $0x80, %esi
callq 0xc870
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x4953a
movq 0x33ae0(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1cbae(%rip), %rsi     # 0x660d0
leaq 0x22ecb(%rip), %rdx     # 0x6c3f4
movl $0xced, %ecx            # imm = 0xCED
movb $0x0, %al
callq 0xc8f0
jmp 0x49d12
jmp 0x4953c
movq -0x20(%rbp), %rax
movb $0x2, 0x1(%rax)
movq -0x18(%rbp), %rax
cmpb $0x0, 0x40(%rax)
je 0x4955c
movq -0x18(%rbp), %rax
movb 0x40(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x1(%rax)
movq -0x20(%rbp), %rax
movb $0x1, (%rax)
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x60(%rax)
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x68(%rax)
movq -0x20(%rbp), %rax
movl $0x0, 0x54(%rax)
movq -0x20(%rbp), %rax
movl $0x0, 0x58(%rax)
movq -0x18(%rbp), %rax
movb 0xb0(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x70(%rax)
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm1
movsd 0x68(%rax), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm1
movsd 0x70(%rax), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movsd 0x80(%rax), %xmm0
movsd 0x219ec(%rip), %xmm1    # 0x6afe8
movaps %xmm1, %xmm2
divsd %xmm0, %xmm2
movsd -0x30(%rbp), %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, -0x30(%rbp)
movq -0x18(%rbp), %rax
movsd 0x88(%rax), %xmm0
divsd %xmm0, %xmm1
movsd -0x38(%rbp), %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x30(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x68(%rax)
movsd -0x38(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x70(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x49d20
movsd -0x30(%rbp), %xmm0
movsd 0x22c6f(%rip), %xmm2    # 0x6c2d8
mulsd %xmm2, %xmm0
movsd 0x1ccab(%rip), %xmm1    # 0x66320
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x48(%rax)
movsd -0x38(%rbp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4c(%rax)
movq -0x8(%rbp), %rax
movq 0x290(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0xcef0
movq -0x18(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x49b64
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x40(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x49714
movq 0x33906(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c9d4(%rip), %rsi     # 0x660d0
leaq 0x22cf1(%rip), %rdx     # 0x6c3f4
movl $0xd11, %ecx            # imm = 0xD11
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49716
leaq 0x231ca(%rip), %rdi     # 0x6c8e7
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x4975f
movq 0x338bb(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c989(%rip), %rsi     # 0x660d0
leaq 0x22ca6(%rip), %rdx     # 0x6c3f4
movl $0xd14, %ecx            # imm = 0xD14
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49761
movq -0x40(%rbp), %rdi
leaq 0x23186(%rip), %rsi     # 0x6c8f2
callq 0xd130
cmpq $0x0, %rax
je 0x49783
movl $0xc, -0xd4(%rbp)
jmp 0x497b1
movq -0x40(%rbp), %rdi
leaq 0x2316e(%rip), %rsi     # 0x6c8fc
callq 0xd130
cmpq $0x0, %rax
je 0x497a5
movl $0xd, -0xd4(%rbp)
jmp 0x497af
movl $0xb, -0xd4(%rbp)
jmp 0x497b1
cmpl $0xc, -0xd4(%rbp)
jne 0x49828
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x40(%rbp), %rdi
addq $0x9, %rdi
addq $-0x1, %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x49816
movq 0x33804(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c8d2(%rip), %rsi     # 0x660d0
leaq 0x22bef(%rip), %rdx     # 0x6c3f4
movl $0xd22, %ecx            # imm = 0xD22
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49818
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movb $0x23, (%rax)
jmp 0x49a8b
cmpl $0xd, -0xd4(%rbp)
jne 0x499ea
leaq 0x230ca(%rip), %rdi     # 0x6c906
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x49880
movq 0x3379a(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c868(%rip), %rsi     # 0x660d0
leaq 0x22b85(%rip), %rdx     # 0x6c3f4
movl $0xd29, %ecx            # imm = 0xD29
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49882
movq -0x40(%rbp), %rdi
addq $0xa, %rdi
addq $-0x1, %rdi
movl $0x3a, %esi
callq 0xc520
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x498b7
movq -0x40(%rbp), %rdi
leaq 0x23061(%rip), %rsi     # 0x6c90f
callq 0xd130
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x49928
movq -0x40(%rbp), %rdi
addq $0x1, %rdi
movl $0x1, %esi
callq 0xd010
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x4990f
movq 0x3370b(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c7d9(%rip), %rsi     # 0x660d0
leaq 0x22af6(%rip), %rdx     # 0x6c3f4
movl $0xd35, %ecx            # imm = 0xD35
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49911
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x22ff2(%rip), %rcx     # 0x6c912
movq %rcx, (%rax)
jmp 0x499e5
movq -0x40(%rbp), %rdi
addq $0xa, %rdi
addq $-0x1, %rdi
movl $0x1, %esi
callq 0xd010
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x4997d
movq 0x3369d(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c76b(%rip), %rsi     # 0x660d0
leaq 0x22a88(%rip), %rdx     # 0x6c3f4
movl $0xd40, %ecx            # imm = 0xD40
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x4997f
movq $0x0, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc4e0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
cmpq %rcx, %rax
ja 0x499e3
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x50(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x5c, %eax
jne 0x499d3
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x50(%rbp), %rcx
movb $0x2f, (%rax,%rcx)
jmp 0x499d5
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x49987
jmp 0x499e5
jmp 0x49a89
leaq 0x22f15(%rip), %rdi     # 0x6c906
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x49a35
movq 0x335e5(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c6b3(%rip), %rsi     # 0x660d0
leaq 0x229d0(%rip), %rdx     # 0x6c3f4
movl $0xd4b, %ecx            # imm = 0xD4B
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49a37
movq -0x18(%rbp), %rax
movq 0x30(%rax), %rdi
xorl %esi, %esi
callq 0xd010
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x49a85
movq 0x33595(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c663(%rip), %rsi     # 0x660d0
leaq 0x22980(%rip), %rdx     # 0x6c3f4
movl $0xd4f, %ecx            # imm = 0xD4F
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49a87
jmp 0x49a89
jmp 0x49a8b
movq -0x40(%rbp), %rdi
callq 0xd180
movq -0x8(%rbp), %rcx
movzwl 0x1f6(%rcx), %ecx
cmpq %rcx, %rax
jbe 0x49ad0
movq 0x3354d(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movzwl 0x1f6(%rax), %edx
movq -0x40(%rbp), %rcx
leaq 0x22e57(%rip), %rsi     # 0x6c91b
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x49df0
cmpl $0x0, %eax
jne 0x49b1f
jmp 0x49ae4
movq -0x28(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x228(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x228(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x49b4e
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x49e60
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x58(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0xa0(%rax), %rsi
callq 0x49df0
cmpl $0x0, %eax
jne 0x49cbd
movl $0x1, %edi
movl $0x20, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x49bc4
movq 0x33456(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c524(%rip), %rsi     # 0x660d0
leaq 0x22841(%rip), %rdx     # 0x6c3f4
movl $0xd6b, %ecx            # imm = 0xD6B
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49bc6
leaq 0x22db5(%rip), %rdi     # 0x6c982
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x49c0f
movq 0x3340b(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c4d9(%rip), %rsi     # 0x660d0
leaq 0x227f6(%rip), %rdx     # 0x6c3f4
movl $0xd6e, %ecx            # imm = 0xD6E
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49c11
leaq -0xd0(%rbp), %rdi
movl -0xc(%rbp), %ecx
movq -0x18(%rbp), %rax
movq 0x78(%rax), %r8
movl $0x20, %esi
leaq 0x22d5a(%rip), %rdx     # 0x6c989
movb $0x0, %al
callq 0xc5d0
leaq -0xd0(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x49c7e
movq 0x33399(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1c467(%rip), %rsi     # 0x660d0
leaq 0x22784(%rip), %rdx     # 0x6c3f4
movl $0xd74, %ecx            # imm = 0xD74
movb $0x0, %al
callq 0xc8f0
jmp 0x49cdc
jmp 0x49c80
jmp 0x49c82
movq -0x28(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x228(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x8(%rbp), %rax
movq 0x228(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x49cbd
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0xa0(%rax), %rsi
callq 0x49e60
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x54(%rax)
jmp 0x49d12
cmpq $0x0, -0x28(%rbp)
je 0x49d12
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rdi
callq 0xc0d0
addq $0xe0, %rsp
popq %rbp
retq
nopl (%rax,%rax)