// File: /workspace/github_c_makefile_star2_O2/marcespie[P]random_run/rr.C
// Function: get_options(int, char**, char**)
const options 
get_options(int argc, char* argv[], char* envp[])
{
	options o;

	for (int ch; (ch = getopt(argc, argv, "v1eDdEil:rRn:m:M:No:Ox:pP:s:")) != -1;)
		switch(ch) {
		case 'd':
			o.dashdash = false;
			break;
		case 'D':
			o.recursedirs = true;
			o.recursive = true;
			break;
		case 'v':
			o.verbose = true;
			break;
		case 'p':
			o.printonly = true;
			o.verbose = true;
			break;
		case 'P':
			get_integer_value(optarg, o.rotator);
			o.rotate = true;
			break;
		case 'n':
			get_integer_value(optarg, o.maxargs);
			break;
		case 'm':
			get_integer_value(optarg, o.margin);
			break;
		case 'M':
			get_integer_value(optarg, o.multiple);
			break;
		case 'N':
			o.randomize = false;
			break;
		case 'r':
			o.recursive = true;
			break;
		case 'R':
			o.rotate = true;
			break;
		case '1':
			o.justone = true;
			break;
		case 'i':
			o.nocase = true;
			break;
		case 'e':
			o.exitonerror = true;
			break;
		case 'E':
			o.eregex = true;
			break;
		case 'o':
			add_regex(o.only, optarg, o);
			break;
		case 'O':
			o.once = true;
			break;
		case 'l':
			o.list.push_back(optarg);
			break;
		case 'x':
			add_regex(o.exclude, optarg, o);
			break;
		case 's':
			add_regex(o.start, optarg, o);
			break;
		default:
			usage();
		}
	if (o.printonly)
		o.maxsize = MAXSIZE;
	else
		o.maxsize = compute_maxsize(envp, o.margin);

	return o;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rcx, (%rsp)
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %rbx
callq 0x6492
leaq 0x38(%rbx), %rax
movq %rax, 0x30(%rsp)
leaq 0x50(%rbx), %r12
leaq 0x80(%rbx), %rax
movq %rax, 0x28(%rsp)
leaq 0x68(%rbx), %rax
movq %rax, 0x20(%rsp)
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rsp)
leaq 0x18(%rbx), %r13
leaq 0x10(%rbx), %rax
movq %rax, 0x10(%rsp)
leaq 0x30(%rbx), %rax
movq %rax, 0x8(%rsp)
leaq 0x1068d(%rip), %r14     # 0x16040
movl %ebp, %edi
movq %r15, %rsi
leaq 0x1088e(%rip), %rdx     # 0x1624d
callq 0x5080
leal -0x64(%rax), %ecx
cmpl $0x14, %ecx
ja 0x59e1
movslq (%r14,%rcx,4), %rax
addq %r14, %rax
movq %r13, %rsi
movq %r12, %rdi
jmpq *%rax
movb $0x0, 0xb(%rbx)
jmp 0x59b3
leal -0x44(%rax), %ecx
cmpl $0xe, %ecx
ja 0x5a01
leaq 0x10614(%rip), %rdx     # 0x16004
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movw $0x101, 0x2(%rbx)       # imm = 0x101
jmp 0x59b3
cmpl $0x31, %eax
jne 0x5ac5
movb $0x1, (%rbx)
jmp 0x59b3
movb $0x1, 0x2(%rbx)
jmp 0x59b3
movb $0x1, %al
movb %al, 0x9(%rbx)
movb %al, 0x1(%rbx)
jmp 0x59b3
movb $0x1, 0x7(%rbx)
jmp 0x59b3
movb $0x1, 0x6(%rbx)
jmp 0x59b3
movq 0x28(%rsp), %rdi
movq 0x1d549(%rip), %rsi     # 0x22f80
callq 0x66e0
jmp 0x59b3
movq 0x30(%rsp), %rdi
jmp 0x5a54
movq 0x10(%rsp), %rsi
jmp 0x5a8b
movq 0x20(%rsp), %rdi
movq 0x1d525(%rip), %rax     # 0x22f80
movq (%rax), %rsi
movq %rbx, %rdx
callq 0x583d
jmp 0x59b3
movb $0x1, 0x1(%rbx)
jmp 0x59b3
movb $0x0, 0x4(%rbx)
jmp 0x59b3
movb $0x1, 0x8(%rbx)
jmp 0x59b3
movq 0x18(%rsp), %rsi
movq 0x1d4ee(%rip), %rax     # 0x22f80
movq (%rax), %rdi
callq 0x65df
jmp 0x59b3
movq 0x1d4da(%rip), %rax     # 0x22f80
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x64df
movb $0x1, 0xa(%rbx)
jmp 0x59b3
movb $0x1, 0x5(%rbx)
jmp 0x59b3
cmpl $-0x1, %eax
jne 0x5af8
cmpb $0x0, 0x9(%rbx)
je 0x5ad5
pushq $-0x1
popq %rax
jmp 0x5ae2
movq (%r13), %rsi
movq (%rsp), %rdi
callq 0x5900
movq %rax, 0x20(%rbx)
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x579c
jmp 0x5aff
movq %rax, %r14
movq %rbx, %rdi
callq 0x66fe
movq %r14, %rdi
callq 0x55b0