// File: statgen[P]statgen/lib/tclap-1.2.0/examples/../include/tclap/SwitchArg.h
// Function: TCLAP::SwitchArg::combinedSwitchesMatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
inline bool SwitchArg::combinedSwitchesMatch(std::string& combinedSwitches )
{
	// make sure this is actually a combined switch
	if ( combinedSwitches.length() > 0 &&
	     combinedSwitches[0] != Arg::flagStartString()[0] )
		return false;

	// make sure it isn't a long name 
	if ( combinedSwitches.substr( 0, Arg::nameStartString().length() ) == 
		 Arg::nameStartString() )
		return false;

	// make sure the delimiter isn't in the string 
	if ( combinedSwitches.find_first_of( Arg::delimiter() ) != std::string::npos )
		return false;

	// ok, we're not specifying a ValueArg, so we know that we have
	// a combined switch list.  
	for ( unsigned int i = 1; i < combinedSwitches.length(); i++ )
		if ( _flag.length() > 0 && 
		     combinedSwitches[i] == _flag[0] &&
		     _flag[0] != Arg::flagStartString()[0] ) 
		{
			// update the combined switches so this one is no longer present
			// this is necessary so that no unlabeled args are matched
			// later in the processing.
			//combinedSwitches.erase(i,1);
			combinedSwitches[i] = Arg::blankChar(); 
			return true;
		}

	// none of the switches passed in the list match. 
	return false;	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4390
movq %rax, %rcx
movb $0x0, -0x39(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xda(%rbp)
jbe 0x4e43
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44c0
movsbl (%rax), %eax
movl %eax, -0xec(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x8850
movb $0x1, -0x39(%rbp)
leaq -0x38(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x42d0
movq %rax, %rcx
movl -0xec(%rbp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
setne %al
movb %al, -0xda(%rbp)
movb -0xda(%rbp), %al
movb %al, -0xed(%rbp)
testb $0x1, -0x39(%rbp)
jne 0x4e57
jmp 0x4e60
leaq -0x38(%rbp), %rdi
callq 0x44d8
movb -0xed(%rbp), %al
testb $0x1, %al
jne 0x4e6c
jmp 0x4e75
movb $0x0, -0x1(%rbp)
jmp 0x50e7
movq -0x18(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0x80(%rbp), %rdi
movq %rdi, -0x100(%rbp)
callq 0x8950
movq -0x100(%rbp), %rdi
callq 0x4390
movq -0xf8(%rbp), %rsi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x60(%rbp), %rdi
callq 0x4280
jmp 0x4eb5
leaq -0xb0(%rbp), %rdi
callq 0x8950
jmp 0x4ec3
leaq -0x60(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x88c0
movb %al, -0x101(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x44d8
leaq -0x60(%rbp), %rdi
callq 0x44d8
leaq -0x80(%rbp), %rdi
callq 0x44d8
movb -0x101(%rbp), %al
testb $0x1, %al
jne 0x4f03
jmp 0x4f49
movb $0x0, -0x1(%rbp)
jmp 0x50e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
jmp 0x4f3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x88(%rbp)
movl %eax, -0x8c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x44d8
leaq -0x80(%rbp), %rdi
callq 0x44d8
jmp 0x50f5
movq -0x18(%rbp), %rax
movq %rax, -0x110(%rbp)
callq 0x89c0
movq -0x110(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
movsbl %al, %esi
callq 0x4180
cmpq $-0x1, %rax
je 0x4f7b
movb $0x0, -0x1(%rbp)
jmp 0x50e7
movl $0x1, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
movq %rax, -0x118(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4390
movq %rax, %rcx
movq -0x118(%rbp), %rax
cmpq %rcx, %rax
jae 0x50e3
movq -0xe8(%rbp), %rdi
addq $0x8, %rdi
callq 0x4390
movq %rax, %rcx
movb $0x0, -0xd9(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x119(%rbp)
jbe 0x5074
movq -0x18(%rbp), %rdi
movl -0xb4(%rbp), %eax
movl %eax, %esi
callq 0x44c0
movq -0xe8(%rbp), %rdi
movsbl (%rax), %eax
movl %eax, -0x120(%rbp)
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44c0
movl -0x120(%rbp), %ecx
movsbl (%rax), %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x119(%rbp)
jne 0x5074
movq -0xe8(%rbp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44c0
movsbl (%rax), %eax
movl %eax, -0x124(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x8850
movb $0x1, -0xd9(%rbp)
leaq -0xd8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x42d0
movq %rax, %rcx
movl -0x124(%rbp), %eax
movsbl (%rcx), %ecx
cmpl %ecx, %eax
setne %al
movb %al, -0x119(%rbp)
movb -0x119(%rbp), %al
movb %al, -0x125(%rbp)
testb $0x1, -0xd9(%rbp)
jne 0x508b
jmp 0x5097
leaq -0xd8(%rbp), %rdi
callq 0x44d8
movb -0x125(%rbp), %al
testb $0x1, %al
jne 0x50a3
jmp 0x50cd
callq 0x89d0
movb %al, -0x126(%rbp)
movq -0x18(%rbp), %rdi
movl -0xb4(%rbp), %eax
movl %eax, %esi
callq 0x44c0
movb -0x126(%rbp), %cl
movb %cl, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x50e7
jmp 0x50cf
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x4f85
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0x88(%rbp), %rdi
callq 0x4420
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)