// File: ridgelab[P]Kmer-SSR/src/Arguments.cpp
// Function: Arguments::addToEnumeratedSSRs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Arguments::addToEnumeratedSSRs(string enumerated_ssrs_str)
{
	if (enumerated_ssrs_str == "")
	{
		return;
	}
	
	for (uint32_t i = 0; i < enumerated_ssrs_str.size(); ++i)
	{
		if ( !(isalpha(enumerated_ssrs_str[i]) or enumerated_ssrs_str[i] == ',') )
		{
			throw string("ERROR: '") + enumerated_ssrs_str[i] + "' is not a valid character for the -s option.";
		}

		enumerated_ssrs_str[i] = toupper(enumerated_ssrs_str[i]);
	}

	vector<string> ssrs = split(enumerated_ssrs_str, ',');

	for (uint32_t i = 0; i < ssrs.size(); ++i)
	{
		if (!ssrs[i].empty())
		{
			this->enumerated_ssrs->insert(ssrs[i]);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rsi, -0xd8(%rbp)
movq %rdi, %rax
movq -0xd8(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xc8(%rbp)
leaq 0x6d43(%rip), %rsi      # 0x21090
callq 0x13520
testb $0x1, %al
jne 0x1a358
jmp 0x1a35d
jmp 0x1a675
movl $0x0, -0x14(%rbp)
movq -0xd0(%rbp), %rdi
movl -0x14(%rbp), %eax
movq %rax, -0xe0(%rbp)
callq 0x4260
movq %rax, %rcx
movq -0xe0(%rbp), %rax
cmpq %rcx, %rax
jae 0x1a51b
movq -0xd0(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x4770
movsbl (%rax), %edi
callq 0x4620
cmpl $0x0, %eax
jne 0x1a4d5
movq -0xd0(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x4770
movsbl (%rax), %eax
cmpl $0x2c, %eax
je 0x1a4d5
movb $0x1, -0x6d(%rbp)
movl $0x20, %edi
callq 0x41a0
movq %rax, -0xf0(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x4700
movq -0xe8(%rbp), %rdx
leaq 0x80a5(%rip), %rsi      # 0x224a4
leaq -0x58(%rbp), %rdi
callq 0x6da0
jmp 0x1a40a
movq -0xd0(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x4770
movq %rax, -0xf8(%rbp)
jmp 0x1a424
movq -0xf8(%rbp), %rax
movsbl (%rax), %edx
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x1b980
jmp 0x1a43d
movq -0xf0(%rbp), %rdi
leaq 0x80e8(%rip), %rdx      # 0x22533
leaq -0x38(%rbp), %rsi
callq 0x16810
jmp 0x1a456
movq -0xf0(%rbp), %rdi
movb $0x0, -0x6d(%rbp)
leaq 0x17900(%rip), %rsi     # 0x31d68
movq 0x17b39(%rip), %rdx     # 0x31fa8
callq 0x46a0
jmp 0x1a687
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1a4b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1a4aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4788
leaq -0x58(%rbp), %rdi
callq 0x4788
leaq -0x59(%rbp), %rdi
callq 0x4410
testb $0x1, -0x6d(%rbp)
jne 0x1a4c4
jmp 0x1a4d0
movq -0xf0(%rbp), %rdi
callq 0x42a0
jmp 0x1a67e
movq -0xd0(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x4770
movsbl (%rax), %edi
callq 0x4730
movq -0xd0(%rbp), %rdi
movb %al, -0xf9(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x4770
movb -0xf9(%rbp), %cl
movb %cl, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1a364
movq -0xd0(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x4170
movq -0xc8(%rbp), %rsi
movq -0x108(%rbp), %rdx
leaq -0x88(%rbp), %rdi
movl $0x2c, %ecx
callq 0x1b150
jmp 0x1a556
leaq -0xa8(%rbp), %rdi
callq 0x4788
movl $0x0, -0xac(%rbp)
movl -0xac(%rbp), %eax
movq %rax, -0x110(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x5670
movq %rax, %rcx
movq -0x110(%rbp), %rax
cmpq %rcx, %rax
jae 0x1a669
movl -0xac(%rbp), %eax
movl %eax, %esi
leaq -0x88(%rbp), %rdi
callq 0x1bb30
movq %rax, %rdi
callq 0x4660
testb $0x1, %al
jne 0x1a653
movq -0xc8(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rax, -0x128(%rbp)
movl -0xac(%rbp), %eax
movl %eax, %esi
leaq -0x88(%rbp), %rdi
callq 0x1bb30
movq -0x128(%rbp), %rdi
movq %rax, %rsi
callq 0x1bb50
movb %dl, -0x119(%rbp)
movq %rax, -0x118(%rbp)
jmp 0x1a603
movb -0x119(%rbp), %al
movq -0x118(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movb %al, -0xb8(%rbp)
jmp 0x1a653
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x4788
jmp 0x1a67e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x1bad0
jmp 0x1a67e
jmp 0x1a655
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x1a56c
leaq -0x88(%rbp), %rdi
callq 0x1bad0
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x46e0
nopw (%rax,%rax)