// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mb_mirth_mirth_PropLabel_prop_1_sp4_0
static void mb_mirth_mirth_PropLabel_prop_1_sp4_0 (void) {
	uint64_t v0 = V_mirth_data_Data(pop_value());
	struct mirth_mirth_zaMirth* r1 = V_mirth_mirth_zaMirth(pop_resource());
	struct mirth_mirth_zaMirth* v2;
	bool v3 = mw_mirth_data_Data_iszeunitzy(r1, v0, &v2);
	uint64_t branch_Data_4;
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	struct std_maybe_Maybe_1 branch_Maybe_6;
	if (v3) {
		STR* v7;
		STRLIT(v7, "void", 4);
		struct mirth_type_CType v8 = mtw_mirth_type_CType_Void(v7);
		struct std_maybe_Maybe_1 v9 = mtw_std_maybe_Maybe_1_Some(MK_mirth_type_CType(v8));
		branch_Maybe_6 = v9;
		branch_zaMirth_5 = v2;
		branch_Data_4 = v0;
	} else {
		struct mirth_mirth_zaMirth* v10;
		bool v11 = mw_mirth_data_Data_iszeenumzy(v2, v0, &v10);
		uint64_t branch_Data_12;
		struct mirth_mirth_zaMirth* branch_zaMirth_13;
		struct std_maybe_Maybe_1 branch_Maybe_14;
		if (v11) {
			STR* v15;
			STRLIT(v15, "int", 3);
			struct mirth_type_CType v16 = mtw_mirth_type_CType_Int(v15);
			struct std_maybe_Maybe_1 v17 = mtw_std_maybe_Maybe_1_Some(MK_mirth_type_CType(v16));
			branch_Maybe_14 = v17;
			branch_zaMirth_13 = v10;
			branch_Data_12 = v0;
		} else {
			struct mirth_mirth_zaMirth* v18;
			struct std_maybe_Maybe_1 v19 = mw_mirth_data_Data_semizetransparentzy(v10, v0, &v18);
			struct mirth_mirth_zaMirth* branch_zaMirth_20;
			struct std_maybe_Maybe_1 branch_Maybe_21;
			switch ((v19).tag) {
				case std_maybe_Maybe_1_Some: {
					VAL v22 = mtp_std_maybe_Maybe_1_Some(v19);
					struct mirth_type_StackTypePart v23 = V_mirth_data_SemiTransparentData(v22)->minput;
					incref(MK_mirth_type_StackTypePart(v23));
					decref(MK_mirth_data_SemiTransparentData(V_mirth_data_SemiTransparentData(v22)));
					struct mirth_mirth_zaMirth* branch_zaMirth_24;
					struct std_maybe_Maybe_1 branch_Maybe_25;
					switch ((v23).tag) {
						case mirth_type_StackTypePart_Cons: {
							struct mirth_type_Type v26 = mtp_mirth_type_StackTypePart_Cons(v23);
							struct mirth_mirth_zaMirth* v27;
							struct std_maybe_Maybe_1 v28 = mw_mirth_type_Type_ctypezy(v18, v26, &v27);
							branch_Maybe_25 = v28;
							branch_zaMirth_24 = v27;
						} break;
						case mirth_type_StackTypePart_ConsLabel: {
							uint64_t v29;
							struct mirth_type_Type v30 = mtp_mirth_type_StackTypePart_ConsLabel(v23, &v29);
							struct mirth_mirth_zaMirth* v31;
							struct std_maybe_Maybe_1 v32 = mw_mirth_type_Type_ctypezy(v18, v30, &v31);
							branch_Maybe_25 = v32;
							branch_zaMirth_24 = v31;
						} break;
						case mirth_type_StackTypePart_With: {
							struct mirth_type_Type v33 = mtp_mirth_type_StackTypePart_With(v23);
							struct mirth_mirth_zaMirth* v34;
							struct std_maybe_Maybe_1 v35 = mw_mirth_type_Resource_ctypezy(v18, v33, &v34);
							branch_Maybe_25 = v35;
							branch_zaMirth_24 = v34;
						} break;
						case mirth_type_StackTypePart_WithLabel: {
							uint64_t v36;
							struct mirth_type_Type v37 = mtp_mirth_type_StackTypePart_WithLabel(v23, &v36);
							struct mirth_mirth_zaMirth* v38;
							struct std_maybe_Maybe_1 v39 = mw_mirth_type_Resource_ctypezy(v18, v37, &v38);
							branch_Maybe_25 = v39;
							branch_zaMirth_24 = v38;
						} break;
						default: {
							do_panic(str_make("unexpected fallthrough in match\n", 32));
						}
					}
					branch_Maybe_21 = branch_Maybe_25;
					branch_zaMirth_20 = branch_zaMirth_24;
				} break;
				case std_maybe_Maybe_1_None: {
					struct std_maybe_Maybe_1 v40 = { .tag=std_maybe_Maybe_1_None };
					branch_Maybe_21 = v40;
					branch_zaMirth_20 = v18;
				} break;
				default: {
					do_panic(str_make("unexpected fallthrough in match\n", 32));
				}
			}
			branch_Maybe_14 = branch_Maybe_21;
			branch_zaMirth_13 = branch_zaMirth_20;
			branch_Data_12 = v0;
		}
		branch_Maybe_6 = branch_Maybe_14;
		branch_zaMirth_5 = branch_zaMirth_13;
		branch_Data_4 = branch_Data_12;
	}
	push_resource(MK_mirth_mirth_zaMirth(branch_zaMirth_5));
	push_value(MK_std_maybe_Maybe_1(branch_Maybe_6));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
callq 0xd3d6
movq %rax, %rbx
callq 0xd429
leaq -0x38(%rbp), %rdx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x6ecc8
testb %al, %al
je 0x6eabe
movq 0x109e8d3(%rip), %rdi   # 0x110d328
testq %rdi, %rdi
jne 0x6ea73
leaq 0x690a6(%rip), %rdi     # 0xd7b07
pushq $0x4
popq %rsi
callq 0x8a21
movq %rax, %rdi
movq %rax, 0x109e8b5(%rip)   # 0x110d328
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdi, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x6ea93
incl (%rax)
callq 0x1d99e
movabsq $0x6000000000000, %rdi  # imm = 0x6000000000000
orq %rdx, %rdi
leaq 0x9a2c5(%rip), %rsi     # 0x108d71
callq 0x8d0c
movq -0x38(%rbp), %rdi
addq $0x4, %rbx
jmp 0x6ec43
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %rdx
movq %rbx, %rsi
callq 0x6d6c4
testb %al, %al
je 0x6eb3b
movq 0x109e857(%rip), %rdi   # 0x110d330
testq %rdi, %rdi
jne 0x6eaf7
leaq 0x690a2(%rip), %rdi     # 0xd7b87
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, %rdi
movq %rax, 0x109e839(%rip)   # 0x110d330
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdi, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x6eb17
incl (%rax)
callq 0x1e9b1
movq %rdx, %rdi
addq $0x4, %rbx
orq %rbx, %rdi
leaq 0x9a244(%rip), %rsi     # 0x108d71
callq 0x8d0c
movq -0x30(%rbp), %rdi
jmp 0x6ec43
movq -0x30(%rbp), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x71564
testl %eax, %eax
je 0x6ebe0
cmpl $0x1, %eax
jne 0x6ec6b
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0xd491
movq %rax, %rdi
movl 0x10(%rax), %r14d
movq 0x18(%rax), %rbx
movq %rbx, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %bl
setne %sil
orb %dl, %sil
jne 0x6eb90
incl (%rcx)
andq %r15, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x6ebb1
decl (%rax)
jne 0x6ebb1
leaq 0x9af8d(%rip), %rsi     # 0x109b39
callq 0xce94
cmpl $0x3, %r14d
ja 0x6ec6b
movl %r14d, %eax
leaq 0x648af(%rip), %rcx     # 0xd3474
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x3aac9
movq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %r14
jmp 0x6ec30
xorl %ebx, %ebx
movq -0x20(%rbp), %rdi
xorl %edx, %edx
jmp 0x6ec3f
movq %rbx, %rdi
callq 0x3ab5d
movq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %r14
jmp 0x6ec10
leaq -0x28(%rbp), %rsi
movq %rbx, %rdi
callq 0x3ab9d
movq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %r14
movl %eax, %esi
movq %r14, %rcx
callq 0x71855
jmp 0x6ec3a
leaq -0x28(%rbp), %rsi
movq %rbx, %rdi
callq 0x3ab09
movq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %r14
movl %eax, %esi
movq %r14, %rcx
callq 0x5d49c
movl %eax, %ebx
movq (%r14), %rdi
shlq $0x30, %rbx
orq %rdx, %rbx
leaq 0x99ca3(%rip), %rsi     # 0x1088f0
callq 0x883c
leaq 0x99668(%rip), %rsi     # 0x1082c1
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xd08e
leaq 0x65b9b(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6