// File: /workspace/github_cpp_makefile_star2_O3/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 0xb6d2
testq %rax, %rax
je 0x1ed72
movq (%rbx), %rcx
movq 0x10(%rbx), %rdx
movl 0x18(%rbx), %esi
movq %rdx, %rdi
subq %rcx, %rdi
shlq $0x3, %rdi
addq %rsi, %rdi
je 0x1ee4e
xorl %edi, %edi
movl %edi, %r8d
shrl $0x6, %r8d
movq (%rcx,%r8,8), %r8
btq %rdi, %r8
jae 0x1ed58
movq 0x28(%rax), %rcx
movb %bpl, (%rcx,%rdi)
movq (%rbx), %rcx
movq 0x10(%rbx), %rdx
movl 0x18(%rbx), %esi
incq %rdi
movq %rdx, %r8
subq %rcx, %r8
movl %esi, %r9d
leaq (%r9,%r8,8), %r8
cmpq %rdi, %r8
ja 0x1ed35
jmp 0x1ee4e
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 0xaccc
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0xb7ea
movq %rax, %r14
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1edcb
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x53c0
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1ede6
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x53c0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1edfd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
movq %rcx, %rsi
subq %rax, %rsi
shlq $0x3, %rsi
addq %rdx, %rsi
je 0x1ee4e
xorl %esi, %esi
movl %esi, %edi
shrl $0x6, %edi
movq (%rax,%rdi,8), %rdi
btq %rsi, %rdi
jae 0x1ee39
movq 0x28(%r14), %rax
movb %bpl, (%rax,%rsi)
movq (%rbx), %rax
movq 0x10(%rbx), %rcx
movl 0x18(%rbx), %edx
incq %rsi
movq %rcx, %rdi
subq %rax, %rdi
movl %edx, %r8d
leaq (%r8,%rdi,8), %rdi
cmpq %rsi, %rdi
ja 0x1ee18
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xaaf0
jmp 0x1ee6f
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x1ee86
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x53c0
movq %rbx, %rdi
callq 0x56a0