// File: /workspace/github_cpp_makefile_star2_O1/simonrharris[P]SKA/src/sk_type.cpp
// Function: addKmerToStringMap(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char, std::vector<bool, std::allocator<bool>> const&, int)
void addKmerToStringMap(std::unordered_map < std::string, std::string > & myKmerMap, const std::string & myKmer, const char myBase, const std::vector < bool > & myBits, const int numSamples){
	std::unordered_map < std::string, std::string >::iterator kmit = myKmerMap.find(myKmer);//check if the kmer is in the map
	if ( kmit != myKmerMap.end() ){//if the kmer is in the map
		for (int i=0; i<myBits.size(); ++i){
			if (myBits[i]){
				kmit->second[i]=myBase;
			}
		}
	}
	else {//if the kmer isn't in the map
		std::pair < std::unordered_map < std::string, std::string >::iterator, bool > ret = myKmerMap.insert(std::make_pair(myKmer, std::string (numSamples,'-')));
		for (int i=0; i<myBits.size(); ++i){
			if (myBits[i]){
				ret.first->second[i]=myBase;
			}
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %r8d, %r12d
movq %rcx, %rbx
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r14
callq 0xb71e
testq %rax, %rax
je 0x1f0e5
movq (%rbx), %rcx
movq 0x10(%rbx), %rdx
movl 0x18(%rbx), %esi
subq %rcx, %rdx
shlq $0x3, %rdx
addq %rsi, %rdx
je 0x1f1ba
xorl %edx, %edx
movq %rdx, %rsi
shrq $0x6, %rsi
movq (%rcx,%rsi,8), %rcx
btq %rdx, %rcx
jae 0x1f0c7
movq 0x28(%rax), %rcx
movb %bpl, (%rcx,%rdx)
incq %rdx
movq (%rbx), %rcx
movq 0x10(%rbx), %rsi
movl 0x18(%rbx), %edi
subq %rcx, %rsi
leaq (%rdi,%rsi,8), %rsi
cmpq %rdx, %rsi
ja 0x1f0ae
jmp 0x1f1ba
movslq %r12d, %rsi
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movl $0x2d, %edx
callq 0x5440
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0xad2a
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0xb836
movq %rax, %r14
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f13e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1f159
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1f170
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
subq %rax, %rcx
shlq $0x3, %rcx
addq %rdx, %rcx
je 0x1f1ba
xorl %ecx, %ecx
movq %rcx, %rdx
shrq $0x6, %rdx
movq (%rax,%rdx,8), %rax
btq %rcx, %rax
jae 0x1f1a1
movq 0x28(%r14), %rax
movb %bpl, (%rax,%rcx)
incq %rcx
movq (%rbx), %rax
movq 0x10(%rbx), %rdx
movl 0x18(%rbx), %esi
subq %rax, %rdx
leaq (%rsi,%rdx,8), %rdx
cmpq %rcx, %rdx
ja 0x1f188
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xab50
jmp 0x1f1db
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1f1f2
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq %rbx, %rdi
callq 0x56a0