// File: textbrowser[P]zepeto/zepeto.cc
// Function: zepeto::action(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void zepeto::action(const int a, const std::string &string)
{
  try
    {
      if(string.empty())
	return;

      auto index = string.find(":");

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

      std::string paths;
      std::string variable;

      /*
      ** VARIABLE:p1:p2:...:pn
      */

      if(!(index + 1 > string.size()))
	paths = string.substr(index + 1);

      variable = string.substr(0, index);

      if(paths.empty() || variable.empty())
	return;

      std::set<std::string> set;

      do
	{
	  index = paths.find(":");

	  std::string p;

	  if(index == std::string::npos)
	    p = paths;
	  else
	    p = paths.substr(0, index);

	  if(p.empty() || paths.empty())
	    break;
	  else
	    {
	      if(index == std::string::npos)
		paths.clear();
	      else if(!(index + 1 > paths.size()))
		paths = paths.substr(index + 1);
	      else
		paths.clear();

	      struct stat sb = {};

	      if(stat(p.c_str(), &sb) != 0)
		{
		  m_output.append("echo \"The path ");
		  m_output.append(p);
		  m_output.append(" is not accessible.\"\n");
		}
	      else if(set.count(p) == 0)
		set.insert(p);
	    }
	}
      while(true);

      std::string attached;
      std::string e;

      if(m_variables.count(variable) != 0)
	e = m_variables[variable];
      else
	{
	  auto const temp = std::getenv(variable.c_str());

	  if(temp)
	    e = temp;
	}

      for(auto it = set.begin(); it != set.end(); ++it)
	if(a == ATTACH)
	  {
	    if(e.find(*it) == std::string::npos)
	      {
		attached.append(*it);
		attached.append(":");
	      }
	  }
	else if(a == DETACH)
	  {
	    index = e.find(":" + *it + ":");

	    if(index != std::string::npos)
	      /*
	      ** The directory is between other directories.
	      */

	      e.replace(index, (*it).length() + 2, ":");
	    else
	      {
		if(e.substr(0, (*it).length() + 1) == (*it) + ":")
		  /*
		  ** The directory is at the beginning.
		  */

		  e.erase(0, (*it).length() + 1);
		else
		  {
		    index = e.find(":" + *it);

		    if(index != std::string::npos &&
		       e.length() == index + (*it).length() + 1)
		      /*
		      ** The directory is at the end.
		      */

		      e.erase(index, (*it).length() + 1);
		    else if(e == *it)
		      e.clear();
		  }
	      }

	    do
	      {
		index = e.find("::");

		if(index == std::string::npos)
		  break;
		else
		  e.replace(index, 2, ":");
	      }
	    while(true);

	    if(e.substr(0, 1) == ":")
	      e.erase(0, 1);

	    if(e.length() > 0 && e.substr(e.length() - 1, 1) == ":")
	      e.erase(e.length() - 1, 1);
	  }

      if(a == ATTACH)
	{
	  if(!attached.empty())
	    {
	      if(e.empty())
		attached.erase(attached.length() - 1, 1); // Remove :.

	      m_variables[variable] = attached + e;
	    }
	}
      else if(a == DETACH)
	{
	  if(e.empty())
	    m_variables[variable].clear();
	  else
	    m_variables[variable] = e;
	}
    }
  catch(const std::bad_alloc &exception)
    {
      throw;
    }
  catch(...)
    {
      m_error.append("echo \"An error occurred within action().\"\n");
      throw std::runtime_error(m_error);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x410, %rsp            # imm = 0x410
movq %fs:0x28, %rax
movq %rax, -0x8(%rbp)
movq %rdi, -0x310(%rbp)
movl %esi, -0x314(%rbp)
movq %rdx, -0x320(%rbp)
movq -0x310(%rbp), %rax
movq %rax, -0x358(%rbp)
movq -0x320(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x407c
jmp 0x4081
jmp 0x4dc0
movq -0x320(%rbp), %rdi
leaq 0xcff4(%rip), %rsi      # 0x11083
xorl %eax, %eax
movl %eax, %edx
callq 0x3680
movq %rax, -0x328(%rbp)
cmpq $-0x1, -0x328(%rbp)
jne 0x40ae
jmp 0x4dc0
leaq -0x28(%rbp), %rdi
callq 0x34d0
leaq -0x48(%rbp), %rdi
callq 0x34d0
movq -0x328(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x360(%rbp)
movq -0x320(%rbp), %rdi
callq 0x32a0
movq %rax, %rcx
movq -0x360(%rbp), %rax
cmpq %rcx, %rax
ja 0x413f
movq -0x320(%rbp), %rsi
movq -0x328(%rbp), %rdx
incq %rdx
leaq -0x68(%rbp), %rdi
movq $-0x1, %rcx
callq 0x3390
jmp 0x4110
leaq -0x28(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x3430
leaq -0x68(%rbp), %rdi
callq 0x3250
jmp 0x413f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
jmp 0x4c8d
movq -0x320(%rbp), %rsi
movq -0x328(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x88(%rbp), %rdi
callq 0x3390
jmp 0x415f
leaq -0x48(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3430
leaq -0x88(%rbp), %rdi
callq 0x3250
leaq -0x28(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4197
leaq -0x48(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4197
jmp 0x41a6
movl $0x1, -0x338(%rbp)
jmp 0x4c41
leaq -0xb8(%rbp), %rdi
callq 0x7660
leaq -0x28(%rbp), %rdi
leaq 0xcec6(%rip), %rsi      # 0x11083
xorl %eax, %eax
movl %eax, %edx
callq 0x3680
movq %rax, -0x328(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x34d0
cmpq $-0x1, -0x328(%rbp)
jne 0x421a
leaq -0xd8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3050
jmp 0x41f5
jmp 0x4256
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x3250
jmp 0x4c81
movq -0x328(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0xf8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3390
jmp 0x4237
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3430
leaq -0xf8(%rbp), %rdi
callq 0x3250
leaq -0xd8(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4275
leaq -0x28(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4275
jmp 0x4284
movl $0x2, -0x338(%rbp)
jmp 0x440b
cmpq $-0x1, -0x328(%rbp)
jne 0x4299
leaq -0x28(%rbp), %rdi
callq 0x3490
jmp 0x430f
movq -0x328(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x368(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x32a0
movq %rax, %rcx
movq -0x368(%rbp), %rax
cmpq %rcx, %rax
ja 0x4304
movq -0x328(%rbp), %rdx
incq %rdx
leaq -0x118(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movq $-0x1, %rcx
callq 0x3390
jmp 0x42e6
leaq -0x28(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3430
leaq -0x118(%rbp), %rdi
callq 0x3250
jmp 0x430d
leaq -0x28(%rbp), %rdi
callq 0x3490
jmp 0x430f
leaq -0x1a8(%rbp), %rdi
xorl %esi, %esi
movl $0x90, %edx
callq 0x31e0
leaq -0xd8(%rbp), %rdi
callq 0x3160
movq %rax, %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3330
cmpl $0x0, %eax
je 0x4398
movq -0x358(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xcd05(%rip), %rsi      # 0x1105c
callq 0x3640
jmp 0x435e
movq -0x358(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq -0xd8(%rbp), %rsi
callq 0x3650
jmp 0x437a
movq -0x358(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
leaq 0xccdd(%rip), %rsi      # 0x1106c
callq 0x3640
jmp 0x4396
jmp 0x43ff
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x7820
movq %rax, -0x370(%rbp)
jmp 0x43b4
movq -0x370(%rbp), %rax
cmpq $0x0, %rax
jne 0x43fd
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x78a0
movb %dl, -0x379(%rbp)
movq %rax, -0x378(%rbp)
jmp 0x43e3
movb -0x379(%rbp), %al
movq -0x378(%rbp), %rcx
movq %rcx, -0x2f8(%rbp)
movb %al, -0x2f0(%rbp)
jmp 0x43ff
jmp 0x4401
movl $0x0, -0x338(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x3250
movl -0x338(%rbp), %eax
testl %eax, %eax
je 0x4425
jmp 0x4423
jmp 0x4433
jmp 0x4427
movb $0x1, %al
testb $0x1, %al
jne 0x41b2
jmp 0x4433
leaq -0x1c8(%rbp), %rdi
callq 0x34d0
leaq -0x1e8(%rbp), %rdi
callq 0x34d0
movq -0x358(%rbp), %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x7930
movq %rax, -0x388(%rbp)
jmp 0x4468
movq -0x388(%rbp), %rax
cmpq $0x0, %rax
je 0x44c0
movq -0x358(%rbp), %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x79b0
movq %rax, -0x390(%rbp)
jmp 0x4492
movq -0x390(%rbp), %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x3050
jmp 0x44a7
jmp 0x44fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
jmp 0x4c69
leaq -0x48(%rbp), %rdi
callq 0x3160
movq %rax, %rdi
callq 0x3420
movq %rax, -0x340(%rbp)
cmpq $0x0, -0x340(%rbp)
je 0x44f9
movq -0x340(%rbp), %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x34c0
jmp 0x44f7
jmp 0x44f9
jmp 0x44fb
leaq -0xb8(%rbp), %rdi
callq 0x7ac0
movq %rax, -0x300(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x7b70
movq %rax, -0x308(%rbp)
leaq -0x300(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x7b10
testb $0x1, %al
jne 0x453d
jmp 0x4ab5
cmpl $0x0, -0x314(%rbp)
jne 0x45a4
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rsi
leaq -0x1e8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3690
cmpq $-0x1, %rax
jne 0x459f
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x3650
jmp 0x4588
leaq 0xcaf4(%rip), %rsi      # 0x11083
leaq -0x1c8(%rbp), %rdi
callq 0x3640
jmp 0x459d
jmp 0x459f
jmp 0x4aa2
cmpl $0x1, -0x314(%rbp)
jne 0x4aa0
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdx
leaq 0xcabc(%rip), %rsi      # 0x11083
leaq -0x228(%rbp), %rdi
callq 0x7c80
jmp 0x45d5
leaq 0xcaa7(%rip), %rdx      # 0x11083
leaq -0x208(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x7c10
jmp 0x45f1
leaq -0x1e8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3690
movq %rax, -0x328(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x3250
leaq -0x228(%rbp), %rdi
callq 0x3250
cmpq $-0x1, -0x328(%rbp)
je 0x469e
movq -0x328(%rbp), %rax
movq %rax, -0x398(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdi
callq 0x3510
movq -0x398(%rbp), %rsi
movq %rax, %rdx
addq $0x2, %rdx
leaq 0xca1b(%rip), %rcx      # 0x11083
leaq -0x1e8(%rbp), %rdi
callq 0x3230
jmp 0x4676
jmp 0x48a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x3250
jmp 0x4c69
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdi
callq 0x3510
movq %rax, %rcx
incq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x248(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3390
jmp 0x46d1
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rsi
leaq 0xc99c(%rip), %rdx      # 0x11083
leaq -0x268(%rbp), %rdi
callq 0x7ea0
jmp 0x46f5
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x7de0
movb %al, -0x399(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x3250
leaq -0x248(%rbp), %rdi
callq 0x3250
movb -0x399(%rbp), %al
testb $0x1, %al
jne 0x4732
jmp 0x4786
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdi
callq 0x3510
movq %rax, %rdx
incq %rdx
xorl %eax, %eax
movl %eax, %esi
leaq -0x1e8(%rbp), %rdi
callq 0x30a0
jmp 0x475e
jmp 0x48a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x3250
jmp 0x4c69
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdx
leaq 0xc8e7(%rip), %rsi      # 0x11083
leaq -0x288(%rbp), %rdi
callq 0x7c80
jmp 0x47aa
leaq -0x1e8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3690
movq %rax, -0x328(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x3250
cmpq $-0x1, -0x328(%rbp)
je 0x4873
leaq -0x1e8(%rbp), %rdi
callq 0x3510
movq %rax, -0x3a8(%rbp)
movq -0x328(%rbp), %rax
movq %rax, -0x3b0(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdi
callq 0x3510
movq -0x3b0(%rbp), %rcx
movq %rax, %rdx
movq -0x3a8(%rbp), %rax
addq %rdx, %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jne 0x4873
movq -0x328(%rbp), %rax
movq %rax, -0x3b8(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rdi
callq 0x3510
movq -0x3b8(%rbp), %rsi
movq %rax, %rdx
incq %rdx
leaq -0x1e8(%rbp), %rdi
callq 0x30a0
jmp 0x4871
jmp 0x48a2
leaq -0x300(%rbp), %rdi
callq 0x7bc0
movq %rax, %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x7de0
testb $0x1, %al
jne 0x4894
jmp 0x48a0
leaq -0x1e8(%rbp), %rdi
callq 0x3490
jmp 0x48a2
jmp 0x48a4
jmp 0x48a6
jmp 0x48a8
leaq -0x1e8(%rbp), %rdi
leaq 0xc7cc(%rip), %rsi      # 0x11082
xorl %eax, %eax
movl %eax, %edx
callq 0x3680
movq %rax, -0x328(%rbp)
cmpq $-0x1, -0x328(%rbp)
jne 0x48d2
jmp 0x48ff
movq -0x328(%rbp), %rsi
leaq 0xc7a3(%rip), %rcx      # 0x11083
leaq -0x1e8(%rbp), %rdi
movl $0x2, %edx
callq 0x3230
jmp 0x48f3
jmp 0x48f5
jmp 0x48f7
movb $0x1, %al
testb $0x1, %al
jne 0x48a8
jmp 0x48ff
xorl %eax, %eax
movl %eax, %edx
leaq -0x2a8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
movl $0x1, %ecx
callq 0x3390
jmp 0x491d
leaq 0xc75f(%rip), %rsi      # 0x11083
leaq -0x2a8(%rbp), %rdi
callq 0x7f60
movb %al, -0x3b9(%rbp)
jmp 0x4938
leaq -0x2a8(%rbp), %rdi
callq 0x3250
movb -0x3b9(%rbp), %al
testb $0x1, %al
jne 0x4950
jmp 0x498c
xorl %eax, %eax
movl %eax, %esi
leaq -0x1e8(%rbp), %rdi
movl $0x1, %edx
callq 0x30a0
jmp 0x4967
jmp 0x498c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x3250
jmp 0x4c69
leaq -0x1e8(%rbp), %rdi
callq 0x3510
movq %rax, %rcx
movb $0x0, -0x341(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x3ba(%rbp)
jbe 0x4a13
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x3510
movq -0x3c8(%rbp), %rsi
movq %rax, %rdx
decq %rdx
leaq -0x2c8(%rbp), %rdi
movl $0x1, %ecx
callq 0x3390
jmp 0x49e3
movb $0x1, -0x341(%rbp)
leaq 0xc692(%rip), %rsi      # 0x11083
leaq -0x2c8(%rbp), %rdi
callq 0x7f60
movb %al, -0x3c9(%rbp)
jmp 0x4a05
movb -0x3c9(%rbp), %al
movb %al, -0x3ba(%rbp)
jmp 0x4a13
movb -0x3ba(%rbp), %al
movb %al, -0x3ca(%rbp)
testb $0x1, -0x341(%rbp)
jne 0x4a2a
jmp 0x4a36
leaq -0x2c8(%rbp), %rdi
callq 0x3250
movb -0x3ca(%rbp), %al
testb $0x1, %al
jne 0x4a42
jmp 0x4a9e
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x3510
movq -0x3d8(%rbp), %rdi
movq %rax, %rsi
decq %rsi
movl $0x1, %edx
callq 0x30a0
jmp 0x4a6e
jmp 0x4a9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
testb $0x1, -0x341(%rbp)
jne 0x4a8d
jmp 0x4a99
leaq -0x2c8(%rbp), %rdi
callq 0x3250
jmp 0x4c69
jmp 0x4aa0
jmp 0x4aa2
jmp 0x4aa4
leaq -0x300(%rbp), %rdi
callq 0x7fc0
jmp 0x450e
cmpl $0x0, -0x314(%rbp)
jne 0x4b95
leaq -0x1c8(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4b93
leaq -0x1e8(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4ae8
jmp 0x4b16
leaq -0x1c8(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x3510
movq -0x3e0(%rbp), %rdi
movq %rax, %rsi
decq %rsi
movl $0x1, %edx
callq 0x30a0
jmp 0x4b14
jmp 0x4b16
leaq -0x2e8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
callq 0x8020
jmp 0x4b32
movq -0x358(%rbp), %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x79b0
movq %rax, -0x3e8(%rbp)
jmp 0x4b4f
movq -0x3e8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x3430
leaq -0x2e8(%rbp), %rdi
callq 0x3250
jmp 0x4b93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x3250
jmp 0x4c69
jmp 0x4c13
cmpl $0x1, -0x314(%rbp)
jne 0x4c11
leaq -0x1e8(%rbp), %rdi
callq 0x35b0
testb $0x1, %al
jne 0x4bb0
jmp 0x4bdb
movq -0x358(%rbp), %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x79b0
movq %rax, -0x3f0(%rbp)
jmp 0x4bcd
movq -0x3f0(%rbp), %rdi
callq 0x3490
jmp 0x4c0f
movq -0x358(%rbp), %rdi
addq $0x20, %rdi
leaq -0x48(%rbp), %rsi
callq 0x79b0
movq %rax, -0x3f8(%rbp)
jmp 0x4bf8
movq -0x3f8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3050
jmp 0x4c0d
jmp 0x4c0f
jmp 0x4c11
jmp 0x4c13
leaq -0x1e8(%rbp), %rdi
callq 0x3250
leaq -0x1c8(%rbp), %rdi
callq 0x3250
leaq -0xb8(%rbp), %rdi
callq 0x7790
movl $0x0, -0x338(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x3250
leaq -0x28(%rbp), %rdi
callq 0x3250
movl -0x338(%rbp), %eax
testl %eax, %eax
je 0x4c64
jmp 0x4c5f
jmp 0x4dc0
jmp 0x4dc0
leaq -0x1e8(%rbp), %rdi
callq 0x3250
leaq -0x1c8(%rbp), %rdi
callq 0x3250
leaq -0xb8(%rbp), %rdi
callq 0x7790
leaq -0x48(%rbp), %rdi
callq 0x3250
leaq -0x28(%rbp), %rdi
callq 0x3250
movl -0x334(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x4ce1
movq -0x330(%rbp), %rdi
callq 0x3150
movq %rax, -0x350(%rbp)
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x4e0f
callq 0x34f0
jmp 0x4e0f
movq -0x330(%rbp), %rdi
callq 0x3150
movq -0x358(%rbp), %rdi
addq $0xe0, %rdi
leaq 0xc383(%rip), %rsi      # 0x11085
callq 0x3640
jmp 0x4d09
movl $0x10, %edi
callq 0x31b0
movq -0x358(%rbp), %rsi
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x400(%rbp)
addq $0xe0, %rsi
callq 0x3590
jmp 0x4d35
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x4e0f
movq -0x400(%rbp), %rdi
movq 0x12297(%rip), %rsi     # 0x16ff0
movq 0x12260(%rip), %rdx     # 0x16fc0
callq 0x35c0
jmp 0x4e0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
jmp 0x4d9c
movq -0x400(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
callq 0x32c0
callq 0x35a0
jmp 0x4da3
jmp 0x4ddb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x330(%rbp)
movl %eax, -0x334(%rbp)
callq 0x35a0
jmp 0x4dbe
jmp 0x4ddb
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x4e0f
addq $0x410, %rsp            # imm = 0x410
popq %rbp
retq
movq -0x330(%rbp), %rax
movq %rax, -0x408(%rbp)
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x4e0f
movq -0x408(%rbp), %rdi
callq 0x35f0
movq %rax, %rdi
callq 0x7810
callq 0x33f0
nopw %cs:(%rax,%rax)