// File: /workspace/github_cpp_makefile_star2_O1/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, %rbx
movq (%rdx), %rax
movq %rdx, %rdi
callq *0x60(%rax)
leaq 0x48(%rsp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x6db4
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq 0x6db4
leaq 0x28(%r14), %r15
leaq 0x6870(%rip), %rsi      # 0xe5be
movq %r15, %rdi
callq 0x40a0
testl %eax, %eax
je 0x7ece
leaq 0x64ca(%rip), %rsi      # 0xe22f
movq %r15, %rdi
callq 0x40a0
testl %eax, %eax
je 0x7ece
leaq 0x60(%rsp), %rdi
callq 0x42b0
movq (%r14), %rax
movq %r14, %rdi
callq *0x60(%rax)
testb %al, %al
je 0x7da3
leaq 0x8(%rsp), %rsi
movb $0x2a, (%rsi)
leaq 0x60(%rsp), %rdi
movl $0x1, %edx
callq 0x4250
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rdx
subq %rax, %rdx
je 0x7df7
sarq $0x3, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rdx, %rcx
cmpq $0x1, %rcx
adcq $0x0, %rcx
xorl %edx, %edx
leaq (%rdx,%rdx,2), %rbp
movq (%rax,%rbp,8), %rsi
movq 0x8(%rax,%rbp,8), %rdi
cmpq %rdi, %rsi
je 0x7def
cmpq %r14, (%rsi)
je 0x7ef0
addq $0x8, %rsi
jmp 0x7ddb
incq %rdx
cmpq %rcx, %rdx
jne 0x7dce
cmpq $0x0, 0x10(%r14)
je 0x7ebc
leaq 0x64eb(%rip), %rsi      # 0xe2f4
leaq 0x60(%rsp), %rdi
movl $0x1, %edx
callq 0x4250
leaq 0x8(%rsp), %rsi
movb $0x2d, (%rsi)
leaq 0x60(%rsp), %rdi
movl $0x1, %edx
callq 0x4250
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %rax, %rdi
callq 0x4250
leaq 0x8(%rsp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x4250
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
movw $0x2d2d, (%r15)         # imm = 0x2D2D
movq $0x2, -0x8(%r15)
movb $0x0, 0x2(%r15)
movl $0x2, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x4250
movq 0x28(%r14), %rsi
movq 0x30(%r14), %rdx
movq %rax, %rdi
callq 0x4250
leaq 0x7(%rsp), %rsi
movb $0x29, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x4250
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7ebc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x4200
leaq 0x68(%rsp), %rsi
movq %rbx, %rdi
callq 0x4320
jmp 0x8042
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x635b(%rip), %rsi      # 0xe237
leaq 0x6357(%rip), %rdx      # 0xe23a
movq %rbx, %rdi
callq 0xa028
jmp 0x8060
leaq 0x8(%rsp), %rsi
movb $0x28, (%rsi)
leaq 0x60(%rsp), %rdi
movl $0x1, %edx
callq 0x4250
movq %rbx, 0x40(%rsp)
movq 0x28(%rsp), %rax
movq (%rax,%rbp,8), %rbx
cmpq 0x8(%rax,%rbp,8), %rbx
je 0x8019
leaq (%rax,%rbp,8), %rax
leaq 0x8(%rsp), %r13
movq (%rbx), %r15
movq 0x10(%r15), %r12
xorq %r14, %r15
movq %r15, %rcx
orq %r12, %rcx
sete %cl
cmpq (%rax), %rbx
je 0x7f5c
testb %cl, %cl
jne 0x7f5c
movb $0x20, 0x8(%rsp)
movl $0x1, %edx
leaq 0x60(%rsp), %rdi
movq %r13, %rsi
callq 0x4250
testq %r12, %r12
je 0x7fa0
movb $0x2d, 0x8(%rsp)
movl $0x1, %edx
leaq 0x60(%rsp), %rdi
movq %r13, %rsi
callq 0x4250
movq (%rbx), %rcx
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
movq %rax, %rdi
callq 0x4250
movb $0x20, 0x8(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x4250
orq %r12, %r15
je 0x8002
leaq 0x18(%rsp), %rsi
movq %rsi, 0x8(%rsp)
movw $0x2d2d, 0x18(%rsp)     # imm = 0x2D2D
movq $0x2, 0x10(%rsp)
movb $0x0, 0x1a(%rsp)
movl $0x2, %edx
leaq 0x60(%rsp), %rdi
callq 0x4250
movq (%rbx), %rcx
movq 0x28(%rcx), %rsi
movq 0x30(%rcx), %rdx
movq %rax, %rdi
callq 0x4250
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x8002
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x4200
addq $0x8, %rbx
movq 0x28(%rsp), %rax
leaq (%rax,%rbp,8), %rax
cmpq 0x8(%rax), %rbx
jne 0x7f29
leaq 0x8(%rsp), %rsi
movb $0x29, (%rsi)
leaq 0x60(%rsp), %rdi
movl $0x1, %edx
callq 0x4250
movq 0x40(%rsp), %rbx
leaq 0x68(%rsp), %rsi
movq %rbx, %rdi
callq 0x4320
movq 0xaf7f(%rip), %rsi      # 0x12fc8
leaq 0x60(%rsp), %rdi
callq 0x4130
leaq 0xd0(%rsp), %rdi
callq 0x40c0
leaq 0x28(%rsp), %rdi
callq 0x6e4e
leaq 0x48(%rsp), %rdi
callq 0x6e4e
movq %rbx, %rax
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
jne 0x80ba
jmp 0x80cc
jmp 0x809a
movq %rax, %rbx
jmp 0x80ea
jmp 0x80c9
movq %rax, %rbx
jmp 0x80f4
jmp 0x80c9
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x80cc
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x4200
jmp 0x80cc
movq %rax, %rbx
movq 0xaef5(%rip), %rsi      # 0x12fc8
leaq 0x60(%rsp), %rdi
callq 0x4130
leaq 0xd0(%rsp), %rdi
callq 0x40c0
leaq 0x28(%rsp), %rdi
callq 0x6e4e
leaq 0x48(%rsp), %rdi
callq 0x6e4e
movq %rbx, %rdi
callq 0x43b0