// File: /workspace/github_cpp_makefile_star2_O2/chhylp123[P]hifiasm/CommandLines.cpp
// Function: check_option(hifiasm_opt_t*)
int check_option(hifiasm_opt_t* asm_opt)
{
    if(asm_opt->read_file_names == NULL || asm_opt->num_reads == 0)
    {
        fprintf(stderr, "[ERROR] missing input: please specify a read file\n");
        return 0;
    }

    if(asm_opt->output_file_name == NULL)
    {
        fprintf(stderr, "[ERROR] missing output: please specify the output name (-o)\n");
        return 0;
    }

    if(asm_opt->thread_num < 1)
    {
        fprintf(stderr, "[ERROR] the number of threads must be > 0 (-t)\n");
        return 0;
    }


    if(asm_opt->number_of_round < 1)
    {
        fprintf(stderr, "[ERROR] the number of rounds for correction must be > 0 (-r)\n");
        return 0;
    }

    if(asm_opt->clean_round < 1)
    {
        fprintf(stderr, "[ERROR] the number of rounds for assembly cleaning must be > 0 (-a)\n");
        return 0;
    }

    if(asm_opt->adapterLen < 0)
    {
        fprintf(stderr, "[ERROR] the length of removed adapters must be >= 0 (-z)\n");
        return 0;
    }


    if(asm_opt->k_mer_length >= 64)
    {
        fprintf(stderr, "[ERROR] the length of k_mer must be < 64 (-k)\n");
        return 0;
    }


    if(asm_opt->max_drop_rate < 0 || asm_opt->max_drop_rate >= 1 ) 
    {
        fprintf(stderr, "[ERROR] max overlap drop ratio must be [0.0, 1.0) (-x)\n");
        return 0;
    }

    
    if(asm_opt->min_drop_rate < 0 || asm_opt->min_drop_rate >= 1)
    {
        fprintf(stderr, "[ERROR] min overlap drop ratio must be [0.0, 1.0) (-y)\n");
        return 0;
    }

    if(asm_opt->max_drop_rate <= asm_opt->min_drop_rate)
    {
        fprintf(stderr, "[ERROR] min overlap drop ratio must be less than max overlap drop ratio (-x/-y)\n");
        return 0;
    }

    if(asm_opt->small_pop_bubble_size < 0)
    {
        fprintf(stderr, "[ERROR] the size of popped small bubbles must be >= 0 (-p)\n");
        return 0;
    }

    if(asm_opt->large_pop_bubble_size < 0)
    {
        fprintf(stderr, "[ERROR] the size of popped large bubbles must be >= 0 (-m)\n");
        return 0;
    }

    if(asm_opt->max_hang_Len < 0)
    {
        fprintf(stderr, "[ERROR] max_hang_Len must be >= 0\n");
        return 0;
    }

    if(asm_opt->max_hang_rate < 0)
    {
        fprintf(stderr, "[ERROR] max_hang_rate must be >= 0\n");
        return 0;
    }

    if(asm_opt->gap_fuzz < 0)
    {
        fprintf(stderr, "[ERROR] gap_fuzz must be >= 0\n");
        return 0;
    }

    if(asm_opt->min_overlap_Len < 0)
    {
        fprintf(stderr, "[ERROR] min_overlap_Len must be >= 0\n");
        return 0;
    }

    if(asm_opt->min_overlap_coverage < 0)
    {
        fprintf(stderr, "[ERROR] min_overlap_coverage must be >= 0\n");
        return 0;
    }

	if (asm_opt->max_ov_diff_ec < asm_opt->max_ov_diff_final) {
		fprintf(stderr, "[ERROR] max_ov_diff_ec shouldn't be smaller than max_ov_diff_final\n");
		return 0;
	}

	if (asm_opt->max_ov_diff_ec < HA_MIN_OV_DIFF) {
		fprintf(stderr, "[ERROR] max_ov_diff_ec shouldn't be smaller than %g\n", HA_MIN_OV_DIFF);
		return 0;
	}

    if(asm_opt->max_short_tip < 0)
    {
        fprintf(stderr, "[ERROR] the length of removal tips must be >= 0 (-n)\n");
        return 0;
    }

    if(asm_opt->purge_level_primary < 0 || asm_opt->purge_level_primary > 3)
    {
        fprintf(stderr, "[ERROR] the level of purge-dup should be [0, 3] (-l)\n");
        return 0;
    }

    if(ha_opt_triobin(asm_opt) && ((asm_opt->purge_level_trio < 0 || asm_opt->purge_level_trio > 1)))
    {
        fprintf(stderr, "[ERROR] the level of purge-dup for trio should be [0, 1] (-l)\n");
        return 0;
    }

    if(asm_opt->hom_global_coverage < 0 && asm_opt->hom_global_coverage != -1)
    {
        fprintf(stderr, "[ERROR] homozygous read coverage should be >= 0 (--hom-cov)\n");
        return 0;
    }

    if(asm_opt->pur_global_coverage < 0 && asm_opt->pur_global_coverage != -1)
    {
        fprintf(stderr, "[ERROR] purge duplication coverage threshold should be >= 0 (--purge-max)\n");
        return 0;
    }

    if(asm_opt->bed_inconsist_rate < 0 || asm_opt->bed_inconsist_rate > 100)
    {
        fprintf(stderr, "[ERROR] inconsistency rate should be [0, 100] (--lowQ)\n");
        return 0;
    }


    if(asm_opt->fn_bin_yak[0] != NULL && check_file(asm_opt->fn_bin_yak[0], "YAK1") == 0) return 0;
    if(asm_opt->fn_bin_yak[1] != NULL && check_file(asm_opt->fn_bin_yak[1], "YAK2") == 0) return 0;
    if(asm_opt->fn_bin_list[0] != NULL && check_file(asm_opt->fn_bin_list[0], "LIST1") == 0) return 0;
    if(asm_opt->fn_bin_list[1] != NULL && check_file(asm_opt->fn_bin_list[1], "LIST2") == 0) return 0;
    if(asm_opt->required_read_name != NULL && check_file(asm_opt->required_read_name, "b") == 0) return 0;
    
    if(asm_opt->hic_reads[0] != NULL && check_hic_reads(asm_opt->hic_reads[0], "HIC1") == 0) return 0;
    if(asm_opt->hic_reads[1] != NULL && check_hic_reads(asm_opt->hic_reads[1], "HIC2") == 0) return 0;
    if(asm_opt->hic_reads[0] != NULL && asm_opt->hic_reads[1] == NULL)
    {
        fprintf(stderr, "[ERROR] lack r2 of HiC reads (--h2)\n");
        return 0;
    }
    if(asm_opt->hic_reads[1] != NULL && asm_opt->hic_reads[0] == NULL)
    {
        fprintf(stderr, "[ERROR] lack r1 of HiC reads (--h1)\n");
        return 0;
    }

    if(asm_opt->hic_reads[0] != NULL && asm_opt->hic_reads[1] != NULL && 
                            asm_opt->hic_reads[0]->n != asm_opt->hic_reads[1]->n)
    {
        fprintf(stderr, "[ERROR] wrong r1 and r2 of HiC reads (--h1 && --h2)\n");
        return 0;
    }

    if(asm_opt->hic_enzymes != NULL && asm_opt->hic_enzymes->n == 0)
    {
        fprintf(stderr, "[ERROR] wrong HiC enzymes (--enzyme)\n");
        return 0;
    }

    if(asm_opt->hic_reads[0] != NULL && asm_opt->hic_reads[0]->n == 0)
    {
        fprintf(stderr, "[ERROR] wrong r1 of HiC reads (--h1)\n");
        return 0;
    }

    if(asm_opt->hic_reads[1] != NULL && asm_opt->hic_reads[1]->n == 0)
    {
        fprintf(stderr, "[ERROR] wrong r2 of HiC reads (--h2)\n");
        return 0;
    }

    if(asm_opt->ar != NULL && check_fq_files(asm_opt->ar, "--ul", asm_opt->ul_mod) == 0) return 0;
    if(asm_opt->ar != NULL && asm_opt->ar->n == 0)
    {
        fprintf(stderr, "[ERROR] wrong UL reads (--ul)\n");
        return 0;
    }

    if(asm_opt->b_low_cov < 0)
    {
        fprintf(stderr, "[ERROR] must >= 0 (--b-cov)\n");
        return 0;
    }

    if(asm_opt->b_high_cov != -1 && asm_opt->b_high_cov < 0)
    {
        fprintf(stderr, "[ERROR] must >= 0 (--h-cov)\n");
        return 0;
    }

    if(asm_opt->m_rate < 0)
    {
        fprintf(stderr, "[ERROR] must >= 0 (--m-rate)\n");
        return 0;
    }

    if(asm_opt->b_high_cov != -1 && asm_opt->b_high_cov <= asm_opt->b_low_cov)
    {
        fprintf(stderr, "[ERROR] [--h-cov] must >= [--b-cov]\n");
        return 0;
    }

    if(asm_opt->purge_simi_thres < 0)
    {
        fprintf(stderr, "[ERROR] [-s] must >= 0\n");
        return 0;
    }

    if(asm_opt->max_kmer_cnt < 0)
    {
        fprintf(stderr, "[ERROR] [--max-kocc] must >= 0\n");
        return 0;
    }

    if(asm_opt->hg_size < -1)
    {
        fprintf(stderr, "[ERROR] [--hg-size] wrong genome size\n");
        return 0;
    }

    if(asm_opt->ul_mod != 0 && asm_opt->ul_mod != 1) {
        fprintf(stderr, "[ERROR] must be 0 or 1 (--ul-m)\n");
        return 0;
    }

    if(asm_opt->telo_motif) {
        uint64_t k, tlen = strlen((asm_opt->telo_motif)); char c;
        if(tlen > 32) {
            fprintf(stderr, "[ERROR] [--telo-m] must be no longer than 32\n");
            return 0;
        }
        for (k = 0; k < tlen; k++) {
            c = asm_opt->telo_motif[k];
            if(c != 'A' && c != 'C' && c != 'G' && c != 'T' &&
                c != 'a' && c != 'c' && c != 'g' && c != 't') {
                fprintf(stderr, "[ERROR] [--telo-m] must be A/C/G/T\n");
                return 0;
            }
        }
    }

    return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpq $0x0, 0x8(%rdi)
je 0x377b
movq %rdi, %rbx
cmpl $0x0, 0x4(%rdi)
je 0x377b
cmpq $0x0, 0x10(%rbx)
je 0x3793
cmpl $0x0, 0x7c(%rbx)
jle 0x37a9
cmpl $0x0, 0xf8(%rbx)
jle 0x37c1
cmpl $0x0, 0x104(%rbx)
jle 0x37d9
cmpl $0x0, 0x100(%rbx)
js 0x37f1
cmpl $0x40, 0x80(%rbx)
jge 0x3809
movss 0x160(%rbx), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm0, %xmm1
ja 0x3821
ucomiss 0x1dcb82(%rip), %xmm0   # 0x1e00d0
jae 0x3821
movss 0x15c(%rbx), %xmm1
xorps %xmm2, %xmm2
ucomiss %xmm1, %xmm2
ja 0x3837
ucomiss 0x1dcb61(%rip), %xmm1   # 0x1e00d0
jae 0x3837
ucomiss %xmm0, %xmm1
jae 0x384d
cmpq $0x0, 0x180(%rbx)
js 0x3865
cmpq $0x0, 0x188(%rbx)
js 0x3878
cmpl $0x0, 0x10c(%rbx)
js 0x3890
xorps %xmm0, %xmm0
ucomiss 0x158(%rbx), %xmm0
ja 0x38a8
cmpl $0x0, 0x110(%rbx)
js 0x38c0
cmpl $0x0, 0x114(%rbx)
js 0x38d8
cmpl $0x0, 0x118(%rbx)
js 0x38f0
movsd 0xc0(%rbx), %xmm0
movsd 0xc8(%rbx), %xmm1
ucomisd %xmm0, %xmm1
ja 0x3908
movsd 0x1dca18(%rip), %xmm1   # 0x1e0018
ucomisd %xmm0, %xmm1
ja 0x3920
cmpl $0x0, 0x11c(%rbx)
js 0x3942
cmpl $0x4, 0x130(%rbx)
jae 0x3955
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
je 0x3634
cmpq $0x0, 0x28(%rbx)
jne 0x3642
cmpq $0x0, 0x30(%rbx)
je 0x364f
cmpq $0x0, 0x38(%rbx)
je 0x364f
cmpl $0x2, 0x134(%rbx)
jae 0x3b78
cmpl $-0x2, 0x144(%rbx)
jle 0x396a
cmpl $-0x2, 0x14c(%rbx)
jle 0x397f
cmpl $0x65, 0x150(%rbx)
jae 0x3994
testq %rdi, %rdi
je 0x368f
leaq 0x1de902(%rip), %rsi    # 0x1e1f84
callq 0x3d93
testl %eax, %eax
je 0x39b0
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x36ac
leaq 0x1de8ea(%rip), %rsi    # 0x1e1f89
callq 0x3d93
testl %eax, %eax
je 0x39b0
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x36c9
leaq 0x1de8d2(%rip), %rsi    # 0x1e1f8e
callq 0x3d93
testl %eax, %eax
je 0x39b0
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x36e6
leaq 0x1de8bb(%rip), %rsi    # 0x1e1f94
callq 0x3d93
testl %eax, %eax
je 0x39b0
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x3703
leaq 0x1f8afc(%rip), %rsi    # 0x1fc1f2
callq 0x3d93
testl %eax, %eax
je 0x39b0
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0x3720
leaq 0x1de887(%rip), %rsi    # 0x1e1f9a
callq 0x3e06
testl %eax, %eax
je 0x39b0
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x373d
leaq 0x1de86f(%rip), %rsi    # 0x1e1f9f
callq 0x3e06
testl %eax, %eax
je 0x39b0
movq 0x50(%rbx), %rax
movq 0x58(%rbx), %rcx
testq %rax, %rax
je 0x39c5
testq %rcx, %rcx
je 0x3bd3
movl 0x8(%rax), %edx
cmpl 0x8(%rcx), %edx
je 0x39d3
movq 0x24f876(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de87a(%rip), %rdi    # 0x1e1fee
pushq $0x34
jmp 0x39a7
movq 0x24f85e(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de298(%rip), %rdi    # 0x1e1a24
pushq $0x32
jmp 0x39a7
movq 0x24f846(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de2b3(%rip), %rdi    # 0x1e1a57
jmp 0x397b
movq 0x24f830(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de2da(%rip), %rdi    # 0x1e1a94
pushq $0x2f
jmp 0x39a7
movq 0x24f818(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de2f2(%rip), %rdi    # 0x1e1ac4
pushq $0x3d
jmp 0x39a7
movq 0x24f800(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de318(%rip), %rdi    # 0x1e1b02
pushq $0x44
jmp 0x39a7
movq 0x24f7e8(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de345(%rip), %rdi    # 0x1e1b47
pushq $0x39
jmp 0x39a7
movq 0x24f7d0(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de367(%rip), %rdi    # 0x1e1b81
pushq $0x2e
jmp 0x39a7
movq 0x24f7b8(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de37e(%rip), %rdi    # 0x1e1bb0
jmp 0x39a5
movq 0x24f7a2(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de3a0(%rip), %rdi    # 0x1e1be8
jmp 0x39a5
movq 0x24f78c(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de3c2(%rip), %rdi    # 0x1e1c20
pushq $0x50
jmp 0x39a7
movq 0x24f774(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de3fb(%rip), %rdi    # 0x1e1c71
jmp 0x3889
movq 0x24f761(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de424(%rip), %rdi    # 0x1e1cad
pushq $0x3b
jmp 0x39a7
movq 0x24f749(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de448(%rip), %rdi    # 0x1e1ce9
pushq $0x22
jmp 0x39a7
movq 0x24f731(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de453(%rip), %rdi    # 0x1e1d0c
pushq $0x23
jmp 0x39a7
movq 0x24f719(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de45f(%rip), %rdi    # 0x1e1d30
pushq $0x1e
jmp 0x39a7
movq 0x24f701(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de466(%rip), %rdi    # 0x1e1d4f
pushq $0x25
jmp 0x39a7
movq 0x24f6e9(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de474(%rip), %rdi    # 0x1e1d75
pushq $0x2a
jmp 0x39a7
movq 0x24f6d1(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de487(%rip), %rdi    # 0x1e1da0
pushq $0x43
jmp 0x39a7
movq 0x24f6b9(%rip), %rax    # 0x252fe0
movq (%rax), %rdi
leaq 0x1de4b3(%rip), %rsi    # 0x1e1de4
movsd 0x1dc6df(%rip), %xmm0   # 0x1e0018
movb $0x1, %al
callq 0x22b0
jmp 0x39b0
movq 0x24f697(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de4c6(%rip), %rdi    # 0x1e1e19
jmp 0x3966
movq 0x24f684(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de4e9(%rip), %rdi    # 0x1e1e4f
pushq $0x35
jmp 0x39a7
movq 0x24f66f(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de549(%rip), %rdi    # 0x1e1ec4
pushq $0x3c
jmp 0x39a7
movq 0x24f65a(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de571(%rip), %rdi    # 0x1e1f01
pushq $0x4a
jmp 0x39a7
movq 0x24f645(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de5a7(%rip), %rdi    # 0x1e1f4c
pushq $0x37
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
xorl %r14d, %r14d
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r14d, %r14d
testq %rcx, %rcx
jne 0x3cf6
xorl %ecx, %ecx
movq 0x60(%rbx), %rdx
testq %rdx, %rdx
je 0x39e6
cmpl $0x0, 0x8(%rdx)
je 0x3bfe
testq %rax, %rax
je 0x39ff
cmpl $0x0, 0x8(%rax)
je 0x3c2c
cmpl $0x0, 0x8(%rcx)
je 0x3c5a
movq 0x68(%rbx), %r13
testq %r13, %r13
je 0x3aa3
movl 0x244(%rbx), %r14d
xorl %ebp, %ebp
movslq 0x8(%r13), %rax
cmpq %rax, %rbp
jge 0x3a90
movq 0x10(%r13), %rax
movq (%rax,%rbp,8), %rdi
testq %rdi, %rdi
je 0x3ca0
leaq 0x1edc81(%rip), %rsi    # 0x1f16b7
callq 0x22d0
testq %rax, %rax
je 0x3cc7
movq %rax, %r15
testl %r14d, %r14d
je 0x3a83
movq %r15, %rdi
callq 0x3f58
movq %rax, %r12
movq %rax, %rdi
callq 0x3f9e
testl %eax, %eax
js 0x3a7b
cmpq $0x0, 0x48(%r12)
je 0x3d0b
cmpq $0x0, 0x58(%r12)
je 0x3d0b
movq %r12, %rdi
callq 0x4191
movq %r15, %rdi
callq 0x2390
incq %rbp
jmp 0x3a15
movq 0x68(%rbx), %rax
testq %rax, %rax
je 0x3aa3
cmpl $0x0, 0x8(%rax)
je 0x3d67
movl 0xd8(%rbx), %eax
testl %eax, %eax
js 0x3b90
movl 0xdc(%rbx), %ecx
cmpl $-0x2, %ecx
jle 0x3ba3
xorpd %xmm0, %xmm0
ucomisd 0xe0(%rbx), %xmm0
ja 0x3bbb
cmpl $-0x1, %ecx
sete %dl
cmpl %eax, %ecx
seta %al
orb %dl, %al
je 0x3be6
xorpd %xmm0, %xmm0
ucomiss 0x16c(%rbx), %xmm0
ja 0x3c14
cmpl $0x0, 0xb0(%rbx)
js 0x3c42
cmpq $-0x2, 0x200(%rbx)
jle 0x3c70
cmpl $0x2, 0x244(%rbx)
jae 0x3c88
movq 0x288(%rbx), %rbx
pushq $0x1
popq %r14
testq %rbx, %rbx
je 0x39b3
movq %rbx, %rdi
callq 0x2090
cmpq $0x20, %rax
ja 0x3d4f
xorl %ecx, %ecx
movabsq $0x8004500080045, %rdx  # imm = 0x8004500080045
cmpq %rcx, %rax
je 0x39b3
movzbl (%rbx,%rcx), %esi
addl $-0x41, %esi
cmpl $0x33, %esi
ja 0x3d7d
btq %rsi, %rdx
jae 0x3d7d
incq %rcx
jmp 0x3b50
movq 0x24f461(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de2fc(%rip), %rdi    # 0x1e1e85
pushq $0x3e
jmp 0x39a7
movq 0x24f449(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de518(%rip), %rdi    # 0x1e20b9
jmp 0x3bb4
movq 0x24f436(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de522(%rip), %rdi    # 0x1e20d6
pushq $0x1c
jmp 0x39a7
movq 0x24f41e(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de527(%rip), %rdi    # 0x1e20f3
pushq $0x1d
jmp 0x39a7
movq 0x24f406(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de3c0(%rip), %rdi    # 0x1e1fa4
jmp 0x3bf7
movq 0x24f3f3(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de51a(%rip), %rdi    # 0x1e2111
pushq $0x24
jmp 0x39a7
movq 0x24f3db(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de414(%rip), %rdi    # 0x1e2023
jmp 0x38e9
movq 0x24f3c5(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de511(%rip), %rdi    # 0x1e2136
pushq $0x17
jmp 0x39a7
movq 0x24f3ad(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de40c(%rip), %rdi    # 0x1e2049
jmp 0x38e9
movq 0x24f397(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de4fb(%rip), %rdi    # 0x1e214e
pushq $0x1f
jmp 0x39a7
movq 0x24f37f(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de404(%rip), %rdi    # 0x1e206f
jmp 0x38e9
movq 0x24f369(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de4ed(%rip), %rdi    # 0x1e216e
pushq $0x26
jmp 0x39a7
movq 0x24f351(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de4fc(%rip), %rdi    # 0x1e2195
pushq $0x20
jmp 0x39a7
movq 0x24f339(%rip), %rax    # 0x252fe0
movq (%rax), %rdi
leaq 0x1de695(%rip), %rsi    # 0x1e2346
leaq 0x1de3dd(%rip), %rdx    # 0x1e2095
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x22b0
jmp 0x39b3
movq 0x24f312(%rip), %rax    # 0x252fe0
movq (%rax), %rdi
movq 0x10(%r13), %rax
movq (%rax,%rbp,8), %rdx
leaq 0x1de68e(%rip), %rsi    # 0x1e236e
leaq 0x1de3ae(%rip), %rcx    # 0x1e2095
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x22b0
jmp 0x39b3
movq 0x24f2e3(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de2c2(%rip), %rdi    # 0x1e1fc9
pushq $0x24
jmp 0x3d41
movq 0x24f2ce(%rip), %rbx    # 0x252fe0
movq (%rbx), %rdi
movq 0x10(%r13), %rax
movq (%rax,%rbp,8), %rdx
leaq 0x1de677(%rip), %rsi    # 0x1e239b
leaq 0x1de36a(%rip), %rcx    # 0x1e2095
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x22b0
movq (%rbx), %rcx
leaq 0x1de699(%rip), %rdi    # 0x1e23d8
pushq $0x25
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
jmp 0x39b3
movq 0x24f28a(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de456(%rip), %rdi    # 0x1e21b6
pushq $0x2d
jmp 0x39a7
movq 0x24f272(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de322(%rip), %rdi    # 0x1e209a
jmp 0x38d1
movq 0x24f25c(%rip), %rax    # 0x252fe0
movq (%rax), %rcx
leaq 0x1de456(%rip), %rdi    # 0x1e21e4
jmp 0x38b9