// File: /workspace/github_c_makefile_star2_O0/rakitzis[P]rc/except.c
// Function: rc_raise
extern void rc_raise(ecodes e) {
	if (e == eError && rc_pid != getpid())
		exit(1); /* child processes exit on an error/signal */
	for (; estack != NULL; estack = estack->prev)
		if (estack->e != e) {
			if (e == eBreak && (estack->e != eArena && estack->e != eVarstack && estack->e != eContinue))
				rc_error("break outside of loop");
			else if (e == eContinue && (estack->e != eVarstack))
				rc_error("continue outside of loop");
			else if (e == eReturn && estack->e == eError) /* can return from loops inside functions */
				rc_error("return outside of function");
			switch (estack->e) {
			default:
				break;
			case eVarstack:
				varrm(estack->data.name, TRUE);
				break;
			case eArena:
				restoreblock(estack->data.b);
				break;
			case eFifo:
				unlink(estack->data.name);
				break;
			case eFd:
				close(estack->data.fd);
				break;
			}
		} else {
			if (e == eError && !estack->interactive) {
				popinput();
			} else {
				Jbwrap *j = estack->data.jb;

				interactive = estack->interactive;
				estack = estack->prev;
				siglongjmp(j->j, 1);
			}
		}
	rc_exit(1); /* top of exception stack */
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x0, -0x4(%rbp)
jne 0x4f25
leaq 0x1ad48(%rip), %rax     # 0x1fc50
movl (%rax), %eax
movl %eax, -0x14(%rbp)
callq 0x30d0
movl %eax, %ecx
movl -0x14(%rbp), %eax
cmpl %ecx, %eax
je 0x4f25
movl $0x1, %edi
callq 0x3320
jmp 0x4f27
cmpq $0x0, 0x1a8d9(%rip)     # 0x1f808
je 0x50b1
movq 0x1a8cc(%rip), %rax     # 0x1f808
movl (%rax), %eax
cmpl -0x4(%rbp), %eax
je 0x503a
cmpl $0x1, -0x4(%rbp)
jne 0x4f7f
movq 0x1a8b4(%rip), %rax     # 0x1f808
cmpl $0x4, (%rax)
je 0x4f7f
movq 0x1a8a8(%rip), %rax     # 0x1f808
cmpl $0x3, (%rax)
je 0x4f7f
movq 0x1a89c(%rip), %rax     # 0x1f808
cmpl $0x7, (%rax)
je 0x4f7f
leaq 0x1047a(%rip), %rdi     # 0x153f2
callq 0x50d0
jmp 0x4fc1
cmpl $0x7, -0x4(%rbp)
jne 0x4f9f
movq 0x1a87c(%rip), %rax     # 0x1f808
cmpl $0x3, (%rax)
je 0x4f9f
leaq 0x10470(%rip), %rdi     # 0x15408
callq 0x50d0
jmp 0x4fbf
cmpl $0x2, -0x4(%rbp)
jne 0x4fbd
movq 0x1a85c(%rip), %rax     # 0x1f808
cmpl $0x0, (%rax)
jne 0x4fbd
leaq 0x10469(%rip), %rdi     # 0x15421
callq 0x50d0
jmp 0x4fbf
jmp 0x4fc1
movq 0x1a840(%rip), %rax     # 0x1f808
movl (%rax), %eax
addl $-0x3, %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x3, %eax
ja 0x4fec
movq -0x20(%rbp), %rax
leaq 0x103d1(%rip), %rcx     # 0x153b4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x5038
movq 0x1a813(%rip), %rax     # 0x1f808
movq 0x8(%rax), %rdi
movl $0x1, %esi
callq 0x12380
jmp 0x5038
movq 0x1a7fc(%rip), %rax     # 0x1f808
movq 0x8(%rax), %rdi
callq 0xd7f0
jmp 0x5038
movq 0x1a7ea(%rip), %rax     # 0x1f808
movq 0x8(%rax), %rdi
callq 0x3050
jmp 0x5038
movq 0x1a7d8(%rip), %rax     # 0x1f808
movl 0x8(%rax), %edi
callq 0x3170
jmp 0x5098
cmpl $0x0, -0x4(%rbp)
jne 0x5054
movq 0x1a7c1(%rip), %rax     # 0x1f808
cmpl $0x0, 0x4(%rax)
jne 0x5054
callq 0xb0b0
jmp 0x5096
movq 0x1a7ad(%rip), %rax     # 0x1f808
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq 0x1a79e(%rip), %rax     # 0x1f808
movl 0x4(%rax), %ecx
leaq 0x1abf0(%rip), %rax     # 0x1fc64
movl %ecx, (%rax)
movq 0x1a78b(%rip), %rax     # 0x1f808
movq 0x10(%rax), %rax
movq %rax, 0x1a780(%rip)     # 0x1f808
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x3130
jmp 0x5098
jmp 0x509a
movq 0x1a767(%rip), %rax     # 0x1f808
movq 0x10(%rax), %rax
movq %rax, 0x1a75c(%rip)     # 0x1f808
jmp 0x4f27
movl $0x1, %edi
callq 0x5c00
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)