// File: /workspace/github_c_makefile_star2_O3/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 0x33585(%rip), %r12     # 0x44010
movl %ebp, %edi
movq %rbx, %rsi
leaq 0x33ca4(%rip), %rdx     # 0x4473b
leaq 0x4ce22(%rip), %rcx     # 0x5d8c0
xorl %r8d, %r8d
callq 0xf350
leal -0x65(%rax), %ecx
cmpl $0x11, %ecx
ja 0x10b97
movslq (%r12,%rcx,4), %rax
addq %r12, %rax
jmpq *%rax
movl $0x1, 0x5c0ab(%rip)     # 0x6cb70
jmp 0x10a8b
incl 0x5bc1f(%rip)           # 0x6c6ec
jmp 0x10a8b
movq 0x55492(%rip), %rax     # 0x65f68
movq (%rax), %r14
movq %r14, %rdi
callq 0xf220
movq %rax, %rcx
andq $-0x3, %rcx
cmpq $0x1, %rcx
jne 0x10bcc
movb $0x1, 0x5c09f(%rip)     # 0x6cb98
movl $0x0, 0x5c099(%rip)     # 0x6cb9c
cmpq $0x1, %rax
jne 0x10bf5
movzbl (%r14), %eax
cmpl $0x71, %eax
jg 0x10ba5
cmpl $0x2d, %eax
je 0x10bc3
cmpl $0x6d, %eax
jne 0x10c84
leaq 0x33c74(%rip), %r13     # 0x447a7
jmp 0x10c0b
movq 0x55429(%rip), %rax     # 0x65f68
movq (%rax), %rax
movq %rax, 0x5579f(%rip)     # 0x662e8
jmp 0x10a8b
movl $0x2, 0x5c018(%rip)     # 0x6cb70
jmp 0x10a8b
callq 0xf3f0
movq (%rax), %rax
movq 0x553fc(%rip), %rcx     # 0x65f68
movq (%rcx), %rcx
movsbq (%rcx), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, 0x5bff8(%rip)     # 0x6cb74
jmp 0x10a8b
movq 0x553e0(%rip), %rax     # 0x65f68
movq (%rax), %rax
movq %rax, 0x5bfe6(%rip)     # 0x6cb78
jmp 0x10a8b
cmpl $-0x1, %eax
jne 0x10a8b
jmp 0x10ca4
leaq 0x33bf3(%rip), %r13     # 0x4479f
cmpl $0x72, %eax
je 0x10c0b
cmpl $0x77, %eax
jne 0x10c84
leaq 0x33be2(%rip), %r13     # 0x447a3
jmp 0x10c0b
leaq 0x33be1(%rip), %r13     # 0x447ab
jmp 0x10c0b
movl $0x1, %edi
xorl %esi, %esi
leaq 0x33b99(%rip), %rdx     # 0x44773
movq %r14, %rcx
xorl %eax, %eax
callq 0xf570
movb $0x1, 0x5bfad(%rip)     # 0x6cb98
movl $0x0, 0x5bfa7(%rip)     # 0x6cb9c
movq %r14, %rdi
leaq 0x3604d(%rip), %rsi     # 0x46c4c
callq 0xf3a0
movq %r14, %r13
testl %eax, %eax
je 0x10c75
leaq 0x33496(%rip), %r14     # 0x440a8
xorl %r15d, %r15d
movzbl (%r13,%r15), %eax
cmpl $0x71, %eax
jg 0x10c2f
cmpl $0x2d, %eax
je 0x10c49
cmpl $0x6d, %eax
jne 0x10c5b
movl (%r14), %eax
jmp 0x10c43
cmpl $0x77, %eax
je 0x10c3f
cmpl $0x72, %eax
jne 0x10c5b
movl -0x8(%r14), %eax
jmp 0x10c43
movl -0x4(%r14), %eax
orl %eax, 0x5bf53(%rip)     # 0x6cb9c
incq %r15
addq $0xc, %r14
cmpq $0x3, %r15
jne 0x10c15
jmp 0x10a8b
movsbl %al, %ecx
movl $0x1, %edi
xorl %esi, %esi
leaq 0x33b5b(%rip), %rdx     # 0x447c7
xorl %eax, %eax
callq 0xf570
jmp 0x10c49
movl $0x10000, 0x5bf1d(%rip) # imm = 0x10000
jmp 0x10a8b
movl $0x1, %edi
xorl %esi, %esi
leaq 0x33b1d(%rip), %rdx     # 0x447af
movq %r14, %rcx
xorl %eax, %eax
callq 0xf570
movq %r14, %r13
jmp 0x10c0b
cmpl $0x0, 0x5bec5(%rip)     # 0x6cb70
movq 0x5527e(%rip), %r14     # 0x65f30
movl (%r14), %eax
je 0x10d53
cmpl %ebp, %eax
je 0x10d79
cltq
movq (%rbx,%rax,8), %r15
testq %r15, %r15
je 0x10d6a
movl 0x5beb4(%rip), %ebx     # 0x6cb8c
movl 0x5beaa(%rip), %ebp     # 0x6cb88
movq 0x5be9b(%rip), %r12     # 0x6cb80
movq %r15, %r14
movq %r15, %rdi
movl $0x3a, %esi
callq 0xf330
testq %rax, %rax
je 0x10d05
movq %rax, %r15
incq %r15
movb $0x0, (%rax)
jmp 0x10d08
xorl %r15d, %r15d
cmpb $0x0, (%r14)
je 0x10d46
testq %r12, %r12
je 0x10d2d
testl %ebp, %ebp
je 0x10d36
testl %ebx, %ebx
jne 0x10d46
movq %r14, %rdi
callq 0xf2f0
movl %eax, %ebx
movl %eax, 0x5be61(%rip)     # 0x6cb8c
jmp 0x10d46
movq %r14, 0x5be4c(%rip)     # 0x6cb80
jmp 0x10d49
movq %r14, %rdi
callq 0xf2f0
movl %eax, %ebp
movl %eax, 0x5be42(%rip)     # 0x6cb88
movq %r12, %r14
movq %r14, %r12
testq %r15, %r15
jne 0x10ce5
jmp 0x10d6a
cmpl %ebp, %eax
jge 0x10d6a
movslq %eax, %rcx
incl %eax
movl %eax, (%r14)
movq (%rbx,%rcx,8), %rax
movq %rax, 0x5be26(%rip)     # 0x6cb90
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x339c9(%rip), %rdx     # 0x44749
movl $0x1, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0xf570
movl (%r14), %eax
jmp 0x10cc3
movq 0x5a923(%rip), %rsi     # 0x6b6c0
leaq 0x33a6d(%rip), %rdi     # 0x44811
xorl %eax, %eax
callq 0xf050
xorl %edi, %edi
callq 0xf120