// File: ncbi[P]amr/amrfinder_index.cpp
// Function: (anonymous namespace)::ThisApplication::shellBody() const
void shellBody () const final
  {
    string dbDir     = getArg ("DATABASE");
    string blast_bin = getArg ("blast_bin");
    string hmmer_bin = getArg ("hmmer_bin");

    addDirSlash (dbDir);
    addDirSlash (blast_bin);
    addDirSlash (hmmer_bin);
    
        
    const Verbose vrb (qc_on);
    
    
    if (! directoryExists (dbDir))
      throw runtime_error ("Database directory " + dbDir + " does not exist");
                            
    if (! blast_bin. empty ())
      prog2dir ["makeblastdb"] = blast_bin;
    findProg ("makeblastdb");    

    if (! hmmer_bin. empty ())
      prog2dir ["hmmpress"] = hmmer_bin;
    findProg ("hmmpress");
    

    // Cf. amrfinder_update.cpp
    StringVector dnaPointMuts;
    {
      LineInput f (dbDir + "taxgroup.tsv");
      while (f. nextLine ())
      {
   	    if (isLeft (f. line, "#"))
	 	      continue;
        string taxgroup, gpipe;
        int n = -1;
        istringstream iss (f. line);
        iss >> taxgroup >> gpipe >> n;
        QC_ASSERT (n >= 0);
        if (n)
          dnaPointMuts << taxgroup;
      }
    }
    
    
    stderr. section ("Indexing");
    exec (fullProg ("hmmpress") + " -f " + shellQuote (dbDir + "AMR.LIB") + " > /dev/null 2> " + tmp + "/hmmpress.err", tmp + "/hmmpress.err");
    setSymlink (dbDir, tmp + "/db", true);
	  exec (fullProg ("makeblastdb") + " -in " + tmp + "/db/AMRProt.fa" + "  -dbtype prot  -logfile " + tmp + "/makeblastdb.AMRProt", tmp + "/makeblastdb.AMRProt");  
	  exec (fullProg ("makeblastdb") + " -in " + tmp + "/db/AMR_CDS.fa" + "  -dbtype nucl  -logfile " + tmp + "/makeblastdb.AMR_CDS", tmp + "/makeblastdb.AMR_CDS");  
    for (const string& dnaPointMut : dnaPointMuts)
  	  exec (fullProg ("makeblastdb") + " -in " + tmp + "/db/AMR_DNA-" + dnaPointMut + ".fa  -dbtype nucl  -logfile " + tmp + "/makeblastdb.AMR_DNA-" + dnaPointMut, tmp + "/makeblastdb.AMR_DNA-" + dnaPointMut);
  }

// Assembly:
subq $0xe48, %rsp            # imm = 0xE48
movq %rdi, 0xe40(%rsp)
movq 0xe40(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0xdff(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0xbc40
movq 0xd8(%rsp), %rdx
leaq 0x7b7e2(%rip), %rsi     # 0x88025
leaq 0xe00(%rsp), %rdi
callq 0xe580
jmp 0xc852
movq 0xd0(%rsp), %rsi
leaq 0xe20(%rsp), %rdi
leaq 0xe00(%rsp), %rdx
callq 0x3ef80
jmp 0xc871
leaq 0xe00(%rsp), %rdi
callq 0xbdd8
leaq 0xdff(%rsp), %rdi
callq 0xb730
leaq 0xda7(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0xbc40
movq 0xc8(%rsp), %rdx
leaq 0x7b7a1(%rip), %rsi     # 0x88050
leaq 0xda8(%rsp), %rdi
callq 0xe580
jmp 0xc8be
movq 0xd0(%rsp), %rsi
leaq 0xdc8(%rsp), %rdi
leaq 0xda8(%rsp), %rdx
callq 0x3ef80
jmp 0xc8dd
leaq 0xda8(%rsp), %rdi
callq 0xbdd8
leaq 0xda7(%rsp), %rdi
callq 0xb730
leaq 0xd5f(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0xbc40
movq 0xc0(%rsp), %rdx
leaq 0x7b75d(%rip), %rsi     # 0x88078
leaq 0xd60(%rsp), %rdi
callq 0xe580
jmp 0xc92a
movq 0xd0(%rsp), %rsi
leaq 0xd80(%rsp), %rdi
leaq 0xd60(%rsp), %rdx
callq 0x3ef80
jmp 0xc949
leaq 0xd60(%rsp), %rdi
callq 0xbdd8
leaq 0xd5f(%rsp), %rdi
callq 0xb730
leaq 0xe20(%rsp), %rdi
callq 0x103b0
jmp 0xc972
leaq 0xdc8(%rsp), %rdi
callq 0x103b0
jmp 0xc981
leaq 0xd80(%rsp), %rdi
callq 0x103b0
jmp 0xc990
leaq 0xa6209(%rip), %rax     # 0xb2ba0
movzbl (%rax), %esi
andl $0x1, %esi
leaq 0xd58(%rsp), %rdi
callq 0x211c0
jmp 0xc9ac
leaq 0xe20(%rsp), %rdi
callq 0x103f0
movb %al, 0xbf(%rsp)
jmp 0xc9c2
movb 0xbf(%rsp), %al
testb $0x1, %al
jne 0xcbed
jmp 0xc9d3
movb $0x1, 0xd17(%rsp)
movl $0x10, %edi
callq 0xb380
movq %rax, 0xb0(%rsp)
leaq 0x7b7b8(%rip), %rsi     # 0x881ac
leaq 0xd18(%rsp), %rdi
leaq 0xe20(%rsp), %rdx
callq 0x10460
jmp 0xca0b
leaq 0x7b7ae(%rip), %rdx     # 0x881c0
leaq 0xd38(%rsp), %rdi
leaq 0xd18(%rsp), %rsi
callq 0x10410
jmp 0xca29
movq 0xb0(%rsp), %rdi
leaq 0xd38(%rsp), %rsi
callq 0xbb00
jmp 0xca40
movq 0xb0(%rsp), %rdi
movb $0x0, 0xd17(%rsp)
movq 0xa5591(%rip), %rsi     # 0xb1fe8
movq 0xa5512(%rip), %rdx     # 0xb1f70
callq 0xbbd0
jmp 0xe573
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xca9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xe00(%rsp), %rdi
callq 0xbdd8
leaq 0xdff(%rsp), %rdi
callq 0xb730
jmp 0xe566
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xcae8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xda8(%rsp), %rdi
callq 0xbdd8
leaq 0xda7(%rsp), %rdi
callq 0xb730
jmp 0xe559
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xcb31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xd60(%rsp), %rdi
callq 0xbdd8
leaq 0xd5f(%rsp), %rdi
callq 0xb730
jmp 0xe54c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe53f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xcbcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xcbc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xd38(%rsp), %rdi
callq 0xbdd8
leaq 0xd18(%rsp), %rdi
callq 0xbdd8
testb $0x1, 0xd17(%rsp)
jne 0xcbdb
jmp 0xcbe8
movq 0xb0(%rsp), %rdi
callq 0xb530
jmp 0xe532
leaq 0xdc8(%rsp), %rdi
callq 0xbb60
testb $0x1, %al
jne 0xcce6
movq 0xd0(%rsp), %rax
addq $0x188, %rax            # imm = 0x188
movq %rax, 0xa0(%rsp)
leaq 0xcef(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0xbc40
movq 0xa8(%rsp), %rdx
leaq 0x7b594(%rip), %rsi     # 0x881d0
leaq 0xcf0(%rsp), %rdi
callq 0xe580
jmp 0xcc4b
movq 0xa0(%rsp), %rdi
leaq 0xcf0(%rsp), %rsi
callq 0x10590
movq %rax, 0x98(%rsp)
jmp 0xcc6a
movq 0x98(%rsp), %rdi
leaq 0xdc8(%rsp), %rsi
callq 0xb080
jmp 0xcc81
leaq 0xcf0(%rsp), %rdi
callq 0xbdd8
leaq 0xcef(%rsp), %rdi
callq 0xb730
jmp 0xcce6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xccd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xcf0(%rsp), %rdi
callq 0xbdd8
leaq 0xcef(%rsp), %rdi
callq 0xb730
jmp 0xe532
leaq 0xcc7(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0xbc40
movq 0x90(%rsp), %rdx
leaq 0x7b4c6(%rip), %rsi     # 0x881d0
leaq 0xcc8(%rsp), %rdi
callq 0xe580
jmp 0xcd19
movq 0xd0(%rsp), %rdi
leaq 0xcc8(%rsp), %rsi
callq 0x46cc0
jmp 0xcd30
leaq 0xcc8(%rsp), %rdi
callq 0xbdd8
leaq 0xcc7(%rsp), %rdi
callq 0xb730
leaq 0xd80(%rsp), %rdi
callq 0xbb60
testb $0x1, %al
jne 0xce89
movq 0xd0(%rsp), %rax
addq $0x188, %rax            # imm = 0x188
movq %rax, 0x80(%rsp)
leaq 0xc9f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0xbc40
movq 0x88(%rsp), %rdx
leaq 0x7b443(%rip), %rsi     # 0x881dc
leaq 0xca0(%rsp), %rdi
callq 0xe580
jmp 0xcda8
movq 0x80(%rsp), %rdi
leaq 0xca0(%rsp), %rsi
callq 0x10590
movq %rax, 0x78(%rsp)
jmp 0xcdc4
movq 0x78(%rsp), %rdi
leaq 0xd80(%rsp), %rsi
callq 0xb080
jmp 0xcdd8
leaq 0xca0(%rsp), %rdi
callq 0xbdd8
leaq 0xc9f(%rsp), %rdi
callq 0xb730
jmp 0xce89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xce2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xcc8(%rsp), %rdi
callq 0xbdd8
leaq 0xcc7(%rsp), %rdi
callq 0xb730
jmp 0xe532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xce77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xca0(%rsp), %rdi
callq 0xbdd8
leaq 0xc9f(%rsp), %rdi
callq 0xb730
jmp 0xe532
leaq 0xc77(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0xbc40
movq 0x70(%rsp), %rdx
leaq 0x7b335(%rip), %rsi     # 0x881dc
leaq 0xc78(%rsp), %rdi
callq 0xe580
jmp 0xceb6
movq 0xd0(%rsp), %rdi
leaq 0xc78(%rsp), %rsi
callq 0x46cc0
jmp 0xcecd
leaq 0xc78(%rsp), %rdi
callq 0xbdd8
leaq 0xc77(%rsp), %rdi
callq 0xb730
leaq 0xc50(%rsp), %rdi
callq 0x10680
leaq 0x7b2ea(%rip), %rdx     # 0x881e5
leaq 0x988(%rsp), %rdi
leaq 0xe20(%rsp), %rsi
callq 0x10690
jmp 0xcf12
leaq 0x9a8(%rsp), %rdi
leaq 0x988(%rsp), %rsi
xorl %edx, %edx
callq 0x10720
jmp 0xcf2b
leaq 0x988(%rsp), %rdi
callq 0xbdd8
leaq 0x9a8(%rsp), %rdi
callq 0x13d10
movb %al, 0x6f(%rsp)
jmp 0xcf4b
movb 0x6f(%rsp), %al
testb $0x1, %al
jne 0xcf58
jmp 0xd494
leaq 0xc10(%rsp), %rax
movq %rax, 0x58(%rsp)
leaq 0x967(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xbc40
movq 0x60(%rsp), %rdx
leaq 0x7ca4b(%rip), %rsi     # 0x899ce
leaq 0x968(%rsp), %rdi
callq 0xe580
jmp 0xcf92
movq 0x58(%rsp), %rdi
leaq 0x968(%rsp), %rsi
callq 0x10790
movb %al, 0x57(%rsp)
jmp 0xcfaa
leaq 0x968(%rsp), %rdi
callq 0xbdd8
leaq 0x967(%rsp), %rdi
callq 0xb730
movb 0x57(%rsp), %al
testb $0x1, %al
jne 0xcfd1
jmp 0xd0c0
jmp 0xcf38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd00d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0xc78(%rsp), %rdi
callq 0xbdd8
leaq 0xc77(%rsp), %rdi
callq 0xb730
jmp 0xe532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x988(%rsp), %rdi
callq 0xbdd8
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xddd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd0ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x968(%rsp), %rdi
callq 0xbdd8
leaq 0x967(%rsp), %rdi
callq 0xb730
jmp 0xddd7
leaq 0x940(%rsp), %rdi
callq 0xb980
leaq 0x920(%rsp), %rdi
callq 0xb980
movl $0xffffffff, 0x91c(%rsp) # imm = 0xFFFFFFFF
leaq 0xc10(%rsp), %rsi
leaq 0x798(%rsp), %rdi
movl $0x8, %edx
callq 0xbb90
jmp 0xd101
leaq 0x798(%rsp), %rdi
leaq 0x940(%rsp), %rsi
callq 0xb8d0
movq %rax, 0x48(%rsp)
jmp 0xd11d
movq 0x48(%rsp), %rdi
leaq 0x920(%rsp), %rsi
callq 0xb8d0
movq %rax, 0x40(%rsp)
jmp 0xd136
movq 0x40(%rsp), %rdi
leaq 0x91c(%rsp), %rsi
callq 0xb460
jmp 0xd14a
callq 0xb090
movl $0x0, (%rax)
cmpl $0x0, 0x91c(%rsp)
jge 0xd419
callq 0xb850
cmpl $0x0, %eax
jne 0xd40f
leaq 0x6f7(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xbc40
movq 0x38(%rsp), %rdx
leaq 0x7b063(%rip), %rsi     # 0x881f2
leaq 0x6f8(%rsp), %rdi
callq 0xe580
jmp 0xd19e
leaq 0x6d0(%rsp), %rdi
movl $0x70, %esi
callq 0x108e0
jmp 0xd1b2
leaq 0x718(%rsp), %rdi
leaq 0x6f8(%rsp), %rsi
leaq 0x6d0(%rsp), %rdx
callq 0x107f0
jmp 0xd1d1
leaq 0x7b037(%rip), %rdx     # 0x8820f
leaq 0x738(%rsp), %rdi
leaq 0x718(%rsp), %rsi
callq 0x10410
jmp 0xd1ef
leaq 0x68f(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xbc40
movq 0x30(%rsp), %rdx
leaq 0x7b008(%rip), %rsi     # 0x88215
leaq 0x690(%rsp), %rdi
callq 0xe580
jmp 0xd21c
leaq 0x7b751(%rip), %rdx     # 0x88974
leaq 0x6b0(%rsp), %rdi
leaq 0x690(%rsp), %rsi
callq 0x10410
jmp 0xd23a
leaq 0x758(%rsp), %rdi
leaq 0x738(%rsp), %rsi
leaq 0x6b0(%rsp), %rdx
callq 0x107f0
jmp 0xd259
leaq 0x7babb(%rip), %rdx     # 0x88d1b
leaq 0x778(%rsp), %rdi
leaq 0x758(%rsp), %rsi
callq 0x10410
jmp 0xd277
leaq 0x778(%rsp), %rdi
callq 0x15330
jmp 0xd286
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd475
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd468
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd400
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd3f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd3e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd3d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd3bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd3b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd3a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xd398
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x778(%rsp), %rdi
callq 0xbdd8
leaq 0x758(%rsp), %rdi
callq 0xbdd8
leaq 0x6b0(%rsp), %rdi
callq 0xbdd8
leaq 0x690(%rsp), %rdi
callq 0xbdd8
leaq 0x68f(%rsp), %rdi
callq 0xb730
leaq 0x738(%rsp), %rdi
callq 0xbdd8
leaq 0x718(%rsp), %rdi
callq 0xbdd8
leaq 0x6d0(%rsp), %rdi
callq 0xbdd8
leaq 0x6f8(%rsp), %rdi
callq 0xbdd8
leaq 0x6f7(%rsp), %rdi
callq 0xb730
jmp 0xd468
movl $0x1, %edi
callq 0xb860
cmpl $0x0, 0x91c(%rsp)
je 0xd43c
leaq 0xc50(%rsp), %rdi
leaq 0x940(%rsp), %rsi
callq 0x10a20
jmp 0xd43a
jmp 0xd43c
leaq 0x798(%rsp), %rdi
callq 0xb360
leaq 0x920(%rsp), %rdi
callq 0xbdd8
leaq 0x940(%rsp), %rdi
callq 0xbdd8
jmp 0xcf38
leaq 0x798(%rsp), %rdi
callq 0xb360
leaq 0x920(%rsp), %rdi
callq 0xbdd8
leaq 0x940(%rsp), %rdi
callq 0xbdd8
jmp 0xddd7
leaq 0x9a8(%rsp), %rdi
callq 0x10a60
movq 0xd0(%rsp), %rax
addq $0x1b8, %rax            # imm = 0x1B8
movq %rax, 0x20(%rsp)
leaq 0x667(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xbc40
movq 0x28(%rsp), %rdx
leaq 0x7ad8a(%rip), %rsi     # 0x8825c
leaq 0x668(%rsp), %rdi
callq 0xe580
jmp 0xd4e1
movq 0x20(%rsp), %rdi
leaq 0x668(%rsp), %rsi
callq 0x10ab0
jmp 0xd4f5
leaq 0x668(%rsp), %rdi
callq 0xbdd8
leaq 0x667(%rsp), %rdi
callq 0xb730
leaq 0x57f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xbc40
movq 0x18(%rsp), %rdx
leaq 0x7acaf(%rip), %rsi     # 0x881dc
leaq 0x580(%rsp), %rdi
callq 0xe580
jmp 0xd53c
movq 0xd0(%rsp), %rsi
leaq 0x5a0(%rsp), %rdi
leaq 0x580(%rsp), %rdx
callq 0x47ce0
jmp 0xd55b
leaq 0x7ad03(%rip), %rdx     # 0x88265
leaq 0x5c0(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
callq 0x10410
jmp 0xd579
leaq 0x7acea(%rip), %rdx     # 0x8826a
leaq 0x538(%rsp), %rdi
leaq 0xe20(%rsp), %rsi
callq 0x10690
jmp 0xd597
leaq 0x558(%rsp), %rdi
leaq 0x538(%rsp), %rsi
callq 0x10b30
jmp 0xd5ae
leaq 0x5e0(%rsp), %rdi
leaq 0x5c0(%rsp), %rsi
leaq 0x558(%rsp), %rdx
callq 0x107f0
jmp 0xd5cd
leaq 0x7ac9e(%rip), %rdx     # 0x88272
leaq 0x600(%rsp), %rdi
leaq 0x5e0(%rsp), %rsi
callq 0x10410
jmp 0xd5eb
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x620(%rsp), %rdi
leaq 0x600(%rsp), %rsi
callq 0x10ae0
jmp 0xd611
leaq 0x7ac6b(%rip), %rdx     # 0x88283
leaq 0x640(%rsp), %rdi
leaq 0x620(%rsp), %rsi
callq 0x10410
jmp 0xd62f
movq 0xd0(%rsp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq 0x7ac3e(%rip), %rdx     # 0x88283
leaq 0x518(%rsp), %rdi
callq 0x10690
jmp 0xd654
leaq 0x640(%rsp), %rdi
leaq 0x518(%rsp), %rsi
callq 0x212e0
jmp 0xd66b
leaq 0x518(%rsp), %rdi
callq 0xbdd8
leaq 0x640(%rsp), %rdi
callq 0xbdd8
leaq 0x620(%rsp), %rdi
callq 0xbdd8
leaq 0x600(%rsp), %rdi
callq 0xbdd8
leaq 0x5e0(%rsp), %rdi
callq 0xbdd8
leaq 0x558(%rsp), %rdi
callq 0xbdd8
leaq 0x538(%rsp), %rdi
callq 0xbdd8
leaq 0x5c0(%rsp), %rdi
callq 0xbdd8
leaq 0x5a0(%rsp), %rdi
callq 0xbdd8
leaq 0x580(%rsp), %rdi
callq 0xbdd8
leaq 0x57f(%rsp), %rdi
callq 0xb730
leaq 0x4f8(%rsp), %rdi
leaq 0xe20(%rsp), %rsi
callq 0xb300
jmp 0xd711
movq 0xd0(%rsp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq 0x7ab6a(%rip), %rdx     # 0x88291
leaq 0x4d8(%rsp), %rdi
callq 0x10690
jmp 0xd736
leaq 0x4f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
movl $0x1, %edx
callq 0x1e580
jmp 0xd752
leaq 0x4d8(%rsp), %rdi
callq 0xbdd8
leaq 0x4f8(%rsp), %rdi
callq 0xbdd8
leaq 0x3d7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xbc40
movq 0x10(%rsp), %rdx
leaq 0x7aa46(%rip), %rsi     # 0x881d0
leaq 0x3d8(%rsp), %rdi
callq 0xe580
jmp 0xd799
movq 0xd0(%rsp), %rsi
leaq 0x3f8(%rsp), %rdi
leaq 0x3d8(%rsp), %rdx
callq 0x47ce0
jmp 0xd7b8
leaq 0x7aad6(%rip), %rdx     # 0x88295
leaq 0x418(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
callq 0x10410
jmp 0xd7d6
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x438(%rsp), %rdi
leaq 0x418(%rsp), %rsi
callq 0x10ae0
jmp 0xd7fc
leaq 0x7aa98(%rip), %rdx     # 0x8829b
leaq 0x458(%rsp), %rdi
leaq 0x438(%rsp), %rsi
callq 0x10410
jmp 0xd81a
leaq 0x7aa89(%rip), %rdx     # 0x882aa
leaq 0x478(%rsp), %rdi
leaq 0x458(%rsp), %rsi
callq 0x10410
jmp 0xd838
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x498(%rsp), %rdi
leaq 0x478(%rsp), %rsi
callq 0x10ae0
jmp 0xd85e
leaq 0x7aa5f(%rip), %rdx     # 0x882c4
leaq 0x4b8(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0x10410
jmp 0xd87c
movq 0xd0(%rsp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq 0x7aa32(%rip), %rdx     # 0x882c4
leaq 0x3b0(%rsp), %rdi
callq 0x10690
jmp 0xd8a1
leaq 0x4b8(%rsp), %rdi
leaq 0x3b0(%rsp), %rsi
callq 0x212e0
jmp 0xd8b8
leaq 0x3b0(%rsp), %rdi
callq 0xbdd8
leaq 0x4b8(%rsp), %rdi
callq 0xbdd8
leaq 0x498(%rsp), %rdi
callq 0xbdd8
leaq 0x478(%rsp), %rdi
callq 0xbdd8
leaq 0x458(%rsp), %rdi
callq 0xbdd8
leaq 0x438(%rsp), %rdi
callq 0xbdd8
leaq 0x418(%rsp), %rdi
callq 0xbdd8
leaq 0x3f8(%rsp), %rdi
callq 0xbdd8
leaq 0x3d8(%rsp), %rdi
callq 0xbdd8
leaq 0x3d7(%rsp), %rdi
callq 0xb730
leaq 0x2af(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xbc40
movq 0x8(%rsp), %rdx
leaq 0x7a878(%rip), %rsi     # 0x881d0
leaq 0x2b0(%rsp), %rdi
callq 0xe580
jmp 0xd967
movq 0xd0(%rsp), %rsi
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rdx
callq 0x47ce0
jmp 0xd986
leaq 0x7a908(%rip), %rdx     # 0x88295
leaq 0x2f0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x10410
jmp 0xd9a4
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x310(%rsp), %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x10ae0
jmp 0xd9ca
leaq 0x7a908(%rip), %rdx     # 0x882d9
leaq 0x330(%rsp), %rdi
leaq 0x310(%rsp), %rsi
callq 0x10410
jmp 0xd9e8
leaq 0x7a91e(%rip), %rdx     # 0x8830d
leaq 0x350(%rsp), %rdi
leaq 0x330(%rsp), %rsi
callq 0x10410
jmp 0xda06
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x370(%rsp), %rdi
leaq 0x350(%rsp), %rsi
callq 0x10ae0
jmp 0xda2c
leaq 0x7a8b5(%rip), %rdx     # 0x882e8
leaq 0x390(%rsp), %rdi
leaq 0x370(%rsp), %rsi
callq 0x10410
jmp 0xda4a
movq 0xd0(%rsp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq 0x7a888(%rip), %rdx     # 0x882e8
leaq 0x288(%rsp), %rdi
callq 0x10690
jmp 0xda6f
leaq 0x390(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x212e0
jmp 0xda86
leaq 0x288(%rsp), %rdi
callq 0xbdd8
leaq 0x390(%rsp), %rdi
callq 0xbdd8
leaq 0x370(%rsp), %rdi
callq 0xbdd8
leaq 0x350(%rsp), %rdi
callq 0xbdd8
leaq 0x330(%rsp), %rdi
callq 0xbdd8
leaq 0x310(%rsp), %rdi
callq 0xbdd8
leaq 0x2f0(%rsp), %rdi
callq 0xbdd8
leaq 0x2d0(%rsp), %rdi
callq 0xbdd8
leaq 0x2b0(%rsp), %rdi
callq 0xbdd8
leaq 0x2af(%rsp), %rdi
callq 0xb730
leaq 0xc50(%rsp), %rax
movq %rax, 0x280(%rsp)
movq 0x280(%rsp), %rdi
callq 0x10ce0
movq %rax, 0x278(%rsp)
movq 0x280(%rsp), %rdi
callq 0x10d10
movq %rax, 0x270(%rsp)
leaq 0x278(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x10d40
testb $0x1, %al
jne 0xdb60
jmp 0xe4dc
leaq 0x278(%rsp), %rdi
callq 0x10d80
movq %rax, 0x268(%rsp)
leaq 0x127(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xbc40
movq (%rsp), %rdx
leaq 0x7a63f(%rip), %rsi     # 0x881d0
leaq 0x128(%rsp), %rdi
callq 0xe580
jmp 0xdba0
movq 0xd0(%rsp), %rsi
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x47ce0
jmp 0xdbbf
leaq 0x7a6cf(%rip), %rdx     # 0x88295
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x10410
jmp 0xdbdd
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x188(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x10ae0
jmp 0xdc03
leaq 0x7a6f3(%rip), %rdx     # 0x882fd
leaq 0x1a8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0x10410
jmp 0xdc21
movq 0x268(%rsp), %rdx
leaq 0x1c8(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
callq 0x10ae0
jmp 0xdc40
leaq 0x7a6c3(%rip), %rdx     # 0x8830a
leaq 0x1e8(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
callq 0x10410
jmp 0xdc5e
movq 0xd0(%rsp), %rdx
addq $0x168, %rdx            # imm = 0x168
leaq 0x208(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
callq 0x10ae0
jmp 0xdc84
leaq 0x7a69c(%rip), %rdx     # 0x88327
leaq 0x228(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x10410
jmp 0xdca2
movq 0x268(%rsp), %rdx
leaq 0x248(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x10ae0
jmp 0xdcc1
movq 0xd0(%rsp), %rsi
addq $0x168, %rsi            # imm = 0x168
leaq 0x7a650(%rip), %rdx     # 0x88327
leaq 0xe0(%rsp), %rdi
callq 0x10690
jmp 0xdce6
movq 0x268(%rsp), %rdx
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x10ae0
jmp 0xdd05
leaq 0x248(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x212e0
jmp 0xdd1c
leaq 0x100(%rsp), %rdi
callq 0xbdd8
leaq 0xe0(%rsp), %rdi
callq 0xbdd8
leaq 0x248(%rsp), %rdi
callq 0xbdd8
leaq 0x228(%rsp), %rdi
callq 0xbdd8
leaq 0x208(%rsp), %rdi
callq 0xbdd8
leaq 0x1e8(%rsp), %rdi
callq 0xbdd8
leaq 0x1c8(%rsp), %rdi
callq 0xbdd8
leaq 0x1a8(%rsp), %rdi
callq 0xbdd8
leaq 0x188(%rsp), %rdi
callq 0xbdd8
leaq 0x168(%rsp), %rdi
callq 0xbdd8
leaq 0x148(%rsp), %rdi
callq 0xbdd8
leaq 0x128(%rsp), %rdi
callq 0xbdd8
leaq 0x127(%rsp), %rdi
callq 0xb730
leaq 0x278(%rsp), %rdi
callq 0x10d90
jmp 0xdb42
leaq 0x9a8(%rsp), %rdi
callq 0x10a60
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xde20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x668(%rsp), %rdi
callq 0xbdd8
leaq 0x667(%rsp), %rdi
callq 0xb730
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdfb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdfac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xdf44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x518(%rsp), %rdi
callq 0xbdd8
leaq 0x640(%rsp), %rdi
callq 0xbdd8
leaq 0x620(%rsp), %rdi
callq 0xbdd8
leaq 0x600(%rsp), %rdi
callq 0xbdd8
leaq 0x5e0(%rsp), %rdi
callq 0xbdd8
leaq 0x558(%rsp), %rdi
callq 0xbdd8
leaq 0x538(%rsp), %rdi
callq 0xbdd8
leaq 0x5c0(%rsp), %rdi
callq 0xbdd8
leaq 0x5a0(%rsp), %rdi
callq 0xbdd8
leaq 0x580(%rsp), %rdi
callq 0xbdd8
leaq 0x57f(%rsp), %rdi
callq 0xb730
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x4d8(%rsp), %rdi
callq 0xbdd8
leaq 0x4f8(%rsp), %rdi
callq 0xbdd8
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe175
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe168
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe15b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe14e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe141
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe134
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe127
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe11a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe10d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x3b0(%rsp), %rdi
callq 0xbdd8
leaq 0x4b8(%rsp), %rdi
callq 0xbdd8
leaq 0x498(%rsp), %rdi
callq 0xbdd8
leaq 0x478(%rsp), %rdi
callq 0xbdd8
leaq 0x458(%rsp), %rdi
callq 0xbdd8
leaq 0x438(%rsp), %rdi
callq 0xbdd8
leaq 0x418(%rsp), %rdi
callq 0xbdd8
leaq 0x3f8(%rsp), %rdi
callq 0xbdd8
leaq 0x3d8(%rsp), %rdi
callq 0xbdd8
leaq 0x3d7(%rsp), %rdi
callq 0xb730
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe2e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe2db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe2ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe2c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe2b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe2a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe29a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe28d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x288(%rsp), %rdi
callq 0xbdd8
leaq 0x390(%rsp), %rdi
callq 0xbdd8
leaq 0x370(%rsp), %rdi
callq 0xbdd8
leaq 0x350(%rsp), %rdi
callq 0xbdd8
leaq 0x330(%rsp), %rdi
callq 0xbdd8
leaq 0x310(%rsp), %rdi
callq 0xbdd8
leaq 0x2f0(%rsp), %rdi
callq 0xbdd8
leaq 0x2d0(%rsp), %rdi
callq 0xbdd8
leaq 0x2b0(%rsp), %rdi
callq 0xbdd8
leaq 0x2af(%rsp), %rdi
callq 0xb730
jmp 0xe525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe4cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe4c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe4b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe4a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe499
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe48c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe47f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe472
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe465
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe458
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe44b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
jmp 0xe43e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xdf0(%rsp)
movl %eax, 0xdec(%rsp)
leaq 0x100(%rsp), %rdi
callq 0xbdd8
leaq 0xe0(%rsp), %rdi
callq 0xbdd8
leaq 0x248(%rsp), %rdi
callq 0xbdd8
leaq 0x228(%rsp), %rdi
callq 0xbdd8
leaq 0x208(%rsp), %rdi
callq 0xbdd8
leaq 0x1e8(%rsp), %rdi
callq 0xbdd8
leaq 0x1c8(%rsp), %rdi
callq 0xbdd8
leaq 0x1a8(%rsp), %rdi
callq 0xbdd8
leaq 0x188(%rsp), %rdi
callq 0xbdd8
leaq 0x168(%rsp), %rdi
callq 0xbdd8
leaq 0x148(%rsp), %rdi
callq 0xbdd8
leaq 0x128(%rsp), %rdi
callq 0xbdd8
leaq 0x127(%rsp), %rdi
callq 0xb730
jmp 0xe525
leaq 0xc50(%rsp), %rdi
callq 0x10db0
leaq 0xd58(%rsp), %rdi
callq 0x21230
leaq 0xd80(%rsp), %rdi
callq 0xbdd8
leaq 0xdc8(%rsp), %rdi
callq 0xbdd8
leaq 0xe20(%rsp), %rdi
callq 0xbdd8
addq $0xe48, %rsp            # imm = 0xE48
retq
leaq 0xc50(%rsp), %rdi
callq 0x10db0
leaq 0xd58(%rsp), %rdi
callq 0x21230
leaq 0xd80(%rsp), %rdi
callq 0xbdd8
leaq 0xdc8(%rsp), %rdi
callq 0xbdd8
leaq 0xe20(%rsp), %rdi
callq 0xbdd8
movq 0xdf0(%rsp), %rdi
callq 0xbc30
nopw %cs:(%rax,%rax)
nopl (%rax)