// File: /workspace/github_cpp_makefile_star2_O1/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 0x11b7a(%rip), %rsi     # 0x1808a
leaq 0x11b7a(%rip), %rdx     # 0x18091
leaq 0x10(%rsp), %rdi
callq 0x8f0e
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x9068
movq %rax, %r15
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x654d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
leaq 0x8(%r14), %rbp
cmpq %rbp, %r15
je 0x6735
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6a60
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11b1c(%rip), %rsi     # 0x18092
leaq 0x11b1b(%rip), %rdx     # 0x18098
callq 0x8f0e
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x9068
movq %rax, %r15
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x65ae
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpq %rbp, %r15
je 0x6611
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11af1(%rip), %rsi     # 0x180b3
leaq 0x11af1(%rip), %rdx     # 0x180ba
callq 0x8f0e
addq $0x40, %r15
leaq 0x10(%rsp), %rsi
movq %r15, %rdi
callq 0x7d5e
movq (%rax), %rsi
leaq 0x50(%rbx), %rdi
callq 0x5250
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x6602
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x6f5c
jmp 0x6674
leaq 0x11a7a(%rip), %rsi     # 0x18092
leaq 0x11a7a(%rip), %rdx     # 0x18099
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x7c90
movq (%r15), %rax
movq 0x1b99a(%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 0x8006
movb $0x1, 0x1(%rbx)
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x11a3f(%rip), %rsi     # 0x180c2
leaq 0x11a44(%rip), %rdx     # 0x180ce
callq 0x8f0e
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x9068
movq %rax, %r15
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x66bb
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpq %rbp, %r15
je 0x66cd
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x70e0
leaq 0x10(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x119f3(%rip), %rsi     # 0x180cf
leaq 0x119f7(%rip), %rdx     # 0x180da
callq 0x8f0e
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x9068
movq %rax, %r14
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x6714
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpq %rbp, %r14
je 0x6726
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x7212
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 0x1bcdf(%rip), %rax     # 0x22428
movq (%rax), %rdx
leaq 0x11937(%rip), %rsi     # 0x1808a
movq %rbx, %rdi
callq 0x7c90
leaq 0x1ac6e(%rip), %rsi     # 0x213d0
leaq 0x189d(%rip), %rdx      # 0x8006
movq %rbx, %rdi
callq 0x5700
movq %rax, %r15
movq %rbx, %rdi
callq 0x52e0
jmp 0x683c
movq %rax, %r15
cmpl $0x3, %edx
jne 0x683c
movq %r15, %rdi
callq 0x51e0
movb $0x1, 0x1(%rbx)
callq 0x56b0
jmp 0x6674
movq %rdx, %r12
movq %rax, %r15
jmp 0x67f5
jmp 0x67b7
jmp 0x67d3
jmp 0x67b7
jmp 0x67d3
jmp 0x67b7
jmp 0x67d3
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x683c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
jmp 0x683c
movq %rax, %r15
jmp 0x683c
movq %rdx, %r12
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x67f5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x53f0
cmpl $0x1, %r12d
jne 0x683c
movq %r15, %rdi
callq 0x51e0
leaq 0x50(%rbx), %rdi
leaq 0x118ad(%rip), %rsi     # 0x180bb
callq 0x5570
callq 0x56b0
jmp 0x6602
movq %rax, %r15
callq 0x56b0
jmp 0x683c
movq %rax, %rdi
callq 0x7db2
movq %rax, %r15
leaq 0x10(%rsp), %rdi
callq 0x8006
movq %r15, %rdi
callq 0x5730