// File: /workspace/github_c_makefile_star2_O2/rakitzis[P]rc/input.c
// Function: doit
extern Node *doit(bool clobberexecit) {
	bool eof;
	bool execit;
	Jbwrap j;
	Estack e1;
	Edata jerror;

	if (dashen)
		clobberexecit = FALSE;
	execit = clobberexecit;
	sigsetjmp(j.j, 1);
	jerror.jb = &j;
	except(eError, jerror, &e1);
	for (eof = FALSE; !eof;) {
		Edata block;
		Estack e2;

		block.b = newblock();
		except(eArena, block, &e2);
		sigchk();

		if (interactive) {
			List *s;
			if (!dashen && fnlookup("prompt") != NULL) {
				static bool died = FALSE;
				static char *arglist[] = { "prompt", NULL };

				if (!died) {
					died = TRUE;
					funcall(arglist);
				}
				died = FALSE;
			}
			s = varlookup("prompt");
			if (s != NULL) {
				prompt = s->w;
				if (s->n != NULL)
					prompt2 = s->n->w;
				else
					prompt2 = "";
			} else {
				prompt = prompt2 = "";
			}
			if (istack->t == iFd)
				fprint(2, "%s", prompt);
			else if (istack->t == iEdit)
				edit_prompt(istack->cookie, prompt);
		}
		inityy();
		if (yyparse() == 1 && (execit || dashen))
			rc_raise(eError);
		eof = (lastchar == EOF); /* "lastchar" can be clobbered during a walk() */
		if (parsetree != NULL) {
#if RC_DEVELOP
			if (RC_DEVELOP)
				tree_dump(parsetree);
#endif
			if (execit)
				walk(parsetree, TRUE);
			else if (dashex && dashen)
				fprint(2, "%T\n", parsetree);
		}
		unexcept(eArena);
	}
	popinput();
	unexcept(eError);
	return parsetree;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
leaq 0x11b05(%rip), %r13     # 0x19bdc
xorl %r15d, %r15d
cmpl $0x0, (%r13)
movl %edi, %ebp
cmovnel %r15d, %ebp
leaq 0x30(%rsp), %r14
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x3370
leaq 0x18(%rsp), %rdx
movl %r15d, %edi
movq %r14, %rsi
callq 0x43bc
pushq $0x4
popq %r14
leaq 0x6d17(%rip), %rbx      # 0xee27
movl %r15d, %eax
testl %eax, %eax
jne 0x8272
callq 0x9a61
movl %r14d, %edi
movq %rax, %rsi
movq %rsp, %rdx
callq 0x43bc
callq 0xb266
leaq 0x11a9a(%rip), %rax     # 0x19bd4
cmpl $0x0, (%rax)
je 0x81ef
cmpl $0x0, (%r13)
jne 0x817e
leaq 0x6647(%rip), %rdi      # 0xe798
callq 0x4e40
testq %rax, %rax
je 0x817e
cmpb $0x0, 0x11a06(%rip)     # 0x19b68
jne 0x8177
movb $0x1, 0x119fd(%rip)     # 0x19b68
leaq 0x111be(%rip), %rdi     # 0x19330
callq 0x34ec
movb $0x0, 0x119ea(%rip)     # 0x19b68
leaq 0x6613(%rip), %rdi      # 0xe798
callq 0xc16d
movq %rbx, %rcx
movq %rbx, %rdx
testq %rax, %rax
je 0x81b6
movq %rax, %rcx
movq (%rax), %rax
movq %rax, 0x119ce(%rip)     # 0x19b70
movq 0x10(%rcx), %rcx
testq %rcx, %rcx
je 0x81b0
movq (%rcx), %rcx
jmp 0x81b3
movq %rbx, %rcx
movq %rax, %rdx
movq %rcx, 0x119bb(%rip)     # 0x19b78
movq 0x1196c(%rip), %rax     # 0x19b30
movl 0x4(%rax), %ecx
cmpl $0x2, %ecx
je 0x81e3
testl %ecx, %ecx
jne 0x81ef
xorl %eax, %eax
pushq $0x2
popq %rdi
leaq 0x6396(%rip), %rsi      # 0xe572
callq 0xa8f6
jmp 0x81ef
movq 0x28(%rax), %rdi
movq %rdx, %rsi
callq 0x4344
callq 0x90e9
callq 0x9c62
cmpl $0x1, %eax
jne 0x820d
movl (%r13), %eax
orl %ebp, %eax
je 0x820d
xorl %edi, %edi
callq 0x4470
xorl %r12d, %r12d
cmpl $-0x1, 0x11921(%rip)    # 0x19b38
sete %r15b
leaq 0x11a66(%rip), %rax     # 0x19c88
movq (%rax), %rdx
testq %rdx, %rdx
je 0x825f
testl %ebp, %ebp
je 0x823b
movq %rdx, %rdi
pushq $0x1
popq %rsi
callq 0xc950
jmp 0x825f
leaq 0x119ae(%rip), %rax     # 0x19bf0
cmpl $0x0, (%rax)
je 0x825f
cmpl $0x0, (%r13)
je 0x825f
xorl %eax, %eax
pushq $0x2
popq %rdi
leaq 0x65ea(%rip), %rsi      # 0xe844
callq 0xa8f6
movb %r15b, %r12b
movl %r14d, %edi
callq 0x43f0
movl %r12d, %eax
jmp 0x8113
callq 0x7fed
xorl %edi, %edi
callq 0x43f0
leaq 0x11a03(%rip), %rax     # 0x19c88
movq (%rax), %rax
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq