// File: /workspace/github_c_makefile_star2_O1/cinemast[P]sudoku/sudoku.c
// Function: main
int
main (int argc, char **argv)
{
    program = argv[0];

    /* Limited support for options */
    if (0 != evaluate_options(argc, argv)) {
        cleanup_curses_and_more();
        exit(1);
    }
    if (0 != opt_statistics && 0 != opt_generate) {
        fprintf(stderr, "Error: Cannot set both -g and -s options\n");
        cleanup_curses_and_more();
        return -1;
    }

    if (0 == precanned) {
        open_precanned(PRECANNED);

        /* Fallback - try current working directory */
        if (0 == precanned) {
            open_precanned(PRECANNED_FALLBACK);
        }
        /* Else, can continue happily without any precanned files... */
    }

    if (0 != opt_statistics || 0 != opt_solve) {
        int retval = gen_statistics();
        cleanup_curses_and_more();
        return retval;
    }

    srand((unsigned int)(time(0) ^ getpid()));

    if (0 == ftmplt) {
        open_template(TEMPLATE);

        /* Fallback - try current working directory */
        if (0 == ftmplt) {
            open_template(TEMPLATE_FALLBACK);
            if (0 == ftmplt) {
                fprintf(stderr, "Error: failed to open template file\n");
                exit(1);
            } else if (0 >= n_tmplt) {
                fprintf(stderr, "Error:"
                                " no valid template found"
                                " in the template file\n");
                cleanup_curses_and_more();
                exit(1);
            }
        }
    }

    if (0 != opt_generate) {
        /* -g0 generates many boards */
        if (0 == num_generate) {
            /* changed from --num_generate, to make it
             * independent from the actual size of int
             * 10000 seems to qualify for being 'many'
             */
            num_generate = 10000;
        }
        while (0 != num_generate--) {
            generate();
            print(stdout, title);
        }
        cleanup_curses_and_more();
        return 0;
    }

    if (0 == opt_random && 0 == precanned) {
        fprintf(stderr, "Error: option -n requires precanned boards\n");
        cleanup_curses_and_more();
        return 1;
    }

    if (!isatty(0) || !isatty(1)) {
        fprintf(stderr, "Error: stdin/out cannot be redirected\n");
        cleanup_curses_and_more();
        return 1;
    }

    /* Establish process environment */
    if (0 == initscr()) {
        fprintf(stderr,
                 "Error: failed to initialise curses screen library\n");
        cleanup_curses_and_more();
        return 1;
    }

    /* Any signal will now shutdown curses cleanly */
    signals();

    draw_screen();
    noecho();
    cbreak();
    load_board();
    play_the_game();
    cleanup_curses_and_more();
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq (%rsi), %rax
movq %rax, 0xb591(%rip)      # 0xf3f8
callq 0x38fa
testl %eax, %eax
jne 0x529c
cmpb $0x1, 0xb569(%rip)      # 0xf3e4
jne 0x3e8a
testb $0x1, 0xb554(%rip)      # 0xf3d8
jne 0x5255
cmpq $0x0, 0xa51e(%rip)      # 0xe3b0
jne 0x3eb6
leaq 0x6cb3(%rip), %rdi      # 0xab4e
callq 0x3ce7
cmpq $0x0, 0xa508(%rip)      # 0xe3b0
jne 0x3eb6
leaq 0x6caf(%rip), %rdi      # 0xab60
callq 0x3ce7
cmpb $0x0, 0xb527(%rip)      # 0xf3e4
jne 0x3f81
testb $0x1, 0xb526(%rip)      # 0xf3f0
jne 0x3f81
xorl %edi, %edi
callq 0x2250
movq %rax, %rbx
callq 0x20c0
xorl %eax, %ebx
movl %ebx, %edi
callq 0x21e0
cmpq $0x0, 0xb4f8(%rip)      # 0xf3e8
jne 0x3f2f
leaq 0x6c71(%rip), %rdi      # 0xab6a
callq 0x3d26
cmpq $0x0, 0xb4e2(%rip)      # 0xf3e8
jne 0x3f2f
leaq 0x79a4(%rip), %rdi      # 0xb8b3
callq 0x3d26
cmpq $0x0, 0xb4cc(%rip)      # 0xf3e8
je 0x52ca
cmpl $0x0, 0xb4d7(%rip)      # 0xf400
jle 0x52cf
cmpb $0x1, 0xb4a2(%rip)      # 0xf3d8
jne 0x419c
cmpl $0x0, 0xa2a5(%rip)      # 0xe1e8
jne 0x3f4f
movl $0x2710, 0xa299(%rip)   # imm = 0x2710
xorl %r15d, %r15d
subl $0x1, 0xa28f(%rip)      # 0xe1e8
jb 0x5282
movq 0xa06a(%rip), %rbx      # 0xdfd0
callq 0x536c
movq (%rbx), %rdi
callq 0x5706
subl $0x1, 0xa26e(%rip)      # 0xe1e8
jae 0x3f66
jmp 0x5282
movq 0xa428(%rip), %rdi      # 0xe3b0
testq %rdi, %rdi
je 0x525c
xorl %r15d, %r15d
xorl %esi, %esi
xorl %edx, %edx
callq 0x2270
movq 0xa40c(%rip), %rdi      # 0xe3b0
xorl %esi, %esi
callq 0x6183
testl %eax, %eax
jne 0x5282
movq 0xa016(%rip), %rbx      # 0xdfd0
leaq 0x722b(%rip), %r13      # 0xb1ec
callq 0x675c
cmpl $-0x1, %eax
je 0x4140
cmpb $0x0, 0xb41a(%rip)      # 0xf3f0
jne 0x3fef
callq 0x68a1
cmpl $-0x1, %eax
je 0x3fef
callq 0x675c
testl %eax, %eax
je 0x4193
callq 0x690c
cmpb $0x0, 0xb3f5(%rip)      # 0xf3f0
je 0x4157
leaq 0x715e(%rip), %rdi      # 0xb166
leaq 0xb401(%rip), %rsi      # 0xf410
movq %rax, %rdx
xorl %eax, %eax
callq 0x2130
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0xb5fb(%rip), %rcx      # 0xf620
incl %eax
testb $0x10, 0x2(%rcx)
leaq 0x4(%rcx), %rcx
jne 0x4025
movl %eax, 0xb5dd(%rip)      # 0xf614
callq 0x32e2
callq 0x675c
cmpl $-0x1, %eax
je 0x4175
movq (%rbx), %rdi
callq 0x5706
cmpb $0x1, 0xb377(%rip)      # 0xf3d0
jne 0x4130
leaq 0x7b7d(%rip), %rdi      # 0xbbe3
callq 0x2060
movq %rbx, %rbp
movq (%rbx), %r15
cmpl $0x0, 0xb59c(%rip)      # 0xf614
jle 0x4120
xorl %r12d, %r12d
leaq 0xb598(%rip), %rbx      # 0xf620
xorl %r14d, %r14d
testb $0x10, 0x2(%rbx)
jne 0x4109
testl %r14d, %r14d
jle 0x40c0
imull $0xaaaaaaab, %r14d, %eax # imm = 0xAAAAAAAB
rorl %eax
cmpl $0x2aaaaaab, %eax       # imm = 0x2AAAAAAB
leaq 0x713e(%rip), %rsi      # 0xb1e9
leaq 0x69d1(%rip), %rax      # 0xaa83
cmovbq %rax, %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x2220
movl (%rbx), %eax
movl %eax, %edx
shrl $0x10, %edx
andl $0xf, %edx
xorl %ecx, %ecx
btl $0x15, %eax
setae %cl
leal (%rcx,%rcx,2), %ecx
addl $0x2a, %ecx
andl $0x7f, %eax
imulq $0x1c71c71d, %rax, %rsi # imm = 0x1C71C71D
shrq $0x20, %rsi
leal (%rsi,%rsi,8), %edi
movl %esi, %r8d
incl %r8d
negl %edi
leal (%rax,%rdi), %r9d
incl %r9d
movq %r15, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x2220
incl %r14d
incq %r12
movslq 0xb501(%rip), %rax      # 0xf614
addq $0x4, %rbx
cmpq %rax, %r12
jl 0x408b
movl $0xa, %edi
movq %r15, %rsi
callq 0x21c0
movq %rbp, %rbx
callq 0x68a1
cmpl $-0x1, %eax
jne 0x403c
jmp 0x4175
leaq 0x6fd0(%rip), %rdi      # 0xb117
leaq 0xb2c2(%rip), %rsi      # 0xf410
xorl %eax, %eax
callq 0x2130
jmp 0x4175
movl 0xba37(%rip), %esi      # 0xfb94
leaq 0x6ff2(%rip), %rdi      # 0xb156
movq %rax, %rdx
leaq 0xb2a2(%rip), %rcx      # 0xf410
xorl %eax, %eax
callq 0x2130
movq 0xa234(%rip), %rdi      # 0xe3b0
xorl %r15d, %r15d
xorl %esi, %esi
callq 0x6183
testl %eax, %eax
je 0x3fc1
jmp 0x5282
leaq 0x6f99(%rip), %rdi      # 0xb133
jmp 0x4147
cmpb $0x1, 0xb239(%rip)      # 0xf3dc
jne 0x41b3
cmpq $0x0, 0xa203(%rip)      # 0xe3b0
je 0x5270
xorl %edi, %edi
callq 0x2080
testl %eax, %eax
je 0x5269
movl $0x1, %edi
callq 0x2080
testl %eax, %eax
je 0x5269
callq 0x2170
testq %rax, %rax
je 0x5277
leaq 0xe8(%rsp), %rbx
movq %rbx, %rdi
callq 0x2230
leaq 0x320d(%rip), %rcx      # 0x7406
leaq 0x18(%rsp), %rax
movq %rcx, -0x8(%rax)
movl $0x10, %ecx
movq %rax, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movl $0x0, 0x80(%rax)
leaq 0x10(%rsp), %rbx
movl $0x2, %edi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2090
movl $0x6, %edi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2090
movl $0xf, %edi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2090
movl $0x1, %edi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2090
movl $0x3, %edi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2090
movl $0x9, %edi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2090
leaq 0xac(%rsp), %rsi
xorl %edi, %edi
callq 0x2290
testl %eax, %eax
jne 0x42a1
leaq 0xac(%rsp), %rdx
orb $0x1, 0xc(%rdx)
xorl %edi, %edi
xorl %esi, %esi
callq 0x22a0
movq 0x9d30(%rip), %r12      # 0xdfd8
movq (%r12), %rdi
callq 0x20b0
movq (%r12), %rdi
movl $0x200000, %esi         # imm = 0x200000
xorl %edx, %edx
callq 0x21d0
movq (%r12), %rdi
movl $0x2, %esi
movl $0x23, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x42ee
movq (%r12), %rdi
leaq 0x730b(%rip), %rsi      # 0xb5ef
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x200000, %esi         # imm = 0x200000
xorl %edx, %edx
callq 0x2370
movl $0x9, %ebx
leaq 0x7309(%rip), %r14      # 0xb613
leaq 0x72e8(%rip), %r15      # 0xb5f9
movq (%r12), %rdi
leal -0x3(%rbx), %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4338
movq (%r12), %rdi
movq %r15, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
leal -0x2(%rbx), %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x435f
movq (%r12), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
leal -0x1(%rbx), %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4386
movq (%r12), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl %ebx, %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x43ac
movq (%r12), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
addl $0x4, %ebx
cmpl $0x15, %ebx
jne 0x4311
movq (%r12), %rdi
movl $0x12, %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x43e5
movq (%r12), %rdi
leaq 0x721e(%rip), %rsi      # 0xb5f9
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x8, %esi
movl $0x1, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4412
movq (%r12), %rdi
leaq 0x7225(%rip), %rsi      # 0xb62d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x9, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x443f
movq (%r12), %rdi
leaq 0x71ff(%rip), %rsi      # 0xb634
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xa, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x446c
movq (%r12), %rdi
leaq 0x71e8(%rip), %rsi      # 0xb64a
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xb, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4499
movq (%r12), %rdi
leaq 0x71d1(%rip), %rsi      # 0xb660
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xc, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x44c6
movq (%r12), %rdi
leaq 0x71ba(%rip), %rsi      # 0xb676
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
cmpb $0x0, 0xaf13(%rip)      # 0xf3e0
jne 0x45b4
movq (%r12), %rdi
movl $0xe, %esi
movl $0x1, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4500
movq (%r12), %rdi
leaq 0x7196(%rip), %rsi      # 0xb68c
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xf, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x452d
movq (%r12), %rdi
leaq 0x716f(%rip), %rsi      # 0xb692
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x10, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x455a
movq (%r12), %rdi
leaq 0x7151(%rip), %rsi      # 0xb6a1
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x11, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4587
movq (%r12), %rdi
leaq 0x7137(%rip), %rsi      # 0xb6b4
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x12, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x45b4
movq (%r12), %rdi
leaq 0x7119(%rip), %rsi      # 0xb6c3
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x6, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x45e1
movq (%r12), %rdi
leaq 0x7100(%rip), %rsi      # 0xb6d7
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x7, %esi
movl $0x37, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x460e
movq (%r12), %rdi
leaq 0x70d5(%rip), %rsi      # 0xb6d9
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x8, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x463b
movq (%r12), %rdi
leaq 0x70bc(%rip), %rsi      # 0xb6ed
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x9, %esi
movl $0x3a, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4668
movq (%r12), %rdi
leaq 0x7091(%rip), %rsi      # 0xb6ef
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xa, %esi
movl $0x3a, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4695
movq (%r12), %rdi
leaq 0x7075(%rip), %rsi      # 0xb700
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xb, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x46c2
movq (%r12), %rdi
leaq 0x7059(%rip), %rsi      # 0xb711
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xc, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x46ef
movq (%r12), %rdi
leaq 0x703c(%rip), %rsi      # 0xb721
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xd, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x471c
movq (%r12), %rdi
leaq 0x7024(%rip), %rsi      # 0xb736
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xe, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4749
movq (%r12), %rdi
leaq 0x7007(%rip), %rsi      # 0xb746
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xf, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4776
movq (%r12), %rdi
leaq 0x6fe8(%rip), %rsi      # 0xb754
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x10, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x47a3
movq (%r12), %rdi
leaq 0x6fc9(%rip), %rsi      # 0xb762
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x11, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x47d0
movq (%r12), %rdi
leaq 0x6fa8(%rip), %rsi      # 0xb76e
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x12, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x47fd
movq (%r12), %rdi
leaq 0x6f8e(%rip), %rsi      # 0xb781
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x13, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x482a
movq (%r12), %rdi
leaq 0x6f6b(%rip), %rsi      # 0xb78b
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
callq 0x2110
callq 0x2260
callq 0x5bc1
leaq 0x4824(%rip), %r13      # 0x9064
leaq 0xac59(%rip), %rbx      # 0xf4a0
leaq 0x9b72(%rip), %r14      # 0xe3c0
leaq 0xb49b(%rip), %r15      # 0xfcf0
movq (%r12), %rdi
callq 0x2180
callq 0x75fc
movl %eax, %ebp
cmpb $0x1, 0xb188(%rip)      # 0xf9f4
jne 0x4873
callq 0x7416
leal -0x63(%rbp), %eax
cmpl $0x14, %eax
jbe 0x490c
leal -0x20(%rbp), %eax
cmpl $0x1f, %eax
ja 0x49d4
movslq (%r13,%rax,4), %rax
addq %r13, %rax
jmpq *%rax
movl 0xb155(%rip), %eax      # 0xf9f0
leal (%rax,%rax,8), %r15d
addl 0xb146(%rip), %r15d     # 0xf9ec
movl (%rbx,%r15,4), %eax
btl $0x14, %eax
jb 0x49c3
movq %r13, %r14
movl $0xffffffff, 0x9a8b(%rip) # imm = 0xFFFFFFFF
leal -0x30(%rbp), %r13d
shrl $0x10, %eax
andl $0xf, %eax
cmpl %r13d, %eax
je 0x4ecb
testl %r13d, %r13d
je 0x4a59
testl %eax, %eax
jne 0x4a59
movl %r13d, %eax
shll $0x10, %eax
orl %r15d, %eax
movl %eax, (%rbx,%r15,4)
movl %r15d, %edi
callq 0x6031
movl %r15d, %edi
movl %r13d, %esi
xorl %edx, %edx
callq 0x664e
jmp 0x4ecb
leaq 0x47d1(%rip), %rcx      # 0x90e4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, 0xb3ba(%rip)      # 0xfce0
movl $0xffffffff, 0x9a1c(%rip) # imm = 0xFFFFFFFF
cmpb $0x1, 0x9a11(%rip)      # 0xe348
jne 0x493e
callq 0x3796
movl $0x144, %edx            # imm = 0x144
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2190
movl $0x3cc, %edx            # imm = 0x3CC
leaq 0xacc7(%rip), %rdi      # 0xf620
xorl %esi, %esi
callq 0x2190
xorl %r14d, %r14d
movl %r14d, 0xacaa(%rip)     # 0xf614
movl %r14d, 0xb223(%rip)     # 0xfb94
callq 0x744f
movq (%r12), %rdi
movl $0x4, %esi
xorl %edx, %edx
callq 0x22d0
movq (%r12), %rdi
callq 0x22e0
movl %r14d, 0xb056(%rip)     # 0xf9ec
movl %r14d, 0xb053(%rip)     # 0xf9f0
movq (%r12), %rdi
movl $0x7, %esi
movl $0x1d, %edx
callq 0x22d0
movq (%r12), %rdi
callq 0x2180
movl $0x63, %ebp
jmp 0x4f14
callq 0x20d0
leaq 0xb321(%rip), %r15      # 0xfcf0
jmp 0x4f1b
movl %ebp, %eax
addl $0xfffffebf, %eax       # imm = 0xFFFFFEBF
cmpl $0x3, %eax
ja 0x4d5d
leaq 0x474d(%rip), %rcx      # 0x9138
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xaff6(%rip), %esi      # 0xf9f0
movl 0xafec(%rip), %edi      # 0xf9ec
testl %esi, %esi
jle 0x4e59
decl %esi
jmp 0x4e6b
movl 0xafd7(%rip), %edi      # 0xf9ec
cmpl $0x7, %edi
jg 0x4e4b
incl %edi
jmp 0x4a4e
movl 0xafc8(%rip), %esi      # 0xf9f0
movl 0xafbe(%rip), %edi      # 0xf9ec
cmpl $0x7, %esi
jg 0x4e55
incl %esi
jmp 0x4e6b
movl 0xafa8(%rip), %edi      # 0xf9ec
testl %edi, %edi
jle 0x4e60
decl %edi
movl 0xaf9c(%rip), %esi      # 0xf9f0
jmp 0x4e6b
movl %r15d, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x664e
callq 0x32e2
testl %r13d, %r13d
je 0x4ecb
movl 0xab9b(%rip), %eax      # 0xf614
testl %eax, %eax
jle 0x4ec6
shll $0x10, %r13d
decl %eax
leaq 0xab92(%rip), %rcx      # 0xf620
orl %r13d, (%rcx,%rax,4)
callq 0x32e2
jmp 0x4ecb
movl $0x74, %ebp
cmpb $0x0, 0xa938(%rip)      # 0xf3e0
jne 0x4f1b
movb $0x0, 0x10(%rsp)
movq $0x0, (%rsp)
movl $0x50, %esi
leaq 0x10(%rsp), %rdi
leaq 0x710e(%rip), %rdx      # 0xbbda
leaq 0xa93d(%rip), %rcx      # 0xf410
leaq 0x70e9(%rip), %r8       # 0xbbc3
movl $0x25, %r9d
callq 0x777e
testl %eax, %eax
jne 0x4f1b
movl $0x50, %esi
leaq 0x10(%rsp), %rdi
leaq 0x70e3(%rip), %rdx      # 0xbbe1
callq 0x8659
testq %rax, %rax
je 0x4b2e
cmpb $0x0, (%rax)
je 0x4b2e
leaq 0xa8fc(%rip), %r15      # 0xf410
movq %r15, %rdi
movq %rax, %rsi
callq 0x2050
movq %r15, %rdi
leaq 0xb1c7(%rip), %r15      # 0xfcf0
callq 0x7398
movl 0xaeb8(%rip), %edi      # 0xf9ec
jmp 0x4a4e
movl $0x73, %ebp
cmpb $0x0, 0xa89b(%rip)      # 0xf3e0
jne 0x4f1b
leaq 0x389a(%rip), %rax      # 0x83ec
movq %rax, (%rsp)
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6df9(%rip), %rdx      # 0xb95e
leaq 0x6bc4(%rip), %rcx      # 0xb730
leaq 0x6fd7(%rip), %r8       # 0xbb4a
movl $0x24, %r9d
callq 0x777e
testl %eax, %eax
je 0x5020
leaq 0x700c(%rip), %rdi      # 0xbb99
jmp 0x514d
movl $0x77, %ebp
cmpb $0x0, 0xa842(%rip)      # 0xf3e0
jne 0x4f1b
leaq 0x3841(%rip), %rax      # 0x83ec
movq %rax, (%rsp)
movl $0x1000, %esi           # imm = 0x1000
movq %r15, %rdi
leaq 0x6da0(%rip), %rdx      # 0xb95e
leaq 0x6cee(%rip), %rcx      # 0xb8b3
leaq 0x6ce1(%rip), %r8       # 0xb8ad
movl $0x24, %r9d
callq 0x777e
testl %eax, %eax
je 0x5083
leaq 0x6d42(%rip), %rdi      # 0xb928
jmp 0x514d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0xaa29(%rip), %rcx      # 0xf620
incl %eax
testb $0x10, 0x2(%rcx)
leaq 0x4(%rcx), %rcx
jne 0x4bf7
movl %eax, 0xaa0b(%rip)      # 0xf614
callq 0x32e2
cmpb $0x1, 0x9733(%rip)      # 0xe348
jne 0x4c1c
callq 0x3796
movl $0xffffffff, 0x9726(%rip) # imm = 0xFFFFFFFF
callq 0x675c
testl %eax, %eax
je 0x4e8c
callq 0x20d0
leaq 0x6c18(%rip), %rdi      # 0xb857
callq 0x775d
jmp 0x4e96
movslq 0xa9c4(%rip), %rax      # 0xf614
testq %rax, %rax
leaq 0xa9c6(%rip), %r14      # 0xf620
jle 0x4e75
leal -0x1(%rax), %ecx
testb $0x10, 0x2(%r14,%rcx,4)
jne 0x4e75
movl %ecx, 0xa99f(%rip)      # 0xf614
cmpl $0x1, %eax
je 0x5175
leal -0x2(%rax), %ecx
movl -0x4(%r14,%rax,4), %edx
leaq (%r14,%rcx,4), %rax
incq %rcx
movl (%rax), %esi
movl %esi, %edi
xorl %edx, %edi
testb $0x7f, %dil
je 0x516d
addq $-0x4, %rax
decq %rcx
jg 0x4c8d
jmp 0x5175
movl $0x6f, %ebp
cmpb $0x0, 0xa729(%rip)      # 0xf3e0
jne 0x4f1b
leaq 0x3728(%rip), %rax      # 0x83ec
movq %rax, (%rsp)
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6c87(%rip), %rdx      # 0xb95e
leaq 0x6a52(%rip), %rcx      # 0xb730
leaq 0x6e0f(%rip), %r8       # 0xbaf4
movl $0x24, %r9d
callq 0x777e
testl %eax, %eax
je 0x50ca
leaq 0x6e21(%rip), %rdi      # 0xbb20
jmp 0x514d
movq (%r12), %rdi
callq 0x2180
movq (%r12), %rdi
testq %rdi, %rdi
je 0x4eb3
movswl 0x4(%rdi), %edx
incl %edx
jmp 0x4eb8
movl $0x66, %ebp
cmpl $0x0, 0xa8e3(%rip)      # 0xf614
je 0x4f1b
testb $0x10, 0xa8e4(%rip)     # 0xf622
jne 0x4f1b
callq 0x76ce
testl %eax, %eax
je 0x4f1b
leaq 0x6ad5(%rip), %rdi      # 0xb82d
callq 0x3890
callq 0x20d0
jmp 0x4f1b
cmpb $0x1, 0x95da(%rip)      # 0xe348
jne 0x4d75
callq 0x3796
movl $0x144, %edx            # imm = 0x144
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2190
movl $0x3cc, %edx            # imm = 0x3CC
leaq 0xa890(%rip), %rdi      # 0xf620
xorl %esi, %esi
callq 0x2190
xorl %eax, %eax
movl %eax, 0xa875(%rip)      # 0xf614
movl %eax, 0xadef(%rip)      # 0xfb94
callq 0x744f
movq (%r12), %rdi
movl $0x4, %esi
xorl %edx, %edx
callq 0x22d0
movq (%r12), %rdi
callq 0x22e0
movq (%r12), %rdi
callq 0x2180
callq 0x5bc1
movl $0x6e, %ebp
jmp 0x4f1b
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0xa839(%rip), %rcx      # 0xf620
incl %eax
testb $0x10, 0x2(%rcx)
leaq 0x4(%rcx), %rcx
jne 0x4de7
movl %eax, 0xa81b(%rip)      # 0xf614
callq 0x32e2
callq 0x744f
movl $0x8, %eax
movl %eax, 0xabde(%rip)      # 0xf9ec
movl %eax, 0xabdc(%rip)      # 0xf9f0
callq 0x756a
movl $0x72, %ebp
jmp 0x4f1b
callq 0x756a
movl $0x20, %ebp
jmp 0x4f1b
callq 0x3379
movl $0x3f, %ebp
jmp 0x4f1b
movl $0x30, %ebp
jmp 0x4895
movl 0xab9f(%rip), %esi      # 0xf9f0
xorl %edi, %edi
jmp 0x4e6b
xorl %esi, %esi
jmp 0x4e6b
movl $0x8, %esi
jmp 0x4e6b
movl 0xab8a(%rip), %esi      # 0xf9f0
movl $0x8, %edi
callq 0x6134
jmp 0x4f1b
testl %eax, %eax
js 0x52ab
callq 0x20d0
movl $0x75, %ebp
jmp 0x4f14
movl $0x1, 0xae4a(%rip)      # 0xfce0
callq 0x744f
movl 0xab4b(%rip), %edi      # 0xf9ec
movl 0xab49(%rip), %esi      # 0xf9f0
callq 0x6134
movl $0x76, %ebp
jmp 0x4f1b
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %esi, %esi
callq 0x2140
movl $0x64, %ebp
jmp 0x4f1b
callq 0x20d0
movq (%r12), %rdi
cmpl $0x30, %ebp
movl %ebp, %esi
movl $0x2e, %eax
cmovel %eax, %esi
callq 0x2300
movl 0xab05(%rip), %edi      # 0xf9ec
movl 0xab03(%rip), %esi      # 0xf9f0
callq 0x6134
cmpb $0x1, 0x944f(%rip)      # 0xe348
movq %r14, %r13
leaq 0xaded(%rip), %r15      # 0xfcf0
jne 0x4f0a
callq 0x3796
movl $0x0, 0x9430(%rip)      # 0xe344
leaq 0x94a5(%rip), %r14      # 0xe3c0
cmpl $0x0, 0xadbe(%rip)      # 0xfce0
jne 0x5012
xorl %eax, %eax
testb $0xf, 0x2(%rax,%rbx)
je 0x4f3f
addq $0x4, %rax
cmpq $0x144, %rax            # imm = 0x144
jne 0x4f2a
jmp 0x4f4b
cmpq $0x144, %rax            # imm = 0x144
jne 0x5012
callq 0x76ce
testl %eax, %eax
jne 0x5012
leaq 0x10(%rsp), %rdi
callq 0x2250
movq 0x10(%rsp), %r8
subq 0xad6a(%rip), %r8       # 0xfcd8
movq %r8, 0x10(%rsp)
movq %r8, %rax
movabsq $0x48d159e26af37c05, %rcx # imm = 0x48D159E26AF37C05
imulq %rcx
movq %rdx, %r9
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0xa, %r9
addl %eax, %r9d
movq %r8, %rax
movabsq $-0x7777777777777777, %rcx # imm = 0x8888888888888889
imulq %rcx
addq %r8, %rdx
movq %rdx, %rax
shrq $0x3f, %rax
shrq $0x5, %rdx
addl %eax, %edx
movslq %edx, %rcx
imulq $-0x77777777, %rcx, %rax # imm = 0x88888889
shrq $0x20, %rax
addl %ecx, %eax
movl %eax, %edx
shrl $0x1f, %edx
sarl $0x5, %eax
addl %edx, %eax
imull $0x3c, %eax, %eax
imull $0x3c, %ecx, %edx
subl %eax, %ecx
subl %edx, %r8d
leaq 0x9380(%rip), %r14      # 0xe360
movq %r14, %rdi
leaq 0x6889(%rip), %rsi      # 0xb873
movl %r9d, %edx
xorl %eax, %eax
callq 0x2320
callq 0x20d0
movq %r14, %rdi
leaq 0x93bd(%rip), %r14      # 0xe3c0
callq 0x3890
movl $0x1, 0xacce(%rip)      # 0xfce0
cmpl $0x71, %ebp
jne 0x4855
jmp 0x5250
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6ac2(%rip), %rdx      # 0xbaf1
callq 0x8659
testq %rax, %rax
je 0x5130
cmpb $0x0, (%rax)
je 0x5130
cmpb $0x7c, 0x9373(%rip)     # 0xe3c0
jne 0x51ec
movq %rax, %rdi
leaq 0x5cbe(%rip), %rsi      # 0xad1b
callq 0x22b0
testq %rax, %rax
je 0x522a
movq %rax, %r15
movq %rax, %rdi
callq 0x5706
movq %r15, %rdi
callq 0x2150
jmp 0x49c8
movl $0x1000, %esi           # imm = 0x1000
movq %r15, %rdi
leaq 0x6a5f(%rip), %rdx      # 0xbaf1
callq 0x8659
testq %rax, %rax
je 0x5141
cmpb $0x0, (%rax)
je 0x5141
movq %rax, %rdi
callq 0x3d9f
testl %eax, %eax
je 0x5233
callq 0x20d0
leaq 0x681b(%rip), %rdi      # 0xb8e0
jmp 0x514d
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6a18(%rip), %rdx      # 0xbaf1
callq 0x8659
testq %rax, %rax
je 0x5157
movq %rax, %r15
cmpb $0x0, (%rax)
je 0x5157
movq 0xab86(%rip), %rdi      # 0xfc78
testq %rdi, %rdi
je 0x5107
callq 0x20e0
movq $0x0, 0xab71(%rip) # 0xfc78
movq %r15, %rdi
leaq 0x65da(%rip), %rsi      # 0xb6eb
callq 0x22c0
movq %rax, 0xab5b(%rip)      # 0xfc78
testq %rax, %rax
je 0x523f
callq 0x5bc1
jmp 0x49c8
leaq 0x6a41(%rip), %rdi      # 0xbb78
callq 0x3890
jmp 0x4f1b
callq 0x20d0
leaq 0x67c1(%rip), %rdi      # 0xb90e
callq 0x775d
jmp 0x4f1b
callq 0x20d0
leaq 0x67ab(%rip), %rdi      # 0xb90e
callq 0x775d
jmp 0x49c8
andl $0xffbfffff, %esi       # imm = 0xFFBFFFFF
movl %esi, (%rax)
movl $0xffffffff, 0x91cd(%rip) # imm = 0xFFFFFFFF
cmpb $0x1, 0x91c2(%rip)      # 0xe348
jne 0x518d
callq 0x3796
movl $0x0, 0x91ad(%rip)      # 0xe344
callq 0x32e2
callq 0x744f
movslq 0xa46c(%rip), %rax      # 0xf614
testb $0x10, -0x2(%r14,%rax,4)
jne 0x51d1
movl (%r14,%rax,4), %edi
andl $0x7f, %edi
imulq $0x1c71c71d, %rdi, %rsi # imm = 0x1C71C71D
shrq $0x20, %rsi
leal (%rsi,%rsi,8), %eax
subl %eax, %edi
callq 0x6134
jmp 0x4e82
movl $0x8, %eax
movl %eax, 0xa814(%rip)      # 0xf9f0
movl %eax, 0xa80a(%rip)      # 0xf9ec
callq 0x756a
jmp 0x4e82
cmpl $0x2, 0xa1e1(%rip)      # 0xf3d4
leaq 0x5b21(%rip), %rsi      # 0xad1b
leaq 0x6954(%rip), %rcx      # 0xbb55
cmovbq %rcx, %rsi
movq %rax, %rdi
callq 0x22c0
testq %rax, %rax
je 0x522a
movq %rax, %r15
movq %rax, %rdi
callq 0x5706
movq %r15, %rdi
callq 0x20e0
jmp 0x49c8
leaq 0x6926(%rip), %rdi      # 0xbb57
jmp 0x5246
leaq 0x6682(%rip), %rdi      # 0xb8bc
jmp 0x514d
leaq 0x68b9(%rip), %rdi      # 0xbaff
callq 0x3890
jmp 0x49c8
xorl %r15d, %r15d
jmp 0x5282
callq 0x2546
jmp 0x5261
callq 0x252a
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x5282
callq 0x24a3
jmp 0x527c
callq 0x24bf
jmp 0x527c
callq 0x2487
movl $0x1, %r15d
callq 0x52d4
movl %r15d, %eax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x52d4
movl $0x1, %edi
callq 0x2330
leaq 0x6551(%rip), %rdi      # 0xb803
leaq 0x5701(%rip), %rsi      # 0xa9ba
leaq 0x6554(%rip), %rcx      # 0xb814
movl $0xf05, %edx            # imm = 0xF05
callq 0x2160
callq 0x2505
callq 0x24db