// File: 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
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %rdi, -0x280(%rbp)
movq %rdi, %rax
movq %rax, -0x278(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
callq *%rax
movq %rax, %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x270(%rbp)
callq 0x9170
movq -0x270(%rbp), %rdi
callq 0x91a0
movq %rax, %rsi
leaq -0x50(%rbp), %rdi
callq 0x91b0
jmp 0xb516
movq -0x20(%rbp), %rdi
callq 0xf3e0
movq %rax, %rdi
leaq 0xe389(%rip), %rsi      # 0x198b2
callq 0xfed0
movb %al, -0x281(%rbp)
jmp 0xb536
movb -0x281(%rbp), %al
testb $0x1, %al
jne 0xb56e
jmp 0xb542
movq -0x20(%rbp), %rdi
callq 0xf3e0
movq %rax, %rdi
leaq 0xdfae(%rip), %rsi      # 0x19503
callq 0xfed0
movb %al, -0x282(%rbp)
jmp 0xb562
movb -0x282(%rbp), %al
testb $0x1, %al
jne 0xb56e
jmp 0xb5eb
leaq -0x5d(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x54f0
movq -0x280(%rbp), %rdi
movq -0x290(%rbp), %rdx
leaq 0xdf78(%rip), %rsi      # 0x1950b
callq 0x6ee0
jmp 0xb59a
leaq -0x5d(%rbp), %rdi
callq 0x5300
movl $0x1, -0x64(%rbp)
jmp 0xbb11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xbb3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xbb33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x5d(%rbp), %rdi
callq 0x5300
jmp 0xbb33
leaq -0x1e0(%rbp), %rdi
callq 0x53e0
jmp 0xb5f9
movq -0x20(%rbp), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
callq *%rax
movb %al, -0x291(%rbp)
jmp 0xb60e
movb -0x291(%rbp), %al
testb $0x1, %al
jne 0xb61a
jmp 0xb640
leaq -0x1e0(%rbp), %rdi
movl $0x2a, %esi
callq 0x5350
jmp 0xb62d
jmp 0xb640
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xbb03
movl $0x0, -0x1e4(%rbp)
movl -0x1e4(%rbp), %eax
movq %rax, -0x2a0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x92f0
movq %rax, %rcx
movq -0x2a0(%rbp), %rax
cmpq %rcx, %rax
jae 0xb9c6
movslq -0x1e4(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x9320
movq %rax, %rdi
callq 0x9340
movq %rax, -0x1f0(%rbp)
movslq -0x1e4(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x9320
movq %rax, %rdi
callq 0x93b0
movq %rax, -0x1f8(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x9370
testb $0x1, %al
jne 0xb6cd
jmp 0xb9b0
movq -0x20(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x9a80
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
cmpq (%rcx), %rax
jne 0xb994
leaq -0x1e0(%rbp), %rdi
movl $0x28, %esi
callq 0x5350
jmp 0xb70a
movslq -0x1e4(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x9320
movq %rax, %rdi
callq 0x9340
movq %rax, -0x200(%rbp)
movslq -0x1e4(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x9320
movq %rax, %rdi
callq 0x93b0
movq %rax, -0x208(%rbp)
leaq -0x200(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x9370
testb $0x1, %al
jne 0xb764
jmp 0xb960
leaq -0x200(%rbp), %rdi
callq 0x9a80
movq (%rax), %rax
cmpq -0x20(%rbp), %rax
setne %al
andb $0x1, %al
movb %al, -0x209(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x9a80
movq (%rax), %rdi
callq 0xac20
movq %rax, %rdi
callq 0x54a0
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0x20a(%rbp)
movslq -0x1e4(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x9320
movq %rax, %rdi
callq 0x9340
movq %rax, -0x218(%rbp)
leaq -0x200(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x9370
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x2a9(%rbp)
jne 0xb7eb
jmp 0xb814
movb $0x1, %al
testb $0x1, -0x209(%rbp)
movb %al, -0x2aa(%rbp)
jne 0xb808
movb -0x20a(%rbp), %al
movb %al, -0x2aa(%rbp)
movb -0x2aa(%rbp), %al
movb %al, -0x2a9(%rbp)
movb -0x2a9(%rbp), %al
testb $0x1, %al
jne 0xb820
jmp 0xb835
leaq -0x1e0(%rbp), %rdi
movl $0x20, %esi
callq 0x5350
jmp 0xb833
jmp 0xb835
testb $0x1, -0x20a(%rbp)
je 0xb8a8
leaq -0x200(%rbp), %rdi
callq 0x9a80
callq 0xf3d0
movsbl %al, %esi
leaq -0x1e0(%rbp), %rdi
callq 0x5350
movq %rax, -0x2b8(%rbp)
jmp 0xb867
leaq -0x200(%rbp), %rdi
callq 0x9a80
movq (%rax), %rdi
callq 0xac20
movq -0x2b8(%rbp), %rdi
movq %rax, %rsi
callq 0x5250
movq %rax, -0x2c0(%rbp)
jmp 0xb893
movq -0x2c0(%rbp), %rdi
movl $0x20, %esi
callq 0x5350
jmp 0xb8a6
jmp 0xb8a8
testb $0x1, -0x209(%rbp)
jne 0xb8be
testb $0x1, -0x20a(%rbp)
je 0xb944
leaq -0x200(%rbp), %rdi
callq 0x9a80
leaq -0x238(%rbp), %rdi
callq 0xe1e0
jmp 0xb8d8
leaq -0x1e0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x5250
movq %rax, -0x2c8(%rbp)
jmp 0xb8f4
leaq -0x200(%rbp), %rdi
callq 0x9a80
movq (%rax), %rdi
callq 0xf3e0
movq -0x2c8(%rbp), %rdi
movq %rax, %rsi
callq 0x5250
jmp 0xb919
leaq -0x238(%rbp), %rdi
callq 0x55c8
jmp 0xb944
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x55c8
jmp 0xbb03
jmp 0xb946
leaq -0x200(%rbp), %rdi
xorl %esi, %esi
callq 0x9aa0
movq %rax, -0x240(%rbp)
jmp 0xb729
leaq -0x1e0(%rbp), %rdi
movl $0x29, %esi
callq 0x5350
jmp 0xb973
movq -0x280(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x52a0
jmp 0xb988
movl $0x1, -0x64(%rbp)
jmp 0xbaf5
jmp 0xb996
leaq -0x1f0(%rbp), %rdi
xorl %esi, %esi
callq 0x9aa0
movq %rax, -0x248(%rbp)
jmp 0xb692
jmp 0xb9b2
movl -0x1e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e4(%rbp)
jmp 0xb64a
movq -0x20(%rbp), %rdi
callq 0xac20
movq %rax, %rdi
callq 0x54a0
testb $0x1, %al
jne 0xbad9
leaq 0xdbe2(%rip), %rsi      # 0x195c8
leaq -0x1e0(%rbp), %rdi
callq 0x5270
movq %rax, -0x2d0(%rbp)
jmp 0xb9fb
callq 0xf3d0
movq -0x2d0(%rbp), %rdi
movsbl %al, %esi
callq 0x5350
movq %rax, -0x2d8(%rbp)
jmp 0xba18
movq -0x20(%rbp), %rdi
callq 0xac20
movq -0x2d8(%rbp), %rdi
movq %rax, %rsi
callq 0x5250
movq %rax, -0x2e0(%rbp)
jmp 0xba39
movq -0x2e0(%rbp), %rdi
movl $0x20, %esi
callq 0x5350
movq %rax, -0x2e8(%rbp)
jmp 0xba53
leaq -0x268(%rbp), %rdi
callq 0xe1e0
jmp 0xba61
movq -0x2e8(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x5250
movq %rax, -0x2f0(%rbp)
jmp 0xba7d
movq -0x20(%rbp), %rdi
callq 0xf3e0
movq -0x2f0(%rbp), %rdi
movq %rax, %rsi
callq 0x5250
movq %rax, -0x2f8(%rbp)
jmp 0xba9e
movq -0x2f8(%rbp), %rdi
movl $0x29, %esi
callq 0x5350
jmp 0xbab1
leaq -0x268(%rbp), %rdi
callq 0x55c8
jmp 0xbad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x55c8
jmp 0xbb03
movq -0x280(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x52a0
jmp 0xbaee
movl $0x1, -0x64(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x50b0
jmp 0xbb11
leaq -0x1e0(%rbp), %rdi
callq 0x50b0
jmp 0xbb33
leaq -0x50(%rbp), %rdi
callq 0xa390
leaq -0x38(%rbp), %rdi
callq 0x8350
movq -0x278(%rbp), %rax
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0xa390
leaq -0x38(%rbp), %rdi
callq 0x8350
movq -0x58(%rbp), %rdi
callq 0x54e0
nop