// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edi, %ebp
movl 0x3cea(%rip), %eax      # 0x5148
cmpl $0x2, %eax
jl 0x146b
cmpl 0x3cd3(%rip), %eax      # 0x513c
jle 0x148d
callq 0x2127
leaq 0x1cb2(%rip), %rsi      # 0x3129
leaq 0x1d63(%rip), %rcx      # 0x31e1
movl $0x7c, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1ee0
movq 0x3cac(%rip), %rax      # 0x5140
movslq 0x3cad(%rip), %rcx      # 0x5148
leaq (%rax,%rcx,8), %rbx
movq (%rbx), %r14
testq %r14, %r14
sete %r13b
je 0x14e3
leaq 0x1cba(%rip), %r15      # 0x316c
movq %rbx, %r12
testb %bpl, %bpl
je 0x14cf
cmpb $0x7d, (%r14)
jne 0x14cf
movq %r14, %rdi
movq %r15, %rsi
callq 0x1170
testl %eax, %eax
je 0x14e6
movq 0x8(%r12), %r14
addq $0x8, %r12
testq %r14, %r14
sete %r13b
jne 0x14b5
jmp 0x14e6
movq %rbx, %r12
movq %r12, %rax
subq %rbx, %rax
testq %rax, %rax
setle %al
movl %ebp, %ecx
xorb $0x1, %cl
orb %al, %cl
jne 0x154f
testb $0x1, %r13b
jne 0x151a
cmpb $0x7d, (%r14)
jne 0x151a
leaq 0x1c5e(%rip), %rsi      # 0x316c
movq %r14, %rdi
callq 0x1170
testl %eax, %eax
je 0x154f
callq 0x2127
movq 0x3c1a(%rip), %rcx      # 0x5140
movslq 0x3c1b(%rip), %rdx      # 0x5148
movq -0x8(%rcx,%rdx,8), %rcx
leaq 0x1bec(%rip), %rsi      # 0x3125
leaq 0x1cc6(%rip), %r8       # 0x3206
movl $0x7c, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1ee0
movq $0x0, (%r12)
cmpq $0x0, (%rbx)
jne 0x15b6
callq 0x2127
testb %bpl, %bpl
je 0x1599
movq 0x3bd2(%rip), %rcx      # 0x5140
movslq 0x3bd3(%rip), %rdx      # 0x5148
movq -0x8(%rcx,%rdx,8), %rcx
leaq 0x1ba4(%rip), %rsi      # 0x3125
leaq 0x1c89(%rip), %r8       # 0x3211
movl $0x7c, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1ee0
jmp 0x15b6
leaq 0x1b89(%rip), %rsi      # 0x3129
leaq 0x1c6a(%rip), %rcx      # 0x3211
movl $0x7c, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1ee0
movq (%rbx), %r14
testq %r14, %r14
je 0x15f5
cmpb $0x3a, (%r14)
jne 0x15d7
leaq 0x1c57(%rip), %rsi      # 0x3222
movq %r14, %rdi
callq 0x1170
testl %eax, %eax
je 0x161c
testq %r14, %r14
je 0x15f5
cmpb $0x65, (%r14)
jne 0x15f5
leaq 0x1c3b(%rip), %rsi      # 0x3224
movq %r14, %rdi
callq 0x1170
testl %eax, %eax
je 0x160e
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2499
xorl %edi, %edi
xorl %esi, %esi
movl $0x2, %edx
callq 0x1120
callq 0x10d0
movl %eax, %ebx
callq 0x213d
xorl %edi, %edi
cmpl %eax, %ebx
jne 0x1633
callq 0x11f0
callq 0x1070