// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_data_validation
STATIC void
_worksheet_write_data_validation(lxw_worksheet *self,
                                 lxw_data_val_obj *validation)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    uint8_t is_between = 0;

    LXW_INIT_ATTRIBUTES();

    switch (validation->validate) {
        case LXW_VALIDATION_TYPE_INTEGER:
        case LXW_VALIDATION_TYPE_INTEGER_FORMULA:
            LXW_PUSH_ATTRIBUTES_STR("type", "whole");
            break;
        case LXW_VALIDATION_TYPE_DECIMAL:
        case LXW_VALIDATION_TYPE_DECIMAL_FORMULA:
            LXW_PUSH_ATTRIBUTES_STR("type", "decimal");
            break;
        case LXW_VALIDATION_TYPE_LIST:
        case LXW_VALIDATION_TYPE_LIST_FORMULA:
            LXW_PUSH_ATTRIBUTES_STR("type", "list");
            break;
        case LXW_VALIDATION_TYPE_DATE:
        case LXW_VALIDATION_TYPE_DATE_FORMULA:
        case LXW_VALIDATION_TYPE_DATE_NUMBER:
            LXW_PUSH_ATTRIBUTES_STR("type", "date");
            break;
        case LXW_VALIDATION_TYPE_TIME:
        case LXW_VALIDATION_TYPE_TIME_FORMULA:
        case LXW_VALIDATION_TYPE_TIME_NUMBER:
            LXW_PUSH_ATTRIBUTES_STR("type", "time");
            break;
        case LXW_VALIDATION_TYPE_LENGTH:
        case LXW_VALIDATION_TYPE_LENGTH_FORMULA:
            LXW_PUSH_ATTRIBUTES_STR("type", "textLength");
            break;
        case LXW_VALIDATION_TYPE_CUSTOM_FORMULA:
            LXW_PUSH_ATTRIBUTES_STR("type", "custom");
            break;
    }

    switch (validation->criteria) {
        case LXW_VALIDATION_CRITERIA_EQUAL_TO:
            LXW_PUSH_ATTRIBUTES_STR("operator", "equal");
            break;
        case LXW_VALIDATION_CRITERIA_NOT_EQUAL_TO:
            LXW_PUSH_ATTRIBUTES_STR("operator", "notEqual");
            break;
        case LXW_VALIDATION_CRITERIA_LESS_THAN:
            LXW_PUSH_ATTRIBUTES_STR("operator", "lessThan");
            break;
        case LXW_VALIDATION_CRITERIA_LESS_THAN_OR_EQUAL_TO:
            LXW_PUSH_ATTRIBUTES_STR("operator", "lessThanOrEqual");
            break;
        case LXW_VALIDATION_CRITERIA_GREATER_THAN:
            LXW_PUSH_ATTRIBUTES_STR("operator", "greaterThan");
            break;
        case LXW_VALIDATION_CRITERIA_GREATER_THAN_OR_EQUAL_TO:
            LXW_PUSH_ATTRIBUTES_STR("operator", "greaterThanOrEqual");
            break;
        case LXW_VALIDATION_CRITERIA_BETWEEN:
            /* Between is the default for 2 formulas and isn't added. */
            is_between = 1;
            break;
        case LXW_VALIDATION_CRITERIA_NOT_BETWEEN:
            is_between = 1;
            LXW_PUSH_ATTRIBUTES_STR("operator", "notBetween");
            break;
    }

    if (validation->error_type == LXW_VALIDATION_ERROR_TYPE_WARNING)
        LXW_PUSH_ATTRIBUTES_STR("errorStyle", "warning");

    if (validation->error_type == LXW_VALIDATION_ERROR_TYPE_INFORMATION)
        LXW_PUSH_ATTRIBUTES_STR("errorStyle", "information");

    if (validation->ignore_blank)
        LXW_PUSH_ATTRIBUTES_INT("allowBlank", 1);

    if (validation->dropdown == LXW_VALIDATION_OFF)
        LXW_PUSH_ATTRIBUTES_INT("showDropDown", 1);

    if (validation->show_input)
        LXW_PUSH_ATTRIBUTES_INT("showInputMessage", 1);

    if (validation->show_error)
        LXW_PUSH_ATTRIBUTES_INT("showErrorMessage", 1);

    if (validation->error_title)
        LXW_PUSH_ATTRIBUTES_STR("errorTitle", validation->error_title);

    if (validation->error_message)
        LXW_PUSH_ATTRIBUTES_STR("error", validation->error_message);

    if (validation->input_title)
        LXW_PUSH_ATTRIBUTES_STR("promptTitle", validation->input_title);

    if (validation->input_message)
        LXW_PUSH_ATTRIBUTES_STR("prompt", validation->input_message);

    LXW_PUSH_ATTRIBUTES_STR("sqref", validation->sqref);

    if (validation->validate == LXW_VALIDATION_TYPE_ANY)
        lxw_xml_empty_tag(self->file, "dataValidation", &attributes);
    else
        lxw_xml_start_tag(self->file, "dataValidation", &attributes);

    /* Write the formula1 and formula2 elements. */
    switch (validation->validate) {
        case LXW_VALIDATION_TYPE_INTEGER:
        case LXW_VALIDATION_TYPE_DECIMAL:
        case LXW_VALIDATION_TYPE_LENGTH:
        case LXW_VALIDATION_TYPE_DATE:
        case LXW_VALIDATION_TYPE_TIME:
        case LXW_VALIDATION_TYPE_DATE_NUMBER:
        case LXW_VALIDATION_TYPE_TIME_NUMBER:
            _worksheet_write_formula1_num(self, validation->value_number);
            if (is_between)
                _worksheet_write_formula2_num(self,
                                              validation->maximum_number);
            break;
        case LXW_VALIDATION_TYPE_INTEGER_FORMULA:
        case LXW_VALIDATION_TYPE_DECIMAL_FORMULA:
        case LXW_VALIDATION_TYPE_LENGTH_FORMULA:
        case LXW_VALIDATION_TYPE_DATE_FORMULA:
        case LXW_VALIDATION_TYPE_TIME_FORMULA:
        case LXW_VALIDATION_TYPE_LIST:
        case LXW_VALIDATION_TYPE_LIST_FORMULA:
        case LXW_VALIDATION_TYPE_CUSTOM_FORMULA:
            _worksheet_write_formula1_str(self, validation->value_formula);
            if (is_between)
                _worksheet_write_formula2_str(self,
                                              validation->maximum_formula);
            break;
    }

    if (validation->validate != LXW_VALIDATION_TYPE_ANY)
        lxw_xml_end_tag(self->file, "dataValidation");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x29(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0xe, %eax
ja 0x61d32
movq -0x38(%rbp), %rax
leaq 0xa861(%rip), %rcx      # 0x6c398
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x61b42
leaq 0x6867(%rip), %rdi      # 0x683b0
leaq 0xd10b(%rip), %rsi      # 0x6ec5b
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61b83
jmp 0x61d32
jmp 0x61b8a
leaq 0x681f(%rip), %rdi      # 0x683b0
leaq 0xd0c9(%rip), %rsi      # 0x6ec61
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61bcb
jmp 0x61d32
jmp 0x61bd2
leaq 0x67d7(%rip), %rdi      # 0x683b0
leaq 0xd089(%rip), %rsi      # 0x6ec69
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61c13
jmp 0x61d32
jmp 0x61c1a
leaq 0x678f(%rip), %rdi      # 0x683b0
leaq 0xd046(%rip), %rsi      # 0x6ec6e
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61c5b
jmp 0x61d32
jmp 0x61c62
leaq 0x6747(%rip), %rdi      # 0x683b0
leaq 0x67ff(%rip), %rsi      # 0x6846f
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61ca3
jmp 0x61d32
jmp 0x61caa
leaq 0x66ff(%rip), %rdi      # 0x683b0
leaq 0xcfbb(%rip), %rsi      # 0x6ec73
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61ceb
jmp 0x61d32
jmp 0x61cef
leaq 0x66ba(%rip), %rdi      # 0x683b0
leaq 0xcf81(%rip), %rsi      # 0x6ec7e
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61d30
jmp 0x61d32
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0x7, %eax
ja 0x61f59
movq -0x40(%rbp), %rax
leaq 0xa67e(%rip), %rcx      # 0x6c3d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x61d61
leaq 0xc951(%rip), %rdi      # 0x6e6b9
leaq 0xc9b6(%rip), %rsi      # 0x6e725
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61da2
jmp 0x61f59
jmp 0x61da9
leaq 0xc909(%rip), %rdi      # 0x6e6b9
leaq 0xc90b(%rip), %rsi      # 0x6e6c2
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61dea
jmp 0x61f59
jmp 0x61df1
leaq 0xc8c1(%rip), %rdi      # 0x6e6b9
leaq 0xc8eb(%rip), %rsi      # 0x6e6ea
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61e32
jmp 0x61f59
jmp 0x61e39
leaq 0xc879(%rip), %rdi      # 0x6e6b9
leaq 0xc8ac(%rip), %rsi      # 0x6e6f3
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61e7a
jmp 0x61f59
jmp 0x61e81
leaq 0xc831(%rip), %rdi      # 0x6e6b9
leaq 0xc83c(%rip), %rsi      # 0x6e6cb
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61ec2
jmp 0x61f59
jmp 0x61ec9
leaq 0xc7e9(%rip), %rdi      # 0x6e6b9
leaq 0xc800(%rip), %rsi      # 0x6e6d7
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61f0a
jmp 0x61f59
movb $0x1, -0x29(%rbp)
jmp 0x61f59
movb $0x1, -0x29(%rbp)
leaq 0xc79c(%rip), %rdi      # 0x6e6b9
leaq 0xc807(%rip), %rsi      # 0x6e72b
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61f57
jmp 0x61f59
movq -0x10(%rbp), %rax
movzbl 0x5(%rax), %eax
cmpl $0x1, %eax
jne 0x61fab
jmp 0x61f68
leaq 0xcd16(%rip), %rdi      # 0x6ec85
leaq 0xcd1a(%rip), %rsi      # 0x6ec90
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61fa9
jmp 0x61fab
movq -0x10(%rbp), %rax
movzbl 0x5(%rax), %eax
cmpl $0x2, %eax
jne 0x61ffd
jmp 0x61fba
leaq 0xccc4(%rip), %rdi      # 0x6ec85
leaq 0xccd0(%rip), %rsi      # 0x6ec98
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x61ffb
jmp 0x61ffd
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2(%rax)
je 0x6204a
jmp 0x62009
leaq 0xcc94(%rip), %rdi      # 0x6eca4
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x62048
jmp 0x6204a
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x1, %eax
jne 0x6209a
jmp 0x62059
leaq 0xcc4f(%rip), %rdi      # 0x6ecaf
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x62098
jmp 0x6209a
movq -0x10(%rbp), %rax
cmpb $0x0, 0x3(%rax)
je 0x620e7
jmp 0x620a6
leaq 0xcc0f(%rip), %rdi      # 0x6ecbc
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x620e5
jmp 0x620e7
movq -0x10(%rbp), %rax
cmpb $0x0, 0x4(%rax)
je 0x62134
jmp 0x620f3
leaq 0xcbd3(%rip), %rdi      # 0x6eccd
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x62132
jmp 0x62134
movq -0x10(%rbp), %rax
cmpq $0x0, 0x90(%rax)
je 0x6218b
jmp 0x62144
movq -0x10(%rbp), %rax
movq 0x90(%rax), %rsi
leaq 0xcb88(%rip), %rdi      # 0x6ecde
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x62189
jmp 0x6218b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x98(%rax)
je 0x621e2
jmp 0x6219b
movq -0x10(%rbp), %rax
movq 0x98(%rax), %rsi
leaq 0xcb3c(%rip), %rdi      # 0x6ece9
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x621e0
jmp 0x621e2
movq -0x10(%rbp), %rax
cmpq $0x0, 0x80(%rax)
je 0x62239
jmp 0x621f2
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rsi
leaq 0xcaeb(%rip), %rdi      # 0x6ecef
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x62237
jmp 0x62239
movq -0x10(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x62290
jmp 0x62249
movq -0x10(%rbp), %rax
movq 0x88(%rax), %rsi
leaq 0xcaa0(%rip), %rdi      # 0x6ecfb
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x6228e
jmp 0x62290
jmp 0x62292
movq -0x10(%rbp), %rsi
addq $0xa0, %rsi
leaq 0xcd82(%rip), %rdi      # 0x6f026
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x622d7
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x10, %eax
jne 0x622fc
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xca11(%rip), %rsi      # 0x6ed02
leaq -0x20(%rbp), %rdx
callq 0xcca0
jmp 0x62313
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xc9f8(%rip), %rsi      # 0x6ed02
leaq -0x20(%rbp), %rdx
callq 0xc390
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x44(%rbp)
subl $0x1, %eax
je 0x6238e
jmp 0x62324
movl -0x44(%rbp), %eax
subl $0x2, %eax
je 0x623ba
jmp 0x62332
movl -0x44(%rbp), %eax
subl $0x3, %eax
je 0x6238e
jmp 0x6233c
movl -0x44(%rbp), %eax
addl $-0x4, %eax
subl $0x3, %eax
jb 0x623ba
jmp 0x62349
movl -0x44(%rbp), %eax
subl $0x7, %eax
je 0x6238e
jmp 0x62353
movl -0x44(%rbp), %eax
subl $0x8, %eax
je 0x623ba
jmp 0x6235d
movl -0x44(%rbp), %eax
addl $-0x9, %eax
subl $0x2, %eax
jb 0x6238e
jmp 0x6236a
movl -0x44(%rbp), %eax
subl $0xb, %eax
je 0x623ba
jmp 0x62374
movl -0x44(%rbp), %eax
addl $-0xc, %eax
subl $0x2, %eax
jb 0x6238e
jmp 0x62381
movl -0x44(%rbp), %eax
addl $-0xe, %eax
subl $0x2, %eax
jb 0x623ba
jmp 0x623e4
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
callq 0x62460
cmpb $0x0, -0x29(%rbp)
je 0x623b8
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
callq 0x624b0
jmp 0x623e4
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x62500
cmpb $0x0, -0x29(%rbp)
je 0x623e2
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rsi
callq 0x62540
jmp 0x623e4
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x10, %eax
je 0x62403
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xc904(%rip), %rsi      # 0x6ed02
callq 0xc060
jmp 0x62405
jmp 0x62407
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x62417
jmp 0x62449
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x6243c
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x6243e
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x62407
jmp 0x6244b
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)