// File: ncbi[P]amr/amrfinder_update.cpp
// Function: (anonymous namespace)::ThisApplication::ThisApplication()
ThisApplication ()
    : ShellApplication ("Update the database for AMRFinder from " URL "\n\
Requirement: the database directory contains subdirectories named by database versions.\
", false, false, true, true)
    {
    	addKey ("database", "Directory for all versions of AMRFinder databases", "$BASE/data", 'd', "DATABASE_DIR");
    	addKey ("blast_bin", "Directory for BLAST", "", '\0', "BLAST_DIR");
    	addKey ("hmmer_bin", "Directory for HMMer", "", '\0', "HMMER_DIR");
    	addFlag ("force_update", "Force updating the AMRFinder database");  // PD-3469
	    version = SVN_REV;

      // curMinor
      {
    	  istringstream versionIss (version);
    		const SoftwareVersion softwareVersion (versionIss);
        curMinor = softwareVersion. getMinor ();
      }
    }

// Assembly:
subq $0x4b8, %rsp            # imm = 0x4B8
movq %rdi, 0x4b0(%rsp)
movq 0x4b0(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x48f(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0xbb30
movq 0x88(%rsp), %rdx
leaq 0x87df1(%rip), %rsi     # 0x94004
leaq 0x490(%rsp), %rdi
callq 0x125d0
jmp 0xc222
movq 0x80(%rsp), %rdi
leaq 0x490(%rsp), %rsi
xorl %ecx, %ecx
movl $0x1, %r9d
movl %ecx, %edx
movl %r9d, %r8d
callq 0x12690
jmp 0xc246
leaq 0x490(%rsp), %rdi
callq 0xbe38
leaq 0x48f(%rsp), %rdi
callq 0xbe10
movq 0x80(%rsp), %rdi
leaq 0xb3401(%rip), %rax     # 0xbf670
movq %rax, (%rdi)
addq $0x1c8, %rdi            # imm = 0x1C8
movq %rdi, 0x70(%rsp)
callq 0xb440
leaq 0x457(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0xbb30
movq 0x78(%rsp), %rdx
leaq 0x8841c(%rip), %rsi     # 0x946bd
leaq 0x458(%rsp), %rdi
callq 0x125d0
jmp 0xc2b0
leaq 0x42f(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0xbb30
movq 0x68(%rsp), %rdx
leaq 0x87e0c(%rip), %rsi     # 0x940da
leaq 0x430(%rsp), %rdi
callq 0x125d0
jmp 0xc2dd
leaq 0x407(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0xbb30
movq 0x60(%rsp), %rdx
leaq 0x87e11(%rip), %rsi     # 0x9410c
leaq 0x408(%rsp), %rdi
callq 0x125d0
jmp 0xc30a
leaq 0x3df(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xbb30
movq 0x58(%rsp), %rdx
leaq 0x87def(%rip), %rsi     # 0x94117
leaq 0x3e0(%rsp), %rdi
callq 0x125d0
jmp 0xc337
movq 0x80(%rsp), %rdi
leaq 0x458(%rsp), %rsi
leaq 0x430(%rsp), %rdx
leaq 0x408(%rsp), %rcx
movl $0x64, %r8d
leaq 0x3e0(%rsp), %r9
callq 0x43dd0
jmp 0xc36c
leaq 0x3e0(%rsp), %rdi
callq 0xbe38
leaq 0x3df(%rsp), %rdi
callq 0xbe10
leaq 0x408(%rsp), %rdi
callq 0xbe38
leaq 0x407(%rsp), %rdi
callq 0xbe10
leaq 0x430(%rsp), %rdi
callq 0xbe38
leaq 0x42f(%rsp), %rdi
callq 0xbe10
leaq 0x458(%rsp), %rdi
callq 0xbe38
leaq 0x457(%rsp), %rdi
callq 0xbe10
leaq 0x3b7(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0xbb30
movq 0x50(%rsp), %rdx
leaq 0x87d32(%rip), %rsi     # 0x94124
leaq 0x3b8(%rsp), %rdi
callq 0x125d0
jmp 0xc401
leaq 0x38f(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0xbb30
movq 0x48(%rsp), %rdx
leaq 0x87d0f(%rip), %rsi     # 0x9412e
leaq 0x390(%rsp), %rdi
callq 0x125d0
jmp 0xc42e
leaq 0x367(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xbb30
movq 0x40(%rsp), %rdx
leaq 0x8ac18(%rip), %rsi     # 0x97064
leaq 0x368(%rsp), %rdi
callq 0x125d0
jmp 0xc45b
leaq 0x33f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xbb30
movq 0x38(%rsp), %rdx
leaq 0x87cc9(%rip), %rsi     # 0x94142
leaq 0x340(%rsp), %rdi
callq 0x125d0
jmp 0xc488
movq 0x80(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
leaq 0x390(%rsp), %rdx
leaq 0x368(%rsp), %rcx
xorl %r8d, %r8d
leaq 0x340(%rsp), %r9
callq 0x43dd0
jmp 0xc4ba
leaq 0x340(%rsp), %rdi
callq 0xbe38
leaq 0x33f(%rsp), %rdi
callq 0xbe10
leaq 0x368(%rsp), %rdi
callq 0xbe38
leaq 0x367(%rsp), %rdi
callq 0xbe10
leaq 0x390(%rsp), %rdi
callq 0xbe38
leaq 0x38f(%rsp), %rdi
callq 0xbe10
leaq 0x3b8(%rsp), %rdi
callq 0xbe38
leaq 0x3b7(%rsp), %rdi
callq 0xbe10
leaq 0x317(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xbb30
movq 0x30(%rsp), %rdx
leaq 0x87c0c(%rip), %rsi     # 0x9414c
leaq 0x318(%rsp), %rdi
callq 0x125d0
jmp 0xc54f
leaq 0x2ef(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xbb30
movq 0x28(%rsp), %rdx
leaq 0x87be9(%rip), %rsi     # 0x94156
leaq 0x2f0(%rsp), %rdi
callq 0x125d0
jmp 0xc57c
leaq 0x2c7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xbb30
movq 0x20(%rsp), %rdx
leaq 0x8aaca(%rip), %rsi     # 0x97064
leaq 0x2c8(%rsp), %rdi
callq 0x125d0
jmp 0xc5a9
leaq 0x29f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xbb30
movq 0x18(%rsp), %rdx
leaq 0x87ba3(%rip), %rsi     # 0x9416a
leaq 0x2a0(%rsp), %rdi
callq 0x125d0
jmp 0xc5d6
movq 0x80(%rsp), %rdi
leaq 0x318(%rsp), %rsi
leaq 0x2f0(%rsp), %rdx
leaq 0x2c8(%rsp), %rcx
xorl %r8d, %r8d
leaq 0x2a0(%rsp), %r9
callq 0x43dd0
jmp 0xc608
leaq 0x2a0(%rsp), %rdi
callq 0xbe38
leaq 0x29f(%rsp), %rdi
callq 0xbe10
leaq 0x2c8(%rsp), %rdi
callq 0xbe38
leaq 0x2c7(%rsp), %rdi
callq 0xbe10
leaq 0x2f0(%rsp), %rdi
callq 0xbe38
leaq 0x2ef(%rsp), %rdi
callq 0xbe10
leaq 0x318(%rsp), %rdi
callq 0xbe38
leaq 0x317(%rsp), %rdi
callq 0xbe10
leaq 0x277(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xbb30
movq 0x10(%rsp), %rdx
leaq 0x87ae6(%rip), %rsi     # 0x94174
leaq 0x278(%rsp), %rdi
callq 0x125d0
jmp 0xc69d
leaq 0x24f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xbb30
movq 0x8(%rsp), %rdx
leaq 0x87ac6(%rip), %rsi     # 0x94181
leaq 0x250(%rsp), %rdi
callq 0x125d0
jmp 0xc6ca
movq 0x80(%rsp), %rdi
leaq 0x278(%rsp), %rsi
leaq 0x250(%rsp), %rdx
xorl %ecx, %ecx
callq 0x44630
jmp 0xc6eb
leaq 0x250(%rsp), %rdi
callq 0xbe38
leaq 0x24f(%rsp), %rdi
callq 0xbe10
leaq 0x278(%rsp), %rdi
callq 0xbe38
leaq 0x277(%rsp), %rdi
callq 0xbe10
movq 0x80(%rsp), %rdi
addq $0x28, %rdi
leaq 0x87a75(%rip), %rsi     # 0x941a7
callq 0xb4c0
jmp 0xc739
movq 0x80(%rsp), %rsi
addq $0x28, %rsi
leaq 0xc8(%rsp), %rdi
movl $0x8, %edx
callq 0xb560
jmp 0xc759
leaq 0xb0(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
xorl %edx, %edx
callq 0x40a90
jmp 0xc772
leaq 0x90(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x127c0
jmp 0xc789
movq 0x80(%rsp), %rdi
addq $0x1c8, %rdi            # imm = 0x1C8
leaq 0x90(%rsp), %rsi
callq 0xb620
leaq 0x90(%rsp), %rdi
callq 0xbe38
leaq 0xb0(%rsp), %rdi
callq 0x128d0
leaq 0xc8(%rsp), %rdi
callq 0xb680
addq $0x4b8, %rsp            # imm = 0x4B8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc80b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
leaq 0x490(%rsp), %rdi
callq 0xbe38
leaq 0x48f(%rsp), %rdi
callq 0xbe10
jmp 0xcba1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc8ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc8d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc8b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc89c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
leaq 0x3e0(%rsp), %rdi
callq 0xbe38
leaq 0x3df(%rsp), %rdi
callq 0xbe10
leaq 0x408(%rsp), %rdi
callq 0xbe38
leaq 0x407(%rsp), %rdi
callq 0xbe10
leaq 0x430(%rsp), %rdi
callq 0xbe38
leaq 0x42f(%rsp), %rdi
callq 0xbe10
leaq 0x458(%rsp), %rdi
callq 0xbe38
leaq 0x457(%rsp), %rdi
callq 0xbe10
jmp 0xcb8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc9c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc9af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xc97b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
leaq 0x340(%rsp), %rdi
callq 0xbe38
leaq 0x33f(%rsp), %rdi
callq 0xbe10
leaq 0x368(%rsp), %rdi
callq 0xbe38
leaq 0x367(%rsp), %rdi
callq 0xbe10
leaq 0x390(%rsp), %rdi
callq 0xbe38
leaq 0x38f(%rsp), %rdi
callq 0xbe10
leaq 0x3b8(%rsp), %rdi
callq 0xbe38
leaq 0x3b7(%rsp), %rdi
callq 0xbe10
jmp 0xcb8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xcaa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xca8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xca74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xca5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
leaq 0x2a0(%rsp), %rdi
callq 0xbe38
leaq 0x29f(%rsp), %rdi
callq 0xbe10
leaq 0x2c8(%rsp), %rdi
callq 0xbe38
leaq 0x2c7(%rsp), %rdi
callq 0xbe10
leaq 0x2f0(%rsp), %rdi
callq 0xbe38
leaq 0x2ef(%rsp), %rdi
callq 0xbe10
leaq 0x318(%rsp), %rdi
callq 0xbe38
leaq 0x317(%rsp), %rdi
callq 0xbe10
jmp 0xcb8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xcb21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xcb07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
leaq 0x250(%rsp), %rdi
callq 0xbe38
leaq 0x24f(%rsp), %rdi
callq 0xbe10
leaq 0x278(%rsp), %rdi
callq 0xbe38
leaq 0x277(%rsp), %rdi
callq 0xbe10
jmp 0xcb8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xcb8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
jmp 0xcb7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x480(%rsp)
movl %eax, 0x47c(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0x128d0
leaq 0xc8(%rsp), %rdi
callq 0xb680
movq 0x70(%rsp), %rdi
callq 0xbe38
movq 0x80(%rsp), %rdi
callq 0x506f0
movq 0x480(%rsp), %rdi
callq 0xb7b0
nop