// File: 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
movq %rsp, %rbp
subq $0x200, %rsp            # imm = 0x200
movq %rsi, -0x198(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x6930
movq -0x188(%rbp), %rdx
leaq 0x241cb(%rip), %rsi     # 0x2c06e
leaq -0x38(%rbp), %rdi
callq 0xa9d0
jmp 0x7eae
movq -0x198(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xad50
movq %rax, -0x1a0(%rbp)
jmp 0x7ec7
movq -0x1a0(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x6310
leaq -0x39(%rbp), %rdi
callq 0x6550
movq -0x198(%rbp), %rdi
callq 0xadb0
movq %rax, -0x58(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0xad80
testb $0x1, %al
jne 0x7f0a
jmp 0x7fa1
movl $0x48, %edi
callq 0x6280
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x1a8(%rbp)
leaq 0x37618(%rip), %rax     # 0x3f540
movq (%rax), %rdx
leaq 0x2413c(%rip), %rsi     # 0x2c06e
callq 0xade0
jmp 0x7f39
movq -0x1a8(%rbp), %rdi
leaq 0x364b9(%rip), %rsi     # 0x3e400
leaq 0x2fd2(%rip), %rdx      # 0xaf20
callq 0x68e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7f76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x6310
leaq -0x39(%rbp), %rdi
callq 0x6550
jmp 0x8462
movq -0x1a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x63b0
jmp 0x8462
movq -0x190(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x87d0
leaq -0x81(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x6930
movq -0x1b0(%rbp), %rdx
leaq 0x240a4(%rip), %rsi     # 0x2c076
leaq -0x80(%rbp), %rdi
callq 0xa9d0
jmp 0x7fdd
movq -0x198(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xad50
movq %rax, -0x1b8(%rbp)
jmp 0x7ff6
movq -0x1b8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x6310
leaq -0x81(%rbp), %rdi
callq 0x6550
movq -0x198(%rbp), %rdi
callq 0xadb0
movq %rax, -0x90(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xad80
testb $0x1, %al
jne 0x804a
jmp 0x8109
leaq 0x24025(%rip), %rsi     # 0x2c076
leaq 0x24025(%rip), %rdx     # 0x2c07d
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0xade0
movq -0x1c8(%rbp), %rsi
movq 0x36f57(%rip), %rdi     # 0x3efd0
callq 0xaf40
movq %rax, -0x1c0(%rbp)
jmp 0x8087
movq -0x1c0(%rbp), %rdi
movq 0x36f23(%rip), %rsi     # 0x3efb8
callq 0x6520
jmp 0x809c
leaq -0xd8(%rbp), %rdi
callq 0xaf20
movq -0x190(%rbp), %rax
movb $0x1, 0x1(%rax)
jmp 0x8280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x80db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x6310
leaq -0x81(%rbp), %rdi
callq 0x6550
jmp 0x8462
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xaf20
jmp 0x8462
leaq -0x18(%rbp), %rdi
callq 0xaf70
addq $0x20, %rax
movq %rax, -0x1d8(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x6930
movq -0x1d0(%rbp), %rdx
leaq 0x23f59(%rip), %rsi     # 0x2c097
leaq -0xf8(%rbp), %rdi
callq 0xa9d0
jmp 0x814c
movq -0x1d8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0xaf90
movq %rax, -0x1e0(%rbp)
jmp 0x8168
movq -0x1e0(%rbp), %rdi
callq 0xb030
movq -0x190(%rbp), %rdi
movq %rax, %rsi
addq $0x50, %rdi
callq 0x6070
jmp 0x8189
leaq -0xf8(%rbp), %rdi
callq 0x6310
leaq -0xf9(%rbp), %rdi
callq 0x6550
jmp 0x8213
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x81c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x6310
leaq -0xf9(%rbp), %rdi
callq 0x6550
movl -0x4c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x8462
movq -0x48(%rbp), %rdi
callq 0x6230
movq -0x190(%rbp), %rdi
movq %rax, -0x108(%rbp)
addq $0x50, %rdi
leaq 0x23e98(%rip), %rsi     # 0x2c09f
callq 0x6700
jmp 0x820e
callq 0x6880
movq -0x190(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x8ff0
jmp 0x8225
jmp 0x827e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x6880
jmp 0x823a
jmp 0x8462
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movl $0x3, %ecx
cmpl %ecx, %eax
jne 0x8462
movq -0x48(%rbp), %rdi
callq 0x6230
movq %rax, %rcx
movq -0x190(%rbp), %rax
movq %rcx, -0x110(%rbp)
movb $0x1, 0x1(%rax)
callq 0x6880
jmp 0x8280
leaq -0x139(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x6930
movq -0x1e8(%rbp), %rdx
leaq 0x23e05(%rip), %rsi     # 0x2c0a6
leaq -0x138(%rbp), %rdi
callq 0xa9d0
jmp 0x82af
movq -0x198(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0xad50
movq %rax, -0x1f0(%rbp)
jmp 0x82cb
movq -0x1f0(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x6310
leaq -0x139(%rbp), %rdi
callq 0x6550
movq -0x198(%rbp), %rdi
callq 0xadb0
movq %rax, -0x148(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0xb070
testb $0x1, %al
jne 0x8325
jmp 0x836e
movq -0x190(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x92c0
jmp 0x836e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x835d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x6310
leaq -0x139(%rbp), %rdi
callq 0x6550
jmp 0x8462
leaq -0x171(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x6930
movq -0x1f8(%rbp), %rdx
leaq 0x23d24(%rip), %rsi     # 0x2c0b3
leaq -0x170(%rbp), %rdi
callq 0xa9d0
jmp 0x839d
movq -0x198(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xad50
movq %rax, -0x200(%rbp)
jmp 0x83b9
movq -0x200(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x6310
leaq -0x171(%rbp), %rdi
callq 0x6550
movq -0x198(%rbp), %rdi
callq 0xadb0
movq %rax, -0x180(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xb070
testb $0x1, %al
jne 0x8413
jmp 0x8459
movq -0x190(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x9420
jmp 0x8459
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x844b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x6310
leaq -0x171(%rbp), %rdi
callq 0x6550
jmp 0x8462
addq $0x200, %rsp            # imm = 0x200
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x6920
movq %rax, %rdi
callq 0xb060
nopw %cs:(%rax,%rax)