// File: textbrowser[P]zepeto/zepeto.cc
// Function: zepeto::final()
void zepeto::final(void)
{
  try
    {
      if(!m_error.empty())
	return;

      std::ifstream file;

      file.open(m_product_file.c_str(), std::ios::in);

      if(!file.is_open())
	{
	  m_error.append("echo \"Error opening the zepeto.table file.\"\n");
	  return;
	}

      auto attached_products(m_attached_products);
      auto detached_products(m_detached_products);
      auto printed_products(m_printed_products);

      if(file.is_open())
	while(file.getline(m_buffer, s_maximum_buffer_length_ss))
	  {
	    size_t first = 0;
	    size_t last = 0;
	    std::string line(m_buffer);

	    first = line.find_first_not_of(" \t");
	    last = line.find_last_not_of(" \t");

	    if(first != std::string::npos &&
	       last != std::string::npos)
	      line = line.substr(first, last - first + 1);

	    if(line.find("#") == 0)
	      continue;
	    else if(line.find("description") != std::string::npos)
	      continue;

	    auto const index = line.find(".");

	    if(index == std::string::npos)
	      continue;

	    std::string path;

	    if(!(index + 1 > line.size()))
	      path = line.substr(index + 1);

	    line = line.substr(0, index);

	    if(line.empty())
	      continue;

	    if(m_attached_products.count(line) > 0)
	      {
		action(ATTACH, path);
		attached_products.erase(line);
	      }

	    if(m_detached_products.count(line) > 0)
	      {
		action(DETACH, path);
		detached_products.erase(line);
	      }

	    if(m_printed_products.count(line) > 0)
	      {
		if(printed_products.count(line) > 0)
		  {
		    m_output.append("echo '");
		    m_output.append(line);
		    m_output.append("'\n");
		  }

		m_output.append("echo '");
		m_output.append(path);
		m_output.append("'\n");
		printed_products.erase(line);
	      }
	  }

      file.close();

      {
	std::set<std::string>::iterator it;

	for(it = attached_products.begin();
	    it != attached_products.end();
	    ++it)
	  {
	    m_error.append("echo \"The product ");
	    m_error.append(*it);
	    m_error.append(" does not exist.\"\n");
	  }

	for(it = detached_products.begin();
	    it != detached_products.end();
	    ++it)
	  {
	    m_error.append("echo \"The product ");
	    m_error.append(*it);
	    m_error.append(" does not exist.\"\n");
	  }

	for(it = printed_products.begin();
	    it != printed_products.end();
	    ++it)
	  {
	    m_error.append("echo \"The product ");
	    m_error.append(*it);
	    m_error.append(" does not exist.\"\n");
	  }
      }

      if(m_error.empty() && m_fd != -1)
	{
	  std::map<std::string, std::string>::iterator it;

	  for(it = m_variables.begin(); it != m_variables.end(); ++it)
	    {
	      auto const k(it->first);
	      auto const v(it->second);

	      if(v.empty())
		{
		  m_output.append("unset ");
		  m_output.append(k);
		  m_output.append("\n");
		}
	      else
		{
		  m_output.append("export ");
		  m_output.append(k);
		  m_output.append("=");
		  m_output.append(v);
		  m_output.append("\n");
		}
	    }

	  if(!m_output.empty())
	    {
	      write(m_fd, m_output.c_str(), m_output.length());
	      fsync(m_fd);
	    }
	}

      if(m_error.empty())
	if(m_tempfilename)
	  std::cout << m_tempfilename;
    }
  catch(const std::bad_alloc &exception)
    {
      throw;
    }
  catch(...)
    {
      m_error.append("echo \"An error occurred within final().\"\n");
      throw std::runtime_error(m_error);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4b0, %rsp            # imm = 0x4B0
movq %fs:0x28, %rax
movq %rax, -0x8(%rbp)
movq %rdi, -0x3e0(%rbp)
movq -0x3e0(%rbp), %rdi
movq %rdi, -0x418(%rbp)
addq $0xe0, %rdi
callq 0x35b0
testb $0x1, %al
jne 0x57c2
jmp 0x6586
leaq -0x210(%rbp), %rdi
callq 0x3400
jmp 0x57d0
movq -0x418(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0x3160
movq %rax, %rsi
leaq -0x210(%rbp), %rdi
movl $0x8, %edx
callq 0x3260
jmp 0x57f9
leaq -0x210(%rbp), %rdi
callq 0x3570
movb %al, -0x419(%rbp)
jmp 0x580d
movb -0x419(%rbp), %al
testb $0x1, %al
jne 0x5872
jmp 0x5819
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb8ed(%rip), %rsi      # 0x1111b
callq 0x3640
jmp 0x5835
movl $0x1, -0x3f0(%rbp)
jmp 0x6413
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x6465
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x6459
movq -0x418(%rbp), %rsi
addq $0x50, %rsi
leaq -0x240(%rbp), %rdi
callq 0x8170
jmp 0x588b
movq -0x418(%rbp), %rsi
subq $-0x80, %rsi
leaq -0x270(%rbp), %rdi
callq 0x8170
jmp 0x58a4
movq -0x418(%rbp), %rsi
addq $0xb0, %rsi
leaq -0x2a0(%rbp), %rdi
callq 0x8170
jmp 0x58c0
leaq -0x210(%rbp), %rdi
callq 0x3570
movb %al, -0x41a(%rbp)
jmp 0x58d4
movb -0x41a(%rbp), %al
testb $0x1, %al
jne 0x58e3
jmp 0x5e74
jmp 0x58e5
movq -0x418(%rbp), %rax
movq (%rax), %rsi
movq 0x11aaa(%rip), %rdx     # 0x173a0
leaq -0x210(%rbp), %rdi
callq 0x30f0
movq %rax, -0x428(%rbp)
jmp 0x590b
movq -0x428(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3450
movb %al, -0x429(%rbp)
jmp 0x5929
movb -0x429(%rbp), %al
testb $0x1, %al
jne 0x5938
jmp 0x5e72
movq -0x418(%rbp), %rax
movq $0x0, -0x3f8(%rbp)
movq $0x0, -0x400(%rbp)
movq (%rax), %rax
movq %rax, -0x440(%rbp)
leaq -0x381(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x3600
movq -0x440(%rbp), %rsi
movq -0x438(%rbp), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x76a0
jmp 0x598e
leaq -0x381(%rbp), %rdi
callq 0x33c0
leaq -0x2c0(%rbp), %rdi
leaq 0xb7a0(%rip), %rsi      # 0x11148
xorl %eax, %eax
movl %eax, %edx
callq 0x3210
movq %rax, -0x3f8(%rbp)
leaq -0x2c0(%rbp), %rdi
leaq 0xb782(%rip), %rsi      # 0x11148
movq $-0x1, %rdx
callq 0x3630
movq %rax, -0x400(%rbp)
cmpq $-0x1, -0x3f8(%rbp)
je 0x5abe
cmpq $-0x1, -0x400(%rbp)
je 0x5abe
movq -0x3f8(%rbp), %rdx
movq -0x400(%rbp), %rcx
subq %rdx, %rcx
incq %rcx
leaq -0x2e0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x3390
jmp 0x5a1e
leaq -0x2c0(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x3430
leaq -0x2e0(%rbp), %rdi
callq 0x3250
jmp 0x5abe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x644d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x6441
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x6435
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
leaq -0x381(%rbp), %rdi
callq 0x33c0
jmp 0x6435
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x5e61
leaq -0x2c0(%rbp), %rdi
leaq 0xb67f(%rip), %rsi      # 0x1114b
xorl %eax, %eax
movl %eax, %edx
callq 0x3680
cmpq $0x0, %rax
jne 0x5aea
movl $0x2, -0x3f0(%rbp)
jmp 0x5e3f
leaq -0x2c0(%rbp), %rdi
leaq 0xb655(%rip), %rsi      # 0x1114d
xorl %eax, %eax
movl %eax, %edx
callq 0x3680
cmpq $-0x1, %rax
je 0x5b16
movl $0x2, -0x3f0(%rbp)
jmp 0x5e3f
jmp 0x5b18
leaq -0x2c0(%rbp), %rdi
leaq 0xb512(%rip), %rsi      # 0x11038
xorl %eax, %eax
movl %eax, %edx
callq 0x3680
movq %rax, -0x408(%rbp)
cmpq $-0x1, -0x408(%rbp)
jne 0x5b4f
movl $0x2, -0x3f0(%rbp)
jmp 0x5e3f
leaq -0x300(%rbp), %rdi
callq 0x34d0
movq -0x408(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x448(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x32a0
movq %rax, %rcx
movq -0x448(%rbp), %rax
cmpq %rcx, %rax
ja 0x5bf2
movq -0x408(%rbp), %rdx
incq %rdx
leaq -0x320(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
movq $-0x1, %rcx
callq 0x3390
jmp 0x5bae
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x3430
leaq -0x320(%rbp), %rdi
callq 0x3250
jmp 0x5bf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x3250
jmp 0x5e61
movq -0x408(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x340(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x3390
jmp 0x5c12
leaq -0x2c0(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x3430
leaq -0x340(%rbp), %rdi
callq 0x3250
leaq -0x2c0(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x5c43
jmp 0x5c52
movl $0x2, -0x3f0(%rbp)
jmp 0x5e33
movq -0x418(%rbp), %rdi
addq $0x50, %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x7820
movq %rax, -0x450(%rbp)
jmp 0x5c72
movq -0x450(%rbp), %rax
cmpq $0x0, %rax
jbe 0x5cad
movq -0x418(%rbp), %rdi
xorl %esi, %esi
leaq -0x300(%rbp), %rdx
callq 0x4030
jmp 0x5c96
leaq -0x240(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x81c0
jmp 0x5cab
jmp 0x5cad
movq -0x418(%rbp), %rdi
subq $-0x80, %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x7820
movq %rax, -0x458(%rbp)
jmp 0x5ccd
movq -0x458(%rbp), %rax
cmpq $0x0, %rax
jbe 0x5d0b
movq -0x418(%rbp), %rdi
movl $0x1, %esi
leaq -0x300(%rbp), %rdx
callq 0x4030
jmp 0x5cf4
leaq -0x270(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x81c0
jmp 0x5d09
jmp 0x5d0b
movq -0x418(%rbp), %rdi
addq $0xb0, %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x7820
movq %rax, -0x460(%rbp)
jmp 0x5d2e
movq -0x460(%rbp), %rax
cmpq $0x0, %rax
jbe 0x5e29
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x7820
movq %rax, -0x468(%rbp)
jmp 0x5d5b
movq -0x468(%rbp), %rax
cmpq $0x0, %rax
jbe 0x5dbe
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xb3dc(%rip), %rsi      # 0x11159
callq 0x3640
jmp 0x5d84
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq -0x2c0(%rbp), %rsi
callq 0x3650
jmp 0x5da0
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xb3ab(%rip), %rsi      # 0x11160
callq 0x3640
jmp 0x5dbc
jmp 0x5dbe
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xb386(%rip), %rsi      # 0x11159
callq 0x3640
jmp 0x5dda
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq -0x300(%rbp), %rsi
callq 0x3650
jmp 0x5df6
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xb355(%rip), %rsi      # 0x11160
callq 0x3640
jmp 0x5e12
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x81c0
jmp 0x5e27
jmp 0x5e29
movl $0x0, -0x3f0(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x3250
leaq -0x2c0(%rbp), %rdi
callq 0x3250
movl -0x3f0(%rbp), %eax
testl %eax, %eax
je 0x5e5c
jmp 0x5e57
jmp 0x58e5
jmp 0x58e5
leaq -0x2c0(%rbp), %rdi
callq 0x3250
jmp 0x6435
jmp 0x5e74
leaq -0x210(%rbp), %rdi
callq 0x3090
jmp 0x5e82
leaq -0x390(%rbp), %rdi
callq 0x8210
leaq -0x240(%rbp), %rdi
callq 0x7ac0
movq %rax, -0x398(%rbp)
movq -0x398(%rbp), %rax
movq %rax, -0x390(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x7b70
movq %rax, -0x3a0(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
callq 0x7b10
testb $0x1, %al
jne 0x5edb
jmp 0x5f57
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb273(%rip), %rsi      # 0x11163
callq 0x3640
jmp 0x5ef7
movq -0x418(%rbp), %rax
addq $0xe0, %rax
movq %rax, -0x470(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x7bc0
movq -0x470(%rbp), %rdi
movq %rax, %rsi
callq 0x3650
jmp 0x5f28
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb239(%rip), %rsi      # 0x11176
callq 0x3640
jmp 0x5f44
jmp 0x5f46
leaq -0x390(%rbp), %rdi
callq 0x7fc0
jmp 0x5eaf
leaq -0x270(%rbp), %rdi
callq 0x7ac0
movq %rax, -0x3a8(%rbp)
movq -0x3a8(%rbp), %rax
movq %rax, -0x390(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x7b70
movq %rax, -0x3b0(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x7b10
testb $0x1, %al
jne 0x5fa4
jmp 0x6020
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb1aa(%rip), %rsi      # 0x11163
callq 0x3640
jmp 0x5fc0
movq -0x418(%rbp), %rax
addq $0xe0, %rax
movq %rax, -0x478(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x7bc0
movq -0x478(%rbp), %rdi
movq %rax, %rsi
callq 0x3650
jmp 0x5ff1
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb170(%rip), %rsi      # 0x11176
callq 0x3640
jmp 0x600d
jmp 0x600f
leaq -0x390(%rbp), %rdi
callq 0x7fc0
jmp 0x5f78
leaq -0x2a0(%rbp), %rdi
callq 0x7ac0
movq %rax, -0x3b8(%rbp)
movq -0x3b8(%rbp), %rax
movq %rax, -0x390(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x7b70
movq %rax, -0x3c0(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x7b10
testb $0x1, %al
jne 0x606d
jmp 0x60e9
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb0e1(%rip), %rsi      # 0x11163
callq 0x3640
jmp 0x6089
movq -0x418(%rbp), %rax
addq $0xe0, %rax
movq %rax, -0x480(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x7bc0
movq -0x480(%rbp), %rdi
movq %rax, %rsi
callq 0x3650
jmp 0x60ba
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xb0a7(%rip), %rsi      # 0x11176
callq 0x3640
jmp 0x60d6
jmp 0x60d8
leaq -0x390(%rbp), %rdi
callq 0x7fc0
jmp 0x6041
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
callq 0x35b0
testb $0x1, %al
jne 0x6105
jmp 0x63a1
movq -0x418(%rbp), %rax
cmpl $-0x1, 0x18(%rax)
je 0x63a1
leaq -0x3c8(%rbp), %rdi
callq 0x8260
movq -0x418(%rbp), %rdi
addq $0x20, %rdi
callq 0x82b0
movq %rax, -0x3d0(%rbp)
movq -0x3d0(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movq -0x418(%rbp), %rdi
addq $0x20, %rdi
callq 0x8360
movq %rax, -0x3d8(%rbp)
leaq -0x3c8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x8300
testb $0x1, %al
jne 0x617a
jmp 0x6328
leaq -0x3c8(%rbp), %rdi
callq 0x83b0
movq %rax, %rsi
leaq -0x360(%rbp), %rdi
callq 0x3170
jmp 0x6197
leaq -0x3c8(%rbp), %rdi
callq 0x83b0
movq %rax, %rsi
addq $0x20, %rsi
leaq -0x380(%rbp), %rdi
callq 0x3170
jmp 0x61b8
leaq -0x380(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x61cd
jmp 0x6260
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xafa7(%rip), %rsi      # 0x11189
callq 0x3640
jmp 0x61e9
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq -0x360(%rbp), %rsi
callq 0x3650
jmp 0x6205
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xb0d1(%rip), %rsi      # 0x112eb
callq 0x3640
jmp 0x6221
jmp 0x62ee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x6317
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x3250
jmp 0x6317
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xaf1b(%rip), %rsi      # 0x11190
callq 0x3640
jmp 0x627c
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq -0x360(%rbp), %rsi
callq 0x3650
jmp 0x6298
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xaeeb(%rip), %rsi      # 0x11198
callq 0x3640
jmp 0x62b4
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq -0x380(%rbp), %rsi
callq 0x3650
jmp 0x62d0
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xb006(%rip), %rsi      # 0x112eb
callq 0x3640
jmp 0x62ec
jmp 0x62ee
leaq -0x380(%rbp), %rdi
callq 0x3250
leaq -0x360(%rbp), %rdi
callq 0x3250
leaq -0x3c8(%rbp), %rdi
callq 0x8400
jmp 0x6147
leaq -0x360(%rbp), %rdi
callq 0x3250
jmp 0x6435
movq -0x418(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0x35b0
testb $0x1, %al
jne 0x639f
movq -0x418(%rbp), %rdi
movl 0x18(%rdi), %eax
movl %eax, -0x48c(%rbp)
addq $0x100, %rdi            # imm = 0x100
movq %rdi, -0x498(%rbp)
callq 0x3160
movq -0x498(%rbp), %rdi
movq %rax, -0x488(%rbp)
callq 0x3510
movl -0x48c(%rbp), %edi
movq -0x488(%rbp), %rsi
movq %rax, %rdx
callq 0x3110
jmp 0x638c
movq -0x418(%rbp), %rax
movl 0x18(%rax), %edi
callq 0x3300
jmp 0x639d
jmp 0x639f
jmp 0x63a1
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
callq 0x35b0
testb $0x1, %al
jne 0x63ba
jmp 0x63e5
movq -0x418(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x63e3
movq -0x418(%rbp), %rax
movq 0x10(%rax), %rsi
movq 0x10bee(%rip), %rdi     # 0x16fc8
callq 0x3350
jmp 0x63e1
jmp 0x63e3
jmp 0x63e5
leaq -0x2a0(%rbp), %rdi
callq 0x7790
leaq -0x270(%rbp), %rdi
callq 0x7790
leaq -0x240(%rbp), %rdi
callq 0x7790
movl $0x0, -0x3f0(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x30c0
movl -0x3f0(%rbp), %eax
testl %eax, %eax
je 0x6430
jmp 0x642b
jmp 0x6586
jmp 0x6586
leaq -0x2a0(%rbp), %rdi
callq 0x7790
leaq -0x270(%rbp), %rdi
callq 0x7790
leaq -0x240(%rbp), %rdi
callq 0x7790
leaq -0x210(%rbp), %rdi
callq 0x30c0
movl -0x3ec(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x64a7
movq -0x3e8(%rbp), %rdi
callq 0x3150
movq %rax, -0x410(%rbp)
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x65d5
callq 0x34f0
jmp 0x65d5
movq -0x3e8(%rbp), %rdi
callq 0x3150
movq -0x418(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xacd2(%rip), %rsi      # 0x1119a
callq 0x3640
jmp 0x64cf
movl $0x10, %edi
callq 0x31b0
movq -0x418(%rbp), %rsi
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x4a0(%rbp)
addq $0xe0, %rsi
callq 0x3590
jmp 0x64fb
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x65d5
movq -0x4a0(%rbp), %rdi
movq 0x10ad1(%rip), %rsi     # 0x16ff0
movq 0x10a9a(%rip), %rdx     # 0x16fc0
callq 0x35c0
jmp 0x65d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
jmp 0x6562
movq -0x4a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
callq 0x32c0
callq 0x35a0
jmp 0x6569
jmp 0x65a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x3e8(%rbp)
movl %eax, -0x3ec(%rbp)
callq 0x35a0
jmp 0x6584
jmp 0x65a1
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x65d5
addq $0x4b0, %rsp            # imm = 0x4B0
popq %rbp
retq
movq -0x3e8(%rbp), %rax
movq %rax, -0x4a8(%rbp)
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x65d5
movq -0x4a8(%rbp), %rdi
callq 0x35f0
movq %rax, %rdi
callq 0x7810
callq 0x33f0
nopw (%rax,%rax)