// File: /workspace/github_cpp_makefile_star2_O1/talyerushalmy[P]SimpleFileSystem/src/Environment.cpp
// Function: Environment::handleInput(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void Environment::handleInput(const string& input)
{
	if (verbose == 2 || verbose == 3)
		std::cout << input << std::endl;

	string first_word = input.substr(0, input.find(' '));
	string args = input.substr(first_word.size(), input.size() - first_word.size());

	switch (CommandTools::stringToCommand(first_word))
	{
	case CommandType::EmptyCommandType:
		// do and print nothing
		break;
	case CommandType::CdCommandType:
	{
		CdCommand cd_command(first_word, args);
		cd_command.execute(this->fs);
		this->addToHistory(new CdCommand(cd_command));
	}
	break;
	case CommandType::CpCommandType:
	{
		CpCommand cp_command(first_word, args);
		cp_command.execute(this->fs);
		this->addToHistory(new CpCommand(cp_command));
	}
	break;
	case CommandType::ExecCommandType:
	{
		ExecCommand exec_command(first_word, args, this->getHistory());
		exec_command.execute(this->fs);
		this->addToHistory(new ExecCommand(exec_command));
	}
	break;
	case CommandType::HistoryCommandType:
	{
		HistoryCommand history_command(first_word, args, this->getHistory());
		history_command.execute(this->fs);
		this->addToHistory(new HistoryCommand(history_command));
	}
	break;
	case CommandType::LsCommandType:
	{
		LsCommand ls_command(first_word, args);
		ls_command.execute(this->fs);
		this->addToHistory(new LsCommand(ls_command));
	}
	break;
	case CommandType::MkdirCommandType:
	{
		MkdirCommand mkdir_command(first_word, args);
		mkdir_command.execute(this->fs);
		this->addToHistory(new MkdirCommand(mkdir_command));
	}
	break;
	case CommandType::MkfileCommandType:
	{
		MkfileCommand mkfile_command(first_word, args);
		mkfile_command.execute(this->fs);
		this->addToHistory(new MkfileCommand(mkfile_command));
	}
	break;
	case CommandType::MvCommandType:
	{
		MvCommand mv_command(first_word, args);
		mv_command.execute(this->fs);
		this->addToHistory(new MvCommand(mv_command));
	}
	break;
	case CommandType::PwdCommandType:
	{
		PwdCommand pwd_command(first_word, args);
		pwd_command.execute(this->fs);
		this->addToHistory(new PwdCommand(pwd_command));
	}
	break;
	case CommandType::RenameCommandType:
	{
		RenameCommand rename_command(first_word, args);
		rename_command.execute(this->fs);
		this->addToHistory(new RenameCommand(rename_command));
	}
	break;
	case CommandType::RmCommandType:
	{
		RmCommand rm_command(first_word, args);
		rm_command.execute(this->fs);
		this->addToHistory(new RmCommand(rm_command));
	}
	break;
	case CommandType::VerboseCommandType:
	{
		VerboseCommand verbose_command(first_word, args);
		verbose_command.execute(this->fs);
		this->addToHistory(new VerboseCommand(verbose_command));
	}
	break;
	case CommandType::UnknownCommandType:
	default:
		ErrorCommand error_command(first_word, args);
		error_command.execute(this->fs);
		this->addToHistory(new ErrorCommand(error_command));
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3d8, %rsp            # imm = 0x3D8
movq %rsi, %r14
movq %rdi, %rbx
leaq 0xf517(%rip), %rax      # 0x131a4
movl (%rax), %eax
andl $-0x2, %eax
cmpl $0x2, %eax
jne 0x3cd4
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0xf32b(%rip), %rdi      # 0x12fd0
callq 0x3200
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31b0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3130
movq %r14, %rdi
movl $0x20, %esi
xorl %edx, %edx
callq 0x3220
leaq -0x98(%rbp), %r15
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x31d0
movq 0x8(%r15), %rdx
movq 0x8(%r14), %rcx
subq %rdx, %rcx
leaq -0xb8(%rbp), %rdi
movq %r14, %rsi
callq 0x31d0
leaq -0x98(%rbp), %rdi
callq 0xaa5c
cmpl $0xd, %eax
ja 0x4490
movl %eax, %eax
leaq 0xa316(%rip), %rcx      # 0xe048
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x1e8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1f8(%rbp), %rdi
callq 0x3954
leaq -0x1c8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1d8(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
leaq -0x1d8(%rbp), %rdx
callq 0x592c
movq -0x1d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x3db3
callq 0x31a0
movq -0x1f8(%rbp), %rdi
cmpq %r14, %rdi
je 0x3dc4
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x575e
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xec1b(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xebf3(%rip), %rax      # 0x12a20
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x328(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x338(%rbp), %rdi
callq 0x3954
leaq -0x308(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x318(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x338(%rbp), %rsi
leaq -0x318(%rbp), %rdx
movq %rbx, %rcx
callq 0x9daa
movq -0x318(%rbp), %rdi
cmpq %r15, %rdi
je 0x3ebf
callq 0x31a0
movq -0x338(%rbp), %rdi
cmpq %r14, %rdi
je 0x3ed0
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x9ac8
movl $0x50, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xeb0f(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xec07(%rip), %rax      # 0x12b40
addq $0x10, %rax
movq %rax, (%r14)
movq -0x30(%rbp), %rax
movq %rax, 0x48(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x2a8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2b8(%rbp), %rdi
callq 0x3954
leaq -0x288(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x298(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
leaq -0x298(%rbp), %rdx
callq 0x6e36
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x3fd0
callq 0x31a0
movq -0x2b8(%rbp), %rdi
cmpq %r14, %rdi
je 0x3fe1
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x65a8
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe9fe(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xea36(%rip), %rax      # 0x12a80
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x368(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x378(%rbp), %rdi
callq 0x3954
leaq -0x348(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x358(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x378(%rbp), %rsi
leaq -0x358(%rbp), %rdx
movq %rbx, %rcx
callq 0xa9da
movq -0x358(%rbp), %rdi
cmpq %r15, %rdi
je 0x40dc
callq 0x31a0
movq -0x378(%rbp), %rdi
cmpq %r14, %rdi
je 0x40ed
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0xa5ca
movl $0x50, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe8f2(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xea4a(%rip), %rax      # 0x12ba0
addq $0x10, %rax
movq %rax, (%r14)
movq -0x30(%rbp), %rax
movq %rax, 0x48(%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x268(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x278(%rbp), %rdi
callq 0x3954
leaq -0x248(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x258(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x278(%rbp), %rsi
leaq -0x258(%rbp), %rdx
callq 0x784e
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x41ed
callq 0x31a0
movq -0x278(%rbp), %rdi
cmpq %r14, %rdi
je 0x41fe
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x6f6c
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe7e1(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe839(%rip), %rax      # 0x12aa0
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x128(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x138(%rbp), %rdi
callq 0x3954
leaq -0x108(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x118(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0xa16c
movq -0x118(%rbp), %rdi
cmpq %r15, %rdi
je 0x42f6
callq 0x31a0
movq -0x138(%rbp), %rdi
cmpq %r14, %rdi
je 0x4307
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x9eec
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe6d8(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe7f0(%rip), %rax      # 0x12b60
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x2e8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2f8(%rbp), %rdi
callq 0x3954
leaq -0x2c8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2d8(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
leaq -0x2d8(%rbp), %rdx
callq 0x6472
movq -0x2d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x43ff
callq 0x31a0
movq -0x2f8(%rbp), %rdi
cmpq %r14, %rdi
je 0x4410
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x5eb6
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe5cf(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe5e7(%rip), %rax      # 0x12a60
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0xe8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0xf8(%rbp), %rdi
callq 0x3954
leaq -0xc8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0xd8(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
callq 0xa2a2
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4508
callq 0x31a0
movq -0xf8(%rbp), %rdi
cmpq %r14, %rdi
je 0x4519
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0xa360
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe4c6(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe5fe(%rip), %rax      # 0x12b80
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x3e8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3f8(%rbp), %rdi
callq 0x3954
leaq -0x3c8(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3d8(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
leaq -0x3d8(%rbp), %rdx
callq 0x5d80
movq -0x3d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4611
callq 0x31a0
movq -0x3f8(%rbp), %rdi
cmpq %r14, %rdi
je 0x4622
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x5a62
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe3bd(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe3b5(%rip), %rax      # 0x12a40
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x3a8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3b8(%rbp), %rdi
callq 0x3954
leaq -0x388(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x398(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
leaq -0x398(%rbp), %rdx
callq 0x80ee
movq -0x398(%rbp), %rdi
cmpq %r15, %rdi
je 0x471a
callq 0x31a0
movq -0x3b8(%rbp), %rdi
cmpq %r14, %rdi
je 0x472b
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x7984
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe2b4(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe32c(%rip), %rax      # 0x12ac0
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x228(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x238(%rbp), %rdi
callq 0x3954
leaq -0x208(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x218(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x238(%rbp), %rsi
leaq -0x218(%rbp), %rdx
callq 0x8afc
movq -0x218(%rbp), %rdi
cmpq %r15, %rdi
je 0x4823
callq 0x31a0
movq -0x238(%rbp), %rdi
cmpq %r14, %rdi
je 0x4834
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x8224
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe1ab(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe243(%rip), %rax      # 0x12ae0
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x168(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x178(%rbp), %rdi
callq 0x3954
leaq -0x148(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x158(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x178(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x9986
movq -0x158(%rbp), %rdi
cmpq %r15, %rdi
je 0x492c
callq 0x31a0
movq -0x178(%rbp), %rdi
cmpq %r14, %rdi
je 0x493d
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x9326
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xe0a2(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe17a(%rip), %rax      # 0x12b20
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
jmp 0x4ac1
leaq -0x1a8(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x1b8(%rbp), %rdi
callq 0x3954
leaq -0x188(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x198(%rbp), %rdi
callq 0x3954
leaq -0x78(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0x198(%rbp), %rdx
callq 0x91f0
movq -0x198(%rbp), %rdi
cmpq %r15, %rdi
je 0x4a35
callq 0x31a0
movq -0x1b8(%rbp), %rdi
cmpq %r14, %rdi
je 0x4a46
callq 0x31a0
leaq 0x18(%rbx), %rsi
leaq -0x78(%rbp), %rdi
callq 0x8c32
movl $0x48, %edi
callq 0x31c0
movq %rax, %r14
leaq 0xdf99(%rip), %r12      # 0x12a00
movq %r12, (%rax)
leaq 0x8(%rax), %r15
leaq 0x18(%rax), %r13
movq %r13, 0x8(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x3954
leaq 0x28(%r14), %rdi
movq %r14, %rax
addq $0x38, %rax
movq %rax, 0x28(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x3954
leaq 0xe051(%rip), %rax      # 0x12b00
addq $0x10, %rax
movq %rax, (%r14)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e16
leaq -0x40(%rbp), %rax
movq %r12, -0x38(%rax)
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4ad7
callq 0x31a0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4ae9
callq 0x31a0
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4afe
callq 0x31a0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4b13
callq 0x31a0
addq $0x3d8, %rsp            # imm = 0x3D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
jmp 0x4b3d
movq %rax, %rbx
movq (%r15), %rdi
cmpq %r13, %rdi
je 0x4b6a
callq 0x31a0
jmp 0x4b6a
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
jmp 0x4b67
movq %rax, %rbx
movq %r14, %rdi
callq 0x31a0
jmp 0x4dd1
movq %rax, %rbx
movq -0x198(%rbp), %rdi
cmpq %r15, %rdi
je 0x4cf3
callq 0x31a0
jmp 0x4cf3
movq %rax, %rbx
movq -0x158(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d02
callq 0x31a0
jmp 0x4d02
movq %rax, %rbx
movq -0x218(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d11
callq 0x31a0
jmp 0x4d11
movq %rax, %rbx
movq -0x398(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d1d
callq 0x31a0
jmp 0x4d1d
movq %rax, %rbx
movq -0x3d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d29
callq 0x31a0
jmp 0x4d29
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d41
callq 0x31a0
jmp 0x4d41
movq %rax, %rbx
movq -0x1d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d35
callq 0x31a0
jmp 0x4d35
movq %rax, %rbx
movq -0x2d8(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d4d
callq 0x31a0
jmp 0x4d4d
movq %rax, %rbx
movq -0x118(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d59
callq 0x31a0
jmp 0x4d59
movq %rax, %rbx
movq -0x258(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d65
callq 0x31a0
jmp 0x4d65
movq %rax, %rbx
movq -0x358(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d71
callq 0x31a0
jmp 0x4d71
movq %rax, %rbx
movq -0x298(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d7d
callq 0x31a0
jmp 0x4d7d
movq %rax, %rbx
movq -0x318(%rbp), %rdi
cmpq %r15, %rdi
je 0x4d89
callq 0x31a0
jmp 0x4d89
movq %rax, %rbx
movq -0x1b8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x178(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x238(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x3b8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x3f8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x1f8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0xf8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x2f8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x138(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x278(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x378(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x2b8(%rbp), %rdi
jmp 0x4d90
movq %rax, %rbx
movq -0x338(%rbp), %rdi
cmpq %r14, %rdi
je 0x4ddf
callq 0x31a0
jmp 0x4ddf
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4ddc
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
jmp 0x4dce
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x530e
jmp 0x4ddf
movq %rax, %rbx
leaq -0xa8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4df4
callq 0x31a0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4e09
callq 0x31a0
movq %rbx, %rdi
callq 0x32b0
movq %rax, %rbx
jmp 0x4df4