// File: /workspace/github_cpp_makefile_star2_O1/Nallantli[P]Rossa/main/Main.cpp
// Function: parseOptions[abi:cxx11](int, char const**)
inline const std::pair<std::map<std::string, std::string>, std::vector<std::string>> parseOptions(int argc, char const *argv[])
{
	std::map<std::string, std::string> options = {
		{"tree", "false"},
		{"version", "false"},
		{"standard", "true"},
		{"file", ""},
		{"output", ""}};
	std::vector<std::string> passed;

	bool flag = false;

	for (int i = 1; i < argc; i++)
	{
		if (flag == false && argv[i][0] == '-')
		{
			if (std::string(argv[i]) == "--tree" || std::string(argv[i]) == "-t")
				options["tree"] = "true";
			else if (std::string(argv[i]) == "--no-standard" || std::string(argv[i]) == "-ns")
				options["standard"] = "false";
			else if (std::string(argv[i]) == "--version" || std::string(argv[i]) == "-v")
				options["version"] = "true";
			else if (std::string(argv[i]) == "--output" || std::string(argv[i]) == "-o")
				options["output"] = argv[++i];
			else
			{
				std::cerr << "Unknown command line option: " << argv[i] << "\n";
				exit(1);
			}
		}
		else if (flag == false)
		{
			flag = true;
			options["file"] = argv[i];
		}
		else
			passed.push_back(argv[i]);
	}

	return {options, passed};
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
movq %rdx, %r14
movl %esi, 0x1c(%rsp)
movq %rdi, %rbx
leaq 0x48(%rsp), %r12
leaq 0x67766(%rip), %rsi     # 0x841a4
leaq 0x67757(%rip), %rdx     # 0x8419c
movq %r12, %r15
movq %r12, %rdi
callq 0x1d93e
leaq 0x88(%rsp), %r15
leaq 0x67761(%rip), %rsi     # 0x841c0
leaq 0x67736(%rip), %rdx     # 0x8419c
movq %r15, %rdi
callq 0x1d9bc
leaq 0xc8(%rsp), %r15
leaq 0x67734(%rip), %rsi     # 0x841b1
leaq 0x675c7(%rip), %rdx     # 0x8404b
movq %r15, %rdi
callq 0x1da3a
leaq 0x108(%rsp), %r15
leaq 0x67623(%rip), %rsi     # 0x840be
leaq 0x676cc(%rip), %rdx     # 0x8416e
movq %r15, %rdi
callq 0x1dab8
leaq 0x148(%rsp), %r15
leaq 0x67714(%rip), %rsi     # 0x841cd
leaq 0x676ae(%rip), %rdx     # 0x8416e
movq %r15, %rdi
callq 0x1db36
movq %rbx, 0x40(%rsp)
leaq 0x188(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x1d8(%rsp), %rcx
leaq 0x1b8(%rsp), %r8
movl $0x5, %edx
callq 0x1dbea
movq $-0x140, %rbx           # imm = 0xFEC0
leaq 0x178(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x1cb17
movq (%r15), %rsi
incq %rsi
callq 0x103d0
movq -0x30(%r15), %rdi
leaq -0x20(%r15), %rax
cmpq %rdi, %rax
je 0x1cb2f
movq (%rax), %rsi
incq %rsi
callq 0x103d0
addq $-0x40, %r15
addq $0x40, %rbx
jne 0x1cb03
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
cmpl $0x2, 0x1c(%rsp)
jl 0x1d076
movl $0x1, %ebp
xorl %r12d, %r12d
leaq 0x48(%rsp), %r15
movq %r14, 0x10(%rsp)
testb $0x1, %r12b
jne 0x1cbdc
movslq %ebp, %rbx
movq (%r14,%rbx,8), %r13
cmpb $0x2d, (%r13)
jne 0x1cc1f
movq %r15, %rdi
movq %r13, %rsi
leaq 0xf(%rsp), %rdx
callq 0x1d238
movq %r15, %rdi
leaq 0x67609(%rip), %rsi     # 0x841a2
callq 0x10110
movl %eax, %r13d
testl %eax, %eax
je 0x1cca1
movq (%r14,%rbx,8), %rsi
leaq 0x1d8(%rsp), %r14
movq %r14, %rdi
leaq 0x1b(%rsp), %rdx
callq 0x1d238
movq %r14, %rdi
leaq 0x675dd(%rip), %rsi     # 0x841a9
callq 0x10110
testl %eax, %eax
sete %r14b
jmp 0x1cca4
movslq %ebp, %rax
movq (%r14,%rax,8), %rsi
movq %r15, %rdi
leaq 0xf(%rsp), %rdx
callq 0x1d238
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1e122
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1cc90
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x1cc90
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r15, %rdi
leaq 0x6748b(%rip), %rsi     # 0x840be
leaq 0x67488(%rip), %rdx     # 0x840c2
callq 0x1e7ca
leaq 0x188(%rsp), %rdi
movq %r15, %rsi
callq 0x1d1bc
movq %rax, %rbx
movq 0x8(%rax), %r12
movq %r13, %rdi
callq 0x101c0
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
movq %r13, %rcx
movq %rax, %r8
callq 0x105f0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1cc8d
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
movb $0x1, %r12b
incl %ebp
cmpl 0x1c(%rsp), %ebp
jl 0x1cb67
jmp 0x1d076
movb $0x1, %r14b
testl %r13d, %r13d
je 0x1ccce
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x1ccce
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1ccea
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
testb %r14b, %r14b
je 0x1cd44
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r15, %rdi
leaq 0x674a1(%rip), %rsi     # 0x841a4
leaq 0x6749e(%rip), %rdx     # 0x841a8
callq 0x1e7ca
movq 0x10(%rsp), %r14
leaq 0x188(%rsp), %rdi
movq %r15, %rsi
callq 0x1d1bc
movq 0x8(%rax), %rdx
movl $0x4, %r8d
movq %rax, %rdi
xorl %esi, %esi
leaq 0x67311(%rip), %rcx     # 0x8404b
callq 0x105f0
jmp 0x1cbfd
movq 0x10(%rsp), %r14
movq (%r14,%rbx,8), %rsi
movq %r15, %rdi
leaq 0xf(%rsp), %rdx
callq 0x1d238
movq %r15, %rdi
leaq 0x67448(%rip), %rsi     # 0x841ac
callq 0x10110
movl %eax, %r13d
testl %eax, %eax
je 0x1cda0
movq (%r14,%rbx,8), %rsi
leaq 0x1b8(%rsp), %r14
movq %r14, %rdi
leaq 0x1a(%rsp), %rdx
callq 0x1d238
movq %r14, %rdi
leaq 0x67427(%rip), %rsi     # 0x841ba
callq 0x10110
testl %eax, %eax
sete %r14b
jmp 0x1cda3
movb $0x1, %r14b
testl %r13d, %r13d
je 0x1cdcd
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x1cdcd
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1cde9
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
testb %r14b, %r14b
je 0x1ce43
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r15, %rdi
leaq 0x673af(%rip), %rsi     # 0x841b1
leaq 0x673b0(%rip), %rdx     # 0x841b9
callq 0x1e7ca
movq 0x10(%rsp), %r14
leaq 0x188(%rsp), %rdi
movq %r15, %rsi
callq 0x1d1bc
movq 0x8(%rax), %rdx
movl $0x5, %r8d
movq %rax, %rdi
xorl %esi, %esi
leaq 0x67363(%rip), %rcx     # 0x8419c
callq 0x105f0
jmp 0x1cbfd
movq 0x10(%rsp), %r14
movq (%r14,%rbx,8), %rsi
movq %r15, %rdi
leaq 0xf(%rsp), %rdx
callq 0x1d238
movq %r15, %rdi
leaq 0x6735b(%rip), %rsi     # 0x841be
callq 0x10110
movl %eax, %r13d
testl %eax, %eax
je 0x1ce9f
movq (%r14,%rbx,8), %rsi
leaq 0x218(%rsp), %r14
movq %r14, %rdi
leaq 0x19(%rsp), %rdx
callq 0x1d238
movq %r14, %rdi
leaq 0x67336(%rip), %rsi     # 0x841c8
callq 0x10110
testl %eax, %eax
sete %r14b
jmp 0x1cea2
movb $0x1, %r14b
testl %r13d, %r13d
je 0x1cecc
movq 0x218(%rsp), %rdi
leaq 0x228(%rsp), %rax
cmpq %rax, %rdi
je 0x1cecc
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1cee8
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
testb %r14b, %r14b
je 0x1cf42
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r15, %rdi
leaq 0x672bf(%rip), %rsi     # 0x841c0
leaq 0x672bf(%rip), %rdx     # 0x841c7
callq 0x1e7ca
movq 0x10(%rsp), %r14
leaq 0x188(%rsp), %rdi
movq %r15, %rsi
callq 0x1d1bc
movq 0x8(%rax), %rdx
movl $0x4, %r8d
movq %rax, %rdi
xorl %esi, %esi
leaq 0x67113(%rip), %rcx     # 0x8404b
callq 0x105f0
jmp 0x1cbfd
movq 0x10(%rsp), %r14
movq (%r14,%rbx,8), %rsi
movq %r15, %rdi
leaq 0xf(%rsp), %rdx
callq 0x1d238
movq %r15, %rdi
leaq 0x67269(%rip), %rsi     # 0x841cb
callq 0x10110
movl %eax, %r13d
testl %eax, %eax
je 0x1cf9e
movq (%r14,%rbx,8), %rsi
leaq 0x1f8(%rsp), %r14
movq %r14, %rdi
leaq 0x18(%rsp), %rdx
callq 0x1d238
movq %r14, %rdi
leaq 0x67243(%rip), %rsi     # 0x841d4
callq 0x10110
testl %eax, %eax
sete %r14b
jmp 0x1cfa1
movb $0x1, %r14b
testl %r13d, %r13d
je 0x1cfcb
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
cmpq %rax, %rdi
je 0x1cfcb
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1cfe7
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
testb %r14b, %r14b
je 0x1d0bc
movq 0x10(%rsp), %r14
movq 0x8(%r14,%rbx,8), %r13
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
movq %r15, %rdi
leaq 0x671bf(%rip), %rsi     # 0x841cd
leaq 0x671be(%rip), %rdx     # 0x841d3
callq 0x1e7ca
leaq 0x188(%rsp), %rdi
movq %r15, %rsi
callq 0x1d1bc
movq %rax, %rbx
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
movq %r13, %rdi
callq 0x101c0
movq %rbx, %rdi
xorl %esi, %esi
movq 0x38(%rsp), %rdx
movq %r13, %rcx
movq %rax, %r8
callq 0x105f0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1d06f
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
incl %ebp
jmp 0x1cc90
leaq 0x188(%rsp), %rsi
leaq 0x20(%rsp), %rdx
movq 0x40(%rsp), %rbx
movq %rbx, %rdi
callq 0x1dc6c
leaq 0x20(%rsp), %rdi
callq 0x1dca2
leaq 0x188(%rsp), %rdi
callq 0x1dcfe
movq %rbx, %rax
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x99f25(%rip), %rdi     # 0xb6fe8
leaq 0x6710d(%rip), %rsi     # 0x841d7
movl $0x1d, %edx
callq 0x10490
movq 0x10(%rsp), %rax
movq (%rax,%rbx,8), %rsi
movq 0x99f04(%rip), %rdi     # 0xb6fe8
callq 0x103b0
leaq 0x689ed(%rip), %rsi     # 0x85add
movq %rax, %rdi
callq 0x103b0
movl $0x1, %edi
callq 0x104d0
jmp 0x1d178
jmp 0x1d199
jmp 0x1d199
jmp 0x1d199
jmp 0x1d199
jmp 0x1d178
jmp 0x1d199
jmp 0x1d178
jmp 0x1d178
jmp 0x1d199
jmp 0x1d199
movq %rax, %rbx
movl $0x100, %r14d           # imm = 0x100
leaq (%rsp,%r14), %rdi
addq $0x48, %rdi
callq 0x1dbb4
addq $-0x40, %r14
cmpq $-0x40, %r14
jne 0x1d12d
jmp 0x1d1b3
jmp 0x1d178
jmp 0x1d199
jmp 0x1d178
jmp 0x1d199
jmp 0x1d178
jmp 0x1d199
jmp 0x1d178
jmp 0x1d199
movq %rax, %rbx
cmpq %r15, %r12
je 0x1d1b3
leaq 0x48(%rsp), %r14
addq $-0x40, %r15
movq %r15, %rdi
callq 0x1dbb4
cmpq %r14, %r15
jne 0x1d163
jmp 0x1d1b3
jmp 0x1d178
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x1d19c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x1d19c
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x1dca2
leaq 0x188(%rsp), %rdi
callq 0x1dcfe
movq %rbx, %rdi
callq 0x106f0
nop