// File: /workspace/github_cpp_makefile_star2_O1/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 0xe80f(%rip), %rdx      # 0x18ecc
movq %rdx, %rsi
callq 0x8f0e
movq 0x8(%r15), %rax
movl (%r14), %esi
cmpq %rsi, %rax
jbe 0xa6f1
movq (%r15), %rcx
leal 0x1(%rsi), %edx
movzbl (%rcx,%rsi), %esi
cmpl $0x20, %esi
je 0xa6e5
cmpl $0x9, %esi
jne 0xa6f1
movl %edx, (%r14)
movl %edx, %esi
incl %edx
cmpq %rsi, %rax
ja 0xa6d7
movl (%r14), %ecx
cmpq %rcx, %rax
je 0xa7e9
movq (%r15), %rdx
movzbl (%rdx,%rcx), %eax
cmpl $0x22, %eax
je 0xa712
cmpl $0x27, %eax
jne 0xa7a0
leal 0x1(%rcx), %eax
movl %eax, (%r14)
movsbl (%rdx,%rcx), %ebp
cmpq %rax, 0x8(%r15)
jbe 0xa7d3
movq (%r15), %rcx
movb (%rcx,%rax), %cl
cmpb %bpl, %cl
je 0xa7ce
movq 0x8(%rbx), %rsi
movsbl %cl, %r8d
movl $0x1, %ecx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x5790
movl (%r14), %eax
incl %eax
movl %eax, (%r14)
jmp 0xa71c
movq (%r15), %rcx
movb (%rcx,%rax), %dl
movl %edx, %esi
andb $-0x21, %sil
addb $-0x41, %sil
cmpb $0x1a, %sil
jb 0xa782
leal -0x30(%rdx), %esi
cmpb $0xa, %sil
setae %sil
cmpb $0x5f, %dl
setne %dl
testb %sil, %dl
jne 0xa7a9
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 0x5790
movl (%r14), %eax
cmpq %rax, 0x8(%r15)
ja 0xa756
cmpq $0x0, 0x8(%rbx)
jne 0xa7dd
movl $0x48, %edi
callq 0x5200
movq %rax, %r14
leaq 0xdbdc(%rip), %rsi      # 0x183a0
movq %rax, %rdi
callq 0xaad8
jmp 0xa823
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpl $-0x1, %ebp
jne 0xa807
incl %eax
movl %eax, (%r14)
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0x48, %edi
callq 0x5200
movq %rax, %r14
leaq 0xdb4b(%rip), %rsi      # 0x18348
movq %rax, %rdi
callq 0xaad8
jmp 0xa823
movl $0x48, %edi
callq 0x5200
movq %rax, %r14
leaq 0xdb57(%rip), %rsi      # 0x18372
movq %rax, %rdi
callq 0xaad8
leaq 0x16c9e(%rip), %rsi     # 0x214c8
leaq -0x282b(%rip), %rdx     # 0x8006
movq %r14, %rdi
callq 0x5700
jmp 0xa83d
jmp 0xa83d
movq %rax, %r15
movq %r14, %rdi
callq 0x52e0
jmp 0xa851
jmp 0xa84e
jmp 0xa84e
movq %rax, %r15
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0xa865
movq (%r12), %rsi
incq %rsi
callq 0x53f0
movq %r15, %rdi
callq 0x5730
nop