// File: /workspace/github_c_makefile_star2_O0/cinemast[P]sudoku/sudoku.c
// Function: evaluate_options
int
evaluate_options (int argc, char **argv)
{
    int ret_err = 0;
    if (1 < argc) {
        char * arg;
        while (0 < --argc) {
            arg = *++argv;
            if ('-' != *arg) {
                if (0 != precanned) {
                    fprintf(stderr, "Error: only 1 precanned file allowed\n");
                    ret_err = 1;
                    /* will exit */
                    break;
                }
                open_precanned(arg);
                strcpy(userfile, arg);  /* Save the filename */
                if (0 == precanned || 0 == n_precanned) {
                    fprintf(stderr, "Error: failed to open '%s'\n", arg);
                    ret_err = 1;
                    /* will exit */
                    break;
                }
            } else {
                while ('\0' != *++arg) {
                    switch (*arg) {
                        case 'c':
                            /* No need for strdup, since the underlying
                             * memory in the environment will not go away. */
                            requested_class = &arg[1];
                            if( 0 != strcmp(requested_class, CN(VERY_EASY)) &&
                                0 != strcmp(requested_class, CN(EASY))      &&
                                0 != strcmp(requested_class, CN(MEDIUM))    &&
                                0 != strcmp(requested_class, CN(HARD))      &&
                                0 != strcmp(requested_class, CN(FIENDISH))) {
                                fprintf(stderr,
                                        "Error:"
                                        " the class must be one of"
                                        " '%s', '%s', '%s', '%s', '%s'\n",
                                        CN(VERY_EASY),
                                        CN(EASY),
                                        CN(MEDIUM),
                                        CN(HARD),
                                        CN(FIENDISH));
                                ret_err = 1;
                                /* will exit */
                            }
                            /* dummy to force termination */
                            arg = "x";
                            break;
                        case 'd':
                            opt_describe = 1;
                            break;
                        case 'f':
                            if ('\0' == arg[1]) {
                                arg = *++argv;
                                --argc;
                            } else {
                                ++arg;
                            }
                            if (0 == strcmp("compact", arg)) {
                                opt_format = fCompact;
                            } else if (0 == strcmp("standard", arg)
                                    || 0 == strcmp("std", arg)) {
                                opt_format = fStandard;
                            } else if (0 == strcmp("csv", arg)) {
                                opt_format = fCSV;
                            } else if (0 == strcmp("postscript", arg) ||
                                       0 == strcmp("ps", arg)) {
                                    opt_format = fPostScript;
                            } else if (0 == strcmp("html", arg)) {
                                opt_format = fHTML;
                            } else {
                                fprintf(stderr,
                                        "Error: '%s' is an unknown format\n",
                                        arg);
                                ret_err = 1;
                                /* will exit */
                            }
                            /* dummy to force termination */
                            arg = "x";
                            break;

                        case 'g':
                            opt_generate = 1;
                            if (isdigit(arg[1])) {
                                num_generate = atoi(arg + 1);
                                /* dummy to force termination */
                                arg = "x";
                            } else if ('\0' == arg[1]
                                      && 0 != *(argv+1)
                                      && isdigit(**(argv+1))) {
                                num_generate = atoi(*++argv);
                                --argc;
                            }
                            break;
                        case 'h': opt_spoilerhint = 1; break;
                        case 'n': opt_random = 0; break;
                        case 'r': opt_restrict = 1; break;
                        case 's': opt_statistics = 1; break;
                        case 't':
                            if ('\0' == arg[1]) {
                                if (0 == *(argv+1)) {
                                    fprintf(stderr,
                                            "Error:"
                                            " expected argument after '-t'\n");
                                    ret_err = 1;
                                    /* will exit */
                                    /* dummy to force termination */
                                    arg = "x";
                                    break;
                                }
                                arg = *++argv;
                                open_template(arg);
                                --argc;
                            } else {
                                open_template(++arg);
                            }
                            if (0 == ftmplt) {
                                fprintf(stderr,
                                        "Error:"
                                        " failed to open template file '%s'\n",
                                        arg);
                                ret_err = 1;
                                /* will exit */
                            }
                            /* dummy to force termination */
                            arg = "x";
                            break;
                        case 'v':
                            opt_solve = 1;
                            break;
                        case 'w':
                            write_default_template(TEMPLATE_FALLBACK);
                            break;
                        default:
                            usage();
                            ret_err = 1;
                            /* will exit */
                            /* dummy to force termination */
                            arg = "x";
                            break;
                    }
                }
            }
            if (ret_err != 0) {
                /* will force the exit */
                break;
            }
        }
    }
    return ret_err;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x1, %eax
cmpl -0x4(%rbp), %eax
jge 0x3c1b
jmp 0x36a6
movl -0x4(%rbp), %ecx
addl $-0x1, %ecx
movl %ecx, -0x4(%rbp)
xorl %eax, %eax
cmpl %ecx, %eax
jge 0x3c19
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %ecx
movl $0x2d, %eax
cmpl %ecx, %eax
je 0x376e
xorl %eax, %eax
cmpq 0xdcd3(%rip), %rax      # 0x113c0
je 0x3713
movq 0xd902(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
leaq 0x963c(%rip), %rsi      # 0xcd3c
movb $0x0, %al
callq 0x2200
movl $0x1, -0x14(%rbp)
jmp 0x3c19
movq -0x20(%rbp), %rdi
callq 0x3c30
movq -0x20(%rbp), %rsi
leaq 0xdca9(%rip), %rdi      # 0x113d0
callq 0x2050
xorl %eax, %eax
cmpq 0xdc8b(%rip), %rax      # 0x113c0
je 0x3741
xorl %eax, %eax
cmpl 0xec91(%rip), %eax      # 0x123d0
jne 0x3769
movq 0xd8b0(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
leaq 0x960c(%rip), %rsi      # 0xcd62
movb $0x0, %al
callq 0x2200
movl $0x1, -0x14(%rbp)
jmp 0x3c19
jmp 0x3c0c
jmp 0x3770
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
movsbl 0x1(%rax), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3c0a
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
addl $-0x63, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x14, %eax
ja 0x3bee
movq -0x28(%rbp), %rax
leaq 0x785f(%rip), %rcx      # 0xb010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, 0xec0f(%rip)      # 0x123d8
movq 0xec08(%rip), %rdi      # 0x123d8
movq 0xd9f9(%rip), %rsi      # 0x111d0
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x389e
movq 0xebe9(%rip), %rdi      # 0x123d8
movq 0xd9e2(%rip), %rsi      # 0x111d8
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x389e
movq 0xebca(%rip), %rdi      # 0x123d8
movq 0xd9cb(%rip), %rsi      # 0x111e0
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x389e
movq 0xebaf(%rip), %rdi      # 0x123d8
movq 0xd9b8(%rip), %rsi      # 0x111e8
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x389e
movq 0xeb94(%rip), %rdi      # 0x123d8
movq 0xd9a5(%rip), %rsi      # 0x111f0
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x389e
movq 0xd799(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq 0xd967(%rip), %rdx      # 0x111d0
movq 0xd968(%rip), %rcx      # 0x111d8
movq 0xd969(%rip), %r8       # 0x111e0
movq 0xd96a(%rip), %r9       # 0x111e8
movq 0xd96b(%rip), %rax      # 0x111f0
leaq 0x94f2(%rip), %rsi      # 0xcd7e
movq %rax, (%rsp)
movb $0x0, %al
callq 0x2200
movl $0x1, -0x14(%rbp)
leaq 0x9517(%rip), %rax      # 0xcdbc
movq %rax, -0x20(%rbp)
jmp 0x3c05
movl $0x1, 0xeb28(%rip)      # 0x123e0
jmp 0x3c05
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x38ed
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movl -0x4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x38f9
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x94ba(%rip), %rdi      # 0xcdbe
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x3920
movl $0x1, 0xeac9(%rip)      # 0x123e4
jmp 0x3a11
movq -0x20(%rbp), %rsi
leaq 0x949b(%rip), %rdi      # 0xcdc6
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x3950
movq -0x20(%rbp), %rsi
leaq 0x948c(%rip), %rdi      # 0xcdcf
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x395f
movl $0x0, 0xea8a(%rip)      # 0x123e4
jmp 0x3a0f
movq -0x20(%rbp), %rsi
leaq 0x9469(%rip), %rdi      # 0xcdd3
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x3986
movl $0x2, 0xea63(%rip)      # 0x123e4
jmp 0x3a0d
movq -0x20(%rbp), %rsi
leaq 0x9446(%rip), %rdi      # 0xcdd7
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
je 0x39b6
movq -0x20(%rbp), %rsi
leaq 0x9439(%rip), %rdi      # 0xcde2
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x39c2
movl $0x3, 0xea24(%rip)      # 0x123e4
jmp 0x3a0b
movq -0x20(%rbp), %rsi
leaq 0x9418(%rip), %rdi      # 0xcde5
callq 0x21f0
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x39e6
movl $0x4, 0xea00(%rip)      # 0x123e4
jmp 0x3a09
movq 0xd60b(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
leaq 0x93ef(%rip), %rsi      # 0xcdea
movb $0x0, %al
callq 0x2200
movl $0x1, -0x14(%rbp)
jmp 0x3a0b
jmp 0x3a0d
jmp 0x3a0f
jmp 0x3a11
leaq 0x93a4(%rip), %rax      # 0xcdbc
movq %rax, -0x20(%rbp)
jmp 0x3c05
movl $0x1, 0xe9bd(%rip)      # 0x123e8
callq 0x2360
movq (%rax), %rax
movq -0x20(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x3a6c
movq -0x20(%rbp), %rdi
addq $0x1, %rdi
callq 0x22d0
movl %eax, 0xd799(%rip)      # 0x111f8
leaq 0x9356(%rip), %rax      # 0xcdbc
movq %rax, -0x20(%rbp)
jmp 0x3ad3
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x3ad1
movq -0x10(%rbp), %rcx
xorl %eax, %eax
cmpq 0x8(%rcx), %rax
je 0x3ad1
callq 0x2360
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rcx), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x3ad1
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rdi
callq 0x22d0
movl %eax, 0xd730(%rip)      # 0x111f8
movl -0x4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x3ad3
jmp 0x3c05
movl $0x1, 0xd882(%rip)      # 0x11364
jmp 0x3c05
movl $0x0, 0xd70b(%rip)      # 0x111fc
jmp 0x3c05
movl $0x1, 0xe8ec(%rip)      # 0x123ec
jmp 0x3c05
movl $0x1, 0xe8e1(%rip)      # 0x123f0
jmp 0x3c05
movq -0x20(%rbp), %rax
movsbl 0x1(%rax), %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x3b88
movq -0x10(%rbp), %rcx
xorl %eax, %eax
cmpq 0x8(%rcx), %rax
jne 0x3b5d
movq 0xd4c3(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
leaq 0x92cd(%rip), %rsi      # 0xce0c
movb $0x0, %al
callq 0x2200
movl $0x1, -0x14(%rbp)
leaq 0x9268(%rip), %rax      # 0xcdbc
movq %rax, -0x20(%rbp)
jmp 0x3c05
movq -0x10(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x3cb0
movl -0x4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x3b99
movq -0x20(%rbp), %rdi
addq $0x1, %rdi
movq %rdi, -0x20(%rbp)
callq 0x3cb0
xorl %eax, %eax
cmpq 0xe856(%rip), %rax      # 0x123f8
jne 0x3bc7
movq 0xd44d(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
leaq 0x9278(%rip), %rsi      # 0xce31
movb $0x0, %al
callq 0x2200
movl $0x1, -0x14(%rbp)
leaq 0x91ee(%rip), %rax      # 0xcdbc
movq %rax, -0x20(%rbp)
jmp 0x3c05
movl $0x1, 0xe822(%rip)      # 0x12400
jmp 0x3c05
leaq 0xa02b(%rip), %rdi      # 0xdc12
callq 0x3d20
jmp 0x3c05
callq 0x3e10
movl $0x1, -0x14(%rbp)
leaq 0x91bb(%rip), %rax      # 0xcdbc
movq %rax, -0x20(%rbp)
jmp 0x3770
jmp 0x3c0c
cmpl $0x0, -0x14(%rbp)
je 0x3c14
jmp 0x3c19
jmp 0x36a6
jmp 0x3c1b
movl -0x14(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)