// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x48(%rbp)
movq %rdi, %rax
movq %rax, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
callq 0x8480
movl -0xc(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq 0x35718(%rip), %rdx     # 0x3c411
callq 0x60b0
movl %eax, -0x28(%rbp)
cmpl $-0x1, %eax
je 0x6eeb
movl -0x28(%rbp), %eax
addl $-0x31, %eax
movl %eax, %ecx
movq %rcx, -0x50(%rbp)
subl $0x47, %eax
ja 0x6edf
movq -0x50(%rbp), %rax
leaq 0x352da(%rip), %rcx     # 0x3c004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x48(%rbp), %rax
movb $0x0, 0xb(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x3(%rax)
movb $0x1, 0x2(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x1(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x9(%rax)
movb $0x1, 0x1(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rsi
movq 0x521fe(%rip), %rax     # 0x58f78
movq (%rax), %rdi
addq $0x30, %rsi
callq 0x8520
jmp 0x6d88
movq -0x48(%rbp), %rax
movb $0x1, 0xa(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
callq 0x8810
jmp 0x6f3c
movq -0x48(%rbp), %rsi
movq 0x521be(%rip), %rax     # 0x58f78
movq (%rax), %rdi
addq $0x10, %rsi
callq 0x8660
jmp 0x6dc8
jmp 0x6ee6
movq -0x48(%rbp), %rsi
movq 0x521a0(%rip), %rax     # 0x58f78
movq (%rax), %rdi
addq $0x18, %rsi
callq 0x8660
jmp 0x6de6
jmp 0x6ee6
movq -0x48(%rbp), %rsi
movq 0x52182(%rip), %rax     # 0x58f78
movq (%rax), %rdi
addq $0x28, %rsi
callq 0x8660
jmp 0x6e04
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x0, 0x4(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x2(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0xa(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, (%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x7(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x6(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x8(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x68, %rdi
movq 0x52103(%rip), %rax     # 0x58f78
movq (%rax), %rsi
callq 0x6af0
jmp 0x6e7f
jmp 0x6ee6
movq -0x48(%rbp), %rax
movb $0x1, 0x5(%rax)
jmp 0x6ee6
movq -0x48(%rbp), %rdi
subq $-0x80, %rdi
movq 0x520de(%rip), %rsi     # 0x58f78
callq 0x87a0
jmp 0x6ea1
jmp 0x6ee6
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x50, %rdi
movq 0x520c3(%rip), %rax     # 0x58f78
movq (%rax), %rsi
callq 0x6af0
jmp 0x6ebf
jmp 0x6ee6
movq -0x48(%rbp), %rdx
movq %rdx, %rdi
addq $0x38, %rdi
movq 0x520a5(%rip), %rax     # 0x58f78
movq (%rax), %rsi
callq 0x6af0
jmp 0x6edd
jmp 0x6ee6
callq 0x6a10
jmp 0x6ee6
jmp 0x6ceb
movq -0x48(%rbp), %rax
testb $0x1, 0x9(%rax)
je 0x6f03
movq -0x48(%rbp), %rax
movq $-0x1, 0x20(%rax)
jmp 0x6f1f
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rdi
movq 0x18(%rax), %rsi
callq 0x6c30
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x20(%rax)
movb $0x1, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
jne 0x6f32
movq -0x48(%rbp), %rdi
callq 0x8810
movq -0x40(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
movq -0x30(%rbp), %rdi
callq 0x67e0
nopw %cs:(%rax,%rax)