// File: /workspace/github_c_makefile_star2_O1/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 0xda3f
movq %rax, %rbx
callq 0xda98
leaq -0x38(%rbp), %rdx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x77232
testb %al, %al
je 0x77060
cmpq $0x0, 0x10a333c(%rip)   # 0x111a328
jne 0x7700e
movl $0x4, %edi
callq 0xf9f7
movq $0x4, 0x10(%rax)
movl $0x64696f76, 0x18(%rax) # imm = 0x64696F76
movq %rax, 0x10a331a(%rip)   # 0x111a328
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq 0x10a3309(%rip), %rdi   # 0x111a328
movq %rdi, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x77035
incl (%rax)
callq 0x20268
movabsq $0x6000000000000, %rdi  # imm = 0x6000000000000
orq %rdx, %rdi
leaq 0x9ed23(%rip), %rsi     # 0x115d71
callq 0x95f6
movq -0x38(%rbp), %rdi
addq $0x4, %rbx
jmp 0x771da
movq -0x38(%rbp), %rdi
leaq -0x30(%rbp), %rdx
movq %rbx, %rsi
callq 0x75c02
testb %al, %al
je 0x770ec
cmpq $0x0, 0x10a32b4(%rip)   # 0x111a330
jne 0x770a1
movl $0x3, %edi
callq 0xf9f7
movq $0x3, 0x10(%rax)
movw $0x6e69, 0x18(%rax)     # imm = 0x6E69
movb $0x74, 0x1a(%rax)
movq %rax, 0x10a328f(%rip)   # 0x111a330
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq 0x10a327e(%rip), %rdi   # 0x111a330
movq %rdi, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x770c8
incl (%rax)
callq 0x211ed
movq %rdx, %rdi
addq $0x4, %rbx
orq %rbx, %rdi
leaq 0x9ec93(%rip), %rsi     # 0x115d71
callq 0x95f6
movq -0x30(%rbp), %rdi
jmp 0x771da
movq -0x30(%rbp), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x79ceb
testl %eax, %eax
je 0x77189
cmpl $0x1, %eax
jne 0x77202
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0xdaeb
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 0x77141
incl (%rcx)
andq %r15, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x77162
decl (%rax)
jne 0x77162
leaq 0x9f9dc(%rip), %rsi     # 0x116b39
callq 0xd4e3
cmpl $0x3, %r14d
ja 0x77202
movl %r14d, %eax
leaq 0x6c2b6(%rip), %rcx     # 0xe342c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rbx, %rdi
callq 0x3f453
jmp 0x771a9
xorl %ebx, %ebx
movq -0x20(%rbp), %rdi
xorl %edx, %edx
jmp 0x771d6
movq %rbx, %rdi
callq 0x3f4e7
jmp 0x771a9
leaq -0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0x3f527
movq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %r14
jmp 0x771c7
leaq -0x28(%rbp), %rsi
movq %rbx, %rdi
callq 0x3f493
movq -0x20(%rbp), %rdi
leaq -0x40(%rbp), %r14
movl %eax, %esi
movq %r14, %rcx
callq 0x640d0
movl %eax, %ebx
movq (%r14), %rdi
shlq $0x30, %rbx
orq %rdx, %rbx
leaq 0x9e70c(%rip), %rsi     # 0x1158f0
callq 0x9116
leaq 0x9e0d1(%rip), %rsi     # 0x1152c1
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xd6f1
movl $0x20, %edi
callq 0xf9f7
movq $0x20, 0x10(%rax)
movups 0x6d532(%rip), %xmm0    # 0xe474d
movups %xmm0, 0x18(%rax)
movups 0x6d537(%rip), %xmm0    # 0xe475d
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x95a5