// File: /workspace/github_cpp_makefile_star2_O3/metopa[P]HTTP_Server/src/config/CConfig.cpp
// Function: CConfig::parse(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 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>>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, 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>>>>>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 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>>>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, 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>>>>>>>>>>)
void CConfig::parse( ini_struct_t data ) {
	auto section = data.find( "options" );
	if ( section == data.end() )
		throw BlockUndefinedException( "options", MSG_CRIT_ERR );

	parseOptions( section );

	section = data.find( "logger" );
	if ( section == data.end() ) {
		cout << BlockUndefinedException( "logger", "Default value: \"CRITICAL\"" ) << endl;
		logFlags_m[CRITICAL] = true;
	}
	else {
		try {
			logFile_m = section->second.at( "logfile" ).front();
		}
		catch ( out_of_range& e ) {
			logFile_m = "stdout";
		}
		try {
			parseLogger( section );
		}
		catch ( ParamUndefinedException& e ) {
			logFlags_m[CRITICAL] = true;
		}
	}

	section = data.find( "path_mapping" );
	if ( section != data.end() )
		parseMapper( section );

	section = data.find( "executables" );
	if ( section != data.end() )
		parseExec( section );
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x20(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x11c0e(%rip), %rsi     # 0x1808a
leaq 0x11c0e(%rip), %rdx     # 0x18091
leaq 0x10(%rsp), %rdi
callq 0x8e2c
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x8f8a
movq %rax, %r15
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x64b9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
leaq 0x8(%r14), %rbp
cmpq %rbp, %r15
je 0x66a1
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x69cc
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11bb0(%rip), %rsi     # 0x18092
leaq 0x11baf(%rip), %rdx     # 0x18098
callq 0x8e2c
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x8f8a
movq %rax, %r15
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x651a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpq %rbp, %r15
je 0x657d
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11b85(%rip), %rsi     # 0x180b3
leaq 0x11b85(%rip), %rdx     # 0x180ba
callq 0x8e2c
addq $0x40, %r15
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0x7c58
movq (%rax), %rsi
leaq 0x50(%rbx), %rdi
callq 0x5250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x656e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6ea6
jmp 0x65e0
leaq 0x11b0e(%rip), %rsi     # 0x18092
leaq 0x11b0e(%rip), %rdx     # 0x18099
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x7b8a
movq (%r15), %rax
movq 0x1ba2e(%rip), %rsi     # 0x21fd0
movq %r15, %rdi
callq *0x10(%rax)
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x53c0
movsbl %al, %esi
movq %r15, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5290
leaq 0x10(%rsp), %rdi
callq 0x7f1c
movb $0x1, 0x1(%rbx)
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11ad3(%rip), %rsi     # 0x180c2
leaq 0x11ad8(%rip), %rdx     # 0x180ce
callq 0x8e2c
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x8f8a
movq %rax, %r15
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x6627
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpq %rbp, %r15
je 0x6639
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x702a
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11a87(%rip), %rsi     # 0x180cf
leaq 0x11a8b(%rip), %rdx     # 0x180da
callq 0x8e2c
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x8f8a
movq %rax, %r14
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x6680
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpq %rbp, %r14
je 0x6692
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x715c
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x48, %edi
callq 0x5200
movq %rax, %rbx
leaq 0x1bd6b(%rip), %rax     # 0x22420
movq (%rax), %rdx
leaq 0x119cb(%rip), %rsi     # 0x1808a
movq %rbx, %rdi
callq 0x7b8a
leaq 0x1ad3a(%rip), %rsi     # 0x21408
leaq 0x1847(%rip), %rdx      # 0x7f1c
movq %rbx, %rdi
callq 0x56f0
movq %rax, %r15
movq %rbx, %rdi
callq 0x52e0
jmp 0x67a8
movq %rax, %r15
cmpl $0x3, %edx
jne 0x67a8
movq %r15, %rdi
callq 0x51e0
movb $0x1, 0x1(%rbx)
callq 0x56a0
jmp 0x65e0
movq %rdx, %r12
movq %rax, %r15
jmp 0x6761
jmp 0x6723
jmp 0x673f
jmp 0x6723
jmp 0x673f
jmp 0x6723
jmp 0x673f
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x67a8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
jmp 0x67a8
movq %rax, %r15
jmp 0x67a8
movq %rdx, %r12
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x6761
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpl $0x1, %r12d
jne 0x67a8
movq %r15, %rdi
callq 0x51e0
leaq 0x50(%rbx), %rdi
leaq 0x11941(%rip), %rsi     # 0x180bb
callq 0x5570
callq 0x56a0
jmp 0x656e
movq %rax, %r15
callq 0x56a0
jmp 0x67a8
movq %rax, %rdi
callq 0x7cac
movq %rax, %r15
leaq 0x10(%rsp), %rdi
callq 0x7f1c
movq %r15, %rdi
callq 0x5720