// File: /workspace/github_c_makefile_star2_O1/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 $0x48, %rsp
movq %rcx, 0x8(%rsp)
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %rbx
xorl %eax, %eax
movl %eax, (%rdi)
movb $0x1, %cl
movb %cl, 0x4(%rdi)
leaq 0x5(%rdi), %rdx
movq %rdx, 0x40(%rsp)
movl %eax, 0x5(%rdi)
movw $0x0, 0x9(%rdi)
movb %cl, 0xb(%rdi)
leaq 0x10(%rdi), %rcx
movq %rcx, 0x38(%rsp)
movq $-0x1, 0x10(%rdi)
leaq 0x18(%rdi), %r12
movq %rax, 0x18(%rdi)
leaq 0x28(%rdi), %rcx
movq %rcx, 0x30(%rsp)
movq $0x1, 0x28(%rdi)
leaq 0x30(%rdi), %rcx
movq %rcx, 0x28(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x40(%rdi)
movups %xmm0, 0x50(%rdi)
movups %xmm0, 0x60(%rdi)
movups %xmm0, 0x70(%rdi)
movups %xmm0, 0x80(%rdi)
movq %rax, 0x90(%rdi)
leaq 0x38(%rdi), %rax
movq %rax, 0x20(%rsp)
leaq 0x50(%rdi), %r13
leaq 0x80(%rdi), %rax
movq %rax, 0x10(%rsp)
leaq 0x68(%rdi), %rax
movq %rax, 0x18(%rsp)
leaq 0x120e3(%rip), %r14     # 0x18040
movl %ebp, %edi
movq %r15, %rsi
leaq 0x122e4(%rip), %rdx     # 0x1824d
callq 0x5080
cmpl $0x63, %eax
jle 0x5f94
addl $-0x64, %eax
cmpl $0x14, %eax
ja 0x60e5
movslq (%r14,%rax,4), %rax
addq %r14, %rax
movq %r12, %rsi
movq %r13, %rdi
jmpq *%rax
movb $0x0, 0xb(%rbx)
jmp 0x5f5d
leal -0x44(%rax), %ecx
cmpl $0xe, %ecx
ja 0x5fb4
leaq 0x12061(%rip), %rdx     # 0x18004
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movw $0x101, 0x2(%rbx)       # imm = 0x101
jmp 0x5f5d
cmpl $0x31, %eax
jne 0x60af
movb $0x1, (%rbx)
jmp 0x5f5d
movq 0x40(%rsp), %rax
movb $0x1, (%rax)
jmp 0x5f5d
movq 0x1bf9d(%rip), %rax     # 0x21f70
movq (%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0x6d72
movb $0x1, 0xa(%rbx)
jmp 0x5f5d
movb $0x1, 0x8(%rbx)
jmp 0x5f5d
movb $0x0, 0x4(%rbx)
jmp 0x5f5d
movq 0x30(%rsp), %rsi
jmp 0x6057
movb $0x1, 0x1(%rbx)
jmp 0x5f5d
movb $0x1, %al
movb %al, 0x9(%rbx)
movb %al, 0x1(%rbx)
jmp 0x5f5d
movq 0x20(%rsp), %rdi
jmp 0x6082
movb $0x1, 0x2(%rbx)
jmp 0x5f5d
movq 0x88(%rbx), %rsi
cmpq 0x90(%rbx), %rsi
je 0x6099
movq 0x1bf31(%rip), %rax     # 0x21f70
movq (%rax), %rax
movq %rax, (%rsi)
addq $0x8, 0x88(%rbx)
jmp 0x5f5d
movq 0x38(%rsp), %rsi
movq 0x1bf12(%rip), %rax     # 0x21f70
movq (%rax), %rdi
callq 0x6e94
jmp 0x5f5d
movb $0x1, 0x6(%rbx)
jmp 0x5f5d
movb $0x1, 0x7(%rbx)
jmp 0x5f5d
movq 0x18(%rsp), %rdi
movq 0x1bee7(%rip), %rax     # 0x21f70
movq (%rax), %rsi
movq %rbx, %rdx
callq 0x5d71
jmp 0x5f5d
movq 0x10(%rsp), %rdi
movq 0x1becb(%rip), %rdx     # 0x21f70
callq 0x1395e
jmp 0x5f5d
cmpl $-0x1, %eax
jne 0x60e5
movq $-0x1, %rax
cmpb $0x0, 0x9(%rbx)
jne 0x60cf
movq (%r12), %rsi
movq 0x8(%rsp), %rdi
callq 0x5e4b
movq %rax, 0x20(%rbx)
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x5ccc
jmp 0x60ec
movq %rax, %r14
movq %rbx, %rdi
callq 0x6fb6
movq %r14, %rdi
callq 0x5590