// File: /workspace/github_c_makefile_star2_O3/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, 0xb5c1(%rip)      # 0xf3f8
callq 0x38b9
testl %eax, %eax
jne 0x5259
cmpb $0x1, 0xb599(%rip)      # 0xf3e4
jne 0x3e5a
testb $0x1, 0xb584(%rip)      # 0xf3d8
jne 0x521b
cmpq $0x0, 0xa54e(%rip)      # 0xe3b0
jne 0x3e86
leaq 0x6d20(%rip), %rdi      # 0xab8b
callq 0x3cad
cmpq $0x0, 0xa538(%rip)      # 0xe3b0
jne 0x3e86
leaq 0x6d1c(%rip), %rdi      # 0xab9d
callq 0x3cad
cmpb $0x0, 0xb557(%rip)      # 0xf3e4
jne 0x3f4a
testb $0x1, 0xb556(%rip)      # 0xf3f0
jne 0x3f4a
xorl %edi, %edi
callq 0x2250
movq %rax, %rbx
callq 0x20c0
xorl %eax, %ebx
movl %ebx, %edi
callq 0x21e0
cmpq $0x0, 0xb528(%rip)      # 0xf3e8
jne 0x3eff
leaq 0x6cde(%rip), %rdi      # 0xaba7
callq 0x3cef
cmpq $0x0, 0xb512(%rip)      # 0xf3e8
jne 0x3eff
leaq 0x79f3(%rip), %rdi      # 0xb8d2
callq 0x3cef
cmpq $0x0, 0xb4fc(%rip)      # 0xf3e8
je 0x5268
cmpl $0x0, 0xb507(%rip)      # 0xf400
jle 0x526d
cmpb $0x1, 0xb4d2(%rip)      # 0xf3d8
jne 0x3f96
movl 0xa2d6(%rip), %eax      # 0xe1e8
subl $0x1, %eax
movl $0x270f, %ecx           # imm = 0x270F
cmovael %eax, %ecx
movl %ecx, 0xa2c5(%rip)      # 0xe1e8
movq 0xa0a6(%rip), %rbx      # 0xdfd0
callq 0x5329
movq (%rbx), %rdi
callq 0x578b
subl $0x1, 0xa2aa(%rip)      # 0xe1e8
jae 0x3f2a
callq 0x5291
xorl %r15d, %r15d
jmp 0x3f81
movq 0xa45f(%rip), %rdi      # 0xe3b0
testq %rdi, %rdi
je 0x522b
xorl %r15d, %r15d
xorl %esi, %esi
xorl %edx, %edx
callq 0x2270
movq 0xa443(%rip), %rdi      # 0xe3b0
xorl %esi, %esi
callq 0x61aa
testl %eax, %eax
je 0x502d
callq 0x5291
movl %r15d, %eax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x1, 0xb43f(%rip)      # 0xf3dc
jne 0x3fad
cmpq $0x0, 0xa409(%rip)      # 0xe3b0
je 0x5242
xorl %edi, %edi
callq 0x2080
testl %eax, %eax
je 0x523b
movl $0x1, %edi
callq 0x2080
testl %eax, %eax
je 0x523b
callq 0x2170
testq %rax, %rax
je 0x5249
leaq 0xe8(%rsp), %rbx
movq %rbx, %rdi
callq 0x2230
leaq 0x33f3(%rip), %rcx      # 0x73e6
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 0x409b
leaq 0xac(%rsp), %rdx
orb $0x1, 0xc(%rdx)
xorl %edi, %edi
xorl %esi, %esi
callq 0x22a0
movq 0x9f36(%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 0x40e8
movq (%r12), %rdi
leaq 0x7530(%rip), %rsi      # 0xb60e
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x200000, %esi         # imm = 0x200000
xorl %edx, %edx
callq 0x2370
movl $0x9, %ebx
leaq 0x752e(%rip), %r14      # 0xb632
leaq 0x750d(%rip), %r15      # 0xb618
movq (%r12), %rdi
leal -0x3(%rbx), %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4132
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 0x4159
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 0x4180
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 0x41a6
movq (%r12), %rdi
movq %r14, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
addl $0x4, %ebx
cmpl $0x15, %ebx
jne 0x410b
movq (%r12), %rdi
movl $0x12, %esi
movl $0x1b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x41df
movq (%r12), %rdi
leaq 0x7443(%rip), %rsi      # 0xb618
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x8, %esi
movl $0x1, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x420c
movq (%r12), %rdi
leaq 0x744a(%rip), %rsi      # 0xb64c
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x9, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4239
movq (%r12), %rdi
leaq 0x7424(%rip), %rsi      # 0xb653
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xa, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4266
movq (%r12), %rdi
leaq 0x740d(%rip), %rsi      # 0xb669
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xb, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4293
movq (%r12), %rdi
leaq 0x73f6(%rip), %rsi      # 0xb67f
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xc, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x42c0
movq (%r12), %rdi
leaq 0x73df(%rip), %rsi      # 0xb695
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
cmpb $0x0, 0xb119(%rip)      # 0xf3e0
jne 0x43ae
movq (%r12), %rdi
movl $0xe, %esi
movl $0x1, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x42fa
movq (%r12), %rdi
leaq 0x73bb(%rip), %rsi      # 0xb6ab
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xf, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4327
movq (%r12), %rdi
leaq 0x7394(%rip), %rsi      # 0xb6b1
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x10, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4354
movq (%r12), %rdi
leaq 0x7376(%rip), %rsi      # 0xb6c0
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x11, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4381
movq (%r12), %rdi
leaq 0x735c(%rip), %rsi      # 0xb6d3
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x12, %esi
movl $0x2, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x43ae
movq (%r12), %rdi
leaq 0x733e(%rip), %rsi      # 0xb6e2
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x6, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x43db
movq (%r12), %rdi
leaq 0x7325(%rip), %rsi      # 0xb6f6
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x7, %esi
movl $0x37, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4408
movq (%r12), %rdi
leaq 0x72fa(%rip), %rsi      # 0xb6f8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x8, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4435
movq (%r12), %rdi
leaq 0x72e1(%rip), %rsi      # 0xb70c
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x9, %esi
movl $0x3a, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4462
movq (%r12), %rdi
leaq 0x72b6(%rip), %rsi      # 0xb70e
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xa, %esi
movl $0x3a, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x448f
movq (%r12), %rdi
leaq 0x729a(%rip), %rsi      # 0xb71f
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xb, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x44bc
movq (%r12), %rdi
leaq 0x727e(%rip), %rsi      # 0xb730
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xc, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x44e9
movq (%r12), %rdi
leaq 0x7261(%rip), %rsi      # 0xb740
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xd, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4516
movq (%r12), %rdi
leaq 0x7249(%rip), %rsi      # 0xb755
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xe, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4543
movq (%r12), %rdi
leaq 0x722c(%rip), %rsi      # 0xb765
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0xf, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4570
movq (%r12), %rdi
leaq 0x720d(%rip), %rsi      # 0xb773
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x10, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x459d
movq (%r12), %rdi
leaq 0x71ee(%rip), %rsi      # 0xb781
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x11, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x45ca
movq (%r12), %rdi
leaq 0x71cd(%rip), %rsi      # 0xb78d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x12, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x45f7
movq (%r12), %rdi
leaq 0x71b3(%rip), %rsi      # 0xb7a0
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
movq (%r12), %rdi
movl $0x13, %esi
movl $0x3b, %edx
callq 0x22d0
cmpl $-0x1, %eax
je 0x4624
movq (%r12), %rdi
leaq 0x7190(%rip), %rsi      # 0xb7aa
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x2360
callq 0x2110
callq 0x2260
callq 0x5c18
leaq 0x4a2a(%rip), %r13      # 0x9064
leaq 0xae5f(%rip), %rbx      # 0xf4a0
leaq 0x9d78(%rip), %r14      # 0xe3c0
movq (%r12), %rdi
callq 0x2180
callq 0x75ce
movl %eax, %ebp
cmpb $0x1, 0xb395(%rip)      # 0xf9f4
jne 0x4666
callq 0x73f6
leal -0x63(%rbp), %eax
cmpl $0x14, %eax
jbe 0x46ff
leal -0x20(%rbp), %eax
cmpl $0x1f, %eax
ja 0x47b6
movslq (%r13,%rax,4), %rax
addq %r13, %rax
jmpq *%rax
movl 0xb362(%rip), %eax      # 0xf9f0
leal (%rax,%rax,8), %r15d
addl 0xb353(%rip), %r15d     # 0xf9ec
movl (%rbx,%r15,4), %eax
btl $0x14, %eax
jb 0x4b84
movq %r13, %r14
movl $0xffffffff, 0x9c98(%rip) # imm = 0xFFFFFFFF
leal -0x30(%rbp), %r13d
shrl $0x10, %eax
andl $0xf, %eax
cmpl %r13d, %eax
je 0x4ced
testl %r13d, %r13d
je 0x483b
testl %eax, %eax
jne 0x483b
movl %r13d, %eax
shll $0x10, %eax
orl %r15d, %eax
movl %eax, (%rbx,%r15,4)
movl %r15d, %edi
callq 0x6054
movl %r15d, %edi
movl %r13d, %esi
xorl %edx, %edx
callq 0x6645
jmp 0x4ced
leaq 0x49de(%rip), %rcx      # 0x90e4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, 0xb5c7(%rip)      # 0xfce0
movl $0xffffffff, 0x9c29(%rip) # imm = 0xFFFFFFFF
cmpb $0x1, 0x9c1e(%rip)      # 0xe348
jne 0x4731
callq 0x3752
movl $0x144, %edx            # imm = 0x144
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2190
movl $0x3cc, %edx            # imm = 0x3CC
leaq 0xaed4(%rip), %rdi      # 0xf620
xorl %esi, %esi
callq 0x2190
xorl %r14d, %r14d
movl %r14d, 0xaeb7(%rip)     # 0xf614
movl %r14d, 0xb430(%rip)     # 0xfb94
callq 0x742f
movq (%r12), %rdi
movl $0x4, %esi
xorl %edx, %edx
callq 0x22d0
movq (%r12), %rdi
callq 0x22e0
movl %r14d, 0xb263(%rip)     # 0xf9ec
movl %r14d, 0xb260(%rip)     # 0xf9f0
movq (%r12), %rdi
movl $0x7, %esi
movl $0x1d, %edx
callq 0x22d0
movq (%r12), %rdi
callq 0x2180
movl $0x63, %ebp
jmp 0x4d2f
movl %ebp, %eax
addl $0xfffffebf, %eax       # imm = 0xFFFFFEBF
cmpl $0x3, %eax
ja 0x4b84
leaq 0x496b(%rip), %rcx      # 0x9138
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xb214(%rip), %esi      # 0xf9f0
movl 0xb20a(%rip), %edi      # 0xf9ec
testl %esi, %esi
jle 0x4c80
decl %esi
jmp 0x4c92
movl 0xb1f5(%rip), %edi      # 0xf9ec
cmpl $0x7, %edi
jg 0x4c72
incl %edi
jmp 0x4830
movl 0xb1e6(%rip), %esi      # 0xf9f0
movl 0xb1dc(%rip), %edi      # 0xf9ec
cmpl $0x7, %esi
jg 0x4c7c
incl %esi
jmp 0x4c92
movl 0xb1c6(%rip), %edi      # 0xf9ec
testl %edi, %edi
jle 0x4c87
decl %edi
movl 0xb1ba(%rip), %esi      # 0xf9f0
jmp 0x4c92
movl %r15d, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6645
callq 0x32c0
testl %r13d, %r13d
je 0x4ced
movl 0xadb9(%rip), %eax      # 0xf614
testl %eax, %eax
jle 0x4ce8
shll $0x10, %r13d
decl %eax
leaq 0xadb0(%rip), %rcx      # 0xf620
orl %r13d, (%rcx,%rax,4)
callq 0x32c0
jmp 0x4ced
movl $0x74, %ebp
cmpb $0x0, 0xab56(%rip)      # 0xf3e0
jne 0x4d36
movb $0x0, 0x10(%rsp)
movq $0x0, (%rsp)
movl $0x50, %esi
leaq 0x10(%rsp), %rdi
leaq 0x734b(%rip), %rdx      # 0xbbf9
leaq 0xab5b(%rip), %rcx      # 0xf410
leaq 0x7326(%rip), %r8       # 0xbbe2
movl $0x25, %r9d
callq 0x7730
testl %eax, %eax
jne 0x4d36
movb 0x10(%rsp), %al
testb %al, %al
sete %cl
cmpb $0x25, %al
sete %al
orb %cl, %al
movzbl %al, %ecx
movl $0x50, %eax
subq %rcx, %rax
leaq (%rsp,%rcx), %rsi
addq $0x10, %rsi
movzbl (%rsi), %ecx
cmpl $0x20, %ecx
jne 0x4f08
incq %rsi
decq %rax
jne 0x48f2
jmp 0x4f23
movl $0x73, %ebp
cmpb $0x0, 0xaac9(%rip)      # 0xf3e0
jne 0x4d36
leaq 0x3b57(%rip), %rax      # 0x847b
movq %rax, (%rsp)
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x7046(%rip), %rdx      # 0xb97d
leaq 0x6e11(%rip), %rcx      # 0xb74f
leaq 0x7224(%rip), %r8       # 0xbb69
movl $0x24, %r9d
callq 0x7730
testl %eax, %eax
je 0x4e3b
leaq 0x7259(%rip), %rdi      # 0xbbb8
jmp 0x4f4b
movl $0x77, %ebp
cmpb $0x0, 0xaa70(%rip)      # 0xf3e0
jne 0x4d36
leaq 0x3afe(%rip), %rax      # 0x847b
movq %rax, (%rsp)
movl $0x1000, %esi           # imm = 0x1000
leaq 0xb363(%rip), %rdi      # 0xfcf0
leaq 0x6fe9(%rip), %rdx      # 0xb97d
leaq 0x6f37(%rip), %rcx      # 0xb8d2
leaq 0x6f2a(%rip), %r8       # 0xb8cc
movl $0x24, %r9d
callq 0x7730
leaq 0x6f93(%rip), %rdi      # 0xb947
testl %eax, %eax
jne 0x4f4b
movl $0x1000, %esi           # imm = 0x1000
leaq 0xb328(%rip), %rdi      # 0xfcf0
leaq 0x7141(%rip), %rdx      # 0xbb10
callq 0x86e8
leaq 0x6f52(%rip), %r15      # 0xb92d
testq %rax, %rax
je 0x4a0a
cmpb $0x0, (%rax)
leaq 0x6f43(%rip), %r15      # 0xb92d
je 0x4a0a
movq %rax, %rdi
callq 0x3d6f
leaq 0x6f04(%rip), %r15      # 0xb8ff
leaq 0x6ed9(%rip), %rdi      # 0xb8db
testl %eax, %eax
je 0x4f4b
callq 0x20d0
movq %r15, %rdi
jmp 0x4f4b
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0xabfd(%rip), %rcx      # 0xf620
incl %eax
testb $0x10, 0x2(%rcx)
leaq 0x4(%rcx), %rcx
jne 0x4a23
movl %eax, 0xabdf(%rip)      # 0xf614
callq 0x32c0
cmpb $0x1, 0x9907(%rip)      # 0xe348
jne 0x4a48
callq 0x3752
movl $0xffffffff, 0x98fa(%rip) # imm = 0xFFFFFFFF
callq 0x6758
testl %eax, %eax
je 0x4c9c
callq 0x20d0
leaq 0x6e0b(%rip), %rdi      # 0xb876
callq 0x770f
jmp 0x4ca6
movl 0xab99(%rip), %eax      # 0xf614
testl %eax, %eax
jle 0x4cc3
leal -0x1(%rax), %edx
leaq 0xab93(%rip), %r14      # 0xf620
movl (%r14,%rdx,4), %ecx
btl $0x14, %ecx
jb 0x4cc9
movl %edx, 0xab73(%rip)      # 0xf614
cmpl $0x1, %eax
je 0x4f5d
addl $-0x2, %eax
leaq (%r14,%rax,4), %rdx
incq %rax
movl (%rdx), %esi
movl %esi, %edi
xorl %ecx, %edi
testb $0x7f, %dil
je 0x4f55
addq $-0x4, %rdx
decq %rax
jg 0x4ab4
jmp 0x4f5d
movl $0x6f, %ebp
cmpb $0x0, 0xa902(%rip)      # 0xf3e0
jne 0x4d36
leaq 0x3990(%rip), %rax      # 0x847b
movq %rax, (%rsp)
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6e7f(%rip), %rdx      # 0xb97d
leaq 0x6c4a(%rip), %rcx      # 0xb74f
leaq 0x7007(%rip), %r8       # 0xbb13
movl $0x24, %r9d
callq 0x7730
testl %eax, %eax
je 0x4e9e
leaq 0x7019(%rip), %rdi      # 0xbb3f
jmp 0x4f4b
movq (%r12), %rdi
callq 0x2180
movq (%r12), %rdi
testq %rdi, %rdi
je 0x4cd5
movswl 0x4(%rdi), %edx
incl %edx
jmp 0x4cda
movl $0x66, %ebp
cmpl $0x0, 0xaabc(%rip)      # 0xf614
je 0x4d36
testb $0x10, 0xaabd(%rip)     # 0xf622
jne 0x4d36
callq 0x768a
testl %eax, %eax
je 0x4d36
leaq 0x6ccd(%rip), %rdi      # 0xb84c
callq 0x384f
callq 0x20d0
jmp 0x4d36
cmpb $0x1, 0x97b3(%rip)      # 0xe348
jne 0x4b9c
callq 0x3752
movl $0x144, %edx            # imm = 0x144
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2190
movl $0x3cc, %edx            # imm = 0x3CC
leaq 0xaa69(%rip), %rdi      # 0xf620
xorl %esi, %esi
callq 0x2190
xorl %eax, %eax
movl %eax, 0xaa4e(%rip)      # 0xf614
movl %eax, 0xafc8(%rip)      # 0xfb94
callq 0x742f
movq (%r12), %rdi
movl $0x4, %esi
xorl %edx, %edx
callq 0x22d0
movq (%r12), %rdi
callq 0x22e0
movq (%r12), %rdi
callq 0x2180
callq 0x5c18
movl $0x6e, %ebp
jmp 0x4d36
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0xaa12(%rip), %rcx      # 0xf620
incl %eax
testb $0x10, 0x2(%rcx)
leaq 0x4(%rcx), %rcx
jne 0x4c0e
movl %eax, 0xa9f4(%rip)      # 0xf614
callq 0x32c0
callq 0x742f
movl $0x8, %eax
movl %eax, 0xadb7(%rip)      # 0xf9ec
movl %eax, 0xadb5(%rip)      # 0xf9f0
callq 0x753a
movl $0x72, %ebp
jmp 0x4d36
callq 0x753a
movl $0x20, %ebp
jmp 0x4d36
callq 0x3359
movl $0x3f, %ebp
jmp 0x4d36
movl $0x30, %ebp
jmp 0x4688
movl 0xad78(%rip), %esi      # 0xf9f0
xorl %edi, %edi
jmp 0x4c92
xorl %esi, %esi
jmp 0x4c92
movl $0x8, %esi
jmp 0x4c92
movl 0xad63(%rip), %esi      # 0xf9f0
movl $0x8, %edi
callq 0x615b
jmp 0x4d36
movl $0x1, 0xb03a(%rip)      # 0xfce0
callq 0x742f
movl 0xad3b(%rip), %edi      # 0xf9ec
movl 0xad39(%rip), %esi      # 0xf9f0
callq 0x615b
movl $0x76, %ebp
jmp 0x4d36
js 0x5272
callq 0x20d0
movl $0x75, %ebp
jmp 0x4d2f
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %esi, %esi
callq 0x2140
movl $0x64, %ebp
jmp 0x4d36
callq 0x20d0
movq (%r12), %rdi
cmpl $0x30, %ebp
movl %ebp, %esi
movl $0x2e, %eax
cmovel %eax, %esi
callq 0x2300
movl 0xace3(%rip), %edi      # 0xf9ec
movl 0xace1(%rip), %esi      # 0xf9f0
callq 0x615b
cmpb $0x1, 0x962d(%rip)      # 0xe348
movq %r14, %r13
jne 0x4d25
callq 0x3752
movl $0x0, 0x9615(%rip)      # 0xe344
leaq 0x968a(%rip), %r14      # 0xe3c0
cmpl $0x0, 0xafa3(%rip)      # 0xfce0
jne 0x4e2d
xorl %eax, %eax
testb $0xf, 0x2(%rax,%rbx)
je 0x4d5a
addq $0x4, %rax
cmpq $0x144, %rax            # imm = 0x144
jne 0x4d45
jmp 0x4d66
cmpq $0x144, %rax            # imm = 0x144
jne 0x4e2d
callq 0x768a
testl %eax, %eax
jne 0x4e2d
leaq 0x10(%rsp), %rdi
callq 0x2250
movq 0x10(%rsp), %r8
subq 0xaf4f(%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 0x9565(%rip), %r14      # 0xe360
movq %r14, %rdi
leaq 0x6a8d(%rip), %rsi      # 0xb892
movl %r9d, %edx
xorl %eax, %eax
callq 0x2320
callq 0x20d0
movq %r14, %rdi
leaq 0x95a2(%rip), %r14      # 0xe3c0
callq 0x384f
movl $0x1, 0xaeb3(%rip)      # 0xfce0
cmpl $0x71, %ebp
jne 0x4648
jmp 0x3f40
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6cc6(%rip), %rdx      # 0xbb10
callq 0x86e8
testq %rax, %rax
je 0x4f2e
cmpb $0x0, (%rax)
je 0x4f2e
cmpb $0x7c, 0x9558(%rip)     # 0xe3c0
jne 0x4fd7
movq %rax, %rdi
leaq 0x5ec2(%rip), %rsi      # 0xad3a
callq 0x22b0
testq %rax, %rax
je 0x5015
movq %rax, %r15
movq %rax, %rdi
callq 0x578b
movq %r15, %rdi
callq 0x2150
jmp 0x4d36
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
leaq 0x6c63(%rip), %rdx      # 0xbb10
callq 0x86e8
testq %rax, %rax
je 0x4f3f
movq %rax, %r15
cmpb $0x0, (%rax)
je 0x4f3f
movq 0xadae(%rip), %rdi      # 0xfc78
testq %rdi, %rdi
je 0x4edf
callq 0x20e0
movq $0x0, 0xad99(%rip) # 0xfc78
movq %r15, %rdi
leaq 0x6821(%rip), %rsi      # 0xb70a
callq 0x22c0
movq %rax, 0xad83(%rip)      # 0xfc78
testq %rax, %rax
je 0x5021
callq 0x5c18
jmp 0x4d36
testl %ecx, %ecx
je 0x4f23
leaq 0xa4fd(%rip), %r15      # 0xf410
movq %r15, %rdi
callq 0x2050
movq %r15, %rdi
callq 0x7378
movl 0xaac3(%rip), %edi      # 0xf9ec
jmp 0x4830
leaq 0x6c62(%rip), %rdi      # 0xbb97
callq 0x384f
jmp 0x4d36
callq 0x20d0
leaq 0x69e2(%rip), %rdi      # 0xb92d
callq 0x770f
jmp 0x4d36
andl $0xffbfffff, %esi       # imm = 0xFFBFFFFF
movl %esi, (%rdx)
movl $0xffffffff, 0x93e5(%rip) # imm = 0xFFFFFFFF
cmpb $0x1, 0x93da(%rip)      # 0xe348
jne 0x4f75
callq 0x3752
movl $0x0, 0x93c5(%rip)      # 0xe344
callq 0x32c0
callq 0x742f
movslq 0xa684(%rip), %rax      # 0xf614
testb $0x10, -0x2(%r14,%rax,4)
jne 0x4fbc
movl (%r14,%rax,4), %eax
movl %eax, %ecx
andb $0x7f, %cl
andl $0x7f, %eax
imull $0x39, %eax, %esi
shrl $0x9, %esi
leal (%rsi,%rsi,8), %eax
subb %al, %cl
movzbl %cl, %edi
callq 0x615b
jmp 0x4cce
movl $0x8, %eax
movl %eax, 0xaa29(%rip)      # 0xf9f0
movl %eax, 0xaa1f(%rip)      # 0xf9ec
callq 0x753a
jmp 0x4cce
cmpl $0x2, 0xa3f6(%rip)      # 0xf3d4
leaq 0x5d55(%rip), %rsi      # 0xad3a
leaq 0x6b88(%rip), %rcx      # 0xbb74
cmovbq %rcx, %rsi
movq %rax, %rdi
callq 0x22c0
testq %rax, %rax
je 0x5015
movq %rax, %r15
movq %rax, %rdi
callq 0x578b
movq %r15, %rdi
callq 0x20e0
jmp 0x4d36
leaq 0x6b5a(%rip), %rdi      # 0xbb76
jmp 0x4f35
leaq 0x6af6(%rip), %rdi      # 0xbb1e
jmp 0x4f35
movq 0x8f9c(%rip), %rbx      # 0xdfd0
leaq 0x61d0(%rip), %r13      # 0xb20b
callq 0x6758
cmpl $-0x1, %eax
je 0x51bf
cmpb $0x0, 0xa3a0(%rip)      # 0xf3f0
jne 0x5069
callq 0x686f
cmpl $-0x1, %eax
je 0x5069
callq 0x6758
testl %eax, %eax
je 0x5212
callq 0x68dc
cmpb $0x0, 0xa37b(%rip)      # 0xf3f0
je 0x51d6
leaq 0x6103(%rip), %rdi      # 0xb185
leaq 0xa387(%rip), %rsi      # 0xf410
movq %rax, %rdx
xorl %eax, %eax
callq 0x2130
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
leaq 0xa581(%rip), %rcx      # 0xf620
incl %eax
testb $0x10, 0x2(%rcx)
leaq 0x4(%rcx), %rcx
jne 0x509f
movl %eax, 0xa563(%rip)      # 0xf614
callq 0x32c0
callq 0x6758
cmpl $-0x1, %eax
je 0x51f4
movq (%rbx), %rdi
callq 0x578b
cmpb $0x1, 0xa2fd(%rip)      # 0xf3d0
jne 0x51af
leaq 0x6b20(%rip), %rdi      # 0xbc00
callq 0x2060
movq %rbx, %rbp
movq (%rbx), %r15
movl 0xa523(%rip), %eax      # 0xf614
testl %eax, %eax
jle 0x519f
xorl %r12d, %r12d
leaq 0xa51d(%rip), %rbx      # 0xf620
xorl %r14d, %r14d
movl (%rbx), %esi
btl $0x14, %esi
jb 0x518c
testl %r14d, %r14d
jle 0x513f
imull $0xaaaaaaab, %r14d, %eax # imm = 0xAAAAAAAB
rorl %eax
cmpl $0x2aaaaaab, %eax       # imm = 0x2AAAAAAB
leaq 0x60e0(%rip), %rsi      # 0xb208
leaq 0x5994(%rip), %rax      # 0xaac3
cmovbq %rax, %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x2220
movl (%rbx), %esi
movl %esi, %edx
shrl $0x10, %edx
andl $0xf, %edx
xorl %eax, %eax
btl $0x15, %esi
setae %al
leal (%rax,%rax,2), %ecx
addl $0x2a, %ecx
movl %esi, %eax
andb $0x7f, %al
andl $0x7f, %esi
imull $0x39, %esi, %esi
shrl $0x9, %esi
leal 0x1(%rsi), %edi
movzbl %dil, %r8d
leal (%rsi,%rsi,8), %esi
subb %sil, %al
incb %al
movzbl %al, %r9d
movq %r15, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x2220
incl %r14d
movl 0xa488(%rip), %eax      # 0xf614
incq %r12
movslq %eax, %rcx
addq $0x4, %rbx
cmpq %rcx, %r12
jl 0x5106
movl $0xa, %edi
movq %r15, %rsi
callq 0x21c0
movq %rbp, %rbx
callq 0x686f
cmpl $-0x1, %eax
jne 0x50b6
jmp 0x51f4
leaq 0x5f70(%rip), %rdi      # 0xb136
leaq 0xa243(%rip), %rsi      # 0xf410
xorl %eax, %eax
callq 0x2130
jmp 0x51f4
movl 0xa9b8(%rip), %esi      # 0xfb94
leaq 0x5f92(%rip), %rdi      # 0xb175
movq %rax, %rdx
leaq 0xa223(%rip), %rcx      # 0xf410
xorl %eax, %eax
callq 0x2130
movq 0x91b5(%rip), %rdi      # 0xe3b0
xorl %r15d, %r15d
xorl %esi, %esi
callq 0x61aa
testl %eax, %eax
je 0x503b
jmp 0x3f7c
leaq 0x5f39(%rip), %rdi      # 0xb152
jmp 0x51c6
callq 0x255b
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x3f81
callq 0x253f
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
jmp 0x3f7c
callq 0x24aa
jmp 0x524e
callq 0x24cd
jmp 0x524e
callq 0x2487
movl $0x1, %r15d
jmp 0x3f81
callq 0x5291
movl $0x1, %edi
callq 0x2330
callq 0x251a
callq 0x24f0
leaq 0x65a9(%rip), %rdi      # 0xb822
leaq 0x577a(%rip), %rsi      # 0xa9fa
leaq 0x65ac(%rip), %rcx      # 0xb833
movl $0xf05, %edx            # imm = 0xF05
callq 0x2160