// File: CMU-SAFARI[P]optimal-seed-solver/KmerHashMain.cc
// Function: main
int main() {
	KmerHash kmer;

	while (1) {
		string Kmer;
		int hash;
		char input;
		cout << "1: get kmer, 2 get hash, q quit: ";
		cin >> input;
		switch (input) {
		case '1':
			cout << "set KmerLengh" << endl;
			cin >> hash;
			kmer.setKmerSize(hash);
			cout << "Input hash: " << endl;
			cin >> hash;
			kmer.setHashVal(hash);

			cout << "Kmer: " << kmer.getKmer() << endl;
			break;

		case '2':
			cout << "Input Kmer" << endl;
			cin >> Kmer;
			kmer.calculateHash(Kmer, Kmer.size() );

			cout << "Hash: " << kmer.getHash() << endl;
			break;

		case 'q':
			return 0;

		default:
			break;
		}
	}
}

// Assembly:
subq $0xb8, %rsp
movl $0x0, 0xb4(%rsp)
leaq 0xac(%rsp), %rdi
callq 0x2640
jmp 0x2341
leaq 0x88(%rsp), %rdi
callq 0x2150
movq 0x2c73(%rip), %rdi      # 0x4fc8
leaq 0xca8(%rip), %rsi       # 0x3004
callq 0x20b0
jmp 0x2363
movq 0x2c6e(%rip), %rdi      # 0x4fd8
leaq 0x83(%rsp), %rsi
callq 0x2130
jmp 0x2379
movsbl 0x83(%rsp), %eax
movl %eax, 0x48(%rsp)
subl $0x31, %eax
je 0x23c0
jmp 0x238c
movl 0x48(%rsp), %eax
subl $0x32, %eax
je 0x24f5
jmp 0x239b
movl 0x48(%rsp), %eax
subl $0x71, %eax
je 0x25b5
jmp 0x25ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
jmp 0x25f0
movq 0x2c01(%rip), %rdi      # 0x4fc8
leaq 0xc58(%rip), %rsi       # 0x3026
callq 0x20b0
movq %rax, 0x40(%rsp)
jmp 0x23da
movq 0x40(%rsp), %rdi
movq 0x2bd2(%rip), %rsi      # 0x4fb8
callq 0x20c0
jmp 0x23ed
movq 0x2be4(%rip), %rdi      # 0x4fd8
leaq 0x84(%rsp), %rsi
callq 0x2040
jmp 0x2403
movl 0x84(%rsp), %esi
leaq 0xac(%rsp), %rdi
callq 0x2810
jmp 0x2419
movq 0x2ba8(%rip), %rdi      # 0x4fc8
leaq 0xc0d(%rip), %rsi       # 0x3034
callq 0x20b0
movq %rax, 0x38(%rsp)
jmp 0x2433
movq 0x38(%rsp), %rdi
movq 0x2b79(%rip), %rsi      # 0x4fb8
callq 0x20c0
jmp 0x2446
movq 0x2b8b(%rip), %rdi      # 0x4fd8
leaq 0x84(%rsp), %rsi
callq 0x2040
jmp 0x245c
movl 0x84(%rsp), %esi
leaq 0xac(%rsp), %rdi
callq 0x2830
jmp 0x2472
movq 0x2b4f(%rip), %rdi      # 0x4fc8
leaq 0xbc1(%rip), %rsi       # 0x3041
callq 0x20b0
movq %rax, 0x30(%rsp)
jmp 0x248c
leaq 0x50(%rsp), %rdi
leaq 0xac(%rsp), %rsi
callq 0x2850
jmp 0x24a0
movq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x20a0
movq %rax, 0x28(%rsp)
jmp 0x24b6
movq 0x28(%rsp), %rdi
movq 0x2af6(%rip), %rsi      # 0x4fb8
callq 0x20c0
jmp 0x24c9
leaq 0x50(%rsp), %rdi
callq 0x2050
jmp 0x25cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x78(%rsp)
movl %eax, 0x74(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x2050
jmp 0x25f0
movq 0x2acc(%rip), %rdi      # 0x4fc8
leaq 0xb45(%rip), %rsi       # 0x3048
callq 0x20b0
movq %rax, 0x20(%rsp)
jmp 0x250f
movq 0x20(%rsp), %rdi
movq 0x2a9d(%rip), %rsi      # 0x4fb8
callq 0x20c0
jmp 0x2522
movq 0x2aaf(%rip), %rdi      # 0x4fd8
leaq 0x88(%rsp), %rsi
callq 0x2120
jmp 0x2538
leaq 0x88(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x2070
movq 0x18(%rsp), %rsi
movl %eax, %edx
leaq 0xac(%rsp), %rdi
callq 0x2690
jmp 0x2560
movq 0x2a61(%rip), %rdi      # 0x4fc8
leaq 0xae5(%rip), %rsi       # 0x3053
callq 0x20b0
movq %rax, 0x10(%rsp)
jmp 0x257a
leaq 0xac(%rsp), %rdi
callq 0x2b10
movl %eax, 0xc(%rsp)
jmp 0x258d
movl 0xc(%rsp), %esi
movq 0x10(%rsp), %rdi
callq 0x2140
movq %rax, (%rsp)
jmp 0x25a1
movq (%rsp), %rdi
movq 0x2a0c(%rip), %rsi      # 0x4fb8
callq 0x20c0
jmp 0x25b3
jmp 0x25cc
movl $0x0, 0xb4(%rsp)
movl $0x1, 0x4c(%rsp)
jmp 0x25d4
jmp 0x25cc
movl $0x0, 0x4c(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x2050
movl 0x4c(%rsp), %eax
testl %eax, %eax
jne 0x260c
jmp 0x25eb
jmp 0x233f
leaq 0x88(%rsp), %rdi
callq 0x2050
leaq 0xac(%rsp), %rdi
callq 0x27d0
jmp 0x2628
leaq 0xac(%rsp), %rdi
callq 0x27d0
movl 0xb4(%rsp), %eax
addq $0xb8, %rsp
retq
movq 0x78(%rsp), %rdi
callq 0x2170
nopw %cs:(%rax,%rax)
nopl (%rax)