// File: MarkCBell[P]twister/./twister/kernel/parsing.cpp
// Function: check_valid_names(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>>>> const&)
void check_valid_names(const std::vector<std::string> &arc_names)
{
	int size = int(arc_names.size());
	
	// Check for blank names.
	for (int i = 0; i < size; i++)
		if (arc_names[i] == "")
			output_error("Empty curve or macro name.");
	
	// Check for names that contain a non-valid character or start with a digit.
	for (int i = 0; i < size; i++)
		if ((arc_names[i].find_first_not_of(valid_arc_name_characters) != std::string::npos) || isdigit(arc_names[i][0]) || arc_names[i][0] == '_')
			output_error("Invalid curve or macro name.");
	
	for (int i = 0; i < size; i++)
		for (int j = i+1; j < size; j++)
			if (arc_names[i]== arc_names[j])
				output_error("Duplicated curve or macro name.");
	
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8c60
movl %eax, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x11f69
movq -0x8(%rbp), %rdi
movslq -0x10(%rbp), %rsi
callq 0x14d20
movq %rax, %rdi
leaq 0x1541d(%rip), %rsi     # 0x272f2
callq 0x8ca0
testb $0x1, %al
jne 0x11ee0
jmp 0x11f59
leaq -0x31(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x3560
movq -0xa8(%rbp), %rdx
leaq 0x153f5(%rip), %rsi     # 0x272f3
leaq -0x30(%rbp), %rdi
callq 0x4e10
jmp 0x11f09
leaq -0x30(%rbp), %rdi
callq 0x4d40
jmp 0x11f14
leaq -0x30(%rbp), %rdi
callq 0x35f8
leaq -0x31(%rbp), %rdi
callq 0x3360
jmp 0x11f59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x11f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x35f8
leaq -0x31(%rbp), %rdi
callq 0x3360
jmp 0x12187
jmp 0x11f5b
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x11eb2
movl $0x0, -0x48(%rbp)
movl -0x48(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x12072
movq -0x8(%rbp), %rdi
movslq -0x48(%rbp), %rsi
callq 0x14d20
movq %rax, %rdi
leaq 0x23615(%rip), %rsi     # 0x355a8
xorl %eax, %eax
movl %eax, %edx
callq 0x3270
cmpq $-0x1, %rax
jne 0x11fe9
movq -0x8(%rbp), %rdi
movslq -0x48(%rbp), %rsi
callq 0x14d20
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3390
movsbl (%rax), %edi
callq 0x32b0
cmpl $0x0, %eax
jne 0x11fe9
movq -0x8(%rbp), %rdi
movslq -0x48(%rbp), %rsi
callq 0x14d20
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3390
movsbl (%rax), %eax
cmpl $0x5f, %eax
jne 0x12062
leaq -0x69(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x3560
movq -0xb0(%rbp), %rdx
leaq 0x15307(%rip), %rsi     # 0x2730e
leaq -0x68(%rbp), %rdi
callq 0x4e10
jmp 0x12012
leaq -0x68(%rbp), %rdi
callq 0x4d40
jmp 0x1201d
leaq -0x68(%rbp), %rdi
callq 0x35f8
leaq -0x69(%rbp), %rdi
callq 0x3360
jmp 0x12062
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12054
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x35f8
leaq -0x69(%rbp), %rdi
callq 0x3360
jmp 0x12187
jmp 0x12064
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x11f70
movl $0x0, -0x70(%rbp)
movl -0x70(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x1217e
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
movl -0x74(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x1216e
movq -0x8(%rbp), %rdi
movslq -0x70(%rbp), %rsi
callq 0x14d20
movq %rax, -0xb8(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x74(%rbp), %rsi
callq 0x14d20
movq -0xb8(%rbp), %rdi
movq %rax, %rsi
callq 0x9a20
testb $0x1, %al
jne 0x120d3
jmp 0x1215e
leaq -0x99(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x3560
movq -0xc0(%rbp), %rdx
leaq 0x15237(%rip), %rsi     # 0x2732b
leaq -0x98(%rbp), %rdi
callq 0x4e10
jmp 0x12102
leaq -0x98(%rbp), %rdi
callq 0x4d40
jmp 0x12110
leaq -0x98(%rbp), %rdi
callq 0x35f8
leaq -0x99(%rbp), %rdi
callq 0x3360
jmp 0x1215e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x12150
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x35f8
leaq -0x99(%rbp), %rdi
callq 0x3360
jmp 0x12187
jmp 0x12160
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x1208e
jmp 0x12170
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x12079
addq $0xc0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x3550