// File: /workspace/github_cpp_makefile_star2_O2/statgen[P]statgen/lib/tclap-1.2.0/examples/../include/tclap/ZshCompletionOutput.h
// Function: TCLAP::ZshCompletionOutput::getMutexList[abi:cxx11](TCLAP::CmdLineInterface&, TCLAP::Arg*)
inline std::string ZshCompletionOutput::getMutexList( CmdLineInterface& _cmd, Arg* a)
{
	XorHandler xorHandler = _cmd.getXorHandler();
	std::vector< std::vector<Arg*> > xorList = xorHandler.getXorList();
	
	if (a->getName() == "help" || a->getName() == "version")
	{
		return "(-)";
	}

	std::ostringstream list;
	if ( a->acceptsMultipleValues() )
	{
		list << '*';
	}

	for ( int i = 0; static_cast<unsigned int>(i) < xorList.size(); i++ )
	{
		for ( ArgVectorIterator it = xorList[i].begin();
			it != xorList[i].end();
			it++)
		if ( a == (*it) )
		{
			list << '(';
			for ( ArgVectorIterator iu = xorList[i].begin();
				iu != xorList[i].end();
				iu++ )
			{
				bool notCur = (*iu) != a;
				bool hasFlag = !(*iu)->getFlag().empty();
				if ( iu != xorList[i].begin() && (notCur || hasFlag) )
					list << ' ';
				if (hasFlag)
					list << (*iu)->flagStartChar() << (*iu)->getFlag() << ' ';
				if ( notCur || hasFlag )
					list << (*iu)->nameStartString() << (*iu)->getName();
			}
			list << ')';
			return list.str();
		}
	}
	
	// wasn't found in xor list
	if (!a->getFlag().empty()) {
		list << "(" << a->flagStartChar() << a->getFlag() << ' ' <<
			a->nameStartString() << a->getName() << ')';
	}
	
	return list.str();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rcx, %r14
movq %rdi, %r12
movq (%rdx), %rax
movq %rdx, %rdi
callq *0x60(%rax)
leaq 0x48(%rsp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x5b52
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x5b52
leaq 0x28(%r14), %r15
leaq 0x50ac(%rip), %rsi      # 0xb5be
movq %r15, %rdi
callq 0x823a
testb %al, %al
jne 0x6531
leaq 0x4d0a(%rip), %rsi      # 0xb22f
movq %r15, %rdi
callq 0x823a
testb %al, %al
je 0x654a
leaq 0x4cff(%rip), %rsi      # 0xb237
leaq 0x60(%rsp), %rdx
movq %r12, %rdi
callq 0x50f4
jmp 0x669e
leaq 0x60(%rsp), %rdi
callq 0x4290
movq (%r14), %rax
movq %r14, %rdi
callq *0x60(%rax)
testb %al, %al
je 0x656e
leaq 0x60(%rsp), %rdi
pushq $0x2a
popq %rsi
callq 0x4230
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
subq %rcx, %rax
pushq $0x18
popq %rsi
cqto
idivq %rsi
xorl %edx, %edx
cmpq %rax, %rdx
je 0x66c7
imulq $0x18, %rdx, %rbx
movq (%rcx,%rbx), %rdi
movq 0x8(%rcx,%rbx), %rsi
cmpq %rsi, %rdi
je 0x65ae
leaq 0x8(%rdi), %r8
cmpq %r14, (%rdi)
movq %r8, %rdi
jne 0x659b
jmp 0x65b3
incq %rdx
jmp 0x6585
leaq 0x60(%rsp), %rdi
pushq $0x28
popq %rsi
callq 0x4230
movq %r12, 0x20(%rsp)
movq 0x8(%rsp), %rax
movq (%rax,%rbx), %rbp
leaq 0x28(%rsp), %r15
cmpq 0x8(%rax,%rbx), %rbp
je 0x6675
addq %rbx, %rax
movq (%rbp), %r13
movq 0x10(%r13), %r12
cmpq (%rax), %rbp
je 0x6606
movq %r13, %rax
xorq %r14, %rax
orq %r12, %rax
je 0x6667
leaq 0x60(%rsp), %rdi
pushq $0x20
popq %rsi
callq 0x4230
testq %r12, %r12
je 0x6635
leaq 0x60(%rsp), %rdi
pushq $0x2d
popq %rsi
callq 0x4230
movq (%rbp), %rsi
addq $0x8, %rsi
movq %rax, %rdi
callq 0x41b0
movq %rax, %rdi
pushq $0x20
popq %rsi
callq 0x4230
jmp 0x663a
cmpq %r14, %r13
je 0x6667
movq %r15, %rdi
callq 0x799c
leaq 0x60(%rsp), %rdi
movq %r15, %rsi
callq 0x41b0
movq (%rbp), %rsi
addq $0x28, %rsi
movq %rax, %rdi
callq 0x41b0
movq %r15, %rdi
callq 0x4428
addq $0x8, %rbp
movq 0x8(%rsp), %rax
jmp 0x65d3
leaq 0x60(%rsp), %rdi
pushq $0x29
popq %rsi
callq 0x4230
movq 0x20(%rsp), %r12
leaq 0x68(%rsp), %rsi
movq %r12, %rdi
callq 0x42f0
leaq 0x60(%rsp), %rdi
callq 0x4080
leaq 0x8(%rsp), %rdi
callq 0x5bf2
leaq 0x48(%rsp), %rdi
callq 0x5bf2
movq %r12, %rax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x10(%r14)
je 0x673e
leaq 0x4c1f(%rip), %rsi      # 0xb2f4
leaq 0x60(%rsp), %rdi
callq 0x41c0
pushq $0x2d
popq %rsi
movq %rax, %rdi
callq 0x4230
addq $0x8, %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x41b0
pushq $0x20
popq %rsi
movq %rax, %rdi
callq 0x4230
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x799c
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x41b0
movq %rax, %rdi
movq %r15, %rsi
callq 0x41b0
pushq $0x29
popq %rsi
movq %rax, %rdi
callq 0x4230
leaq 0x28(%rsp), %rdi
callq 0x4428
leaq 0x68(%rsp), %rsi
movq %r12, %rdi
callq 0x42f0
jmp 0x6694
jmp 0x6775
jmp 0x6766
jmp 0x675a
jmp 0x6775
jmp 0x6775
movq %rax, %rbx
jmp 0x6782
movq %rax, %rbx
jmp 0x678c
jmp 0x6775
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x4428
jmp 0x6778
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x4080
leaq 0x8(%rsp), %rdi
callq 0x5bf2
leaq 0x48(%rsp), %rdi
callq 0x5bf2
movq %rbx, %rdi
callq 0x4370