// File: /workspace/github_cpp_makefile_star2_O3/chhylp123[P]hifiasm/CommandLines.cpp
// Function: Print_H(hifiasm_opt_t*)
void Print_H(hifiasm_opt_t* asm_opt)
{
    fprintf(stderr, "Usage: hifiasm [options] <in_1.fq> <in_2.fq> <...>\n");
    fprintf(stderr, "Options:\n");
	fprintf(stderr, "  Input/Output:\n");
    fprintf(stderr, "    -o STR       prefix of output files [%s]\n", asm_opt->output_file_name);
    fprintf(stderr, "    -t INT       number of threads [%d]\n", asm_opt->thread_num);
    fprintf(stderr, "    -h           show help information\n");
    fprintf(stderr, "    --version    show version number\n");
    fprintf(stderr, "  Preset options:\n");
    fprintf(stderr, "    --ont        assemble Oxford Nanopore reads\n");
	fprintf(stderr, "  Overlap/Error correction:\n");
    fprintf(stderr, "    -k INT       k-mer length (must be <64) [%d]\n", asm_opt->k_mer_length);
	fprintf(stderr, "    -w INT       minimizer window size [%d]\n", asm_opt->mz_win);
	fprintf(stderr, "    -f INT       number of bits for bloom filter; 0 to disable [%d]\n", asm_opt->bf_shift);
	fprintf(stderr, "    -D FLOAT     drop k-mers occurring >FLOAT*coverage times [%.1f]\n", asm_opt->high_factor);
	fprintf(stderr, "    -N INT       consider up to max(-D*coverage,-N) overlaps for each oriented read [%d]\n", asm_opt->max_n_chain);
    fprintf(stderr, "    -r INT       round of correction [%d]\n", asm_opt->number_of_round);
    fprintf(stderr, "    -z INT       length of adapters that should be removed [%d]\n", asm_opt->adapterLen);
    fprintf(stderr, "    --max-kocc   INT\n");
    fprintf(stderr, "                 employ k-mers occurring <INT times to rescue repetitive overlaps [%d]\n", asm_opt->max_kmer_cnt);
    fprintf(stderr, "    --hg-size    INT(k, m or g)\n");
    fprintf(stderr, "                 estimated haploid genome size used for inferring read coverage [auto]\n");
    fprintf(stderr, "  Assembly:\n");
    fprintf(stderr, "    -a INT       round of assembly cleaning [%d]\n", asm_opt->clean_round);
    fprintf(stderr, "    -m INT       pop bubbles of <INT in size in contig graphs [%lld]\n", asm_opt->large_pop_bubble_size);
    fprintf(stderr, "    -p INT       pop bubbles of <INT in size in unitig graphs [%lld]\n", asm_opt->small_pop_bubble_size);
    fprintf(stderr, "    -n INT       remove tip unitigs composed of <=INT reads [%d]\n", asm_opt->max_short_tip);
    fprintf(stderr, "    -x FLOAT     max overlap drop ratio [%.2g]\n", asm_opt->max_drop_rate);
    fprintf(stderr, "    -y FLOAT     min overlap drop ratio [%.2g]\n", asm_opt->min_drop_rate);
    fprintf(stderr, "    -i           ignore saved read correction and overlaps\n");
    fprintf(stderr, "    -u           post-join step for contigs which may improve N50; 0 to disable; 1 to enable\n");
    fprintf(stderr, "                 [%u] and [%u] in default for the UL+HiFi assembly and the HiFi assembly, respectively\n",
                                      asm_opt->ul_pst_join, asm_opt->hifi_pst_join);
    fprintf(stderr, "    --hom-cov    INT\n");
    fprintf(stderr, "                 homozygous read coverage [auto]\n");
    fprintf(stderr, "    --lowQ       INT\n");
    fprintf(stderr, "                 output contig regions with >=INT%% inconsistency in BED format; 0 to disable [%d]\n", asm_opt->bed_inconsist_rate);
    fprintf(stderr, "    --b-cov      INT\n");
    fprintf(stderr, "                 break contigs at positions with <INT-fold coverage; work with '--m-rate'; 0 to disable [%d]\n", asm_opt->b_low_cov);
    fprintf(stderr, "    --h-cov      INT\n");
    fprintf(stderr, "                 break contigs at positions with >INT-fold coverage; work with '--m-rate'; -1 to disable [%d]\n", asm_opt->b_high_cov);
    fprintf(stderr, "    --m-rate     FLOAT\n");
    fprintf(stderr, "                 break contigs at positions with <=FLOAT*coverage exact overlaps;\n");
    fprintf(stderr, "                 only work with '--b-cov' or '--h-cov'[%.2f]\n", asm_opt->m_rate);
    fprintf(stderr, "    --primary    output a primary assembly and an alternate assembly\n");
    fprintf(stderr, "    --ctg-n      INT\n");
    fprintf(stderr, "                 remove tip contigs composed of <=INT reads [%d]\n", asm_opt->max_contig_tip);
    
    
//	fprintf(stderr, "    --pri-range INT1[,INT2]\n");
//	fprintf(stderr, "                keep contigs with coverage in this range in p_ctg.gfa; -1 to disable [auto,inf]\n");

    fprintf(stderr, "  Trio-partition:\n");
    fprintf(stderr, "    -1 FILE      hap1/paternal k-mer dump generated by \"yak count\" []\n");
    fprintf(stderr, "    -2 FILE      hap2/maternal k-mer dump generated by \"yak count\" []\n");
    fprintf(stderr, "    -3 FILE      list of hap1/paternal read names []\n");
	fprintf(stderr, "    -4 FILE      list of hap2/maternal read names []\n");
    fprintf(stderr, "    -c INT       lower bound of the binned k-mer's frequency [%d]\n", asm_opt->min_cnt);
    fprintf(stderr, "    -d INT       upper bound of the binned k-mer's frequency [%d]\n", asm_opt->mid_cnt);
    fprintf(stderr, "    --t-occ      INT\n");
    fprintf(stderr, "                 forcedly remove unitigs with >INT unexpected haplotype-specific reads;\n");
    fprintf(stderr, "                 ignore graph topology; [%d]\n", asm_opt->trio_flag_occ_thres);
    fprintf(stderr, "    --trio-dual  utilize homology information to correct trio phasing errors\n");


    fprintf(stderr, "  Purge-dups:\n");
    fprintf(stderr, "    -l INT       purge level. 0: no purging; 1: light; 2/3: aggressive [0 for trio; 3 for unzip]\n");
    fprintf(stderr, "    -s FLOAT     similarity threshold for duplicate haplotigs in read-level [%g for -l1/-l2, %g for -l3]\n", 
                                      asm_opt->purge_simi_rate_l2, asm_opt->purge_simi_rate_l3);
    fprintf(stderr, "    -O INT       min number of overlapped reads for duplicate haplotigs [%d]\n", 
                                      asm_opt->purge_overlap_len);
    fprintf(stderr, "    --purge-max  INT\n");
    fprintf(stderr, "                 coverage upper bound of Purge-dups [auto]\n");
    fprintf(stderr, "    --n-hap      INT\n");
    fprintf(stderr, "                 number of haplotypes [%d]\n", asm_opt->polyploidy);
    
    // fprintf(stderr, "  Hi-C-partition [experimental, not stable]:\n");
    fprintf(stderr, "  Hi-C-partition:\n");
    fprintf(stderr, "    --h1 FILEs   file names of Hi-C R1  [r1_1.fq,r1_2.fq,...]\n");
    fprintf(stderr, "    --h2 FILEs   file names of Hi-C R2  [r2_1.fq,r2_2.fq,...]\n");
    fprintf(stderr, "    --seed INT   RNG seed [%lu]\n", asm_opt->seed);
    fprintf(stderr, "    --s-base     FLOAT\n");
	fprintf(stderr, "                 similarity threshold for homology detection in base-level;\n"); 
    fprintf(stderr, "                 -1 to disable [%.3g]; -s for read-level (see <Purge-dups>)\n", asm_opt->trans_base_rate_sec);
    
    fprintf(stderr, "    --n-weight   INT\n");
    fprintf(stderr, "                 rounds of reweighting Hi-C links [%d]\n", asm_opt->n_weight);
	fprintf(stderr, "    --n-perturb  INT\n");
    fprintf(stderr, "                 rounds of perturbation [%d]\n", asm_opt->n_perturb);
    fprintf(stderr, "    --f-perturb  FLOAT\n");
	fprintf(stderr, "                 fraction to flip for perturbation [%.3g]\n", asm_opt->f_perturb);
    fprintf(stderr, "    --l-msjoin   INT\n");
    fprintf(stderr, "                 detect misjoined unitigs of >=INT in size; 0 to disable [%lu]\n", asm_opt->misjoin_len);

    fprintf(stderr, "  Ultra-Long-integration:\n");
    fprintf(stderr, "    --ul FILEs   file names of Ultra-Long reads [r1.fq,r2.fq,...]\n");
    ///pending for integration
    /**
    fprintf(stderr, "    --ul-m       INT\n");
    fprintf(stderr, "                 hybrid assembly mode. 0: fast and memory efficent; 1: may produce better assembly with ONT R10 [%d]\n", asm_opt->ul_mod);
    **/
    fprintf(stderr, "    --ul-rate    FLOAT\n");
    fprintf(stderr, "                 error rate of Ultra-Long reads [%.3g]\n", asm_opt->ul_error_rate);
    fprintf(stderr, "    --ul-tip     INT\n");
    fprintf(stderr, "                 remove tip unitigs composed of <=INT reads for the UL assembly [%d]\n", asm_opt->max_short_ul_tip);
    fprintf(stderr, "    --path-max   FLOAT\n");
    fprintf(stderr, "                 max path drop ratio [%.2g]; higher number may make the assembly cleaner\n", asm_opt->max_path_drop_rate);
    fprintf(stderr, "                 but may lead to more misassemblies\n");
    fprintf(stderr, "    --path-min   FLOAT\n");
    fprintf(stderr, "                 min path drop ratio [%.2g]; higher number may make the assembly cleaner\n", asm_opt->min_path_drop_rate);
    fprintf(stderr, "                 but may lead to more misassemblies\n");
    fprintf(stderr, "    --ul-cut     INT\n");
    fprintf(stderr, "                 filter out <INT UL reads during the UL assembly [%d]\n", asm_opt->ul_min_base);
    // fprintf(stderr, "    --low-het    enable it for genomes with very low het heterozygosity rate (<0.0001%%)\n");

    fprintf(stderr, "  Dual-Scaffolding:\n");
    fprintf(stderr, "    --dual-scaf  output scaffolding\n");
    fprintf(stderr, "    --scaf-gap   INT\n");
    fprintf(stderr, "                 max gap size for scaffolding [%ld]\n", asm_opt->self_scaf_gap_max);

    fprintf(stderr, "  Telomere-identification:\n");
    fprintf(stderr, "    --telo-m     STR\n");
    fprintf(stderr, "                 telomere motif at 5'-end; CCCTAA for human [%s]\n", ((asm_opt->telo_motif)?(asm_opt->telo_motif):("NULL")));///5'-end, check CCCTAA
    fprintf(stderr, "    --telo-p     INT\n");
    fprintf(stderr, "                 non-telomeric penalty [%ld]\n", asm_opt->telo_pen);
    fprintf(stderr, "    --telo-d     INT\n");
    fprintf(stderr, "                 max drop [%ld]\n", asm_opt->telo_drop);
    fprintf(stderr, "    --telo-s     INT\n");
    fprintf(stderr, "                 min score for telomere reads [%ld]\n", asm_opt->telo_mic_sc);

    fprintf(stderr, "  ONT simplex assembly (beta):\n");
    fprintf(stderr, "    --ont        assemble ONT simplex reads in fastq format\n");
    // fprintf(stderr, "    --sc-n       consider base qual value for assembly\n");
    fprintf(stderr, "    --chem-c     INT\n");
    fprintf(stderr, "                 detect chimeric reads with <=INT other reads support [%lu]\n", asm_opt->chemical_cov);
    fprintf(stderr, "    --chem-f     INT\n");
    fprintf(stderr, "                 length of flanking regions for chimeric read detection [%lu]\n", asm_opt->chemical_flank);
    fprintf(stderr, "    --rl-cut     INT\n");
    fprintf(stderr, "                 filter out ONT simplex reads shorter than <INT> for assembly [%ld]\n", asm_opt->rl_cut);
    fprintf(stderr, "    --sc-cut     INT\n");
    fprintf(stderr, "                 filter out ONT simplex reads with a mean base quality score below <INT> [%ld]\n", asm_opt->sc_cut);


    fprintf(stderr, "Example: ./hifiasm -o NA12878.asm -t 32 NA12878.fq.gz\n");
    fprintf(stderr, "See `https://hifiasm.readthedocs.io/en/latest/' or `man ./hifiasm.1' for complete documentation.\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r14
movq 0x292b9b(%rip), %rbp    # 0x294fe0
movq (%rbp), %rcx
leaq 0x22be34(%rip), %rdi    # 0x22e284
pushq $0x33
popq %rsi
pushq $0x1
popq %rbx
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22be4f(%rip), %rdi    # 0x22e2b8
pushq $0x9
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22be43(%rip), %rdi    # 0x22e2c2
pushq $0x10
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x10(%r14), %rdx
leaq 0x22be3a(%rip), %rsi    # 0x22e2d3
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0x7c(%r14), %edx
leaq 0x22be52(%rip), %rsi    # 0x22e301
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22be69(%rip), %rdi    # 0x22e32a
pushq $0x27
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22be7b(%rip), %rdi    # 0x22e352
pushq $0x25
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22be8b(%rip), %rdi    # 0x22e378
pushq $0x12
popq %r12
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22be84(%rip), %rdi    # 0x22e38b
pushq $0x30
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22be9f(%rip), %rdi    # 0x22e3bc
pushq $0x1c
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x80(%r14), %edx
leaq 0x22be9f(%rip), %rsi    # 0x22e3d9
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0x94(%r14), %edx
leaq 0x22beb8(%rip), %rsi    # 0x22e40b
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0xac(%r14), %edx
leaq 0x22becc(%rip), %rsi    # 0x22e438
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movsd 0xb8(%r14), %xmm0
leaq 0x22bef6(%rip), %rsi    # 0x22e47d
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rdi
movl 0xe8(%r14), %edx
leaq 0x22bf22(%rip), %rsi    # 0x22e4c2
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0xf8(%r14), %edx
leaq 0x22bf63(%rip), %rsi    # 0x22e51c
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0x100(%r14), %edx
leaq 0x22bf75(%rip), %rsi    # 0x22e547
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22bfa4(%rip), %rdi    # 0x22e588
pushq $0x15
popq %rsi
movq %rsi, %r15
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0xb0(%r14), %edx
leaq 0x22bf9a(%rip), %rsi    # 0x22e59e
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22bfe0(%rip), %rdi    # 0x22e5f6
pushq $0x20
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22bfeb(%rip), %rdi    # 0x22e617
pushq $0x57
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c02d(%rip), %rdi    # 0x22e66f
pushq $0xc
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x104(%r14), %edx
leaq 0x22c01d(%rip), %rsi    # 0x22e67c
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movq 0x188(%r14), %rdx
leaq 0x22c036(%rip), %rsi    # 0x22e6ae
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movq 0x180(%r14), %rdx
leaq 0x22c063(%rip), %rsi    # 0x22e6f4
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0x11c(%r14), %edx
leaq 0x22c090(%rip), %rsi    # 0x22e73a
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
cvtss2sd 0x160(%r14), %xmm0
leaq 0x22c0b7(%rip), %rsi    # 0x22e77c
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rdi
cvtss2sd 0x15c(%r14), %xmm0
leaq 0x22c0cc(%rip), %rsi    # 0x22e7ac
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c0ea(%rip), %rdi    # 0x22e7dc
pushq $0x3b
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c110(%rip), %rdi    # 0x22e818
pushq $0x5d
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movzbl 0x25e(%r14), %edx
movzbl 0x25d(%r14), %ecx
leaq 0x22c148(%rip), %rsi    # 0x22e876
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c19e(%rip), %rdi    # 0x22e8de
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c19e(%rip), %rdi    # 0x22e8f4
pushq $0x31
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c1ba(%rip), %rdi    # 0x22e926
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x150(%r14), %edx
leaq 0x22c1b3(%rip), %rsi    # 0x22e93c
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c205(%rip), %rdi    # 0x22e9a0
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0xd8(%r14), %edx
leaq 0x22c1fe(%rip), %rsi    # 0x22e9b6
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c25a(%rip), %rdi    # 0x22ea24
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0xdc(%r14), %edx
leaq 0x22c253(%rip), %rsi    # 0x22ea3a
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c2b0(%rip), %rdi    # 0x22eaa9
pushq $0x17
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c2b2(%rip), %rdi    # 0x22eac1
pushq $0x52
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movsd 0xe0(%r14), %xmm0
leaq 0x22c2e6(%rip), %rsi    # 0x22eb14
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c312(%rip), %rdi    # 0x22eb52
pushq $0x45
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c342(%rip), %rdi    # 0x22eb98
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x124(%r14), %edx
leaq 0x22c33b(%rip), %rsi    # 0x22ebae
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c36b(%rip), %rdi    # 0x22ebf0
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c368(%rip), %rdi    # 0x22ec03
pushq $0x46
popq %r13
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c395(%rip), %rdi    # 0x22ec4a
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c3c6(%rip), %rdi    # 0x22ec91
pushq $0x35
popq %r13
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c3e2(%rip), %rdi    # 0x22ecc7
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x128(%r14), %edx
leaq 0x22c3fb(%rip), %rsi    # 0x22ecfd
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rdi
movl 0x12c(%r14), %edx
leaq 0x22c425(%rip), %rsi    # 0x22ed40
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c456(%rip), %rdi    # 0x22ed83
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c456(%rip), %rdi    # 0x22ed99
pushq $0x58
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x1c0(%r14), %edx
leaq 0x22c492(%rip), %rsi    # 0x22edf2
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c4ae(%rip), %rdi    # 0x22ee20
pushq $0x4d
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c4e6(%rip), %rdi    # 0x22ee6e
pushq $0xe
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c4df(%rip), %rdi    # 0x22ee7d
pushq $0x61
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
cvtss2sd 0x164(%r14), %xmm0
cvtss2sd 0x168(%r14), %xmm1
leaq 0x22c519(%rip), %rsi    # 0x22eedf
movb $0x2, %al
callq 0x22b0
movq (%rbp), %rdi
movl 0x138(%r14), %edx
leaq 0x22c56a(%rip), %rsi    # 0x22ef49
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c5a6(%rip), %rdi    # 0x22ef97
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c5a6(%rip), %rdi    # 0x22efad
pushq $0x3b
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c5cc(%rip), %rdi    # 0x22efe9
movq %r15, %rsi
movq %r15, %r13
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x1bc(%r14), %edx
leaq 0x22c5c2(%rip), %rsi    # 0x22efff
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c5dc(%rip), %rdi    # 0x22f02b
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c5d9(%rip), %rdi    # 0x22f03e
pushq $0x3e
popq %r12
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c5fe(%rip), %rdi    # 0x22f07d
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x1c8(%r14), %rdx
leaq 0x22c620(%rip), %rsi    # 0x22f0bc
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c62f(%rip), %rdi    # 0x22f0dd
pushq $0x17
popq %r15
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c62d(%rip), %rdi    # 0x22f0f5
pushq $0x4c
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
cvtss2sd 0x174(%r14), %xmm0
leaq 0x22c65b(%rip), %rsi    # 0x22f142
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c696(%rip), %rdi    # 0x22f18f
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x1e0(%r14), %edx
leaq 0x22c68f(%rip), %rsi    # 0x22f1a5
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c6b5(%rip), %rdi    # 0x22f1dd
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x1d0(%r14), %edx
leaq 0x22c6ae(%rip), %rsi    # 0x22f1f3
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c6ca(%rip), %rdi    # 0x22f221
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movsd 0x1d8(%r14), %xmm0
leaq 0x22c6c3(%rip), %rsi    # 0x22f239
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c6ec(%rip), %rdi    # 0x22f274
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x1e8(%r14), %rdx
leaq 0x22c6e5(%rip), %rsi    # 0x22f28a
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c723(%rip), %rdi    # 0x22f2da
pushq $0x1a
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c728(%rip), %rdi    # 0x22f2f5
pushq $0x42
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c755(%rip), %rdi    # 0x22f338
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movsd 0x228(%r14), %xmm0
leaq 0x22c74e(%rip), %rsi    # 0x22f350
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c774(%rip), %rdi    # 0x22f388
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x120(%r14), %edx
leaq 0x22c76d(%rip), %rsi    # 0x22f39e
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c7b1(%rip), %rdi    # 0x22f3f4
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
cvtss2sd 0x17c(%r14), %xmm0
leaq 0x22c7aa(%rip), %rsi    # 0x22f40c
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c7f2(%rip), %r12    # 0x22f466
pushq $0x34
popq %r13
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c80a(%rip), %rdi    # 0x22f49b
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
cvtss2sd 0x178(%r14), %xmm0
leaq 0x22c803(%rip), %rsi    # 0x22f4b3
movb $0x1, %al
callq 0x22b0
movq (%rbp), %rcx
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c839(%rip), %rdi    # 0x22f50d
pushq $0x15
popq %r15
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movl 0x260(%r14), %edx
leaq 0x22c82e(%rip), %rsi    # 0x22f523
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c863(%rip), %rdi    # 0x22f56a
pushq $0x14
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c862(%rip), %rdi    # 0x22f57f
pushq $0x24
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c871(%rip), %rdi    # 0x22f5a4
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x278(%r14), %rdx
leaq 0x22c86a(%rip), %rsi    # 0x22f5ba
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c88d(%rip), %rdi    # 0x22f5ef
pushq $0x1b
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c893(%rip), %rdi    # 0x22f60b
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x288(%r14), %rax
testq %rax, %rax
leaq 0x22c8cb(%rip), %rdx    # 0x22f663
cmovneq %rax, %rdx
leaq 0x22c87e(%rip), %rsi    # 0x22f621
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c8b3(%rip), %rdi    # 0x22f668
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x290(%r14), %rdx
leaq 0x22c8ac(%rip), %rsi    # 0x22f67e
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c8c8(%rip), %rdi    # 0x22f6ac
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x298(%r14), %rdx
leaq 0x22c8c1(%rip), %rsi    # 0x22f6c2
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c8d0(%rip), %rdi    # 0x22f6e3
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x2a0(%r14), %rdx
leaq 0x22c8c9(%rip), %rsi    # 0x22f6f9
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c8ec(%rip), %rdi    # 0x22f72e
pushq $0x1f
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c8f6(%rip), %rdi    # 0x22f74e
pushq $0x3c
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22c91d(%rip), %rdi    # 0x22f78b
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x2b8(%r14), %rdx
leaq 0x22c916(%rip), %rsi    # 0x22f7a1
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c951(%rip), %rdi    # 0x22f7ee
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x2c0(%r14), %rdx
leaq 0x22c94a(%rip), %rsi    # 0x22f804
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c987(%rip), %rdi    # 0x22f853
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x2c8(%r14), %rdx
leaq 0x22c980(%rip), %rsi    # 0x22f869
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22c9c3(%rip), %rdi    # 0x22f8be
movq %r15, %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rdi
movq 0x2d0(%r14), %rdx
leaq 0x22c9bc(%rip), %rsi    # 0x22f8d4
xorl %eax, %eax
callq 0x22b0
movq (%rbp), %rcx
leaq 0x22ca0a(%rip), %rdi    # 0x22f934
pushq $0x36
popq %rsi
movq %rbx, %rdx
callq 0x2410
movq (%rbp), %rcx
leaq 0x22ca2b(%rip), %rdi    # 0x22f96b
pushq $0x61
popq %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2410