// File: /workspace/github_cpp_makefile_star2_O3/ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::ThisApplication::ThisApplication()
ThisApplication ()
    : Application ("Report AMR proteins")
    {
      // Input
      addKey ("fam", "Table FAM");
      const string blastFormat (string (Alignment::format) + ". qseqid format: gi|Protein accession|fusion part|# fusions|FAM.id|FAM.class|Product name");
      addKey ("blastp", "blastp output in the format: " + blastFormat);  
      addKey ("blastx", "blastx output in the format: " + blastFormat);  

      addKey ("gff", ".gff assembly file");
      addKey ("gfftype", "Type of GFF file: " + Gff::names. toString (", "), "genbank");
      addKey ("gff_prot_match", ".gff-protein FASTA matching file: \"<protein FASTA id> <protein GFF id>\"");
      addKey ("gff_dna_match", ".gff-DNA FASTA matching file: \"<DNA FASTA id> <DNA GFF id>\"");
      addFlag ("lcl", "Nucleotide FASTA created by PGAP has \"lcl|\" prefix in accessions");  
      addFlag ("bed", "Browser Extensible Data format of the <gff> file");

      addKey ("dna_len", "File with lines: <dna id> <dna length>");
      addKey ("hmmdom", "HMM domain alignments");
      addKey ("hmmsearch", "Output of hmmsearch");
      addKey ("organism", "Taxonomy group for mutations");
      addKey ("mutation", "Mutations table");
      addKey ("susceptible", "Table of susceptible proteins with resistance cutoffs");
      addKey ("mutation_all", "File to report all mutations");
      addKey ("suppress_prot", "File with protein accessions to suppress");
      addKey ("ident_min", "Min. identity to the reference protein (0..1). -1 means use a curated threshold if it exists and " + toString (ident_min_def) + " otherwise", "-1");
      addKey ("coverage_min", "Min. coverage of the reference protein (0..1) for partial hits", toString (partial_coverage_min_def));
      addFlag ("skip_hmm_check", "Skip checking HMM for a BLAST hit");
      addFlag ("report_equidistant", "Report all equidistant BLAST and HMM matches");  // PD-3772
      
      // Output
      addKey ("out", "Identifiers of the reported input proteins");
      addFlag ("print_node", "Print FAM.id replaced by FAM.parent for non-exact allele matches"); 
      addFlag ("print_node_raw", "Print FAM.id"); 
      addFlag ("pseudo", "Indicate pseudo-genes as method INTERNAL_STOP");  //  or FRAME_SHIFT
      addFlag ("force_cds_report", "Report contig/start/stop/strand even if this information does not exist");
      addFlag ("non_reportable", "Report non-reportable families");
      addFlag ("core", "Report only core reportale families");
      addKey ("name", "Text to be added as the first column \"name\" to all rows of the report");
      
      // Testing
      addFlag ("nosame", "Exclude the same reference protein accessions from the BLAST output (for testing)"); 
      addFlag ("noblast", "Exclude the BLAST output (for testing)"); 
      addFlag ("nohmm", "Exclude the HMMer output (for testing)"); 
      addFlag ("retain_blasts", "Retain all blast hits (for testing)");
      
 	    version = SVN_REV;  
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdi, %rbx
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x96d8b(%rip), %rsi     # 0xa2141
leaq 0x96d97(%rip), %rdx     # 0xa2154
leaq 0x48(%rsp), %rdi
callq 0x3880a
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
movl $0x1, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x3843a
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0xb3f5
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0xbe0b4(%rip), %rax     # 0xc94b0
movq %rax, (%rbx)
leaq 0x48(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x96d47(%rip), %rsi     # 0xa2155
leaq 0x96d43(%rip), %rdx     # 0xa2158
callq 0x3880a
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x96d2e(%rip), %rsi     # 0xa2159
leaq 0x96d30(%rip), %rdx     # 0xa2162
leaq 0x8(%rsp), %rdi
callq 0x3880a
leaq 0xc0a15(%rip), %rcx     # 0xcbe58
leaq 0x48(%rsp), %rsi
leaq 0x8(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb472
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0xb489
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96ccb(%rip), %rsi     # 0xa2163
leaq 0x96cf8(%rip), %rdx     # 0xa2197
callq 0x3880a
leaq 0x96ced(%rip), %rsi     # 0xa2198
leaq 0x8(%rsp), %rdi
callq 0xaa70
movq %r14, 0x48(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb4d8
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0xb4df
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb50e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96cd5(%rip), %rsi     # 0xa21f2
leaq 0x96cd4(%rip), %rdx     # 0xa21f8
callq 0x3880a
leaq 0x96cc9(%rip), %rsi     # 0xa21f9
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x385da
leaq 0xc0912(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
leaq 0x38(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0xb579
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb590
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96c78(%rip), %rsi     # 0xa2217
leaq 0x96c77(%rip), %rdx     # 0xa221d
callq 0x3880a
leaq 0x96c6c(%rip), %rsi     # 0xa221e
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x385da
leaq 0xc0890(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb5f7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb60e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96c1f(%rip), %rsi     # 0xa223c
leaq 0x96c1b(%rip), %rdx     # 0xa223f
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96c08(%rip), %rsi     # 0xa2240
leaq 0x96c13(%rip), %rdx     # 0xa2252
callq 0x3880a
leaq 0xc080d(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb67a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb691
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96bb3(%rip), %rsi     # 0xa2253
leaq 0x96bb3(%rip), %rdx     # 0xa225a
callq 0x3880a
leaq 0xb8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x96baf(%rip), %rsi     # 0xa226e
leaq 0x96baa(%rip), %rdx     # 0xa2270
leaq 0xa8(%rsp), %rdi
callq 0x3880a
leaq 0xc086e(%rip), %rsi     # 0xcbf48
leaq 0x68(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x4e122
leaq 0x96b68(%rip), %rcx     # 0xa225b
leaq 0x68(%rsp), %rdi
movl $0x12, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0xa5d0
movq %r13, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb72a
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xb732
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x972f8(%rip), %rsi     # 0xa2a55
leaq 0x972f8(%rip), %rdx     # 0xa2a5c
leaq 0x88(%rsp), %rdi
callq 0x3880a
leaq 0xc06e0(%rip), %r9      # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x88(%rsp), %rcx
movq %rbx, %rdi
xorl %r8d, %r8d
callq 0x62bb4
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0xb7b2
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb7c9
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x78(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0xb7e4
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0xa8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb801
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb818
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96a4a(%rip), %rsi     # 0xa2271
leaq 0x96a51(%rip), %rdx     # 0xa227f
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96a3e(%rip), %rsi     # 0xa2280
leaq 0x96a7e(%rip), %rdx     # 0xa22c7
callq 0x3880a
leaq 0xc0603(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb884
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb89b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96a1e(%rip), %rsi     # 0xa22c8
leaq 0x96a24(%rip), %rdx     # 0xa22d5
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96a11(%rip), %rsi     # 0xa22d6
leaq 0x96a45(%rip), %rdx     # 0xa2311
callq 0x3880a
leaq 0xc0580(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb907
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb91e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x97132(%rip), %rsi     # 0xa2a5f
leaq 0x9712e(%rip), %rdx     # 0xa2a62
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x969ca(%rip), %rsi     # 0xa2312
leaq 0x96a03(%rip), %rdx     # 0xa2352
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb97f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xb996
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x969ae(%rip), %rsi     # 0xa2353
leaq 0x969aa(%rip), %rdx     # 0xa2356
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96997(%rip), %rsi     # 0xa2357
leaq 0x969c0(%rip), %rdx     # 0xa2387
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xb9f7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xba0e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9696b(%rip), %rsi     # 0xa2388
leaq 0x9696b(%rip), %rdx     # 0xa238f
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96958(%rip), %rsi     # 0xa2390
leaq 0x96977(%rip), %rdx     # 0xa23b6
callq 0x3880a
leaq 0xc040d(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xba7a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xba91
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96917(%rip), %rsi     # 0xa23b7
leaq 0x96916(%rip), %rdx     # 0xa23bd
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96903(%rip), %rsi     # 0xa23be
leaq 0x96911(%rip), %rdx     # 0xa23d3
callq 0x3880a
leaq 0xc038a(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbafd
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbb14
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x968bb(%rip), %rsi     # 0xa23de
leaq 0x968bd(%rip), %rdx     # 0xa23e7
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96896(%rip), %rsi     # 0xa23d4
leaq 0x968a2(%rip), %rdx     # 0xa23e7
callq 0x3880a
leaq 0xc0307(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbb80
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbb97
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96842(%rip), %rsi     # 0xa23e8
leaq 0x96843(%rip), %rdx     # 0xa23f0
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96830(%rip), %rsi     # 0xa23f1
leaq 0x96845(%rip), %rdx     # 0xa240d
callq 0x3880a
leaq 0xc0284(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbc03
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbc1a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x967e5(%rip), %rsi     # 0xa240e
leaq 0x967e6(%rip), %rdx     # 0xa2416
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x967d3(%rip), %rsi     # 0xa2417
leaq 0x967db(%rip), %rdx     # 0xa2426
callq 0x3880a
leaq 0xc0201(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbc86
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbc9d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9677b(%rip), %rsi     # 0xa2427
leaq 0x9677f(%rip), %rdx     # 0xa2432
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9676c(%rip), %rsi     # 0xa2433
leaq 0x9679a(%rip), %rdx     # 0xa2468
callq 0x3880a
leaq 0xc017e(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbd09
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbd20
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9673a(%rip), %rsi     # 0xa2469
leaq 0x9673f(%rip), %rdx     # 0xa2475
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9672c(%rip), %rsi     # 0xa2476
leaq 0x96741(%rip), %rdx     # 0xa2492
callq 0x3880a
leaq 0xc00fb(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbd8c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbda3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x966e1(%rip), %rsi     # 0xa2493
leaq 0x966e7(%rip), %rdx     # 0xa24a0
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x966d4(%rip), %rsi     # 0xa24a1
leaq 0x966f5(%rip), %rdx     # 0xa24c9
callq 0x3880a
leaq 0xc0078(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbe0f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbe26
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96695(%rip), %rsi     # 0xa24ca
leaq 0x96697(%rip), %rdx     # 0xa24d3
callq 0x3880a
leaq 0x96268(%rip), %rsi     # 0xa20b0
leaq 0xa8(%rsp), %rdi
callq 0x386d2
leaq 0x96678(%rip), %rcx     # 0xa24d4
leaq 0xa8(%rsp), %rdi
movl $0x61, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0xa5d0
movq %r14, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbe96
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0xbe9d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x68(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x96676(%rip), %rsi     # 0xa2536
callq 0xaa70
movq %r13, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xbee8
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xbef0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x88(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x96627(%rip), %rsi     # 0xa2541
leaq 0x96622(%rip), %rdx     # 0xa2543
callq 0x3880a
leaq 0xbff2b(%rip), %r9      # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x88(%rsp), %rcx
movq %rbx, %rdi
xorl %r8d, %r8d
callq 0x62bb4
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0xbf67
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xbf7e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xbf95
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0xa8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbfb2
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbfc9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9656c(%rip), %rsi     # 0xa2544
leaq 0x96571(%rip), %rdx     # 0xa2550
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9655e(%rip), %rsi     # 0xa2551
leaq 0x96595(%rip), %rdx     # 0xa258f
callq 0x3880a
leaq 0x960b2(%rip), %rsi     # 0xa20b8
leaq 0x68(%rsp), %rdi
callq 0x386d2
leaq 0xbfe41(%rip), %r9      # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x68(%rsp), %rcx
movq %rbx, %rdi
xorl %r8d, %r8d
callq 0x62bb4
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xc048
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc05f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc076
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9650b(%rip), %rsi     # 0xa2590
leaq 0x96512(%rip), %rdx     # 0xa259e
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x964ff(%rip), %rsi     # 0xa259f
leaq 0x96519(%rip), %rdx     # 0xa25c0
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc0d7
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc0ee
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x964c4(%rip), %rsi     # 0xa25c1
leaq 0x964cf(%rip), %rdx     # 0xa25d3
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x964bc(%rip), %rsi     # 0xa25d4
leaq 0x964e1(%rip), %rdx     # 0xa2600
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc14f
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc166
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9a74c(%rip), %rsi     # 0xa68c1
leaq 0x9a748(%rip), %rdx     # 0xa68c4
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96471(%rip), %rsi     # 0xa2601
leaq 0x96494(%rip), %rdx     # 0xa262b
callq 0x3880a
leaq 0xbfcb5(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc1d2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc1e9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96434(%rip), %rsi     # 0xa262c
leaq 0x96437(%rip), %rdx     # 0xa2636
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96424(%rip), %rsi     # 0xa2637
leaq 0x9645d(%rip), %rdx     # 0xa2677
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc24a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc261
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96408(%rip), %rsi     # 0xa2678
leaq 0x9640f(%rip), %rdx     # 0xa2686
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x963fc(%rip), %rsi     # 0xa2687
leaq 0x96401(%rip), %rdx     # 0xa2693
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc2c2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc2d9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x963ac(%rip), %rsi     # 0xa2694
leaq 0x963ab(%rip), %rdx     # 0xa269a
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96398(%rip), %rsi     # 0xa269b
leaq 0x963be(%rip), %rdx     # 0xa26c8
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc33a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc351
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96369(%rip), %rsi     # 0xa26c9
leaq 0x96372(%rip), %rdx     # 0xa26d9
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9635f(%rip), %rsi     # 0xa26da
leaq 0x9639f(%rip), %rdx     # 0xa2721
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc3b2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc3c9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9634a(%rip), %rsi     # 0xa2722
leaq 0x96351(%rip), %rdx     # 0xa2730
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9633e(%rip), %rsi     # 0xa2731
leaq 0x96355(%rip), %rdx     # 0xa274f
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc42a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc441
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9b60d(%rip), %rsi     # 0xa7a5d
leaq 0x9b60a(%rip), %rdx     # 0xa7a61
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x962e5(%rip), %rsi     # 0xa2750
leaq 0x96301(%rip), %rdx     # 0xa2773
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc4a2
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc4b9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x97dfd(%rip), %rsi     # 0xa42c5
leaq 0x97dfa(%rip), %rdx     # 0xa42c9
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x96291(%rip), %rsi     # 0xa2774
leaq 0x962cf(%rip), %rdx     # 0xa27b9
callq 0x3880a
leaq 0xbf962(%rip), %rcx     # 0xcbe58
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %r8d, %r8d
movq %rcx, %r9
callq 0x62bb4
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc525
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc53c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x9626f(%rip), %rsi     # 0xa27ba
leaq 0x9626e(%rip), %rdx     # 0xa27c0
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9625b(%rip), %rsi     # 0xa27c1
leaq 0x962a5(%rip), %rdx     # 0xa2812
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc59d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc5b4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96250(%rip), %rsi     # 0xa2813
leaq 0x96250(%rip), %rdx     # 0xa281a
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x9623d(%rip), %rsi     # 0xa281b
leaq 0x9625c(%rip), %rdx     # 0xa2841
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc615
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc62c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x96207(%rip), %rsi     # 0xa2842
leaq 0x96205(%rip), %rdx     # 0xa2847
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x961f2(%rip), %rsi     # 0xa2848
leaq 0x96211(%rip), %rdx     # 0xa286e
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc68d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc6a4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x8(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x961bc(%rip), %rsi     # 0xa286f
leaq 0x961c2(%rip), %rdx     # 0xa287c
callq 0x3880a
leaq 0x28(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x961af(%rip), %rsi     # 0xa287d
leaq 0x961cb(%rip), %rdx     # 0xa28a0
callq 0x3880a
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x633b0
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc705
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x58(%rsp), %r14
je 0xc721
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
leaq 0x28(%rbx), %rdi
movq 0x30(%rbx), %rdx
leaq 0x96171(%rip), %rcx     # 0xa28a1
movl $0x6, %r8d
xorl %esi, %esi
callq 0xa860
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0xc754
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa550
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
movq %rax, (%rsp)
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0xca14
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xca14
jmp 0xca10
jmp 0xca45
jmp 0xca62
movq %rax, (%rsp)
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0xc897
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xc897
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc8b4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xc8b4
movq %rax, (%rsp)
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
jne 0xc9dc
jmp 0xc9ef
jmp 0xc9eb
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
movq %rax, (%rsp)
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0xc9b1
movq 0x98(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xc9b1
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xc9ce
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xc9ce
movq %rax, (%rsp)
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc9ef
movq 0x78(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xc9ef
movq %rax, (%rsp)
movq 0xa8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xca49
movq 0xb8(%rsp), %rsi
jmp 0xca23
jmp 0xca45
jmp 0xca62
jmp 0xca10
jmp 0xca45
jmp 0xca62
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
cmpq %r13, %rdi
je 0xca49
movq 0x38(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xca49
jmp 0xca45
jmp 0xca62
movq %rax, (%rsp)
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0xca1e
jmp 0xca49
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xca66
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xca66
movq %rax, (%rsp)
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xca82
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa550
movq %rbx, %rdi
callq 0x3801a
movq (%rsp), %rdi
callq 0xa9c0
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xca82
movq 0x18(%rsp), %rsi
jmp 0xca7a
jmp 0xcad7
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xcacb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xcacb
movq %rax, (%rsp)
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
jne 0xca75
jmp 0xca82
movq %rax, (%rsp)
jmp 0xca82
movq %rax, (%rsp)
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0xca8a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0xca8a
movq %rax, (%rsp)
jmp 0xca8a