// File: /workspace/github_c_makefile_star2_O2/lucvoo[P]sparse-dev/semind.c
// Function: parse_cmdline_search
static void parse_cmdline_search(int argc, char **argv)
{
	static const struct option long_options[] = {
		{ "explain", no_argument, NULL, 'e' },
		{ "format", required_argument, NULL, 'f' },
		{ "path", required_argument, NULL, 'p' },
		{ "location", no_argument, NULL, 'l' },
		{ "mode", required_argument, NULL, 'm' },
		{ "kind", required_argument, NULL, 'k' },
		{ "verbose", no_argument, NULL, 'v' },
		{ "help", no_argument, NULL, 'h' },
		{ NULL }
	};
	int c;

	while ((c = getopt_long(argc, argv, "+ef:m:k:p:lvh", long_options, NULL)) != -1) {
		switch (c) {
			case 'e':
				semind_search_by_location = EXPLAIN_LOCATION;
				break;
			case 'l':
				semind_search_by_location = USAGE_BY_LOCATION;
				break;
			case 'f':
				semind_search_format = optarg;
				break;
			case 'm':
				set_search_modmask(optarg);
				break;
			case 'k':
				semind_search_kind = tolower(optarg[0]);
				break;
			case 'p':
				semind_search_path = optarg;
				break;
			case 'v':
				semind_verbose++;
				break;
			case 'h':
				show_help_search(0);
		}
	}

	if (semind_search_by_location) {
		char *str;

		if (optind == argc)
			semind_error(1, 0, "one argument required");

		str = argv[optind];

		while (str) {
			char *ptr;

			if ((ptr = strchr(str, ':')) != NULL)
				*ptr++ = '\0';

			if (*str != '\0') {
				if (!semind_search_filename) {
					semind_search_filename = str;
				} else if (!semind_search_line) {
					semind_search_line = atoi(str);
				} else if (!semind_search_column) {
					semind_search_column = atoi(str);
				}
			}
			str = ptr;
		}
	} else if (optind < argc)
		semind_search_symbol = argv[optind++];
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x2d2ae(%rip), %r13     # 0x3d010
movl %ebp, %edi
movq %rbx, %rsi
leaq 0x2d9cd(%rip), %rdx     # 0x3d73b
leaq 0x47b5b(%rip), %rcx     # 0x578d0
xorl %r8d, %r8d
callq 0xf360
leal -0x65(%rax), %ecx
cmpl $0x11, %ecx
ja 0xfe7c
movslq (%r13,%rcx,4), %rax
addq %r13, %rax
jmpq *%rax
movl $0x1, 0x56de3(%rip)     # 0x66b80
jmp 0xfd62
incl 0x56957(%rip)           # 0x666fc
jmp 0xfd62
movq 0x501ca(%rip), %rax     # 0x5ff78
movq (%rax), %r14
movq %r14, %rdi
callq 0xf220
movq %rax, %rcx
andq $-0x3, %rcx
cmpq $0x1, %rcx
jne 0xfe8a
movb $0x1, 0x56dd7(%rip)     # 0x66ba8
andl $0x0, 0x56dd4(%rip)     # 0x66bac
cmpq $0x1, %rax
jne 0xfeae
movzbl (%r14), %eax
cmpl $0x2d, %eax
je 0xff3f
cmpl $0x6d, %eax
je 0xff36
leaq 0x2d9a0(%rip), %r12     # 0x3d79f
cmpl $0x72, %eax
je 0xfec4
cmpl $0x77, %eax
jne 0xff4b
leaq 0x2d98b(%rip), %r12     # 0x3d7a3
jmp 0xfec4
movq 0x50154(%rip), %rax     # 0x5ff78
movq (%rax), %rax
movq %rax, 0x504ca(%rip)     # 0x602f8
jmp 0xfd62
movl $0x2, 0x56d43(%rip)     # 0x66b80
jmp 0xfd62
callq 0xf400
movq (%rax), %rax
movq 0x50127(%rip), %rcx     # 0x5ff78
movq (%rcx), %rcx
movsbq (%rcx), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, 0x56d23(%rip)     # 0x66b84
jmp 0xfd62
movq 0x5010b(%rip), %rax     # 0x5ff78
movq (%rax), %rax
movq %rax, 0x56d11(%rip)     # 0x66b88
jmp 0xfd62
cmpl $-0x1, %eax
jne 0xfd62
jmp 0xff69
pushq $0x1
popq %rdi
xorl %esi, %esi
leaq 0x2d8dd(%rip), %rdx     # 0x3d773
movq %r14, %rcx
xorl %eax, %eax
callq 0x10384
movb $0x1, 0x56d01(%rip)     # 0x66ba8
andl $0x0, 0x56cfe(%rip)     # 0x66bac
movq %r14, %rdi
leaq 0x2fd94(%rip), %rsi     # 0x3fc4c
callq 0xf3b0
movq %r14, %r12
testl %eax, %eax
je 0xff27
leaq 0x2d1dd(%rip), %r14     # 0x3d0a8
xorl %r15d, %r15d
cmpq $0x3, %r15
je 0xfd62
movzbl (%r12,%r15), %eax
cmpl $0x2d, %eax
je 0xff1e
cmpl $0x6d, %eax
je 0xfef7
cmpl $0x77, %eax
je 0xfefc
cmpl $0x72, %eax
jne 0xff08
movl -0x8(%r14), %eax
jmp 0xff00
movl (%r14), %eax
jmp 0xff00
movl -0x4(%r14), %eax
orl %eax, 0x56ca6(%rip)     # 0x66bac
jmp 0xff1e
movsbl %al, %ecx
pushq $0x1
popq %rdi
xorl %esi, %esi
leaq 0x2d8b0(%rip), %rdx     # 0x3d7c7
xorl %eax, %eax
callq 0x10384
incq %r15
addq $0xc, %r14
jmp 0xfece
movl $0x10000, 0x56c7b(%rip) # imm = 0x10000
jmp 0xfd62
leaq 0x2d86a(%rip), %r12     # 0x3d7a7
jmp 0xfec4
leaq 0x2d865(%rip), %r12     # 0x3d7ab
jmp 0xfec4
pushq $0x1
popq %rdi
xorl %esi, %esi
leaq 0x2d858(%rip), %rdx     # 0x3d7af
movq %r14, %rcx
xorl %eax, %eax
callq 0x10384
movq %r14, %r12
jmp 0xfec4
cmpl $0x0, 0x56c10(%rip)     # 0x66b80
movq 0x4ffc9(%rip), %r14     # 0x5ff40
movl (%r14), %eax
je 0x10021
cmpl %ebp, %eax
jne 0xff9a
leaq 0x2d7be(%rip), %rdx     # 0x3d749
pushq $0x1
popq %rdi
xorl %esi, %esi
xorl %eax, %eax
callq 0x10384
movl (%r14), %eax
cltq
movq (%rbx,%rax,8), %r13
movq 0x56be9(%rip), %r12     # 0x66b90
movl 0x56beb(%rip), %ebp     # 0x66b98
movl 0x56be8(%rip), %r14d    # 0x66b9c
pushq $0x3a
popq %rbx
testq %r13, %r13
je 0x10038
movq %r13, %r15
movq %r13, %rdi
movl %ebx, %esi
callq 0xf340
testq %rax, %rax
je 0xffd9
movq %rax, %r13
incq %r13
movb $0x0, (%rax)
jmp 0xffdc
xorl %r13d, %r13d
cmpb $0x0, (%r15)
je 0xffb7
testq %r12, %r12
je 0x10003
testl %ebp, %ebp
je 0x1000f
testl %r14d, %r14d
jne 0xffb7
movq %r15, %rdi
callq 0xf300
movl %eax, %r14d
movl %eax, 0x56b9b(%rip)     # 0x66b9c
jmp 0xffb7
movq %r15, 0x56b86(%rip)     # 0x66b90
movq %r15, %r12
jmp 0xffb7
movq %r15, %rdi
callq 0xf300
movl %eax, %ebp
movl %eax, 0x56b79(%rip)     # 0x66b98
jmp 0xffb7
cmpl %ebp, %eax
jge 0x10038
movslq %eax, %rcx
incl %eax
movl %eax, (%r14)
movq (%rbx,%rcx,8), %rax
movq %rax, 0x56b68(%rip)     # 0x66ba0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x55682(%rip), %rsi     # 0x656d0
leaq 0x2d7bc(%rip), %rdi     # 0x3d811
xorl %eax, %eax
callq 0xf050
xorl %edi, %edi
callq 0xf120