// File: /workspace/github_c_makefile_star2_O0/s3lase[P]v6shell/if.c
// Function: doex
static void
doex(bool forked)
{
	char **xap, **xav;

	if (ap < 2 || ap > ac)	/* should never (but can) be true */
		err(FC_ERR, FMT2S, getmyname(), ERR_AVIINVAL);

	xav = xap = &av[ap];
	while (*xap != NULL) {
		if (forked && equal(*xap, "}"))
			break;
		xap++;
	}
	if (forked && xap - xav > 0 && !equal(*xap, "}"))
		err(FC_ERR, FMT3S, getmyname(), av[ap - 1], ERR_BRACE);
	*xap = NULL;
	if (xav[0] == NULL) {
		if (forked)
			err(FC_ERR, FMT3S, getmyname(),av[ap - 1],ERR_COMMAND);
		else
			/* Currently unreachable; do not remove. */
			err(FC_ERR, FMT2S, getmyname(), ERR_COMMAND);
	}

	/* Invoke the ":" or "exit" special command. */
	if (equal(xav[0], ":"))
		EXIT(SH_TRUE);
	if (equal(xav[0], "exit")) {
		(void)lseek(FD0, (off_t)0, SEEK_END);
		EXIT(SH_TRUE);
	}

	(void)err_pexec(xav[0], xav);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dil, %al
andb $0x1, %al
movb %al, -0x1(%rbp)
cmpl $0x2, 0x3c71(%rip)      # 0x5148
jl 0x14e7
movl 0x3c69(%rip), %eax      # 0x5148
cmpl 0x3c57(%rip), %eax      # 0x513c
jle 0x1509
callq 0x2530
movq %rax, %rdx
movl $0x7c, %edi
leaq 0x1c2e(%rip), %rsi      # 0x3129
leaq 0x1cdf(%rip), %rcx      # 0x31e1
movb $0x0, %al
callq 0x2230
movq 0x3c30(%rip), %rax      # 0x5140
movslq 0x3c31(%rip), %rcx      # 0x5148
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x155f
testb $0x1, -0x1(%rbp)
je 0x1551
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x1c28(%rip), %rsi      # 0x316c
callq 0x1770
testb $0x1, %al
jne 0x154f
jmp 0x1551
jmp 0x155f
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x1526
testb $0x1, -0x1(%rbp)
je 0x15ca
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
sarq $0x3, %rax
cmpq $0x0, %rax
jle 0x15ca
movq -0x10(%rbp), %rax
movq (%rax), %rdi
leaq 0x1be4(%rip), %rsi      # 0x316c
callq 0x1770
testb $0x1, %al
jne 0x15ca
callq 0x2530
movq %rax, %rdx
movq 0x3ba0(%rip), %rax      # 0x5140
movl 0x3ba2(%rip), %ecx      # 0x5148
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rcx
movl $0x7c, %edi
leaq 0x1b69(%rip), %rsi      # 0x3125
leaq 0x1c43(%rip), %r8       # 0x3206
movb $0x0, %al
callq 0x2230
movq -0x10(%rbp), %rax
movq $0x0, (%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x1644
testb $0x1, -0x1(%rbp)
je 0x1620
callq 0x2530
movq %rax, %rdx
movq 0x3b4c(%rip), %rax      # 0x5140
movl 0x3b4e(%rip), %ecx      # 0x5148
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rcx
movl $0x7c, %edi
leaq 0x1b15(%rip), %rsi      # 0x3125
leaq 0x1bfa(%rip), %r8       # 0x3211
movb $0x0, %al
callq 0x2230
jmp 0x1642
callq 0x2530
movq %rax, %rdx
movl $0x7c, %edi
leaq 0x1af5(%rip), %rsi      # 0x3129
leaq 0x1bd6(%rip), %rcx      # 0x3211
movb $0x0, %al
callq 0x2230
jmp 0x1644
movq -0x18(%rbp), %rax
movq (%rax), %rdi
leaq 0x1bd0(%rip), %rsi      # 0x3222
callq 0x1770
testb $0x1, %al
jne 0x165d
jmp 0x1681
callq 0x10d0
movl %eax, -0x1c(%rbp)
callq 0x2560
movl %eax, %ecx
movl -0x1c(%rbp), %eax
cmpl %ecx, %eax
jne 0x167a
xorl %edi, %edi
callq 0x11f0
xorl %edi, %edi
callq 0x1070
movq -0x18(%rbp), %rax
movq (%rax), %rdi
leaq 0x1b95(%rip), %rsi      # 0x3224
callq 0x1770
testb $0x1, %al
jne 0x169a
jmp 0x16ce
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0x1120
callq 0x10d0
movl %eax, -0x20(%rbp)
callq 0x2560
movl %eax, %ecx
movl -0x20(%rbp), %eax
cmpl %ecx, %eax
jne 0x16c7
xorl %edi, %edi
callq 0x11f0
xorl %edi, %edi
callq 0x1070
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x2ad0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)