// File: /workspace/github_c_makefile_star2_O1/nh13[P]ksw/src/parasail/tests/test_verify_cigars.c
// Function: main
int main(int argc, char **argv)
{
    unsigned long seq_count = 0;
    unsigned long limit = 0;
    parasail_sequences_t *sequences = NULL;
    char *endptr = NULL;
    char *filename = NULL;
    int c = 0;
    int test_scores = 1;
    char *matrixname = NULL;
    const parasail_matrix_t *matrix = NULL;
    gap_score_t gap = {INT_MIN,INT_MIN};
    int do_sse2 = 1;
    int do_sse41 = 1;
    int do_avx2 = 1;
    int do_altivec = 1;
    int do_neon = 1;
    int do_disp = 1;
    int do_nw = 1;
    int do_sg = 1;
    int do_sw = 1;

    while ((c = getopt(argc, argv, "f:m:n:o:e:vSi:")) != -1) {
        switch (c) {
            case 'f':
                filename = optarg;
                break;
            case 'm':
                matrixname = optarg;
                break;
            case 'n':
                errno = 0;
                seq_count = strtol(optarg, &endptr, 10);
                if (errno) {
                    perror("strtol");
                    exit(1);
                }
                break;
            case 'o':
                errno = 0;
                gap.open = strtol(optarg, &endptr, 10);
                if (errno) {
                    perror("strtol gap.open");
                    exit(1);
                }
                break;
            case 'e':
                errno = 0;
                gap.extend = strtol(optarg, &endptr, 10);
                if (errno) {
                    perror("strtol gap.extend");
                    exit(1);
                }
                break;
            case 'v':
                verbose = 1;
                break;
            case 'S':
                test_scores = 0;
                break;
            case 'i':
                do_sse2 = (NULL == strstr(optarg, "sse2"));
                do_sse41 = (NULL == strstr(optarg, "sse41"));
                do_avx2 = (NULL == strstr(optarg, "avx2"));
                do_altivec = (NULL == strstr(optarg, "altivec"));
                do_neon = (NULL == strstr(optarg, "neon"));
                do_disp = (NULL == strstr(optarg, "disp"));
                do_nw = (NULL == strstr(optarg, "nw"));
                do_sg = (NULL == strstr(optarg, "sg"));
                do_sw = (NULL == strstr(optarg, "sw"));
                break;
            case '?':
                if (optopt == 'f' || optopt == 'n') {
                    fprintf(stderr,
                            "Option -%c requires an argument.\n",
                            optopt);
                }
                else if (isprint(optopt)) {
                    fprintf(stderr, "Unknown option `-%c'.\n",
                            optopt);
                }
                else {
                    fprintf(stderr,
                            "Unknown option character `\\x%x'.\n",
                            optopt);
                }
                exit(1);
            default:
                fprintf(stderr, "default case in getopt\n");
                exit(1);
        }
    }

    if (filename) {
        sequences = parasail_sequences_from_file(filename);
        if (0 == seq_count) {
            seq_count = sequences->l;
        }
    }
    else {
        fprintf(stderr, "no filename specified\n");
        exit(1);
    }

    /* select the matrix */
    if (matrixname) {
        matrix = parasail_matrix_lookup(matrixname);
        if (NULL == matrix) {
            fprintf(stderr, "Specified substitution matrix not found.\n");
            exit(1);
        }
    }

    limit = binomial_coefficient(seq_count, 2);
    printf("%lu choose 2 is %lu\n", seq_count, limit);


#if HAVE_SSE2
    if (do_sse2 && parasail_can_use_sse2()) {
        if (test_scores) {
            if (do_nw) check_functions(parasail_nw_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qx_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_db_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_de_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_dx_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_de_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_db_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_db_trace_sse2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_de_trace_sse2, sequences, limit, matrix, gap);
            if (do_sw) check_functions(parasail_sw_trace_sse2, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_SSE41
    if (do_sse41 && parasail_can_use_sse41()) {
        if (test_scores) {
            if (do_nw) check_functions(parasail_nw_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qx_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_db_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_de_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_dx_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_de_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_db_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_db_trace_sse41, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_de_trace_sse41, sequences, limit, matrix, gap);
            if (do_sw) check_functions(parasail_sw_trace_sse41, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_AVX2
    if (do_avx2 && parasail_can_use_avx2()) {
        if (test_scores) {
            if (do_nw) check_functions(parasail_nw_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qx_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_db_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_de_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_dx_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_de_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_db_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_db_trace_avx2, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_de_trace_avx2, sequences, limit, matrix, gap);
            if (do_sw) check_functions(parasail_sw_trace_avx2, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_ALTIVEC
    if (do_altivec && parasail_can_use_altivec()) {
        if (test_scores) {
            if (do_nw) check_functions(parasail_nw_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qx_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_db_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_de_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_dx_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_de_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_db_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_db_trace_altivec, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_de_trace_altivec, sequences, limit, matrix, gap);
            if (do_sw) check_functions(parasail_sw_trace_altivec, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_NEON
    if (do_neon && parasail_can_use_neon()) {
        if (test_scores) {
            if (do_nw) check_functions(parasail_nw_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qx_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_db_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_de_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_dx_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_de_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_db_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_db_trace_neon, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_de_trace_neon, sequences, limit, matrix, gap);
            if (do_sw) check_functions(parasail_sw_trace_neon, sequences, limit, matrix, gap);
        }
    }
#endif

    if (do_disp) {
        if (test_scores) {
            if (do_nw) check_functions(parasail_nw_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qx_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_db_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_de_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_dx_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_de_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_db_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qb_db_trace_disp, sequences, limit, matrix, gap);
            if (do_sg) check_functions(parasail_sg_qe_de_trace_disp, sequences, limit, matrix, gap);
            if (do_sw) check_functions(parasail_sw_trace_disp, sequences, limit, matrix, gap);
        }
    }
    
    parasail_sequences_free(sequences);

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r15
movl %edi, %r13d
leaq 0x38(%rsp), %rax
movq $0x0, (%rax)
movl $0x80000000, %eax       # imm = 0x80000000
movq %rax, 0x8(%rsp)
movl $0x1, %ecx
movq $0x0, 0x50(%rsp)
leaq 0x3a955d(%rip), %r14    # 0x52da68
leaq 0x382afe(%rip), %rbp    # 0x507010
movl $0x0, %eax
movq %rax, 0x40(%rsp)
movq $0x0, 0x48(%rsp)
movl $0x80000000, %eax       # imm = 0x80000000
movq %rax, 0x10(%rsp)
movl $0x1, 0x28(%rsp)
movl $0x1, 0x2c(%rsp)
movl $0x1, 0x30(%rsp)
movl $0x1, 0x34(%rsp)
movl $0x1, 0x1c(%rsp)
movl $0x1, 0x20(%rsp)
movl $0x1, 0x24(%rsp)
movl %ecx, %ebx
movl %r13d, %edi
movq %r15, %rsi
movq %r14, %rdx
callq 0x129080
cmpl $0x64, %eax
jle 0x1845c8
leal -0x65(%rax), %ecx
cmpl $0xa, %ecx
ja 0x1845d7
movslq (%rbp,%rcx,4), %rax
addq %rbp, %rax
jmpq *%rax
callq 0x129030
movq %rax, %r12
movl $0x0, (%rax)
movq 0x4dfa1d(%rip), %rax    # 0x663fc0
movq (%rax), %rdi
leaq 0x38(%rsp), %rsi
movl $0xa, %edx
callq 0x1291b0
movq %rax, 0x8(%rsp)
cmpl $0x0, (%r12)
movl %ebx, %ecx
je 0x184567
jmp 0x18506c
movl $0x0, %ecx
cmpl $0x53, %eax
je 0x184567
jmp 0x184764
cmpl $0x76, %eax
jne 0x185062
movb $0x1, 0x4f1c05(%rip)    # 0x6761ec
movl %ebx, %ecx
jmp 0x184567
movq 0x4df9cb(%rip), %rax    # 0x663fc0
movq (%rax), %r12
movq %r12, %rdi
leaq 0x3aaeff(%rip), %rsi    # 0x52f501
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x28(%rsp)
movq %r12, %rdi
leaq 0x3ac921(%rip), %rsi    # 0x530f3e
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x2c(%rsp)
movq %r12, %rdi
leaq 0x3ae243(%rip), %rsi    # 0x53287b
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x30(%rsp)
movq %r12, %rdi
leaq 0x3afaa8(%rip), %rsi    # 0x5340fb
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x34(%rsp)
movq %r12, %rdi
leaq 0x3d753f(%rip), %rsi    # 0x55bbad
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x1c(%rsp)
movq %r12, %rdi
leaq 0x3d6f13(%rip), %rsi    # 0x55b59c
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x20(%rsp)
movq %r12, %rdi
leaq 0x3d7569(%rip), %rsi    # 0x55bc0d
callq 0x129070
xorl %ecx, %ecx
testq %rax, %rax
sete %cl
movl %ecx, 0x24(%rsp)
movl %ebx, %ecx
jmp 0x184567
movq 0x4df8fd(%rip), %rax    # 0x663fc0
movq (%rax), %rax
movq %rax, 0x40(%rsp)
movl %ebx, %ecx
jmp 0x184567
callq 0x129030
movq %rax, %r12
movl $0x0, (%rax)
movq 0x4df8d9(%rip), %rax    # 0x663fc0
movq (%rax), %rdi
leaq 0x38(%rsp), %rsi
movl $0xa, %edx
callq 0x1291b0
movq %rax, 0x10(%rsp)
cmpl $0x0, (%r12)
movl %ebx, %ecx
je 0x184567
jmp 0x185067
movq 0x4df8a9(%rip), %rax    # 0x663fc0
movq (%rax), %rax
movq %rax, 0x48(%rsp)
movl %ebx, %ecx
jmp 0x184567
callq 0x129030
movq %rax, %r12
movl $0x0, (%rax)
movq 0x4df885(%rip), %rax    # 0x663fc0
movq (%rax), %rdi
leaq 0x38(%rsp), %rsi
movl $0xa, %edx
callq 0x1291b0
movq %rax, 0x50(%rsp)
cmpl $0x0, (%r12)
movl %ebx, %ecx
je 0x184567
callq 0x1292c2
cmpl $-0x1, %eax
jne 0x185058
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
movq 0x50(%rsp), %r14
je 0x185071
callq 0x18ae40
movq %rax, %r15
testq %r14, %r14
jne 0x184791
movq 0x8(%r15), %r14
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x1847ad
callq 0x189554
movq %rax, %r12
testq %rax, %rax
jne 0x1847b0
callq 0x1292d7
xorl %r12d, %r12d
cmpq $0x2, %r14
jae 0x1847bb
xorl %r13d, %r13d
jmp 0x1847e8
movl $0x1, %ecx
movl $0x1, %r13d
movq %r14, %rdx
imulq %rdx, %r13
leaq -0x1(%rdx), %rsi
movq %r13, %rax
xorl %edx, %edx
divq %rcx
incq %rcx
movq %rsi, %rdx
movq %rax, %r13
cmpq $0x3, %rcx
jne 0x1847c9
leaq 0x3a9365(%rip), %rdi    # 0x52db54
movq %r14, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x129040
cmpl $0x0, 0x28(%rsp)
je 0x1849f6
xorl %eax, %eax
callq 0x189512
testl %eax, %eax
setne %al
testl %ebx, %ebx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x1849f6
movl 0x10(%rsp), %ebp
cmpl $0x0, 0x1c(%rsp)
je 0x184857
movq 0x8(%rsp), %rax
shlq $0x20, %rax
leaq (%rax,%rbp), %r9
leaq 0x3a975c(%rip), %rdi    # 0x52df9e
leaq 0x4df917(%rip), %rsi    # 0x664160
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
cmpl $0x0, 0x20(%rsp)
je 0x1849c4
movq 0x8(%rsp), %rax
shlq $0x20, %rax
leaq (%rax,%rbp), %r14
leaq 0x3a9926(%rip), %rdi    # 0x52e19c
leaq 0x4dfd23(%rip), %rsi    # 0x6645a0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3a9af4(%rip), %rdi    # 0x52e389
leaq 0x4e0144(%rip), %rsi    # 0x6649e0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3a9cf5(%rip), %rdi    # 0x52e5a9
leaq 0x4e0565(%rip), %rsi    # 0x664e20
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3a9ef6(%rip), %rdi    # 0x52e7c9
leaq 0x4e0986(%rip), %rsi    # 0x665260
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aa0f7(%rip), %rdi    # 0x52e9e9
leaq 0x4e0da7(%rip), %rsi    # 0x6656a0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aa2f8(%rip), %rdi    # 0x52ec09
leaq 0x4e11c8(%rip), %rsi    # 0x665ae0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aa4f9(%rip), %rdi    # 0x52ee29
leaq 0x4e15e9(%rip), %rsi    # 0x665f20
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aa6fa(%rip), %rdi    # 0x52f049
leaq 0x4e1a0a(%rip), %rsi    # 0x666360
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aa92b(%rip), %rdi    # 0x52f299
leaq 0x4e1e2b(%rip), %rsi    # 0x6667a0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aab5c(%rip), %rdi    # 0x52f4e9
leaq 0x4e224c(%rip), %rsi    # 0x666be0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aad8d(%rip), %rdi    # 0x52f739
leaq 0x4e266d(%rip), %rsi    # 0x667020
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
cmpl $0x0, 0x24(%rsp)
je 0x1849f6
movq 0x8(%rsp), %rax
shlq $0x20, %rax
orq %rax, %rbp
leaq 0x3aafab(%rip), %rdi    # 0x52f989
leaq 0x4e2a7b(%rip), %rsi    # 0x667460
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbp, %r9
callq 0x185076
cmpl $0x0, 0x2c(%rsp)
je 0x184c14
xorl %eax, %eax
callq 0x1894d9
testl %eax, %eax
setne %al
testl %ebx, %ebx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x184c14
cmpl $0x0, 0x1c(%rsp)
je 0x184a51
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r9d
orq %rax, %r9
leaq 0x3ab13a(%rip), %rdi    # 0x52fb76
leaq 0x4e2e5d(%rip), %rsi    # 0x6678a0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
cmpl $0x0, 0x20(%rsp)
je 0x184be0
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r14d
orq %rax, %r14
leaq 0x3ab2d3(%rip), %rdi    # 0x52fd47
leaq 0x4e3265(%rip), %rbp    # 0x667ce0
movq %rbp, %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ab2b1(%rip), %rdi    # 0x52fd47
movq %rbp, %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ab467(%rip), %rdi    # 0x52ff18
leaq 0x4e3668(%rip), %rsi    # 0x668120
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ab640(%rip), %rdi    # 0x530110
leaq 0x4e3a89(%rip), %rsi    # 0x668560
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ab819(%rip), %rdi    # 0x530308
leaq 0x4e3eaa(%rip), %rsi    # 0x6689a0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ab9f2(%rip), %rdi    # 0x530500
leaq 0x4e42cb(%rip), %rsi    # 0x668de0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3abbcb(%rip), %rdi    # 0x5306f8
leaq 0x4e46ec(%rip), %rsi    # 0x669220
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3abda4(%rip), %rdi    # 0x5308f0
leaq 0x4e4b0d(%rip), %rsi    # 0x669660
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3abf7d(%rip), %rdi    # 0x530ae8
leaq 0x4e4f2e(%rip), %rsi    # 0x669aa0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ac17d(%rip), %rdi    # 0x530d07
leaq 0x4e534f(%rip), %rsi    # 0x669ee0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ac37d(%rip), %rdi    # 0x530f26
leaq 0x4e5770(%rip), %rsi    # 0x66a320
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ac57d(%rip), %rdi    # 0x531145
leaq 0x4e5b91(%rip), %rsi    # 0x66a760
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
cmpl $0x0, 0x24(%rsp)
je 0x184c14
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r9d
orq %rax, %r9
leaq 0x3ac765(%rip), %rdi    # 0x531364
leaq 0x4e5f9a(%rip), %rsi    # 0x66aba0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
cmpl $0x0, 0x30(%rsp)
je 0x184e32
xorl %eax, %eax
callq 0x1894b0
testl %eax, %eax
setne %al
testl %ebx, %ebx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x184e32
cmpl $0x0, 0x1c(%rsp)
je 0x184c6f
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r9d
orq %rax, %r9
leaq 0x3ac8db(%rip), %rdi    # 0x531535
leaq 0x4e637f(%rip), %rsi    # 0x66afe0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
cmpl $0x0, 0x20(%rsp)
je 0x184dfe
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r14d
orq %rax, %r14
leaq 0x3aca67(%rip), %rdi    # 0x5316f9
leaq 0x4e6787(%rip), %rbp    # 0x66b420
movq %rbp, %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3aca45(%rip), %rdi    # 0x5316f9
movq %rbp, %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3acbee(%rip), %rdi    # 0x5318bd
leaq 0x4e6b8a(%rip), %rsi    # 0x66b860
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3acdba(%rip), %rdi    # 0x531aa8
leaq 0x4e6fab(%rip), %rsi    # 0x66bca0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3acf86(%rip), %rdi    # 0x531c93
leaq 0x4e73cc(%rip), %rsi    # 0x66c0e0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ad152(%rip), %rdi    # 0x531e7e
leaq 0x4e77ed(%rip), %rsi    # 0x66c520
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ad31e(%rip), %rdi    # 0x532069
leaq 0x4e7c0e(%rip), %rsi    # 0x66c960
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ad4ea(%rip), %rdi    # 0x532254
leaq 0x4e802f(%rip), %rsi    # 0x66cda0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ad6b6(%rip), %rdi    # 0x53243f
leaq 0x4e8450(%rip), %rsi    # 0x66d1e0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ad8a9(%rip), %rdi    # 0x532651
leaq 0x4e8871(%rip), %rsi    # 0x66d620
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3ada9c(%rip), %rdi    # 0x532863
leaq 0x4e8c92(%rip), %rsi    # 0x66da60
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
leaq 0x3adc8f(%rip), %rdi    # 0x532a75
leaq 0x4e90b3(%rip), %rsi    # 0x66dea0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %r14, %r9
callq 0x185076
cmpl $0x0, 0x24(%rsp)
je 0x184e32
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r9d
orq %rax, %r9
leaq 0x3ade6a(%rip), %rdi    # 0x532c87
leaq 0x4e94bc(%rip), %rsi    # 0x66e2e0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
cmpl $0x0, 0x34(%rsp)
setne %al
testl %ebx, %ebx
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x18503f
cmpl $0x0, 0x1c(%rsp)
je 0x184e7e
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r9d
orq %rax, %r9
leaq 0x3adfe2(%rip), %rdi    # 0x532e4b
leaq 0x4e98b0(%rip), %rsi    # 0x66e720
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
cmpl $0x0, 0x20(%rsp)
je 0x18500b
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %ebx
orq %rax, %rbx
leaq 0x3ae157(%rip), %r14    # 0x532ff7
leaq 0x4e9d89(%rip), %rbp    # 0x66ec30
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
movq %r14, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3ae2c7(%rip), %rdi    # 0x5331a3
leaq 0x4ea25d(%rip), %rsi    # 0x66f140
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3ae484(%rip), %rdi    # 0x53337f
leaq 0x4ea74e(%rip), %rsi    # 0x66f650
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3ae641(%rip), %rdi    # 0x53355b
leaq 0x4eac3f(%rip), %rsi    # 0x66fb60
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3ae7fe(%rip), %rdi    # 0x533737
leaq 0x4eb130(%rip), %rsi    # 0x670070
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3ae9bb(%rip), %rdi    # 0x533913
leaq 0x4eb621(%rip), %rsi    # 0x670580
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3aeb78(%rip), %rdi    # 0x533aef
leaq 0x4ebb12(%rip), %rsi    # 0x670a90
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3aed35(%rip), %rdi    # 0x533ccb
leaq 0x4ec003(%rip), %rsi    # 0x670fa0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3aef22(%rip), %rdi    # 0x533ed7
leaq 0x4ec4f4(%rip), %rsi    # 0x6714b0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3af10f(%rip), %rdi    # 0x5340e3
leaq 0x4ec9e5(%rip), %rsi    # 0x6719c0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
leaq 0x3af2fc(%rip), %rdi    # 0x5342ef
leaq 0x4eced6(%rip), %rsi    # 0x671ed0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
movq %rbx, %r9
callq 0x185076
cmpl $0x0, 0x24(%rsp)
je 0x18503f
movq 0x8(%rsp), %rax
shlq $0x20, %rax
movl 0x10(%rsp), %r9d
orq %rax, %r9
leaq 0x3af4d1(%rip), %rdi    # 0x5344fb
leaq 0x4ed3af(%rip), %rsi    # 0x6723e0
movq %r15, %rdx
movq %r13, %rcx
movq %r12, %r8
callq 0x185076
movq %r15, %rdi
callq 0x18b7b0
xorl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x3f, %eax
jne 0x185062
callq 0x129240
callq 0x129321
callq 0x1292ad
callq 0x129298
callq 0x1292fc