// File: solaldunckel[P]webserv/srcs/HTTP/Response.cpp
// Function: Response::handleMethods()
int Response::handleMethods() {
  std::string &method = config_.getMethod();
  std::string path;

  if (method == "GET" || method == "HEAD") {
    if (file_.is_directory()) {
      std::string index = file_.find_index(config_.getIndexes());
      if (index.length()) {
        redirect_ = true;
        redirect_target_ = ft::unique_char("/" + config_.getRequestTarget() + "/" + index);
        return 200;
      }
      else if (!config_.getAutoindex())
        return 404;
    }

    path = file_.getPath();
    if (!file_.is_directory()) {
      if (!file_.exists())
        return 404;
      file_.parse_match();
      std::vector<std::string> &matches = file_.getMatches();

      if (!config_.getHeader("Accept-Language").empty()) {
        if (localization(matches))
          file_.set_path(path.substr(0, path.find_last_of("/") + 1) + matches.front(), true);
      }
      if (!config_.getHeader("Accept-Charset").empty()) {
        charset_ = accept_charset(matches);
        file_.set_path(path.substr(0, path.find_last_of("/") + 1) + matches.front(), true);
      }

      if (!file_.open())
        return 403;

      headers_["Last-Modified"] = file_.last_modified();
    }
  }

  if (isCGI(file_.getMimeExtension())) {
    CGI cgi(file_, config_, config_.getHeaders(), config_.getBody());
    cgi.init(worker_id_);
    if ((status_code_ = cgi.execute()) > 400)
      return status_code_;
    cgi.parseHeaders(headers_);
    body_ = cgi.getBody();
    headers_["Content-Length"] = ft::to_string(body_.length());
    return status_code_;
  }

  if (method == "PUT" || method == "POST") {
    std::string path = config_.getUri() + "/" + config_.getTarget();

    if (!config_.getUpload().empty()) {
      File dir(config_.getRoot() + "/" + config_.getUpload());

      path = config_.getUri() + "/" + config_.getUpload() + "/" + config_.getTarget();
      if (dir.exists() && !dir.is_directory()) {
        dir.unlink();
      }

      if (!dir.exists()) {
        if (mkdir(dir.getPath().c_str(), 0755) == -1)
          Log.print(DEBUG, "mkdir : " + std::string(strerror(errno)), RED, true);
      }
      file_.set_path(dir.getPath() + "/" + config_.getTarget());
    }
    headers_["Location"] = ft::unique_char(path);
  }

  return (this->*(Response::methods_[method]))();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x940, %rsp            # imm = 0x940
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x740(%rbp)
movq (%rax), %rdi
callq 0x13030
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x57b0
movq -0x18(%rbp), %rdi
leaq 0x1cded(%rip), %rsi     # 0x43777
callq 0x8ff0
movb %al, -0x732(%rbp)
jmp 0x26997
movb -0x732(%rbp), %al
testb $0x1, %al
jne 0x269ca
jmp 0x269a3
movq -0x18(%rbp), %rdi
leaq 0x1cdcd(%rip), %rsi     # 0x4377b
callq 0x8ff0
movb %al, -0x741(%rbp)
jmp 0x269bb
movb -0x741(%rbp), %al
testb $0x1, %al
jne 0x269ca
jmp 0x271c8
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x37620
movb %al, -0x742(%rbp)
jmp 0x269e2
movb -0x742(%rbp), %al
testb $0x1, %al
jne 0x269f1
jmp 0x26c03
movq -0x740(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x758(%rbp)
movq (%rax), %rdi
callq 0x12fb0
movq %rax, -0x750(%rbp)
jmp 0x26a17
movq -0x750(%rbp), %rdx
movq -0x758(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x377c0
jmp 0x26a30
leaq -0x68(%rbp), %rdi
callq 0x5830
cmpq $0x0, %rax
je 0x26b98
movq -0x740(%rbp), %rax
movb $0x1, 0x100(%rax)
movq (%rax), %rdi
callq 0x12de0
movq %rax, -0x760(%rbp)
jmp 0x26a62
movq -0x760(%rbp), %rdx
leaq 0x1cb33(%rip), %rsi     # 0x435a3
leaq -0xe8(%rbp), %rdi
callq 0x6ad0
jmp 0x26a7e
leaq 0x1cb1e(%rip), %rdx     # 0x435a3
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x6a80
jmp 0x26a9a
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x6a30
jmp 0x26ab3
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x41780
jmp 0x26ac8
movq -0x740(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
leaq -0x88(%rbp), %rsi
callq 0x56d0
leaq -0x88(%rbp), %rdi
callq 0x5aa8
leaq -0xa8(%rbp), %rdi
callq 0x5aa8
leaq -0xc8(%rbp), %rdi
callq 0x5aa8
leaq -0xe8(%rbp), %rdi
callq 0x5aa8
movl $0xc8, -0x4(%rbp)
movl $0x1, -0xec(%rbp)
jmp 0x26bda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x26bf5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x26b8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x26b7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x5aa8
leaq -0xc8(%rbp), %rdi
callq 0x5aa8
leaq -0xe8(%rbp), %rdi
callq 0x5aa8
jmp 0x26bf5
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12f70
movb %al, -0x761(%rbp)
jmp 0x26baf
movb -0x761(%rbp), %al
testb $0x1, %al
jne 0x26bce
jmp 0x26bbb
movl $0x194, -0x4(%rbp)      # imm = 0x194
movl $0x1, -0xec(%rbp)
jmp 0x26bda
jmp 0x26bd0
movl $0x0, -0xec(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x5aa8
movl -0xec(%rbp), %eax
testl %eax, %eax
jne 0x27d04
jmp 0x26bf3
jmp 0x26c03
leaq -0x68(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x38460
movq %rax, -0x770(%rbp)
jmp 0x26c1c
movq -0x770(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x5050
jmp 0x26c2e
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x37620
movb %al, -0x771(%rbp)
jmp 0x26c46
movb -0x771(%rbp), %al
testb $0x1, %al
jne 0x271c6
jmp 0x26c56
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x36950
movb %al, -0x772(%rbp)
jmp 0x26c6e
movb -0x772(%rbp), %al
testb $0x1, %al
jne 0x26c90
jmp 0x26c7a
movl $0x194, -0x4(%rbp)      # imm = 0x194
movl $0x1, -0xec(%rbp)
jmp 0x27d04
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x37f90
jmp 0x26ca2
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x38440
movq %rax, -0x780(%rbp)
jmp 0x26cbb
movq -0x740(%rbp), %rax
movq -0x780(%rbp), %rcx
movq %rcx, -0xf8(%rbp)
movq (%rax), %rax
movq %rax, -0x790(%rbp)
leaq -0x119(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0x5960
movq -0x788(%rbp), %rdx
leaq 0x1cb70(%rip), %rsi     # 0x4386b
leaq -0x118(%rbp), %rdi
callq 0x6be0
jmp 0x26d09
movq -0x790(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x13050
movq %rax, -0x798(%rbp)
jmp 0x26d25
movq -0x798(%rbp), %rdi
callq 0x5900
xorb $-0x1, %al
movb %al, -0x799(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x5aa8
leaq -0x119(%rbp), %rdi
callq 0x55e0
movb -0x799(%rbp), %al
testb $0x1, %al
jne 0x26d60
jmp 0x26ea1
movq -0x740(%rbp), %rdi
movq -0xf8(%rbp), %rsi
callq 0x285c0
movb %al, -0x79a(%rbp)
jmp 0x26d7b
movb -0x79a(%rbp), %al
testb $0x1, %al
jne 0x26d8a
jmp 0x26e9f
movq -0x740(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x7b0(%rbp)
leaq 0x1c800(%rip), %rsi     # 0x435a3
leaq -0x38(%rbp), %rdi
movq %rdi, -0x7a8(%rbp)
movq $-0x1, %rdx
callq 0x5500
movq -0x7a8(%rbp), %rsi
movq %rax, %rcx
incq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x160(%rbp), %rdi
callq 0x55a0
jmp 0x26dd9
movq -0xf8(%rbp), %rdi
callq 0x29f50
movq %rax, %rdx
leaq -0x140(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x6a30
jmp 0x26dfd
movq -0x7b0(%rbp), %rdi
leaq -0x140(%rbp), %rsi
movl $0x1, %edx
callq 0x35840
jmp 0x26e17
leaq -0x140(%rbp), %rdi
callq 0x5aa8
leaq -0x160(%rbp), %rdi
callq 0x5aa8
jmp 0x26e9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x26e57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x5aa8
leaq -0x119(%rbp), %rdi
callq 0x55e0
jmp 0x27d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x26e8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x5aa8
leaq -0x160(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
jmp 0x26ea1
movq -0x740(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x7c0(%rbp)
leaq -0x181(%rbp), %rdi
movq %rdi, -0x7b8(%rbp)
callq 0x5960
movq -0x7b8(%rbp), %rdx
leaq 0x1c9a8(%rip), %rsi     # 0x4387b
leaq -0x180(%rbp), %rdi
callq 0x6be0
jmp 0x26ee1
movq -0x7c0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x13050
movq %rax, -0x7c8(%rbp)
jmp 0x26efd
movq -0x7c8(%rbp), %rdi
callq 0x5900
xorb $-0x1, %al
movb %al, -0x7c9(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x5aa8
leaq -0x181(%rbp), %rdi
callq 0x55e0
movb -0x7c9(%rbp), %al
testb $0x1, %al
jne 0x26f38
jmp 0x27096
movq -0x740(%rbp), %rsi
movq -0xf8(%rbp), %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x28cf0
jmp 0x26f54
movq -0x740(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
leaq -0x1a8(%rbp), %rsi
movq %rsi, -0x7e8(%rbp)
callq 0x56d0
movq -0x7e8(%rbp), %rdi
callq 0x5aa8
movq -0x740(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x7e0(%rbp)
leaq 0x1c609(%rip), %rsi     # 0x435a3
leaq -0x38(%rbp), %rdi
movq %rdi, -0x7d8(%rbp)
movq $-0x1, %rdx
callq 0x5500
movq -0x7d8(%rbp), %rsi
movq %rax, %rcx
incq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x1e8(%rbp), %rdi
callq 0x55a0
jmp 0x26fd0
movq -0xf8(%rbp), %rdi
callq 0x29f50
movq %rax, %rdx
leaq -0x1c8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x6a30
jmp 0x26ff4
movq -0x7e0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
movl $0x1, %edx
callq 0x35840
jmp 0x2700e
leaq -0x1c8(%rbp), %rdi
callq 0x5aa8
leaq -0x1e8(%rbp), %rdi
callq 0x5aa8
jmp 0x27096
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2704e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x5aa8
leaq -0x181(%rbp), %rdi
callq 0x55e0
jmp 0x27d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27085
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x5aa8
leaq -0x1e8(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
xorl %esi, %esi
callq 0x35ee0
movb %al, -0x7e9(%rbp)
jmp 0x270b0
movb -0x7e9(%rbp), %al
testb $0x1, %al
jne 0x270d2
jmp 0x270bc
movl $0x193, -0x4(%rbp)      # imm = 0x193
movl $0x1, -0xec(%rbp)
jmp 0x27d04
movq -0x740(%rbp), %rsi
addq $0x8, %rsi
leaq -0x208(%rbp), %rdi
callq 0x376b0
jmp 0x270eb
movq -0x740(%rbp), %rax
addq $0x190, %rax            # imm = 0x190
movq %rax, -0x800(%rbp)
leaq -0x229(%rbp), %rdi
movq %rdi, -0x7f8(%rbp)
callq 0x5960
movq -0x7f8(%rbp), %rdx
leaq 0x1c76a(%rip), %rsi     # 0x4388a
leaq -0x228(%rbp), %rdi
callq 0x6be0
jmp 0x2712e
movq -0x800(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x20e30
movq %rax, -0x808(%rbp)
jmp 0x2714a
movq -0x808(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x56d0
leaq -0x228(%rbp), %rdi
callq 0x5aa8
leaq -0x229(%rbp), %rdi
callq 0x55e0
leaq -0x208(%rbp), %rdi
callq 0x5aa8
jmp 0x271c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x271a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x5aa8
leaq -0x229(%rbp), %rdi
callq 0x55e0
leaq -0x208(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
jmp 0x271c8
movq -0x740(%rbp), %rdi
addq $0x8, %rdi
callq 0x37f70
movq %rax, -0x810(%rbp)
jmp 0x271e1
movq -0x810(%rbp), %rsi
leaq -0x250(%rbp), %rdi
callq 0x5200
jmp 0x271f6
movq -0x740(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x255e0
movb %al, -0x811(%rbp)
jmp 0x27211
leaq -0x250(%rbp), %rdi
callq 0x5aa8
movb -0x811(%rbp), %al
testb $0x1, %al
jne 0x2722c
jmp 0x274b6
movq -0x740(%rbp), %rax
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x830(%rbp)
movq (%rax), %rdi
movq %rdi, -0x828(%rbp)
callq 0x13080
movq %rax, -0x820(%rbp)
jmp 0x27259
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x13010
movq %rax, -0x838(%rbp)
jmp 0x27271
movq -0x838(%rbp), %r8
movq -0x820(%rbp), %rcx
movq -0x828(%rbp), %rdx
movq -0x830(%rbp), %rsi
leaq -0x438(%rbp), %rdi
callq 0x1e730
jmp 0x2729b
movq -0x740(%rbp), %rax
movl 0xac(%rax), %esi
leaq -0x438(%rbp), %rdi
callq 0x1e950
jmp 0x272b6
leaq -0x438(%rbp), %rdi
callq 0x1f100
movl %eax, -0x83c(%rbp)
jmp 0x272ca
movl -0x83c(%rbp), %eax
movq -0x740(%rbp), %rcx
movl %eax, 0xb8(%rcx)
cmpl $0x190, %eax            # imm = 0x190
jle 0x27331
movq -0x740(%rbp), %rax
movl 0xb8(%rax), %eax
movl %eax, -0x4(%rbp)
movl $0x1, -0xec(%rbp)
jmp 0x27494
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x274a5
movq -0x740(%rbp), %rsi
addq $0x190, %rsi            # imm = 0x190
leaq -0x438(%rbp), %rdi
callq 0x209d0
jmp 0x2734d
leaq -0x438(%rbp), %rdi
callq 0x20db0
movq %rax, -0x848(%rbp)
jmp 0x27362
movq -0x848(%rbp), %rsi
movq -0x740(%rbp), %rdi
addq $0xe0, %rdi
callq 0x5050
jmp 0x2737e
movq -0x740(%rbp), %rdi
addq $0xe0, %rdi
callq 0x5830
movq %rax, %rsi
leaq -0x458(%rbp), %rdi
callq 0x20f10
jmp 0x273a2
movq -0x740(%rbp), %rax
addq $0x190, %rax            # imm = 0x190
movq %rax, -0x858(%rbp)
leaq -0x479(%rbp), %rdi
movq %rdi, -0x850(%rbp)
callq 0x5960
movq -0x850(%rbp), %rdx
leaq 0x1c209(%rip), %rsi     # 0x435e0
leaq -0x478(%rbp), %rdi
callq 0x6be0
jmp 0x273e5
movq -0x858(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x20e30
movq %rax, -0x860(%rbp)
jmp 0x27401
movq -0x860(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x56d0
leaq -0x478(%rbp), %rdi
callq 0x5aa8
leaq -0x479(%rbp), %rdi
callq 0x55e0
leaq -0x458(%rbp), %rdi
callq 0x5aa8
movq -0x740(%rbp), %rax
movl 0xb8(%rax), %eax
movl %eax, -0x4(%rbp)
movl $0x1, -0xec(%rbp)
jmp 0x27494
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2747a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x5aa8
leaq -0x479(%rbp), %rdi
callq 0x55e0
leaq -0x458(%rbp), %rdi
callq 0x5aa8
jmp 0x274a5
leaq -0x438(%rbp), %rdi
callq 0x1eff0
jmp 0x27d04
leaq -0x438(%rbp), %rdi
callq 0x1eff0
jmp 0x27d19
movq -0x18(%rbp), %rdi
leaq 0x1c2b2(%rip), %rsi     # 0x43773
callq 0x8ff0
movb %al, -0x861(%rbp)
jmp 0x274ce
movb -0x861(%rbp), %al
testb $0x1, %al
jne 0x27501
jmp 0x274da
movq -0x18(%rbp), %rdi
leaq 0x1c0b9(%rip), %rsi     # 0x4359e
callq 0x8ff0
movb %al, -0x862(%rbp)
jmp 0x274f2
movb -0x862(%rbp), %al
testb $0x1, %al
jne 0x27501
jmp 0x27c59
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12ef0
movq %rax, -0x870(%rbp)
jmp 0x27519
movq -0x870(%rbp), %rsi
leaq 0x1c07c(%rip), %rdx     # 0x435a3
leaq -0x4c0(%rbp), %rdi
callq 0x8f70
jmp 0x27535
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12dc0
movq %rax, -0x878(%rbp)
jmp 0x2754d
movq -0x878(%rbp), %rdx
leaq -0x4a0(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x6a30
jmp 0x27569
leaq -0x4c0(%rbp), %rdi
callq 0x5aa8
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12f90
movq %rax, -0x880(%rbp)
jmp 0x2758d
movq -0x880(%rbp), %rdi
callq 0x5900
testb $0x1, %al
jne 0x27b16
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12eb0
movq %rax, -0x888(%rbp)
jmp 0x275b9
movq -0x888(%rbp), %rsi
leaq 0x1bfdc(%rip), %rdx     # 0x435a3
leaq -0x5a0(%rbp), %rdi
callq 0x8f70
jmp 0x275d5
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12f90
movq %rax, -0x890(%rbp)
jmp 0x275ed
movq -0x890(%rbp), %rdx
leaq -0x580(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
callq 0x6a30
jmp 0x27609
leaq -0x560(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0x35730
jmp 0x2761e
leaq -0x580(%rbp), %rdi
callq 0x5aa8
leaq -0x5a0(%rbp), %rdi
callq 0x5aa8
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12ef0
movq %rax, -0x898(%rbp)
jmp 0x2764e
movq -0x898(%rbp), %rsi
leaq 0x1bf47(%rip), %rdx     # 0x435a3
leaq -0x620(%rbp), %rdi
callq 0x8f70
jmp 0x2766a
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12f90
movq %rax, -0x8a0(%rbp)
jmp 0x27682
movq -0x8a0(%rbp), %rdx
leaq -0x600(%rbp), %rdi
leaq -0x620(%rbp), %rsi
callq 0x6a30
jmp 0x2769e
leaq 0x1befe(%rip), %rdx     # 0x435a3
leaq -0x5e0(%rbp), %rdi
leaq -0x600(%rbp), %rsi
callq 0x6a80
jmp 0x276ba
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12dc0
movq %rax, -0x8a8(%rbp)
jmp 0x276d2
movq -0x8a8(%rbp), %rdx
leaq -0x5c0(%rbp), %rdi
leaq -0x5e0(%rbp), %rsi
callq 0x6a30
jmp 0x276ee
leaq -0x4a0(%rbp), %rdi
leaq -0x5c0(%rbp), %rsi
movq %rsi, -0x8b8(%rbp)
callq 0x56d0
movq -0x8b8(%rbp), %rdi
callq 0x5aa8
leaq -0x5e0(%rbp), %rdi
callq 0x5aa8
leaq -0x600(%rbp), %rdi
callq 0x5aa8
leaq -0x620(%rbp), %rdi
callq 0x5aa8
leaq -0x560(%rbp), %rdi
callq 0x36950
movb %al, -0x8a9(%rbp)
jmp 0x2774c
movb -0x8a9(%rbp), %al
testb $0x1, %al
jne 0x2775b
jmp 0x27859
leaq -0x560(%rbp), %rdi
callq 0x37620
movb %al, -0x8b9(%rbp)
jmp 0x2776f
movb -0x8b9(%rbp), %al
testb $0x1, %al
jne 0x27859
jmp 0x2777f
leaq -0x560(%rbp), %rdi
callq 0x366f0
jmp 0x2778d
jmp 0x27859
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x4c0(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27c48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x277e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x5aa8
leaq -0x5a0(%rbp), %rdi
callq 0x5aa8
jmp 0x27c48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27b05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27848
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2783c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0x5aa8
leaq -0x600(%rbp), %rdi
callq 0x5aa8
leaq -0x620(%rbp), %rdi
callq 0x5aa8
jmp 0x27b05
leaq -0x560(%rbp), %rdi
callq 0x36950
movb %al, -0x8ba(%rbp)
jmp 0x2786d
movb -0x8ba(%rbp), %al
testb $0x1, %al
jne 0x27a1f
jmp 0x2787d
leaq -0x560(%rbp), %rdi
callq 0x38460
movq %rax, -0x8c8(%rbp)
jmp 0x27892
movq -0x8c8(%rbp), %rdi
callq 0x51f0
movq %rax, %rdi
movl $0x1ed, %esi            # imm = 0x1ED
callq 0x5230
cmpl $-0x1, %eax
jne 0x27a1d
callq 0x5060
movl (%rax), %edi
callq 0x5170
movq %rax, -0x8d8(%rbp)
leaq -0x661(%rbp), %rdi
movq %rdi, -0x8d0(%rbp)
callq 0x5960
movq -0x8d8(%rbp), %rsi
movq -0x8d0(%rbp), %rdx
leaq -0x660(%rbp), %rdi
callq 0x6be0
jmp 0x278f6
leaq 0x1bf9b(%rip), %rsi     # 0x43898
leaq -0x640(%rbp), %rdi
leaq -0x660(%rbp), %rdx
callq 0x107f0
jmp 0x27912
leaq -0x689(%rbp), %rdi
movq %rdi, -0x8e0(%rbp)
callq 0x5960
movq -0x8e0(%rbp), %rdx
leaq 0x1b6ed(%rip), %rsi     # 0x43020
leaq -0x688(%rbp), %rdi
callq 0x6be0
jmp 0x27941
leaq 0x34cb0(%rip), %rdi     # 0x5c5f8
movl $0x2, %esi
leaq -0x640(%rbp), %rdx
leaq -0x688(%rbp), %rcx
movl $0x1, %r8d
callq 0x3b240
jmp 0x27968
leaq -0x688(%rbp), %rdi
callq 0x5aa8
leaq -0x689(%rbp), %rdi
callq 0x55e0
leaq -0x640(%rbp), %rdi
callq 0x5aa8
leaq -0x660(%rbp), %rdi
callq 0x5aa8
leaq -0x661(%rbp), %rdi
callq 0x55e0
jmp 0x27a1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27a0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27a00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x279e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x5aa8
leaq -0x689(%rbp), %rdi
callq 0x55e0
leaq -0x640(%rbp), %rdi
callq 0x5aa8
leaq -0x660(%rbp), %rdi
callq 0x5aa8
leaq -0x661(%rbp), %rdi
callq 0x55e0
jmp 0x27b05
jmp 0x27a1f
movq -0x740(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x8f0(%rbp)
leaq -0x560(%rbp), %rdi
callq 0x38460
movq %rax, -0x8e8(%rbp)
jmp 0x27a46
movq -0x8e8(%rbp), %rsi
leaq 0x1bb4f(%rip), %rdx     # 0x435a3
leaq -0x6d0(%rbp), %rdi
callq 0x8f70
jmp 0x27a62
movq -0x740(%rbp), %rax
movq (%rax), %rdi
callq 0x12dc0
movq %rax, -0x8f8(%rbp)
jmp 0x27a7a
movq -0x8f8(%rbp), %rdx
leaq -0x6b0(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0x6a30
jmp 0x27a96
movq -0x8f0(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
xorl %edx, %edx
callq 0x35840
jmp 0x27aad
leaq -0x6b0(%rbp), %rdi
callq 0x5aa8
leaq -0x6d0(%rbp), %rdi
callq 0x5aa8
leaq -0x560(%rbp), %rdi
callq 0x358f0
jmp 0x27b16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27af9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x5aa8
leaq -0x6d0(%rbp), %rdi
callq 0x5aa8
leaq -0x560(%rbp), %rdi
callq 0x358f0
jmp 0x27c48
leaq -0x710(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x5200
jmp 0x27b2b
leaq -0x6f0(%rbp), %rdi
leaq -0x710(%rbp), %rsi
callq 0x41780
jmp 0x27b40
movq -0x740(%rbp), %rax
addq $0x190, %rax            # imm = 0x190
movq %rax, -0x908(%rbp)
leaq -0x731(%rbp), %rdi
movq %rdi, -0x900(%rbp)
callq 0x5960
movq -0x900(%rbp), %rdx
leaq 0x1bd2c(%rip), %rsi     # 0x438a1
leaq -0x730(%rbp), %rdi
callq 0x6be0
jmp 0x27b83
movq -0x908(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0x20e30
movq %rax, -0x910(%rbp)
jmp 0x27b9f
movq -0x910(%rbp), %rdi
leaq -0x6f0(%rbp), %rsi
callq 0x56d0
leaq -0x730(%rbp), %rdi
callq 0x5aa8
leaq -0x731(%rbp), %rdi
callq 0x55e0
leaq -0x6f0(%rbp), %rdi
callq 0x5aa8
leaq -0x710(%rbp), %rdi
callq 0x5aa8
leaq -0x4a0(%rbp), %rdi
callq 0x5aa8
jmp 0x27c59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27c3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x27c24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x730(%rbp), %rdi
callq 0x5aa8
leaq -0x731(%rbp), %rdi
callq 0x55e0
leaq -0x6f0(%rbp), %rdi
callq 0x5aa8
leaq -0x710(%rbp), %rdi
callq 0x5aa8
leaq -0x4a0(%rbp), %rdi
callq 0x5aa8
jmp 0x27d19
movq -0x740(%rbp), %rdi
addq $0x160, %rdi            # imm = 0x160
movq -0x18(%rbp), %rsi
callq 0x29f80
movq %rax, -0x918(%rbp)
jmp 0x27c79
movq -0x740(%rbp), %rcx
movq -0x918(%rbp), %rdx
movq (%rdx), %rax
movq %rax, -0x928(%rbp)
movq 0x8(%rdx), %rdx
addq %rdx, %rcx
movq %rcx, -0x920(%rbp)
andq $0x1, %rax
cmpq $0x0, %rax
je 0x27ccb
movq -0x928(%rbp), %rcx
movq -0x920(%rbp), %rax
movq (%rax), %rax
subq $0x1, %rcx
movq (%rax,%rcx), %rax
movq %rax, -0x930(%rbp)
jmp 0x27cd9
movq -0x928(%rbp), %rax
movq %rax, -0x930(%rbp)
movq -0x920(%rbp), %rdi
movq -0x930(%rbp), %rax
callq *%rax
movl %eax, -0x934(%rbp)
jmp 0x27cf1
movl -0x934(%rbp), %eax
movl %eax, -0x4(%rbp)
movl $0x1, -0xec(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x5aa8
movl -0x4(%rbp), %eax
addq $0x940, %rsp            # imm = 0x940
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x5aa8
movq -0x40(%rbp), %rdi
callq 0x5950
nopl (%rax,%rax)