// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_dimension
STATIC void
_worksheet_write_dimension(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char ref[LXW_MAX_CELL_RANGE_LENGTH];
    lxw_row_t dim_rowmin = self->dim_rowmin;
    lxw_row_t dim_rowmax = self->dim_rowmax;
    lxw_col_t dim_colmin = self->dim_colmin;
    lxw_col_t dim_colmax = self->dim_colmax;

    if (dim_rowmin == LXW_ROW_MAX && dim_colmin == LXW_COL_MAX) {
        /* If the rows and cols are still the defaults then no dimensions have
         * been set and we use the default range "A1". */
        lxw_rowcol_to_range(ref, 0, 0, 0, 0);
    }
    else if (dim_rowmin == LXW_ROW_MAX && dim_colmin != LXW_COL_MAX) {
        /* If the rows aren't set but the columns are then the dimensions have
         * been changed via set_column(). */
        lxw_rowcol_to_range(ref, 0, dim_colmin, 0, dim_colmax);
    }
    else {
        lxw_rowcol_to_range(ref, dim_rowmin, dim_colmin, dim_rowmax,
                            dim_colmax);
    }

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("ref", ref);

    lxw_xml_empty_tag(self->file, "dimension", &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl 0xa4(%rax), %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rax
movl 0xa8(%rax), %eax
movl %eax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
movw %ax, -0x4a(%rbp)
movq -0x8(%rbp), %rax
movw 0xae(%rax), %ax
movw %ax, -0x4c(%rbp)
cmpl $0x100000, -0x44(%rbp)  # imm = 0x100000
jne 0x4e60f
movzwl -0x4a(%rbp), %eax
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x4e60f
leaq -0x40(%rbp), %rdi
xorl %r8d, %r8d
movl %r8d, %esi
movl %r8d, %edx
movl %r8d, %ecx
callq 0xcdc0
jmp 0x4e65b
cmpl $0x100000, -0x44(%rbp)  # imm = 0x100000
jne 0x4e63e
movzwl -0x4a(%rbp), %eax
cmpl $0x4000, %eax           # imm = 0x4000
je 0x4e63e
leaq -0x40(%rbp), %rdi
movw -0x4a(%rbp), %ax
xorl %ecx, %ecx
movl %ecx, %esi
movzwl %ax, %edx
movzwl -0x4c(%rbp), %r8d
callq 0xcdc0
jmp 0x4e659
leaq -0x40(%rbp), %rdi
movl -0x44(%rbp), %esi
movw -0x4a(%rbp), %ax
movl -0x48(%rbp), %ecx
movzwl %ax, %edx
movzwl -0x4c(%rbp), %r8d
callq 0xcdc0
jmp 0x4e65b
jmp 0x4e65d
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4e66f
leaq -0x40(%rbp), %rsi
leaq 0x209ae(%rip), %rdi     # 0x6f028
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4e6ad
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1ff45(%rip), %rsi     # 0x6e600
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x4e6c6
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4e6d6
jmp 0x4e708
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4e6fb
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4e6fd
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4e6c6
jmp 0x4e70a
addq $0x50, %rsp
popq %rbp
retq