// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/builtins.c
// Function: b_whatis
static void b_whatis(char **av) {
	bool ess, eff, vee, pee, bee;
	bool f, found;
	int i, ac, c;
	List *s;
	Node *n;
	char *e;
	for (rc_optind = ac = 0; av[ac] != NULL; ac++)
		; /* count the arguments for getopt */
	ess = eff = vee = pee = bee = FALSE;
	while ((c = rc_getopt(ac, av, "sfvpb")) != -1)
		switch (c) {
		default: set(FALSE); return;
		case 's': ess = TRUE; break;
		case 'f': eff = TRUE; break;
		case 'v': vee = TRUE; break;
		case 'p': pee = TRUE; break;
		case 'b': bee = TRUE; break;
		}
	av += rc_optind;
	if (*av == NULL) {
		if (vee|eff)
			whatare_all_vars(eff, vee);
		if (ess)
			whatare_all_signals();
		if (bee)
			for (i = 0; i < arraysize(builtins); i++)
				fprint(1, "builtin %s\n", builtins[i].name);
		if (pee)
			fprint(2, "whatis -p: must specify argument\n");
		if (show(FALSE)) /* no options? */
			whatare_all_vars(TRUE, TRUE);
		set(TRUE);
		return;
	}
	found = TRUE;
	for (i = 0; av[i] != NULL; i++) {
		f = FALSE;
		errno = ENOENT;
		if (show(vee) && (s = varlookup(av[i])) != NULL) {
			f = TRUE;
			prettyprint_var(1, av[i], s);
		}
		if (((show(ess)&&issig(av[i])) || show(eff)) && (n = fnlookup(av[i])) != NULL) {
			f = TRUE;
			prettyprint_fn(1, av[i], n);
		} else if (show(bee) && isbuiltin(av[i]) != NULL) {
			f = TRUE;
			fprint(1, "builtin %s\n", av[i]);
		} else if (show(pee) && (e = which(av[i], FALSE)) != NULL) {
			f = TRUE;
			fprint(1, "%S\n", e);
		}
		if (!f) {
			found = FALSE;
			if (errno != ENOENT)
				uerror(av[i]);
			else
				fprint(2, "%s not found\n", av[i]);
		}
	}
	set(found);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %r14
leaq 0x15311(%rip), %r13     # 0x192f8
movl $0x0, (%r13)
xorl %r15d, %r15d
cmpq $0x0, (%r14,%r15,8)
leaq 0x1(%r15), %r15
jne 0x3ff2
decq %r15
movl $0x0, 0x10(%rsp)
movb $0x1, %al
movl %eax, 0x18(%rsp)
leaq 0xb235(%rip), %r12      # 0xf24a
movl $0x0, 0xc(%rsp)
xorl %ebx, %ebx
movl $0x0, 0x14(%rsp)
xorl %ebp, %ebp
movl %ebp, %ecx
movl %ecx, %ebp
movl %r15d, %edi
movq %r14, %rsi
movq %r12, %rdx
callq 0x5da0
movl $0x1, %ecx
cmpl $0x73, %eax
je 0x402b
cmpl $0x65, %eax
jle 0x4067
cmpl $0x76, %eax
je 0x407f
cmpl $0x70, %eax
je 0x4086
cmpl $0x66, %eax
jne 0x426f
movl $0x1, 0x14(%rsp)
jmp 0x4029
cmpl $-0x1, %eax
je 0x4098
cmpl $0x62, %eax
jne 0x426f
movl $0x1, 0xc(%rsp)
jmp 0x4029
movl $0x1, %ebx
jmp 0x4029
movl $0x1, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
jmp 0x4029
movslq (%r13), %rax
movq (%r14,%rax,8), %r13
testq %r13, %r13
je 0x428e
leaq (%r14,%rax,8), %r12
callq 0x3040
movq %rax, 0x18(%rsp)
movl 0xc(%rsp), %ecx
movl %ecx, %eax
movl 0x10(%rsp), %edi
orl %edi, %eax
movl %ebx, %r14d
movl %ebx, %esi
movl 0x14(%rsp), %edx
orl %edx, %esi
orl %eax, %esi
orl %ebp, %esi
xorl $0x1, %esi
orl %esi, %r14d
orl %esi, %ebp
movl %esi, %eax
orl %edx, %eax
movl %eax, 0x2c(%rsp)
orl %esi, %ecx
movl %ecx, 0xc(%rsp)
orl %edi, %esi
movl %esi, 0x28(%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x15253(%rip), %r15     # 0x19350
xorl %ebx, %ebx
movl %ebp, 0x24(%rsp)
movq %r12, 0x30(%rsp)
movq 0x18(%rsp), %rax
movl $0x2, (%rax)
movb $0x1, %al
movl %eax, 0x10(%rsp)
testl %r14d, %r14d
je 0x4144
movq %r13, %rdi
callq 0xc9da
testq %rax, %rax
je 0x4144
movq (%r12,%rbx,8), %rsi
movl $0x1, %edi
movq %rax, %rdx
callq 0xcd8c
movl $0x0, 0x10(%rsp)
testl %ebp, %ebp
je 0x418d
movl %r14d, %ebp
movq (%r12,%rbx,8), %r13
movb (%r13), %r14b
xorl %r12d, %r12d
movq (%r15,%r12), %rsi
cmpb (%rsi), %r14b
jne 0x416b
movq %r13, %rdi
callq 0x31f0
testl %eax, %eax
je 0x419a
addq $0x10, %r12
cmpq $0x410, %r12            # imm = 0x410
jne 0x4156
cmpl $0x0, 0x2c(%rsp)
movl %ebp, %r14d
movl 0x24(%rsp), %ebp
movq 0x30(%rsp), %r12
jne 0x41a6
jmp 0x41c9
cmpl $0x0, 0x14(%rsp)
je 0x41c9
movq (%r12,%rbx,8), %r13
jmp 0x41a6
movl %ebp, %r14d
movl 0x24(%rsp), %ebp
movq 0x30(%rsp), %r12
movq %r13, %rdi
callq 0x4f99
testq %rax, %rax
je 0x41c9
movq (%r12,%rbx,8), %rsi
movl $0x1, %edi
movq %rax, %rdx
callq 0x50fa
jmp 0x424a
cmpl $0x0, 0xc(%rsp)
je 0x41f2
movq (%r12,%rbx,8), %r13
movq %r13, %rdi
callq 0x349c
testq %rax, %rax
je 0x41f2
movl $0x1, %edi
leaq 0xb063(%rip), %rsi      # 0xf250
movq %r13, %rdx
jmp 0x4243
cmpl $0x0, 0x28(%rsp)
je 0x421a
movq (%r12,%rbx,8), %rdi
xorl %esi, %esi
callq 0xde71
testq %rax, %rax
je 0x421a
movl $0x1, %edi
leaq 0x10505(%rip), %rsi     # 0x1471a
movq %rax, %rdx
jmp 0x4243
cmpb $0x0, 0x10(%rsp)
je 0x424a
movq 0x18(%rsp), %rax
cmpl $0x2, (%rax)
movq (%r12,%rbx,8), %rdx
jne 0x425d
movl $0x0, 0x8(%rsp)
movl $0x2, %edi
leaq 0xb03b(%rip), %rsi      # 0xf27e
xorl %eax, %eax
callq 0xaf8c
movq 0x8(%r12,%rbx,8), %r13
incq %rbx
testq %r13, %r13
jne 0x4108
jmp 0x4277
movq %rdx, %rdi
callq 0xc6dd
movl $0x0, 0x8(%rsp)
jmp 0x424a
movl $0x0, 0x8(%rsp)
movl 0x8(%rsp), %edi
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xbbec
movl 0x14(%rsp), %edi
movl %edi, %r14d
orl %ebx, %r14d
je 0x42a1
movl %ebx, %esi
callq 0x7c31
testl %ebp, %ebp
je 0x42aa
callq 0x5059
cmpl $0x0, 0xc(%rsp)
je 0x42e5
movl $0x8, %r15d
leaq 0x14f22(%rip), %r12     # 0x191e0
leaq 0xaf8b(%rip), %rbx      # 0xf250
movq (%r15,%r12), %rdx
movl $0x1, %edi
movq %rbx, %rsi
xorl %eax, %eax
callq 0xaf8c
addq $0x10, %r15
cmpq $0x118, %r15            # imm = 0x118
jne 0x42c5
testb $0x1, 0x18(%rsp)
jne 0x42ff
leaq 0xaf69(%rip), %rsi      # 0xf25c
movl $0x2, %edi
xorl %eax, %eax
callq 0xaf8c
movl 0xc(%rsp), %eax
orl 0x10(%rsp), %eax
orl %r14d, %eax
movl $0x1, 0x8(%rsp)
orl %ebp, %eax
jne 0x4277
movl $0x1, 0x8(%rsp)
movl $0x1, %edi
movl $0x1, %esi
callq 0x7c31
jmp 0x4277