// File: statgen[P]statgen/lib/tclap-1.2.0/examples/../include/tclap/SwitchArg.h
// Function: TCLAP::SwitchArg::processArg(int*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
inline bool SwitchArg::processArg(int *i, std::vector<std::string>& args)
{
	if ( _ignoreable && Arg::ignoreRest() )
		return false;

	if ( argMatches( args[*i] ) || combinedSwitchesMatch( args[*i] ) )
	{
		// If we match on a combined switch, then we want to return false
		// so that other switches in the combination will also have a
		// chance to match.
		bool ret = false;
		if ( argMatches( args[*i] ) )
			ret = true;

		if ( _alreadySet || ( !ret && combinedSwitchesMatch( args[*i] ) ) )
			throw(CmdLineParseException("Argument already set!", toString()));	

		_alreadySet = true;

		if ( _value == true )
			_value = false;
		else
			_value = true;

		_checkWithVisitor();

		return ret;
	}
	else
		return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
testb $0x1, 0xa0(%rax)
je 0x4b6f
callq 0x4d90
testb $0x1, %al
jne 0x4b66
jmp 0x4b6f
movb $0x0, -0x1(%rbp)
jmp 0x4d70
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq (%rax), %rsi
callq 0x4da0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
callq *0x30(%rax)
testb $0x1, %al
jne 0x4bbb
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq (%rax), %rsi
callq 0x4da0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0x4dc0
testb $0x1, %al
jne 0x4bbb
jmp 0x4d6c
movb $0x0, -0x21(%rbp)
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq (%rax), %rsi
callq 0x4da0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
callq *0x30(%rax)
testb $0x1, %al
jne 0x4be5
jmp 0x4be9
movb $0x1, -0x21(%rbp)
movq -0x90(%rbp), %rax
testb $0x1, 0x91(%rax)
jne 0x4c2b
testb $0x1, -0x21(%rbp)
jne 0x4d1a
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq (%rax), %rsi
callq 0x4da0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0x4dc0
testb $0x1, %al
jne 0x4c2b
jmp 0x4d1a
movb $0x1, -0x81(%rbp)
movl $0x68, %edi
callq 0x4140
movq %rax, -0xa0(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0x4430
movq -0x98(%rbp), %rdx
leaq 0xe3b3(%rip), %rsi      # 0x13014
leaq -0x48(%rbp), %rdi
callq 0x5110
jmp 0x4c6c
movq -0x90(%rbp), %rsi
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq -0x80(%rbp), %rdi
callq *%rax
jmp 0x4c82
movq -0xa0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
leaq -0x80(%rbp), %rdx
callq 0x51c0
jmp 0x4c98
movq -0xa0(%rbp), %rdi
movb $0x0, -0x81(%rbp)
leaq 0x15b33(%rip), %rsi     # 0x1a7e0
leaq 0x83c(%rip), %rdx       # 0x54f0
callq 0x4400
jmp 0x4d87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4cf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4cef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x44d8
leaq -0x48(%rbp), %rdi
callq 0x44d8
leaq -0x49(%rbp), %rdi
callq 0x42b0
testb $0x1, -0x81(%rbp)
jne 0x4d0c
jmp 0x4d18
movq -0xa0(%rbp), %rdi
callq 0x41d0
jmp 0x4d7e
movq -0x90(%rbp), %rax
movb $0x1, 0x91(%rax)
movb 0xa3(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x4d48
movq -0x90(%rbp), %rax
movb $0x0, 0xa3(%rax)
jmp 0x4d56
movq -0x90(%rbp), %rax
movb $0x1, 0xa3(%rax)
movq -0x90(%rbp), %rdi
callq 0x5510
movb -0x21(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4d70
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xa0, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x4420
nopw (%rax,%rax)