// File: /workspace/github_c_makefile_star2_O3/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 0xd699
movq %rax, %rbx
callq 0xd6f2
leaq -0x38(%rbp), %rdx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x75465
testb %al, %al
je 0x75295
movq 0x10a1106(%rip), %rdi   # 0x1116328
testq %rdi, %rdi
jne 0x7524a
movl $0x4, %edi
callq 0xf5e4
movq %rax, %rdi
movq $0x4, 0x10(%rax)
movl $0x64696f76, 0x18(%rax) # imm = 0x64696F76
movq %rax, 0x10a10de(%rip)   # 0x1116328
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdi, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x7526a
incl (%rax)
callq 0x1fd61
movabsq $0x6000000000000, %rdi  # imm = 0x6000000000000
orq %rdx, %rdi
leaq 0x9caee(%rip), %rsi     # 0x111d71
callq 0x9353
movq -0x38(%rbp), %rdi
addq $0x4, %rbx
jmp 0x7540d
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %rdx
movq %rbx, %rsi
callq 0x73e34
testb %al, %al
je 0x7531f
movq 0x10a1080(%rip), %rdi   # 0x1116330
testq %rdi, %rdi
jne 0x752db
movl $0x3, %edi
callq 0xf5e4
movq %rax, %rdi
movq $0x3, 0x10(%rax)
movw $0x6e69, 0x18(%rax)     # imm = 0x6E69
movb $0x74, 0x1a(%rax)
movq %rax, 0x10a1055(%rip)   # 0x1116330
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdi, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x752fb
incl (%rax)
callq 0x20c82
movq %rdx, %rdi
addq $0x4, %rbx
orq %rbx, %rdi
leaq 0x9ca60(%rip), %rsi     # 0x111d71
callq 0x9353
movq -0x30(%rbp), %rdi
jmp 0x7540d
movq -0x30(%rbp), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x77e36
testl %eax, %eax
je 0x753bc
cmpl $0x1, %eax
jne 0x75435
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0xd745
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 0x75374
incl (%rcx)
andq %r15, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x75395
decl (%rax)
jne 0x75395
leaq 0x9d7a9(%rip), %rsi     # 0x112b39
callq 0xd13d
cmpl $0x3, %r14d
ja 0x75435
movl %r14d, %eax
leaq 0x6a0cb(%rip), %rcx     # 0xdf474
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x3e10c
jmp 0x753dc
xorl %ebx, %ebx
movq -0x20(%rbp), %rdi
xorl %edx, %edx
jmp 0x75409
movq %rbx, %rdi
callq 0x3e1a0
jmp 0x753dc
leaq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x3e1e0
movq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %r14
jmp 0x753fa
leaq -0x28(%rbp), %rsi
movq %rbx, %rdi
callq 0x3e14c
movq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %r14
movl %eax, %esi
movq %r14, %rcx
callq 0x62509
movl %eax, %ebx
movq (%r14), %rdi
shlq $0x30, %rbx
orq %rdx, %rbx
leaq 0x9c4d9(%rip), %rsi     # 0x1118f0
callq 0x8e6d
leaq 0x9be9e(%rip), %rsi     # 0x1112c1
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xd34b
movl $0x20, %edi
callq 0xf5e4
movq $0x20, 0x10(%rax)
movups 0x6b27f(%rip), %xmm0    # 0xe06cd
movups %xmm0, 0x18(%rax)
movups 0x6b284(%rip), %xmm0    # 0xe06dd
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x9302