// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movq 0x8(%rsi), %rax
testq %rax, %rax
je 0x3b9c
movq (%rbx), %rcx
movb (%rcx), %cl
leaq 0x58(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movw $0x2d, (%rdx)
movq $0x1, -0x8(%rdx)
cmpb $0x2d, %cl
setne %bpl
jmp 0x3b9e
xorl %ebp, %ebp
testq %rax, %rax
je 0x3bbe
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3bbe
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %bpl, %bpl
jne 0x3c67
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movw $0x2d2d, (%r15)         # imm = 0x2D2D
movq $0x2, -0x8(%r15)
movb $0x0, 0x2(%r15)
leaq 0x8(%rsp), %rdi
movl $0x2, %ecx
movq %rbx, %rsi
xorl %edx, %edx
callq 0x31e0
leaq 0x78(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movw $0x2d2d, (%rsi)         # imm = 0x2D2D
movq $0x2, -0x8(%rsi)
movb $0x0, 0x2(%rsi)
movq 0x10(%rsp), %rdx
cmpq $0x2, %rdx
jne 0x3c2e
movq 0x8(%rsp), %rdi
callq 0x31d0
testl %eax, %eax
sete %bpl
jmp 0x3c30
xorl %ebp, %ebp
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c4b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x3c62
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %bpl, %bpl
je 0x3c83
xorl %r15d, %r15d
andb $0x1, %r15b
movl %r15d, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsbl 0xb52e(%rip), %esi      # 0xf1b8
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %edx, %edx
callq 0x3240
cmpq $-0x1, %rax
jne 0x3c6a
cmpq $0x2, 0x8(%rbx)
setae %r15b
jb 0x3c6a
movl $0x1, %r13d
movl $0x2, %ebp
cmpq $0x0, 0x10(%r14)
je 0x3ced
movq (%rbx), %rcx
movq 0x8(%r14), %rax
movb (%rax), %al
cmpb %al, (%rcx,%r13)
jne 0x3ced
leaq 0x18(%rsp), %rcx
movq %rcx, 0x8(%rsp)
movw $0x2d, 0x18(%rsp)
movq $0x1, 0x10(%rsp)
cmpb $0x2d, %al
setne %r12b
movb $0x1, %al
jmp 0x3cf2
xorl %eax, %eax
xorl %r12d, %r12d
testb %al, %al
je 0x3d12
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x3d12
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %r12b, %r12b
jne 0x3d2b
movl %ebp, %r13d
incl %ebp
cmpq %r13, 0x8(%rbx)
seta %r15b
ja 0x3cb3
jmp 0x3c6a
movq (%rbx), %rax
movb $0x7, (%rax,%r13)
jmp 0x3c6a
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x3d52
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x31c0
movq %rbx, %rdi
callq 0x3300