// File: /workspace/github_cpp_makefile_star2_O3/metopa[P]HTTP_Server/src/config/CParserINI.cpp
// Function: CParserINI::getIdentifier(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, unsigned int&)
string CParserINI::getIdentifier( string& line, unsigned int& pos ) {
	string currentArg( "" );
	int delim;

	skipWS( line, pos );
	if ( pos == line.size() )
		throw INIParserException( "End of line reached (identifier expected)" );

	if ( line[pos] == '\'' || line[pos] == '"' ) {
		delim = line[pos++];
		while ( pos < line.size() ) {
			if ( line[pos] == delim ) {
				delim = -1;
				break;
			}
			currentArg.insert( currentArg.end(), line[pos] );
			pos++;
		}

		if ( delim != -1 )
			throw INIParserException( "End of line reached (quotation mark expected)" );
		pos++;
		return currentArg;
	}

	while ( pos < line.size() ) {
		if ( isValidArgChar( line[pos] ) )
			currentArg.insert( currentArg.end(), line[pos++] );
		else
			break;
	}

	if ( currentArg.empty() )
		throw INIParserException( "Empty identifier" );

	return currentArg;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %rbx
leaq 0x10(%rdi), %r12
movq %r12, (%rdi)
leaq 0xe8f9(%rip), %rdx      # 0x18ecc
movq %rdx, %rsi
callq 0x8e2c
movq 0x8(%r15), %rcx
movl (%r14), %eax
cmpq %rax, %rcx
jbe 0xa607
movq (%r15), %rsi
movzbl (%rsi,%rax), %edx
cmpl $0x9, %edx
je 0xa5f8
cmpl $0x20, %edx
jne 0xa60c
incl %eax
movl %eax, (%r14)
movq %rax, %rdx
cmpq %rax, %rcx
ja 0xa5ea
jmp 0xa60e
movq %rax, %rdx
jmp 0xa60e
movl %eax, %edx
cmpq %rdx, %rcx
je 0xa6e1
movq (%r15), %rsi
movzbl (%rsi,%rdx), %edi
cmpl $0x22, %edi
je 0xa62c
cmpl $0x27, %edi
jne 0xa6c5
incl %eax
movl %eax, (%r14)
movb (%rsi,%rdx), %bpl
cmpq %rax, %rcx
jbe 0xa66a
movq (%r15), %rcx
movb (%rcx,%rax), %cl
cmpb %bpl, %cl
je 0xa674
movq 0x8(%rbx), %rsi
movsbl %cl, %r8d
movl $0x1, %ecx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x5780
movl (%r14), %eax
incl %eax
movl %eax, (%r14)
cmpq %rax, 0x8(%r15)
ja 0xa63a
cmpb $-0x1, %bpl
jne 0xa6ff
incl %eax
movl %eax, (%r14)
jmp 0xa6d5
movq (%r15), %rcx
movb (%rcx,%rax), %dl
movl %edx, %esi
andb $-0x21, %sil
addb $-0x41, %sil
cmpb $0x1a, %sil
jb 0xa6a7
leal -0x30(%rdx), %esi
cmpb $0xa, %sil
setae %sil
cmpb $0x5f, %dl
setne %dl
testb %sil, %dl
jne 0xa6ce
movq 0x8(%rbx), %rsi
leal 0x1(%rax), %edx
movl %edx, (%r14)
movsbl (%rcx,%rax), %r8d
movl $0x1, %ecx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x5780
movl (%r14), %eax
cmpq %rax, 0x8(%r15)
ja 0xa67b
cmpq $0x0, 0x8(%rbx)
je 0xa71d
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x48, %edi
callq 0x5200
movq %rax, %r14
leaq 0xdc53(%rip), %rsi      # 0x18348
movq %rax, %rdi
callq 0xa9f4
jmp 0xa739
movl $0x48, %edi
callq 0x5200
movq %rax, %r14
leaq 0xdc5f(%rip), %rsi      # 0x18372
movq %rax, %rdi
callq 0xa9f4
jmp 0xa739
movl $0x48, %edi
callq 0x5200
movq %rax, %r14
leaq 0xdc6f(%rip), %rsi      # 0x183a0
movq %rax, %rdi
callq 0xa9f4
leaq 0x16dc0(%rip), %rsi     # 0x21500
leaq -0x282b(%rip), %rdx     # 0x7f1c
movq %r14, %rdi
callq 0x56f0
jmp 0xa753
jmp 0xa753
movq %rax, %r15
movq %r14, %rdi
callq 0x52e0
jmp 0xa767
jmp 0xa764
jmp 0xa764
movq %rax, %r15
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0xa77b
movq (%r12), %rsi
incq %rsi
callq 0x53f0
movq %r15, %rdi
callq 0x5720
nop