// File: MarkCBell[P]twister/./twister/kernel/twister_main.cpp
// Function: parse_input(int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, Manifold_type&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void parse_input(int argc, char **argv, std::string &surface_file, std::string &output_file, std::string &warning_file, std::string &name, Manifold_type &manifold_type, std::string &gluing, std::string &handles)
{
	// Set default values.
	surface_file = "";
	output_file = "";
	GLOBAL_message_stream = "";
	name = "";
	manifold_type = bundle;
	gluing = "";
	handles = "";
	
	if (argc == 1)
	{
		print_help(std::cout);
		exit(0);
	}
	
	if (argc >= 2)
	{
		for (int i = 1; i < argc; i++)
		{
			if (strcmp(argv[i], "--help") == 0)
			{
				print_help(std::cout);
				exit(0);
			}
				else if (strcmp(argv[i], "--version") == 0)
			{
				std::cout << "Twister " + version << std::endl;
				exit(0);
			}
			else if (strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--surface") == 0)
			{
				// Really should check that the next entry is a word, _not_ a flag.
				if (++i == argc) 
					output_error("-f requires a surface file.");
				
				surface_file = argv[i];
			}
			else if (strcmp(argv[i], "-o") == 0 || strcmp(argv[i], "--output") == 0)
			{
				// Really should check that the next entry is a word, _not_ a flag.
				if (++i == argc) 
					output_error("-o requires an output file.");
				
				output_file = argv[i];
			}
			else if (strcmp(argv[i], "-ow") == 0 || strcmp(argv[i], "--output-warnings") == 0)
			{
				// Really should check that the next entry is a word, _not_ a flag.
				if (++i == argc) 
					output_error("-ow requires an output warning file.");
				
				warning_file = argv[i];
			}
			else if (strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--splitting") == 0)
			{
				// Really should check that the next entry is a gluing, _not_ a flag.
				if (++i == argc)
					output_error("-s requires a gluing.");
				
				manifold_type = splitting;
				gluing = argv[i];
			}
			else if (strcmp(argv[i], "-b") == 0 || strcmp(argv[i], "--bundle") == 0)
			{
				// Really should check that the next entry is a monodromy, _not_ a flag.
				if (++i == argc)
					output_error("-b requires a monodromy.");
				
				manifold_type = bundle;
				gluing = argv[i];
			}
			else if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--handles") == 0)
			{
				// Really should check that the next entry is a handles_list, _not_ a flag.
				if (++i == argc)
					output_error("-h requires a collecton of handles to attach.");
				
				handles = argv[i];
				manifold_type = splitting;
			}
			else if (strcmp(argv[i], "-n") == 0 || strcmp(argv[i], "--name") == 0)
			{
				// Really should check that the next entry is a name, _not_ a flag.
				if (++i == argc)
					output_error("-n requires a manifold name.");
				
				name = argv[i];
			}
			else if (strcmp(argv[i], "-p") == 0)
			{
				GLOBAL_calculate_peripheral_curves = false;
			}
			else if (strcmp(argv[i], "-w") == 0 || strcmp(argv[i], "--warnings") == 0)
			{
				GLOBAL_warnings = false;
			}
			else if (strcmp(argv[i], "-O") == 0 || strcmp(argv[i], "--optimisations") == 0)
			{
				GLOBAL_optimise = false;  // Turns off foldoff really.
			}
			else if (strcmp(argv[i], "-d") == 0 || strcmp(argv[i], "--debugging") == 0)
			{
				if (++i == argc)
					output_error("-d requires a debugging level.");
				if (! isdigit(argv[i][0]))
					output_error("debugging level must be an integer.");
				
				GLOBAL_debugging_level = atoi(argv[i]);
			}
			else
			{
				output_warning("Unexpected input at the command line.");
			}
		}
	}
	
	if (surface_file == "")
		output_error("No surface file specified.");
	
	// If no name was specified we rebuild the command given (in a nice order).
	if (name == "")
	{
		name = "-f \"" + surface_file + "\"";
		if (manifold_type == bundle) name += " -b \"" + gluing + "\"";
		else if (manifold_type == splitting) name += " -s \"" + gluing + "\" -h \"" + handles + "\"";
		
		if (GLOBAL_calculate_peripheral_curves == false) name += " -p ";
		if (GLOBAL_optimise == false) name += " -O ";
	}
	
	// SnapPea can't handle long names though.
	if (int(name.size()) > max_name_length)
	{
		output_warning("Name truncated. SnapPea can't handle triangulations with more that " + max_name_length_string + " character names.");
		name = name.substr(0, max_name_length);
	}
	
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x410, %rsp            # imm = 0x410
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x2569(%rip), %rsi      # 0x272f2
callq 0x3420
movq -0x20(%rbp), %rdi
leaq 0x2559(%rip), %rsi      # 0x272f2
callq 0x3420
leaq 0x10673(%rip), %rdi     # 0x35418
leaq 0x2546(%rip), %rsi      # 0x272f2
callq 0x3420
movq -0x30(%rbp), %rdi
leaq 0x2536(%rip), %rsi      # 0x272f2
callq 0x3420
movq 0x10(%rbp), %rax
movl $0x1, (%rax)
movq 0x18(%rbp), %rdi
leaq 0x251c(%rip), %rsi      # 0x272f2
callq 0x3420
movq 0x20(%rbp), %rdi
leaq 0x250c(%rip), %rsi      # 0x272f2
callq 0x3420
cmpl $0x1, -0x4(%rbp)
jne 0x24e04
movq 0x101d8(%rip), %rdi     # 0x34fd0
callq 0x248b0
xorl %edi, %edi
callq 0x33b0
cmpl $0x2, -0x4(%rbp)
jl 0x258ed
movl $0x1, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x4(%rbp), %eax
jge 0x258eb
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3245(%rip), %rsi      # 0x28079
callq 0x3440
cmpl $0x0, %eax
jne 0x24e51
movq 0x1018b(%rip), %rdi     # 0x34fd0
callq 0x248b0
xorl %edi, %edi
callq 0x33b0
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x321c(%rip), %rsi      # 0x28080
callq 0x3440
cmpl $0x0, %eax
jne 0x24ee7
leaq 0x3215(%rip), %rsi      # 0x2808a
leaq 0x108ec(%rip), %rdx     # 0x35768
leaq -0x58(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x4ec0
movq -0x390(%rbp), %rsi
movq 0x10136(%rip), %rdi     # 0x34fd0
callq 0x32a0
movq %rax, -0x388(%rbp)
jmp 0x24ea8
movq -0x388(%rbp), %rdi
movq 0x10102(%rip), %rsi     # 0x34fb8
callq 0x3340
jmp 0x24ebd
leaq -0x58(%rbp), %rdi
callq 0x35f8
xorl %edi, %edi
callq 0x33b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x35f8
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3199(%rip), %rsi      # 0x28093
callq 0x3440
cmpl $0x0, %eax
je 0x24f25
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x317f(%rip), %rsi      # 0x28096
callq 0x3440
cmpl $0x0, %eax
jne 0x24fdf
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x24fc5
leaq -0x89(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x3560
movq -0x398(%rbp), %rdx
leaq 0x3148(%rip), %rsi      # 0x280a0
leaq -0x88(%rbp), %rdi
callq 0x4e10
jmp 0x24f66
leaq -0x88(%rbp), %rdi
callq 0x4d40
jmp 0x24f74
leaq -0x88(%rbp), %rdi
callq 0x35f8
leaq -0x89(%rbp), %rdi
callq 0x3360
jmp 0x24fc5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x24fb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x35f8
leaq -0x89(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x18(%rbp), %rdi
callq 0x3420
jmp 0x258d7
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x30ca(%rip), %rsi      # 0x280bc
callq 0x3440
cmpl $0x0, %eax
je 0x2501d
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x30b0(%rip), %rsi      # 0x280bf
callq 0x3440
cmpl $0x0, %eax
jne 0x250d7
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x250bd
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x3560
movq -0x3a0(%rbp), %rdx
leaq 0x3078(%rip), %rsi      # 0x280c8
leaq -0xb0(%rbp), %rdi
callq 0x4e10
jmp 0x2505e
leaq -0xb0(%rbp), %rdi
callq 0x4d40
jmp 0x2506c
leaq -0xb0(%rbp), %rdi
callq 0x35f8
leaq -0xb1(%rbp), %rdi
callq 0x3360
jmp 0x250bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x250ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x35f8
leaq -0xb1(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x20(%rbp), %rdi
callq 0x3420
jmp 0x258d5
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2ffa(%rip), %rsi      # 0x280e4
callq 0x3440
cmpl $0x0, %eax
je 0x25115
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2fe1(%rip), %rsi      # 0x280e8
callq 0x3440
cmpl $0x0, %eax
jne 0x251cf
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x251b5
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x3560
movq -0x3a8(%rbp), %rdx
leaq 0x2fb2(%rip), %rsi      # 0x280fa
leaq -0xd8(%rbp), %rdi
callq 0x4e10
jmp 0x25156
leaq -0xd8(%rbp), %rdi
callq 0x4d40
jmp 0x25164
leaq -0xd8(%rbp), %rdi
callq 0x35f8
leaq -0xd9(%rbp), %rdi
callq 0x3360
jmp 0x251b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x251a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x35f8
leaq -0xd9(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x28(%rbp), %rdi
callq 0x3420
jmp 0x258d3
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2f3d(%rip), %rsi      # 0x2811f
callq 0x3440
cmpl $0x0, %eax
je 0x2520d
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2f23(%rip), %rsi      # 0x28122
callq 0x3440
cmpl $0x0, %eax
jne 0x252d1
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x252ad
leaq -0x101(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x3560
movq -0x3b0(%rbp), %rdx
leaq 0x2eee(%rip), %rsi      # 0x2812e
leaq -0x100(%rbp), %rdi
callq 0x4e10
jmp 0x2524e
leaq -0x100(%rbp), %rdi
callq 0x4d40
jmp 0x2525c
leaq -0x100(%rbp), %rdi
callq 0x35f8
leaq -0x101(%rbp), %rdi
callq 0x3360
jmp 0x252ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2529c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x35f8
leaq -0x101(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0x18(%rbp), %rdi
callq 0x3420
jmp 0x258d1
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2e60(%rip), %rsi      # 0x28144
callq 0x3440
cmpl $0x0, %eax
je 0x2530f
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2e46(%rip), %rsi      # 0x28147
callq 0x3440
cmpl $0x0, %eax
jne 0x253d3
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x253af
leaq -0x129(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x3560
movq -0x3b8(%rbp), %rdx
leaq 0x2e0e(%rip), %rsi      # 0x28150
leaq -0x128(%rbp), %rdi
callq 0x4e10
jmp 0x25350
leaq -0x128(%rbp), %rdi
callq 0x4d40
jmp 0x2535e
leaq -0x128(%rbp), %rdi
callq 0x35f8
leaq -0x129(%rbp), %rdi
callq 0x3360
jmp 0x253af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x2539e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x35f8
leaq -0x129(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq 0x10(%rbp), %rax
movl $0x1, (%rax)
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0x18(%rbp), %rdi
callq 0x3420
jmp 0x258cf
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2d83(%rip), %rsi      # 0x28169
callq 0x3440
cmpl $0x0, %eax
je 0x25411
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2d69(%rip), %rsi      # 0x2816c
callq 0x3440
cmpl $0x0, %eax
jne 0x254d5
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x254b1
leaq -0x151(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x3560
movq -0x3c0(%rbp), %rdx
leaq 0x2d32(%rip), %rsi      # 0x28176
leaq -0x150(%rbp), %rdi
callq 0x4e10
jmp 0x25452
leaq -0x150(%rbp), %rdi
callq 0x4d40
jmp 0x25460
leaq -0x150(%rbp), %rdi
callq 0x35f8
leaq -0x151(%rbp), %rdi
callq 0x3360
jmp 0x254b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x254a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x35f8
leaq -0x151(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq 0x20(%rbp), %rdi
callq 0x3420
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
jmp 0x258cd
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2cbc(%rip), %rsi      # 0x281a4
callq 0x3440
cmpl $0x0, %eax
je 0x25513
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2ca2(%rip), %rsi      # 0x281a7
callq 0x3440
cmpl $0x0, %eax
jne 0x255cd
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x255b3
leaq -0x179(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x3560
movq -0x3c8(%rbp), %rdx
leaq 0x2c68(%rip), %rsi      # 0x281ae
leaq -0x178(%rbp), %rdi
callq 0x4e10
jmp 0x25554
leaq -0x178(%rbp), %rdi
callq 0x4d40
jmp 0x25562
leaq -0x178(%rbp), %rdi
callq 0x35f8
leaq -0x179(%rbp), %rdi
callq 0x3360
jmp 0x255b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x255a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x35f8
leaq -0x179(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x30(%rbp), %rdi
callq 0x3420
jmp 0x258cb
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2beb(%rip), %rsi      # 0x281cb
callq 0x3440
cmpl $0x0, %eax
jne 0x255f9
leaq 0xfd19(%rip), %rax      # 0x3530a
movb $0x0, (%rax)
jmp 0x258c9
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2bc2(%rip), %rsi      # 0x281ce
callq 0x3440
cmpl $0x0, %eax
je 0x25633
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2ba8(%rip), %rsi      # 0x281d1
callq 0x3440
cmpl $0x0, %eax
jne 0x25642
leaq 0xfcce(%rip), %rax      # 0x35308
movb $0x0, (%rax)
jmp 0x258c7
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2b87(%rip), %rsi      # 0x281dc
callq 0x3440
cmpl $0x0, %eax
je 0x2567c
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2b6d(%rip), %rsi      # 0x281df
callq 0x3440
cmpl $0x0, %eax
jne 0x2568b
leaq 0xfc86(%rip), %rax      # 0x35309
movb $0x0, (%rax)
jmp 0x258c5
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2b51(%rip), %rsi      # 0x281ef
callq 0x3440
cmpl $0x0, %eax
je 0x256c9
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x2b37(%rip), %rsi      # 0x281f2
callq 0x3440
cmpl $0x0, %eax
jne 0x25835
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
cmpl -0x4(%rbp), %eax
jne 0x25769
leaq -0x1a1(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x3560
movq -0x3d0(%rbp), %rdx
leaq 0x2b02(%rip), %rsi      # 0x281fe
leaq -0x1a0(%rbp), %rdi
callq 0x4e10
jmp 0x2570a
leaq -0x1a0(%rbp), %rdi
callq 0x4d40
jmp 0x25718
leaq -0x1a0(%rbp), %rdi
callq 0x35f8
leaq -0x1a1(%rbp), %rdi
callq 0x3360
jmp 0x25769
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x35f8
leaq -0x1a1(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %edi
callq 0x32b0
cmpl $0x0, %eax
jne 0x25814
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x3560
movq -0x3d8(%rbp), %rdx
leaq 0x2a76(%rip), %rsi      # 0x2821d
leaq -0x1c8(%rbp), %rdi
callq 0x4e10
jmp 0x257b5
leaq -0x1c8(%rbp), %rdi
callq 0x4d40
jmp 0x257c3
leaq -0x1c8(%rbp), %rdi
callq 0x35f8
leaq -0x1c9(%rbp), %rdi
callq 0x3360
jmp 0x25814
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x35f8
leaq -0x1c9(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x10(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x34a0
movl %eax, %ecx
leaq 0xfbe2(%rip), %rax      # 0x35410
movl %ecx, (%rax)
jmp 0x258c3
leaq -0x1f1(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x3560
movq -0x3e0(%rbp), %rdx
leaq 0x29eb(%rip), %rsi      # 0x28241
leaq -0x1f0(%rbp), %rdi
callq 0x4e10
jmp 0x25864
leaq -0x1f0(%rbp), %rdi
callq 0x4c90
jmp 0x25872
leaq -0x1f0(%rbp), %rdi
callq 0x35f8
leaq -0x1f1(%rbp), %rdi
callq 0x3360
jmp 0x258c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x258b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x35f8
leaq -0x1f1(%rbp), %rdi
callq 0x3360
jmp 0x25d37
jmp 0x258c5
jmp 0x258c7
jmp 0x258c9
jmp 0x258cb
jmp 0x258cd
jmp 0x258cf
jmp 0x258d1
jmp 0x258d3
jmp 0x258d5
jmp 0x258d7
jmp 0x258d9
jmp 0x258db
jmp 0x258dd
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x24e15
jmp 0x258ed
movq -0x18(%rbp), %rdi
leaq 0x19fa(%rip), %rsi      # 0x272f2
callq 0x8ca0
testb $0x1, %al
jne 0x25906
jmp 0x25994
leaq -0x219(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x3560
movq -0x3e8(%rbp), %rdx
leaq 0x2940(%rip), %rsi      # 0x28267
leaq -0x218(%rbp), %rdi
callq 0x4e10
jmp 0x25935
leaq -0x218(%rbp), %rdi
callq 0x4d40
jmp 0x25943
leaq -0x218(%rbp), %rdi
callq 0x35f8
leaq -0x219(%rbp), %rdi
callq 0x3360
jmp 0x25994
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25983
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x35f8
leaq -0x219(%rbp), %rdi
callq 0x3360
jmp 0x25d37
movq -0x30(%rbp), %rdi
leaq 0x1953(%rip), %rsi      # 0x272f2
callq 0x8ca0
testb $0x1, %al
jne 0x259ad
jmp 0x25c4e
movq -0x18(%rbp), %rdx
leaq 0x28ca(%rip), %rsi      # 0x28282
leaq -0x260(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x4ec0
movq -0x3f0(%rbp), %rsi
leaq 0x28b2(%rip), %rdx      # 0x2828b
leaq -0x240(%rbp), %rdi
callq 0x4fd0
jmp 0x259e7
movq -0x30(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x33c0
leaq -0x240(%rbp), %rdi
callq 0x35f8
leaq -0x260(%rbp), %rdi
callq 0x35f8
movq 0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x25ad9
movq 0x18(%rbp), %rdx
leaq 0x2860(%rip), %rsi      # 0x28287
leaq -0x2a0(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x4ec0
movq -0x3f8(%rbp), %rsi
leaq 0x2843(%rip), %rdx      # 0x2828b
leaq -0x280(%rbp), %rdi
callq 0x4fd0
jmp 0x25a56
movq -0x30(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x33e0
jmp 0x25a68
leaq -0x280(%rbp), %rdi
callq 0x35f8
leaq -0x2a0(%rbp), %rdi
callq 0x35f8
jmp 0x25c06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x35f8
jmp 0x25d37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x35f8
leaq -0x2a0(%rbp), %rdi
callq 0x35f8
jmp 0x25d37
movq 0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x25c04
movq 0x18(%rbp), %rdx
leaq 0x279c(%rip), %rsi      # 0x2828d
leaq -0x320(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x4ec0
movq -0x400(%rbp), %rsi
leaq 0x2781(%rip), %rdx      # 0x28293
leaq -0x300(%rbp), %rdi
callq 0x4fd0
jmp 0x25b20
movq 0x20(%rbp), %rdx
leaq -0x2e0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x99d0
jmp 0x25b39
leaq 0x274b(%rip), %rdx      # 0x2828b
leaq -0x2c0(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x4fd0
jmp 0x25b55
movq -0x30(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x33e0
jmp 0x25b67
leaq -0x2c0(%rbp), %rdi
callq 0x35f8
leaq -0x2e0(%rbp), %rdi
callq 0x35f8
leaq -0x300(%rbp), %rdi
callq 0x35f8
leaq -0x320(%rbp), %rdi
callq 0x35f8
jmp 0x25c04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25bf3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25be7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25bdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x35f8
leaq -0x2e0(%rbp), %rdi
callq 0x35f8
leaq -0x300(%rbp), %rdi
callq 0x35f8
leaq -0x320(%rbp), %rdi
callq 0x35f8
jmp 0x25d37
jmp 0x25c06
leaq 0xf6fd(%rip), %rax      # 0x3530a
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x25c29
movq -0x30(%rbp), %rdi
leaq 0x2676(%rip), %rsi      # 0x2829a
callq 0x32d0
leaq 0xf6d9(%rip), %rax      # 0x35309
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x25c4c
movq -0x30(%rbp), %rdi
leaq 0x2658(%rip), %rsi      # 0x2829f
callq 0x32d0
jmp 0x25c4e
movq -0x30(%rbp), %rdi
callq 0x31f0
cmpl $0x63, %eax
jle 0x25d2e
leaq 0x263d(%rip), %rsi      # 0x282a4
leaq 0xfb1a(%rip), %rdx      # 0x35788
leaq -0x360(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x4ec0
movq -0x408(%rbp), %rsi
leaq 0x2659(%rip), %rdx      # 0x282e8
leaq -0x340(%rbp), %rdi
callq 0x4fd0
jmp 0x25c9d
leaq -0x340(%rbp), %rdi
callq 0x4c90
jmp 0x25cab
leaq -0x340(%rbp), %rdi
callq 0x35f8
leaq -0x360(%rbp), %rdi
callq 0x35f8
movq -0x30(%rbp), %rsi
leaq -0x380(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
movl $0x63, %ecx
callq 0x3320
movq -0x30(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x33c0
leaq -0x380(%rbp), %rdi
callq 0x35f8
jmp 0x25d2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x25d20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x340(%rbp), %rdi
callq 0x35f8
leaq -0x360(%rbp), %rdi
callq 0x35f8
jmp 0x25d37
addq $0x410, %rsp            # imm = 0x410
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0x3550