// File: solaldunckel[P]webserv/srcs/Config/ServerConfig.cpp
// Function: ServerConfig::server(__gnu_cxx::__normal_iterator<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>>>>>&)
void ServerConfig::server(std::vector<std::string>::iterator &it) {
  if (*it != "{")
    throw std::runtime_error("missing opening bracket in server block");
  while (*(++it) != "}") {
    if (ServerConfig::directive_[*it])
      (this->*(ServerConfig::directive_[*it]))(++it);
    else
      throw std::runtime_error("invalid directive '" + *it + "' in 'server'");
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x2aff5(%rip), %rsi     # 0x43093
callq 0x9360
testb $0x1, %al
jne 0x180a9
jmp 0x180fc
movl $0x10, %edi
callq 0x5250
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x78(%rbp)
leaq 0x2b316(%rip), %rsi     # 0x433da
callq 0x51d0
jmp 0x180cb
movq -0x78(%rbp), %rdi
movq 0x43f1a(%rip), %rsi     # 0x5bff0
movq 0x43ebb(%rip), %rdx     # 0x5bf98
callq 0x5920
movq -0x78(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
callq 0x53b0
jmp 0x182c3
jmp 0x180fe
movq -0x10(%rbp), %rdi
callq 0x92d0
movq %rax, %rdi
callq 0x92b0
movq %rax, %rdi
leaq 0x2af7c(%rip), %rsi     # 0x43095
callq 0x9360
testb $0x1, %al
jne 0x18127
jmp 0x182ba
movq -0x10(%rbp), %rdi
callq 0x92b0
movq %rax, %rsi
leaq 0x444ce(%rip), %rdi     # 0x5c608
callq 0x18c10
movq %rax, %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rcx
cmpq $0x0, %rax
je 0x181ea
movq -0x10(%rbp), %rdi
callq 0x92b0
movq %rax, %rsi
leaq 0x444a2(%rip), %rdi     # 0x5c608
callq 0x18c10
movq -0x70(%rbp), %rcx
movq %rax, %rdx
movq (%rdx), %rax
movq %rax, -0x88(%rbp)
movq 0x8(%rdx), %rdx
addq %rdx, %rcx
movq %rcx, -0x80(%rbp)
andq $0x1, %rax
cmpq $0x0, %rax
je 0x181b0
movq -0x88(%rbp), %rcx
movq -0x80(%rbp), %rax
movq (%rax), %rax
subq $0x1, %rcx
movq (%rax,%rcx), %rax
movq %rax, -0x90(%rbp)
jmp 0x181be
movq -0x88(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rdi
callq 0x92d0
movq -0x80(%rbp), %rdi
movq %rax, %rsi
movq -0x98(%rbp), %rax
callq *%rax
jmp 0x182b5
movb $0x1, -0x61(%rbp)
movl $0x10, %edi
callq 0x5250
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x92b0
movq %rax, %rdx
leaq 0x2b1f0(%rip), %rsi     # 0x43402
leaq -0x60(%rbp), %rdi
callq 0x6ad0
jmp 0x1821d
leaq 0x2b1f2(%rip), %rdx     # 0x43416
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x6a80
jmp 0x18233
movq -0xa0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x58c0
jmp 0x18245
movq -0xa0(%rbp), %rdi
movb $0x0, -0x61(%rbp)
movq 0x43d99(%rip), %rsi     # 0x5bff0
movq 0x43d3a(%rip), %rdx     # 0x5bf98
callq 0x5920
jmp 0x182cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x1829f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x18296
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5aa8
leaq -0x60(%rbp), %rdi
callq 0x5aa8
testb $0x1, -0x61(%rbp)
jne 0x182a7
jmp 0x182b3
movq -0xa0(%rbp), %rdi
callq 0x53b0
jmp 0x182c3
jmp 0x180fe
addq $0xa0, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x5950
nopl (%rax)