// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Stack_popzeresourcezelabelzy
static uint64_t mw_mirth_c99_zaC99Stack_popzeresourcezelabelzy (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Stack in_zaC99Stack_2, uint64_t in_Label_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99Stack *out_zaC99Stack_5, struct std_maybe_zaMaybe_1 *out_zaMaybe_7) {
	struct mirth_mirth_zaMirth* branch_zaMirth_8;
	struct mirth_c99_zaC99Stack branch_zaC99Stack_9;
	uint64_t branch_Label_10;
	struct std_maybe_zaMaybe_1 branch_zaMaybe_11;
	switch ((in_zaC99Stack_2).tag) {
		case mirth_c99_zaC99Stack_zaNil: {
			struct std_maybe_zaMaybe_1 v12 = { .tag=std_maybe_zaMaybe_1_zaNone };
			struct mirth_c99_zaC99Stack v13 = { .tag=mirth_c99_zaC99Stack_zaNil };
			branch_zaMaybe_11 = v12;
			branch_Label_10 = in_Label_3;
			branch_zaC99Stack_9 = v13;
			branch_zaMirth_8 = in_zaMirth_1;
		} break;
		case mirth_c99_zaC99Stack_zaCons: {
			struct mirth_c99_zaC99Stack v14;
			struct mirth_c99_zaC99Value* v15;
			mtp_mirth_c99_zaC99Stack_zaCons(in_zaC99Stack_2, &v14, &v15);
			struct mirth_mirth_zaMirth* v16;
			struct mirth_c99_zaC99Stack v17;
			struct std_maybe_zaMaybe_1 v18;
			uint64_t v19 = mw_mirth_c99_zaC99Stack_popzeresourcezelabelzy(in_zaMirth_1, v14, in_Label_3, &v16, &v17, &v18);
			struct mirth_c99_zaC99Stack v20;
			mtw_mirth_c99_zaC99Stack_zaCons(v17, v15, &v20);
			branch_zaMaybe_11 = v18;
			branch_Label_10 = v19;
			branch_zaC99Stack_9 = v20;
			branch_zaMirth_8 = v16;
		} break;
		case mirth_c99_zaC99Stack_zaWith: {
			struct mirth_c99_zaC99Stack v21;
			struct mirth_c99_zaC99Resource* v22;
			mtp_mirth_c99_zaC99Stack_zaWith(in_zaC99Stack_2, &v21, &v22);
			struct mirth_mirth_zaMirth* v23;
			struct mirth_c99_zaC99Stack v24;
			struct std_maybe_zaMaybe_1 v25;
			uint64_t v26 = mw_mirth_c99_zaC99Stack_popzeresourcezelabelzy(in_zaMirth_1, v21, in_Label_3, &v23, &v24, &v25);
			struct mirth_c99_zaC99Stack v27;
			mtw_mirth_c99_zaC99Stack_zaWith(v24, v22, &v27);
			branch_zaMaybe_11 = v25;
			branch_Label_10 = v26;
			branch_zaC99Stack_9 = v27;
			branch_zaMirth_8 = v23;
		} break;
		case mirth_c99_zaC99Stack_zaConsLabel: {
			struct mirth_c99_zaC99Stack v28;
			struct mirth_c99_zaC99Value* v29;
			uint64_t v30 = mtp_mirth_c99_zaC99Stack_zaConsLabel(in_zaC99Stack_2, &v28, &v29);
			struct mirth_mirth_zaMirth* v31;
			struct mirth_c99_zaC99Stack v32;
			struct std_maybe_zaMaybe_1 v33;
			uint64_t v34 = mw_mirth_c99_zaC99Stack_popzeresourcezelabelzy(in_zaMirth_1, v28, in_Label_3, &v31, &v32, &v33);
			struct mirth_c99_zaC99Stack v35;
			mtw_mirth_c99_zaC99Stack_zaConsLabel(v32, v29, v30, &v35);
			branch_zaMaybe_11 = v33;
			branch_Label_10 = v34;
			branch_zaC99Stack_9 = v35;
			branch_zaMirth_8 = v31;
		} break;
		case mirth_c99_zaC99Stack_zaWithLabel: {
			struct mirth_c99_zaC99Stack v36;
			struct mirth_c99_zaC99Resource* v37;
			uint64_t v38 = mtp_mirth_c99_zaC99Stack_zaWithLabel(in_zaC99Stack_2, &v36, &v37);
			uint64_t v39 = v38;
			uint64_t v40 = in_Label_3;
			bool v41 = (v39 == v40);
			struct mirth_mirth_zaMirth* branch_zaMirth_42;
			struct mirth_c99_zaC99Stack branch_zaC99Stack_43;
			uint64_t branch_Label_44;
			struct std_maybe_zaMaybe_1 branch_zaMaybe_45;
			if (v41) {
				struct std_maybe_zaMaybe_1 v46;
				mtw_std_maybe_zaMaybe_1_zaSome(MK_mirth_c99_zaC99Resource(v37), &v46);
				branch_zaMaybe_45 = v46;
				branch_Label_44 = in_Label_3;
				branch_zaC99Stack_43 = v36;
				branch_zaMirth_42 = in_zaMirth_1;
			} else {
				struct mirth_mirth_zaMirth* v47;
				struct mirth_c99_zaC99Stack v48;
				struct std_maybe_zaMaybe_1 v49;
				uint64_t v50 = mw_mirth_c99_zaC99Stack_popzeresourcezelabelzy(in_zaMirth_1, v36, in_Label_3, &v47, &v48, &v49);
				struct mirth_c99_zaC99Stack v51;
				mtw_mirth_c99_zaC99Stack_zaWithLabel(v48, v37, v38, &v51);
				branch_zaMaybe_45 = v49;
				branch_Label_44 = v50;
				branch_zaC99Stack_43 = v51;
				branch_zaMirth_42 = v47;
			}
			branch_zaMaybe_11 = branch_zaMaybe_45;
			branch_Label_10 = branch_Label_44;
			branch_zaC99Stack_9 = branch_zaC99Stack_43;
			branch_zaMirth_8 = branch_zaMirth_42;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMaybe_7 = branch_zaMaybe_11;
	*out_zaC99Stack_5 = branch_zaC99Stack_9;
	*out_zaMirth_4 = branch_zaMirth_8;
	return branch_Label_10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq 0x10(%rbp), %rax
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movl -0x10(%rbp), %eax
movq %rax, -0x260(%rbp)
subq $0x4, %rax
ja 0x29b147
movq -0x260(%rbp), %rax
leaq 0xb89f0(%rip), %rcx     # 0x3536b8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x70(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x29b160
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x90(%rbp), %rdx
leaq -0x98(%rbp), %rcx
callq 0x295c50
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl -0x90(%rbp), %esi
movq -0x88(%rbp), %rdx
leaq -0xa0(%rbp), %r8
leaq -0xb0(%rbp), %r9
leaq -0xc0(%rbp), %rax
movq %rax, (%rsp)
callq 0x29ac80
movq %rax, -0xc8(%rbp)
movq -0x98(%rbp), %rdx
movl -0xb0(%rbp), %edi
movq -0xa8(%rbp), %rsi
leaq -0xd8(%rbp), %rcx
callq 0x28cdf0
movq -0xc0(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x29b160
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
leaq -0xf0(%rbp), %rcx
callq 0x295cb0
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl -0xe8(%rbp), %esi
movq -0xe0(%rbp), %rdx
leaq -0xf8(%rbp), %r8
leaq -0x108(%rbp), %r9
leaq -0x118(%rbp), %rax
movq %rax, (%rsp)
callq 0x29ac80
movq %rax, -0x120(%rbp)
movq -0xf0(%rbp), %rdx
movl -0x108(%rbp), %edi
movq -0x100(%rbp), %rsi
leaq -0x130(%rbp), %rcx
callq 0x28d050
movq -0x118(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x120(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x130(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x128(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0xf8(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x29b160
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x140(%rbp), %rdx
leaq -0x148(%rbp), %rcx
callq 0x295d80
movq %rax, -0x150(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl -0x140(%rbp), %esi
movq -0x138(%rbp), %rdx
leaq -0x158(%rbp), %r8
leaq -0x168(%rbp), %r9
leaq -0x178(%rbp), %rax
movq %rax, (%rsp)
callq 0x29ac80
movq %rax, -0x180(%rbp)
movq -0x148(%rbp), %rdx
movq -0x150(%rbp), %rcx
movl -0x168(%rbp), %edi
movq -0x160(%rbp), %rsi
leaq -0x190(%rbp), %r8
callq 0x28cea0
movq -0x178(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x170(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x180(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x190(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x188(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x158(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x29b160
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
leaq -0x1a8(%rbp), %rcx
callq 0x295d10
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq -0x1b8(%rbp), %rax
cmpq -0x1c0(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x1c1(%rbp)
testb $0x1, -0x1c1(%rbp)
je 0x29b04e
movq -0x1a8(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq 0xf833e(%rip), %rax     # 0x393318
movq %rax, -0x210(%rbp)
movq -0x218(%rbp), %rdi
movq -0x210(%rbp), %rsi
leaq -0x208(%rbp), %rdx
callq 0x1b0f60
movq -0x208(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq -0x200(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq -0x1a0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x198(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1d0(%rbp)
jmp 0x29b103
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rcx
movl -0x1a0(%rbp), %esi
movq -0x198(%rbp), %rdx
leaq -0x220(%rbp), %r8
leaq -0x230(%rbp), %r9
leaq -0x240(%rbp), %rax
movq %rax, (%rsp)
callq 0x29ac80
movq %rax, -0x248(%rbp)
movq -0x1a8(%rbp), %rdx
movq -0x1b0(%rbp), %rcx
movl -0x230(%rbp), %edi
movq -0x228(%rbp), %rsi
leaq -0x258(%rbp), %r8
callq 0x28d100
movq -0x240(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq -0x238(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x248(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq -0x258(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x250(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x220(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq -0x1f8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x1f0(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x1e8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x1e0(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x1d8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x1d0(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x29b160
leaq 0xb8d33(%rip), %rdi     # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq 0x10(%rbp), %rax
movq -0x60(%rbp), %rcx
movq %rcx, (%rax)
movq -0x58(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq -0x48(%rbp), %rcx
movq %rcx, (%rax)
movq -0x40(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x50(%rbp), %rax
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
nop