// File: /workspace/github_c_makefile_star2_O0/nh13[P]ksw/src/parasail/tests/test_verify_rowcols.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;
    int test_stats = 0;
    char *matrixname = NULL;
    const parasail_matrix_t *matrix = NULL;
    gap_score_t gap = {INT_MIN,INT_MIN};

    while ((c = getopt(argc, argv, "f:m:n:o:e:vsS")) != -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_stats = 1;
                break;
            case 'S':
                test_scores = 0;
                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 (parasail_can_use_sse2()) {
        if (test_scores) {
            check_functions(parasail_nw_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sw_rowcol_sse2, sequences, limit, matrix, gap);
        }
        if (test_stats) {
            check_functions(parasail_nw_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_stats_rowcol_sse2, sequences, limit, matrix, gap);
            check_functions(parasail_sw_stats_rowcol_sse2, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_SSE41
    if (parasail_can_use_sse41()) {
        if (test_scores) {
            check_functions(parasail_nw_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sw_rowcol_sse41, sequences, limit, matrix, gap);
        }
        if (test_stats) {
            check_functions(parasail_nw_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_stats_rowcol_sse41, sequences, limit, matrix, gap);
            check_functions(parasail_sw_stats_rowcol_sse41, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_AVX2
    if (parasail_can_use_avx2()) {
        if (test_scores) {
            check_functions(parasail_nw_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sw_rowcol_avx2, sequences, limit, matrix, gap);
        }
        if (test_stats) {
            check_functions(parasail_nw_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_stats_rowcol_avx2, sequences, limit, matrix, gap);
            check_functions(parasail_sw_stats_rowcol_avx2, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_ALTIVEC
    if (parasail_can_use_altivec()) {
        if (test_scores) {
            check_functions(parasail_nw_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sw_rowcol_altivec, sequences, limit, matrix, gap);
        }
        if (test_stats) {
            check_functions(parasail_nw_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_stats_rowcol_altivec, sequences, limit, matrix, gap);
            check_functions(parasail_sw_stats_rowcol_altivec, sequences, limit, matrix, gap);
        }
    }
#endif

#if HAVE_NEON
    if (parasail_can_use_neon()) {
        if (test_scores) {
            check_functions(parasail_nw_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sw_rowcol_neon, sequences, limit, matrix, gap);
        }
        if (test_stats) {
            check_functions(parasail_nw_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qx_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_db_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_de_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_dx_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_de_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_db_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qb_db_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sg_qe_de_stats_rowcol_neon, sequences, limit, matrix, gap);
            check_functions(parasail_sw_stats_rowcol_neon, sequences, limit, matrix, gap);
        }
    }
#endif

    if (test_scores) {
        check_functions(parasail_nw_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qb_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qe_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qx_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_db_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_de_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_dx_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qb_de_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qe_db_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qb_db_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qe_de_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sw_rowcol_disp, sequences, limit, matrix, gap);
    }
    if (test_stats) {
        check_functions(parasail_nw_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qb_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qe_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qx_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_db_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_de_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_dx_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qb_de_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qe_db_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qb_db_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sg_qe_de_stats_rowcol_disp, sequences, limit, matrix, gap);
        check_functions(parasail_sw_stats_rowcol_disp, sequences, limit, matrix, gap);
    }
    
    parasail_sequences_free(sequences);

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl $0x1, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq 0xad67be(%rip), %rax    # 0xc22b08
movq %rax, -0x60(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0xad67d4(%rip), %rdx    # 0xc22b30
callq 0x14c050
movl %eax, -0x3c(%rbp)
cmpl $-0x1, %eax
je 0x14c597
movl -0x3c(%rbp), %eax
addl $-0x3f, %eax
movl %eax, %ecx
movq %rcx, -0x68(%rbp)
subl $0x37, %eax
ja 0x14c570
movq -0x68(%rbp), %rax
leaq 0xaafc83(%rip), %rcx    # 0xbfc010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xba3c23(%rip), %rax    # 0xceffc0
movq (%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x14c592
movq 0xba3c10(%rip), %rax    # 0xceffc0
movq (%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x14c592
callq 0x14c030
movl $0x0, (%rax)
movq 0xba3bf2(%rip), %rax    # 0xceffc0
movq (%rax), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x14c170
movq %rax, -0x18(%rbp)
callq 0x14c030
cmpl $0x0, (%rax)
je 0x14c403
leaq 0xad674a(%rip), %rdi    # 0xc22b3e
callq 0x14c0e0
movl $0x1, %edi
callq 0x14c140
jmp 0x14c592
callq 0x14c030
movl $0x0, (%rax)
movq 0xba3ba6(%rip), %rax    # 0xceffc0
movq (%rax), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x14c170
movl %eax, -0x60(%rbp)
callq 0x14c030
cmpl $0x0, (%rax)
je 0x14c44e
leaq 0xad6706(%rip), %rdi    # 0xc22b45
callq 0x14c0e0
movl $0x1, %edi
callq 0x14c140
jmp 0x14c592
callq 0x14c030
movl $0x0, (%rax)
movq 0xba3b5b(%rip), %rax    # 0xceffc0
movq (%rax), %rdi
leaq -0x30(%rbp), %rsi
movl $0xa, %edx
callq 0x14c170
movl %eax, -0x5c(%rbp)
callq 0x14c030
cmpl $0x0, (%rax)
je 0x14c499
leaq 0xad66cb(%rip), %rdi    # 0xc22b55
callq 0x14c0e0
movl $0x1, %edi
callq 0x14c140
jmp 0x14c592
movl $0x1, 0xbc4f84(%rip)    # 0xd1142c
jmp 0x14c592
movl $0x1, -0x44(%rbp)
jmp 0x14c592
movl $0x0, -0x40(%rbp)
jmp 0x14c592
movq 0xba3b0c(%rip), %rax    # 0xceffd8
cmpl $0x66, (%rax)
je 0x14c4dd
movq 0xba3b00(%rip), %rax    # 0xceffd8
cmpl $0x6e, (%rax)
jne 0x14c500
movq 0xba3afc(%rip), %rax    # 0xceffe0
movq (%rax), %rdi
movq 0xba3aea(%rip), %rax    # 0xceffd8
movl (%rax), %edx
leaq 0xad6670(%rip), %rsi    # 0xc22b67
movb $0x0, %al
callq 0x14c180
jmp 0x14c566
callq 0x14c110
movq (%rax), %rax
movq 0xba3ac9(%rip), %rcx    # 0xceffd8
movslq (%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x14c543
movq 0xba3ab9(%rip), %rax    # 0xceffe0
movq (%rax), %rdi
movq 0xba3aa7(%rip), %rax    # 0xceffd8
movl (%rax), %edx
leaq 0xad664f(%rip), %rsi    # 0xc22b89
movb $0x0, %al
callq 0x14c180
jmp 0x14c564
movq 0xba3a96(%rip), %rax    # 0xceffe0
movq (%rax), %rdi
movq 0xba3a84(%rip), %rax    # 0xceffd8
movl (%rax), %edx
leaq 0xad6643(%rip), %rsi    # 0xc22ba0
movb $0x0, %al
callq 0x14c180
jmp 0x14c566
movl $0x1, %edi
callq 0x14c140
movq 0xba3a69(%rip), %rax    # 0xceffe0
movq (%rax), %rdi
leaq 0xad6641(%rip), %rsi    # 0xc22bc2
movb $0x0, %al
callq 0x14c180
movl $0x1, %edi
callq 0x14c140
jmp 0x14c34e
cmpq $0x0, -0x38(%rbp)
je 0x14c5c1
movq -0x38(%rbp), %rdi
callq 0x152780
movq %rax, -0x28(%rbp)
xorl %eax, %eax
cmpq -0x18(%rbp), %rax
jne 0x14c5bf
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x14c5e3
movq 0xba3a18(%rip), %rax    # 0xceffe0
movq (%rax), %rdi
leaq 0xad6608(%rip), %rsi    # 0xc22bda
movb $0x0, %al
callq 0x14c180
movl $0x1, %edi
callq 0x14c140
cmpq $0x0, -0x50(%rbp)
je 0x14c623
movq -0x50(%rbp), %rdi
callq 0x14e550
movq %rax, -0x58(%rbp)
xorl %eax, %eax
cmpq -0x58(%rbp), %rax
jne 0x14c621
movq 0xba39da(%rip), %rax    # 0xceffe0
movq (%rax), %rdi
leaq 0xad65e1(%rip), %rsi    # 0xc22bf1
movb $0x0, %al
callq 0x14c180
movl $0x1, %edi
callq 0x14c140
jmp 0x14c623
movq -0x18(%rbp), %rdi
movl $0x2, %esi
callq 0x14d520
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
leaq 0xad65d7(%rip), %rdi    # 0xc22c1b
movb $0x0, %al
callq 0x14c040
movb $0x0, %al
callq 0x14e1c0
cmpl $0x0, %eax
je 0x14c9ff
cmpl $0x0, -0x40(%rbp)
je 0x14c82c
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3ab0(%rip), %rdi    # 0xcf0128
movq 0xba3ab1(%rip), %rsi    # 0xcf0130
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a9d(%rip), %rdi    # 0xcf0138
movq 0xba3a9e(%rip), %rsi    # 0xcf0140
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a8a(%rip), %rdi    # 0xcf0148
movq 0xba3a8b(%rip), %rsi    # 0xcf0150
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a77(%rip), %rdi    # 0xcf0158
movq 0xba3a78(%rip), %rsi    # 0xcf0160
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a64(%rip), %rdi    # 0xcf0168
movq 0xba3a65(%rip), %rsi    # 0xcf0170
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a51(%rip), %rdi    # 0xcf0178
movq 0xba3a52(%rip), %rsi    # 0xcf0180
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a3e(%rip), %rdi    # 0xcf0188
movq 0xba3a3f(%rip), %rsi    # 0xcf0190
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a2b(%rip), %rdi    # 0xcf0198
movq 0xba3a2c(%rip), %rsi    # 0xcf01a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a18(%rip), %rdi    # 0xcf01a8
movq 0xba3a19(%rip), %rsi    # 0xcf01b0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3a05(%rip), %rdi    # 0xcf01b8
movq 0xba3a06(%rip), %rsi    # 0xcf01c0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba39f2(%rip), %rdi    # 0xcf01c8
movq 0xba39f3(%rip), %rsi    # 0xcf01d0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba39df(%rip), %rdi    # 0xcf01d8
movq 0xba39e0(%rip), %rsi    # 0xcf01e0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba39cc(%rip), %rdi    # 0xcf01e8
movq 0xba39cd(%rip), %rsi    # 0xcf01f0
movq -0x60(%rbp), %r9
callq 0x14d5a0
cmpl $0x0, -0x44(%rbp)
je 0x14c9fd
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba39af(%rip), %rdi    # 0xcf01f8
movq 0xba39b0(%rip), %rsi    # 0xcf0200
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba399c(%rip), %rdi    # 0xcf0208
movq 0xba399d(%rip), %rsi    # 0xcf0210
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3989(%rip), %rdi    # 0xcf0218
movq 0xba398a(%rip), %rsi    # 0xcf0220
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3976(%rip), %rdi    # 0xcf0228
movq 0xba3977(%rip), %rsi    # 0xcf0230
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3963(%rip), %rdi    # 0xcf0238
movq 0xba3964(%rip), %rsi    # 0xcf0240
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3950(%rip), %rdi    # 0xcf0248
movq 0xba3951(%rip), %rsi    # 0xcf0250
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba393d(%rip), %rdi    # 0xcf0258
movq 0xba393e(%rip), %rsi    # 0xcf0260
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba392a(%rip), %rdi    # 0xcf0268
movq 0xba392b(%rip), %rsi    # 0xcf0270
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3917(%rip), %rdi    # 0xcf0278
movq 0xba3918(%rip), %rsi    # 0xcf0280
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3904(%rip), %rdi    # 0xcf0288
movq 0xba3905(%rip), %rsi    # 0xcf0290
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba38f1(%rip), %rdi    # 0xcf0298
movq 0xba38f2(%rip), %rsi    # 0xcf02a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba38de(%rip), %rdi    # 0xcf02a8
movq 0xba38df(%rip), %rsi    # 0xcf02b0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba38cb(%rip), %rdi    # 0xcf02b8
movq 0xba38cc(%rip), %rsi    # 0xcf02c0
movq -0x60(%rbp), %r9
callq 0x14d5a0
jmp 0x14c9ff
movb $0x0, %al
callq 0x14e1a0
cmpl $0x0, %eax
je 0x14cdb3
cmpl $0x0, -0x40(%rbp)
je 0x14cbe0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba389c(%rip), %rdi    # 0xcf02c8
movq 0xba389d(%rip), %rsi    # 0xcf02d0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3889(%rip), %rdi    # 0xcf02d8
movq 0xba388a(%rip), %rsi    # 0xcf02e0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3876(%rip), %rdi    # 0xcf02e8
movq 0xba3877(%rip), %rsi    # 0xcf02f0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3863(%rip), %rdi    # 0xcf02f8
movq 0xba3864(%rip), %rsi    # 0xcf0300
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3850(%rip), %rdi    # 0xcf0308
movq 0xba3851(%rip), %rsi    # 0xcf0310
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba383d(%rip), %rdi    # 0xcf0318
movq 0xba383e(%rip), %rsi    # 0xcf0320
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba382a(%rip), %rdi    # 0xcf0328
movq 0xba382b(%rip), %rsi    # 0xcf0330
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3817(%rip), %rdi    # 0xcf0338
movq 0xba3818(%rip), %rsi    # 0xcf0340
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3804(%rip), %rdi    # 0xcf0348
movq 0xba3805(%rip), %rsi    # 0xcf0350
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba37f1(%rip), %rdi    # 0xcf0358
movq 0xba37f2(%rip), %rsi    # 0xcf0360
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba37de(%rip), %rdi    # 0xcf0368
movq 0xba37df(%rip), %rsi    # 0xcf0370
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba37cb(%rip), %rdi    # 0xcf0378
movq 0xba37cc(%rip), %rsi    # 0xcf0380
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba37b8(%rip), %rdi    # 0xcf0388
movq 0xba37b9(%rip), %rsi    # 0xcf0390
movq -0x60(%rbp), %r9
callq 0x14d5a0
cmpl $0x0, -0x44(%rbp)
je 0x14cdb1
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba379b(%rip), %rdi    # 0xcf0398
movq 0xba379c(%rip), %rsi    # 0xcf03a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3788(%rip), %rdi    # 0xcf03a8
movq 0xba3789(%rip), %rsi    # 0xcf03b0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3775(%rip), %rdi    # 0xcf03b8
movq 0xba3776(%rip), %rsi    # 0xcf03c0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3762(%rip), %rdi    # 0xcf03c8
movq 0xba3763(%rip), %rsi    # 0xcf03d0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba374f(%rip), %rdi    # 0xcf03d8
movq 0xba3750(%rip), %rsi    # 0xcf03e0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba373c(%rip), %rdi    # 0xcf03e8
movq 0xba373d(%rip), %rsi    # 0xcf03f0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3729(%rip), %rdi    # 0xcf03f8
movq 0xba372a(%rip), %rsi    # 0xcf0400
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3716(%rip), %rdi    # 0xcf0408
movq 0xba3717(%rip), %rsi    # 0xcf0410
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3703(%rip), %rdi    # 0xcf0418
movq 0xba3704(%rip), %rsi    # 0xcf0420
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba36f0(%rip), %rdi    # 0xcf0428
movq 0xba36f1(%rip), %rsi    # 0xcf0430
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba36dd(%rip), %rdi    # 0xcf0438
movq 0xba36de(%rip), %rsi    # 0xcf0440
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba36ca(%rip), %rdi    # 0xcf0448
movq 0xba36cb(%rip), %rsi    # 0xcf0450
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba36b7(%rip), %rdi    # 0xcf0458
movq 0xba36b8(%rip), %rsi    # 0xcf0460
movq -0x60(%rbp), %r9
callq 0x14d5a0
jmp 0x14cdb3
movb $0x0, %al
callq 0x14e180
cmpl $0x0, %eax
je 0x14d167
cmpl $0x0, -0x40(%rbp)
je 0x14cf94
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3688(%rip), %rdi    # 0xcf0468
movq 0xba3689(%rip), %rsi    # 0xcf0470
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3675(%rip), %rdi    # 0xcf0478
movq 0xba3676(%rip), %rsi    # 0xcf0480
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3662(%rip), %rdi    # 0xcf0488
movq 0xba3663(%rip), %rsi    # 0xcf0490
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba364f(%rip), %rdi    # 0xcf0498
movq 0xba3650(%rip), %rsi    # 0xcf04a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba363c(%rip), %rdi    # 0xcf04a8
movq 0xba363d(%rip), %rsi    # 0xcf04b0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3629(%rip), %rdi    # 0xcf04b8
movq 0xba362a(%rip), %rsi    # 0xcf04c0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3616(%rip), %rdi    # 0xcf04c8
movq 0xba3617(%rip), %rsi    # 0xcf04d0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3603(%rip), %rdi    # 0xcf04d8
movq 0xba3604(%rip), %rsi    # 0xcf04e0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba35f0(%rip), %rdi    # 0xcf04e8
movq 0xba35f1(%rip), %rsi    # 0xcf04f0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba35dd(%rip), %rdi    # 0xcf04f8
movq 0xba35de(%rip), %rsi    # 0xcf0500
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba35ca(%rip), %rdi    # 0xcf0508
movq 0xba35cb(%rip), %rsi    # 0xcf0510
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba35b7(%rip), %rdi    # 0xcf0518
movq 0xba35b8(%rip), %rsi    # 0xcf0520
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba35a4(%rip), %rdi    # 0xcf0528
movq 0xba35a5(%rip), %rsi    # 0xcf0530
movq -0x60(%rbp), %r9
callq 0x14d5a0
cmpl $0x0, -0x44(%rbp)
je 0x14d165
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3587(%rip), %rdi    # 0xcf0538
movq 0xba3588(%rip), %rsi    # 0xcf0540
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3574(%rip), %rdi    # 0xcf0548
movq 0xba3575(%rip), %rsi    # 0xcf0550
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3561(%rip), %rdi    # 0xcf0558
movq 0xba3562(%rip), %rsi    # 0xcf0560
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba354e(%rip), %rdi    # 0xcf0568
movq 0xba354f(%rip), %rsi    # 0xcf0570
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba353b(%rip), %rdi    # 0xcf0578
movq 0xba353c(%rip), %rsi    # 0xcf0580
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3528(%rip), %rdi    # 0xcf0588
movq 0xba3529(%rip), %rsi    # 0xcf0590
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3515(%rip), %rdi    # 0xcf0598
movq 0xba3516(%rip), %rsi    # 0xcf05a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3502(%rip), %rdi    # 0xcf05a8
movq 0xba3503(%rip), %rsi    # 0xcf05b0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba34ef(%rip), %rdi    # 0xcf05b8
movq 0xba34f0(%rip), %rsi    # 0xcf05c0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba34dc(%rip), %rdi    # 0xcf05c8
movq 0xba34dd(%rip), %rsi    # 0xcf05d0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba34c9(%rip), %rdi    # 0xcf05d8
movq 0xba34ca(%rip), %rsi    # 0xcf05e0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba34b6(%rip), %rdi    # 0xcf05e8
movq 0xba34b7(%rip), %rsi    # 0xcf05f0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba34a3(%rip), %rdi    # 0xcf05f8
movq 0xba34a4(%rip), %rsi    # 0xcf0600
movq -0x60(%rbp), %r9
callq 0x14d5a0
jmp 0x14d167
cmpl $0x0, -0x40(%rbp)
je 0x14d338
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3484(%rip), %rdi    # 0xcf0608
movq 0xba3485(%rip), %rsi    # 0xcf0610
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3471(%rip), %rdi    # 0xcf0618
movq 0xba3472(%rip), %rsi    # 0xcf0620
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba345e(%rip), %rdi    # 0xcf0628
movq 0xba345f(%rip), %rsi    # 0xcf0630
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba344b(%rip), %rdi    # 0xcf0638
movq 0xba344c(%rip), %rsi    # 0xcf0640
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3438(%rip), %rdi    # 0xcf0648
movq 0xba3439(%rip), %rsi    # 0xcf0650
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3425(%rip), %rdi    # 0xcf0658
movq 0xba3426(%rip), %rsi    # 0xcf0660
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3412(%rip), %rdi    # 0xcf0668
movq 0xba3413(%rip), %rsi    # 0xcf0670
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba33ff(%rip), %rdi    # 0xcf0678
movq 0xba3400(%rip), %rsi    # 0xcf0680
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba33ec(%rip), %rdi    # 0xcf0688
movq 0xba33ed(%rip), %rsi    # 0xcf0690
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba33d9(%rip), %rdi    # 0xcf0698
movq 0xba33da(%rip), %rsi    # 0xcf06a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba33c6(%rip), %rdi    # 0xcf06a8
movq 0xba33c7(%rip), %rsi    # 0xcf06b0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba33b3(%rip), %rdi    # 0xcf06b8
movq 0xba33b4(%rip), %rsi    # 0xcf06c0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba33a0(%rip), %rdi    # 0xcf06c8
movq 0xba33a1(%rip), %rsi    # 0xcf06d0
movq -0x60(%rbp), %r9
callq 0x14d5a0
cmpl $0x0, -0x44(%rbp)
je 0x14d509
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3383(%rip), %rdi    # 0xcf06d8
movq 0xba3384(%rip), %rsi    # 0xcf06e0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3370(%rip), %rdi    # 0xcf06e8
movq 0xba3371(%rip), %rsi    # 0xcf06f0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba335d(%rip), %rdi    # 0xcf06f8
movq 0xba335e(%rip), %rsi    # 0xcf0700
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba334a(%rip), %rdi    # 0xcf0708
movq 0xba334b(%rip), %rsi    # 0xcf0710
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3337(%rip), %rdi    # 0xcf0718
movq 0xba3338(%rip), %rsi    # 0xcf0720
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3324(%rip), %rdi    # 0xcf0728
movq 0xba3325(%rip), %rsi    # 0xcf0730
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba3311(%rip), %rdi    # 0xcf0738
movq 0xba3312(%rip), %rsi    # 0xcf0740
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba32fe(%rip), %rdi    # 0xcf0748
movq 0xba32ff(%rip), %rsi    # 0xcf0750
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba32eb(%rip), %rdi    # 0xcf0758
movq 0xba32ec(%rip), %rsi    # 0xcf0760
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba32d8(%rip), %rdi    # 0xcf0768
movq 0xba32d9(%rip), %rsi    # 0xcf0770
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba32c5(%rip), %rdi    # 0xcf0778
movq 0xba32c6(%rip), %rsi    # 0xcf0780
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba32b2(%rip), %rdi    # 0xcf0788
movq 0xba32b3(%rip), %rsi    # 0xcf0790
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
movq -0x58(%rbp), %r8
movq 0xba329f(%rip), %rdi    # 0xcf0798
movq 0xba32a0(%rip), %rsi    # 0xcf07a0
movq -0x60(%rbp), %r9
callq 0x14d5a0
movq -0x28(%rbp), %rdi
callq 0x1534c0
xorl %eax, %eax
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)