LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_table_Field_basis
static struct mirth_type_StackType mw_mirth_table_Field_basis (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Field_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_type_StackType v5 = mw_mirth_type_T0();
	struct mirth_mirth_zaMirth* v6;
	struct mirth_table_StateOwner v7 = mw_mirth_table_Field_owner(in_zaMirth_1, in_Field_2, &v6);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_type_StackType v9 = mw_mirth_table_StateOwner_push(v6, v5, v7, &v8);
	*out_zaMirth_3 = v8;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
callq 0x73060
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x14e730
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movl -0x38(%rbp), %esi
movq -0x30(%rbp), %rdx
movl -0x50(%rbp), %ecx
movq -0x48(%rbp), %r8
leaq -0x58(%rbp), %r9
callq 0x14e7a0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_table_Field_indexzetype
static struct mirth_type_Type mw_mirth_table_Field_indexzetype (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Field_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_table_Field_ztindexzetype, in_Field_2);
	struct mirth_mirth_zaMirth* v6;
	VAL v7 = mw_mirth_mirth_Prop_1_forcezx(in_zaMirth_1, v5, &v6);
	*out_zaMirth_3 = v6;
	return V_mirth_type_Type(v7);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x12477a9(%rip), %rdi   # 0x1395e88
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x5d130
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x6f100
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_table_StateOwner_Resource
static struct std_list_List_1 mtp_mirth_table_StateOwner_Resource (struct mirth_table_StateOwner in_StateOwner_1, struct mirth_type_Type *out_Resource_3) {
	struct mirth_table_StateOwner_Resource v4 = *in_StateOwner_1.ptr.Resource;
	if (!--(in_StateOwner_1.ptr.Resource->refs)) {
		free(in_StateOwner_1.ptr.Resource);
	} else {
		incref(MK_std_list_List_1(v4.mCtx));
		incref(MK_mirth_type_Type(v4.mResource));
	}
	*out_Resource_3 = v4.mResource;
	return v4.mCtx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x50(%rbp), %rdi
movl $0x28, %edx
callq 0x50e0
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x14eb66
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x14eccb
jmp 0x14eb68
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x12780
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x14ec06
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x12780
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x70(%rbp), %rax
cmpq $0x0, %rax
je 0x14ec06
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x12780
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x80(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x14ec06
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x12780
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x90(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x14ec08
jmp 0x14ec0a
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x6e780
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movq -0x98(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x14ecc7
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x6e780
movq %rax, -0xb0(%rbp)
movq %rdx, -0xa8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xb0(%rbp), %rax
cmpq $0x0, %rax
je 0x14ecc7
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x6e780
movq %rax, -0xc0(%rbp)
movq %rdx, -0xb8(%rbp)
movq -0xc0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x14ecc7
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x6e780
movq %rax, -0xd0(%rbp)
movq %rdx, -0xc8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xd0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x14ecc9
jmp 0x14eccb
movq -0x28(%rbp), %rax
movups -0x38(%rbp), %xmm0
movups %xmm0, (%rax)
movups -0x48(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xd0, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_table_Field_valuezetype
static struct mirth_type_Type mw_mirth_table_Field_valuezetype (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Field_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_table_Field_ztvaluezetype, in_Field_2);
	struct mirth_mirth_zaMirth* v6;
	VAL v7 = mw_mirth_mirth_Prop_1_forcezx(in_zaMirth_1, v5, &v6);
	*out_zaMirth_3 = v6;
	return V_mirth_type_Type(v7);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x1247189(%rip), %rdi   # 0x1395e98
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x5d130
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x6f100
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_ArrowType_semifreshenzeaux
static struct mirth_type_ArrowType* mw_mirth_type_ArrowType_semifreshenzeaux (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_ArrowType* in_ArrowType_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_type_StackType v5;
	struct mirth_type_StackType v6;
	mtp_mirth_type_ArrowType_ArrowType(in_ArrowType_2, &v5, &v6);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_type_StackType v8 = mw_mirth_type_StackType_Freshzx(in_zaMirth_1, &v7);
	struct mirth_mirth_zaMirth* v9;
	struct mirth_type_StackType v10;
	struct mirth_type_StackType v11 = mw_mirth_type_StackType_semifreshen(v7, v8, v6, &v9, &v10);
	struct mirth_mirth_zaMirth* v12;
	struct mirth_type_StackType v13;
	struct mirth_type_StackType v14 = mw_mirth_type_StackType_semifreshen(v9, v11, v5, &v12, &v13);
	struct mirth_type_ArrowType* v15 = mtw_mirth_type_ArrowType_ArrowType(v13, v10);
	decref(MK_mirth_type_StackType(v14));
	*out_zaMirth_3 = v12;
	return v15;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0xc1010
movq -0x8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0xcd420
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movl -0x50(%rbp), %esi
movq -0x48(%rbp), %rdx
movl -0x38(%rbp), %ecx
movq -0x30(%rbp), %r8
leaq -0x58(%rbp), %r9
leaq -0x68(%rbp), %rax
movq %rax, (%rsp)
callq 0x14ef50
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x58(%rbp), %rdi
movl -0x78(%rbp), %esi
movq -0x70(%rbp), %rdx
movl -0x28(%rbp), %ecx
movq -0x20(%rbp), %r8
leaq -0x80(%rbp), %r9
leaq -0x90(%rbp), %rax
movq %rax, (%rsp)
callq 0x14ef50
movl %eax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movl -0x90(%rbp), %edi
movq -0x88(%rbp), %rsi
movl -0x68(%rbp), %edx
movq -0x60(%rbp), %rcx
callq 0x74a80
movq %rax, -0xa8(%rbp)
movl -0xa0(%rbp), %edi
movq -0x98(%rbp), %rsi
callq 0x6f140
movq %rax, -0xb8(%rbp)
movq %rdx, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x14ef2c
movl -0xa0(%rbp), %edi
movq -0x98(%rbp), %rsi
callq 0x6f140
movq %rax, -0xc8(%rbp)
movq %rdx, -0xc0(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xc8(%rbp), %rax
cmpq $0x0, %rax
je 0x14ef2c
movl -0xa0(%rbp), %edi
movq -0x98(%rbp), %rsi
callq 0x6f140
movq %rax, -0xd8(%rbp)
movq %rdx, -0xd0(%rbp)
movq -0xd8(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x14ef2c
movl -0xa0(%rbp), %edi
movq -0x98(%rbp), %rsi
callq 0x6f140
movq %rax, -0xe8(%rbp)
movq %rdx, -0xe0(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0xe8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x14ef2a
movl -0xa0(%rbp), %edi
movq -0x98(%rbp), %rsi
callq 0x6f140
movq %rax, -0xf8(%rbp)
movq %rdx, -0xf0(%rbp)
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
callq 0x127c0
jmp 0x14ef2c
jmp 0x14ef2e
movq -0x80(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0xa8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_data_TagField_TagField
static void mtp_mirth_data_TagField_TagField (struct mirth_data_TagField* in_TagField_1, uint64_t *out_Tag_2, uint64_t *out_Label_3, struct std_either_Either_2 *out_Either_4) {
	struct mirth_data_TagField v5 = *in_TagField_1;
	if (!--(in_TagField_1->refs)) {
		free(in_TagField_1);
	} else {
		incref(MK_std_either_Either_2(v5.mtypezfresource));
	}
	*out_Either_4 = v5.mtypezfresource;
	*out_Label_3 = v5.mlabel;
	*out_Tag_2 = v5.mtag;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
movl $0x28, %edx
callq 0x50e0
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x14f96b
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x14fa0c
jmp 0x14f96d
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x7bae0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x14fa08
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x7bae0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0x14fa08
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x7bae0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x14fa08
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x7bae0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x88(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x14fa0a
jmp 0x14fa0c
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
addq $0x90, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_maybe_Maybe_1_ifzy_2_sp58
static void mw_std_maybe_Maybe_1_ifzy_2_sp58 (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_Str_2, struct std_maybe_Maybe_1 in_Maybe_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	switch ((in_Maybe_3).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v6 = mtp_std_maybe_Maybe_1_Some(in_Maybe_3);
			struct mirth_mirth_zaMirth* v7;
			mw_mirth_mirth_zaMirth_emitzeerrorzx(in_zaMirth_1, V_mirth_token_Token(v6), in_Str_2, &v7);
			branch_zaMirth_5 = v7;
		} break;
		case std_maybe_Maybe_1_None: {
			struct mirth_mirth_zaMirth* v8;
			mw_mirth_mirth_zaMirth_errorzx(in_zaMirth_1, in_Str_2, &v8);
			branch_zaMirth_5 = v8;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_4 = branch_zaMirth_5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edx, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x54(%rbp)
testl %eax, %eax
je 0x150a94
jmp 0x150a57
movl -0x54(%rbp), %eax
subl $0x1, %eax
jne 0x150aaf
jmp 0x150a61
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x174a0
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x20(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0x98c50
movq -0x48(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x150ac8
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0xb2900
movq -0x50(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x150ac8
leaq 0x2033cb(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_Resource_exceptzefield
static struct mirth_type_Type mw_mirth_type_Resource_exceptzefield (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Label_2, uint64_t in_Tag_3, struct mirth_type_Type in_Resource_4, struct mirth_mirth_zaMirth* *out_zaMirth_5) {
	struct mirth_mirth_zaMirth* v7;
	struct mirth_type_Type v8 = mw_mirth_type_Type_exceptzefield(in_zaMirth_1, in_Label_2, in_Tag_3, in_Resource_4, &v7);
	*out_zaMirth_5 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %ecx, -0x20(%rbp)
movq %r8, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
movl -0x20(%rbp), %ecx
movq -0x18(%rbp), %r8
leaq -0x48(%rbp), %r9
callq 0x150ae0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_data_DataPartial_DataPartial
static struct mirth_data_DataPartial* mtw_mirth_data_DataPartial_DataPartial (uint64_t in_Data_1, uint64_t in_Label_2) {
	struct mirth_data_DataPartial* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mfield = in_Label_2;
	v4->mdata = in_Data_1;
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x1511d4
movl $0x2, %edi
leaq 0x20901d(%rip), %rsi    # 0x35a1d3
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x1511d6
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_StackTypeCounts_Nil
static struct mirth_type_StackTypeCounts* mw_mirth_type_StackTypeCounts_Nil (void) {
	INT v2 = WRAP_I63(0LL);
	INT v3 = WRAP_I63(0LL);
	struct std_list_List_1 v4 = mw_std_map_Map_2_Nil();
	struct mirth_type_StackTypeCounts* v5 = mtw_mirth_type_StackTypeCounts_StackTypeCounts(v2, v3, v4);
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq 0x21cac1(%rip), %rax    # 0x36ea50
movq %rax, -0x8(%rbp)
movq 0x21cab6(%rip), %rax    # 0x36ea50
movq %rax, -0x10(%rbp)
callq 0xda060
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %edx
movq -0x18(%rbp), %rcx
callq 0x153740
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackTypeCounts_StackTypeCounts
static struct mirth_type_StackTypeCounts* mtw_mirth_type_StackTypeCounts_StackTypeCounts (INT in_Nat_1, INT in_Nat_2, struct std_list_List_1 in_Map_3) {
	struct mirth_type_StackTypeCounts* v5 = calloc(1, sizeof *v5);
	ASSERT(v5);
	v5->refs = 1;
	v5->mlabels = in_Map_3;
	v5->mresources = in_Nat_2;
	v5->mvalues = in_Nat_1;
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x20(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x1, %edi
movl $0x28, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x15379b
movl $0x2, %edi
leaq 0x206b46(%rip), %rsi    # 0x35a2c3
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x15379d
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_std_map_KeyValuePair_2_KeyValuePair
static void mtp_std_map_KeyValuePair_2_KeyValuePair (struct std_map_KeyValuePair_2* in_KeyValuePair_1, VAL *out_k_2, VAL *out_v_3) {
	struct std_map_KeyValuePair_2 v4 = *in_KeyValuePair_1;
	if (!--(in_KeyValuePair_1->refs)) {
		free(in_KeyValuePair_1);
	} else {
		incref(v4.mkey);
		incref(v4.mvalue);
	}
	*out_v_3 = v4.mvalue;
	*out_k_2 = v4.mkey;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rsi
leaq -0x40(%rbp), %rdi
movl $0x28, %edx
callq 0x50e0
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x154cc4
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x154d58
jmp 0x154cc6
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x154d0b
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
cmpq $0x0, %rax
je 0x154d0b
movq -0x38(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x154d0b
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x154d0d
jmp 0x154d0f
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x154d54
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x28(%rbp), %rax
cmpq $0x0, %rax
je 0x154d54
movq -0x28(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x154d54
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x28(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x154d56
jmp 0x154d58
movq -0x18(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_zaAB_abzeargzeunifyzetypezx
static void mw_mirth_elab_zaAB_abzeargzeunifyzetypezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_arrow_Arrow* in_zaAB_2, struct mirth_type_Type in_Type_3, uint64_t in_Arg_4, struct mirth_mirth_zaMirth* *out_zaMirth_5, struct mirth_arrow_Arrow* *out_zaAB_6) {
	struct mirth_mirth_zaMirth* v7;
	struct mirth_type_Type v8 = mw_mirth_type_Type_unifyzeblockzx(in_zaMirth_1, in_Arg_4, in_Type_3, &v7);
	decref(MK_mirth_type_Type(v8));
	*out_zaAB_6 = in_zaAB_2;
	*out_zaMirth_5 = v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq 0x10(%rbp), %rax
movl %edx, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
movl -0x10(%rbp), %edx
movq -0x8(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0xc40f0
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x156f8c
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0x156f8c
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x156f8c
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x88(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x156f8a
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x127c0
jmp 0x156f8c
jmp 0x156f8e
movq -0x20(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_var_Ctx_freshzevarzx
static struct std_list_List_1 mw_mirth_var_Ctx_freshzevarzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Type_2, struct std_list_List_1 in_Ctx_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, uint64_t *out_Var_6) {
	struct mirth_mirth_zaMirth* v7;
	uint64_t v8;
	struct std_list_List_1 v9 = mw_mirth_var_Ctx_freshzenamezx(in_zaMirth_1, in_Ctx_3, &v7, &v8);
	struct mirth_mirth_zaMirth* v10;
	uint64_t v11 = mw_mirth_var_Var_Newzx(v7, in_Type_2, v8, &v10);
	struct std_list_List_1 v12 = mw_mirth_var_Ctx_new(v9, v11);
	*out_Var_6 = v11;
	*out_zaMirth_4 = v10;
	return v12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq 0x10(%rbp), %rax
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x30(%rbp)
movq %r8, -0x28(%rbp)
movq %rdi, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movl -0x30(%rbp), %esi
movq -0x28(%rbp), %rdx
leaq -0x48(%rbp), %rcx
leaq -0x50(%rbp), %r8
callq 0x15aa20
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rcx
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
leaq -0x68(%rbp), %r8
callq 0x6da30
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdx
movl -0x60(%rbp), %edi
movq -0x58(%rbp), %rsi
callq 0xb2880
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x70(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x68(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_word_Word_preferzeinlinezy
static bool mw_mirth_word_Word_preferzeinlinezy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Word_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_word_Word_preferzeinlinezy, in_Word_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	bool branch_Bool_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_Bool_8 = value_bool(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		bool v10 = false;
		mut_set(MKBOOL(v10), v5);
		branch_Bool_8 = v10;
		branch_zaMirth_7 = in_zaMirth_1;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Bool_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x12398b9(%rip), %rdi   # 0x1395888
callq 0x40d30
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x45e40
andb $0x1, %al
movb %al, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
je 0x15c019
movq -0x20(%rbp), %rdi
callq 0x40f30
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x741f0
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x15c055
movb $0x0, -0x49(%rbp)
movb -0x49(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movq %rax, -0x60(%rbp)
leaq 0x235d88(%rip), %rax    # 0x391db8
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rdx
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x431a0
movb -0x49(%rbp), %al
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movb -0x31(%rbp), %al
andb $0x1, %al
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_checkzeinlinezerecursionzeargzx
static void mw_mirth_elab_checkzeinlinezerecursionzeargzx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Word_2, uint64_t in_Arg_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_arrow_Arrow* v6 = mw_mirth_arrow_Block_arrow(in_zaMirth_1, in_Arg_3, &v5);
	struct mirth_mirth_zaMirth* v7;
	mw_mirth_elab_checkzeinlinezerecursionzearrowzx(v5, in_Word_2, v6, &v7);
	*out_zaMirth_4 = v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0xc4670
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x30(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0xf0100
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_checkzeinlinezerecursionzefailedzx
static void mw_mirth_elab_checkzeinlinezerecursionzefailedzx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Word_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v4;
	bool v5 = mw_mirth_word_Word_preferzeinlinezy(in_zaMirth_1, in_Word_2, &v4);
	struct mirth_mirth_zaMirth* branch_zaMirth_6;
	if (v5) {
		bool v7 = false;
		struct mirth_mirth_zaMirth* v8;
		mw_mirth_word_Word_preferzeinlinezyzx(v4, v7, in_Word_2, &v8);
		struct mirth_mirth_zaMirth* v9;
		uint64_t v10 = mw_mirth_word_Word_head(v8, in_Word_2, &v9);
		STR* v11;
		STRLIT(v11, "recursive word cannot be inlined", 32);
		struct mirth_mirth_zaMirth* v12;
		mw_mirth_mirth_zaMirth_emitzewarningzx(v9, v10, v11, &v12);
		branch_zaMirth_6 = v12;
	} else {
		branch_zaMirth_6 = v4;
	}
	*out_zaMirth_3 = branch_zaMirth_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x15bfb0
andb $0x1, %al
movb %al, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
je 0x15cf4f
movb $0x0, -0x31(%rbp)
movq -0x20(%rbp), %rdi
movb -0x31(%rbp), %al
movq -0x10(%rbp), %rdx
leaq -0x40(%rbp), %rcx
andb $0x1, %al
movzbl %al, %esi
callq 0xaaa00
movq -0x40(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x60a10
movq %rax, -0x50(%rbp)
cmpq $0x0, 0x12390b7(%rip)   # 0x1395ef8
jne 0x15ce5b
leaq 0x1fd643(%rip), %rdi    # 0x35a48d
movl $0x20, %esi
callq 0xb6c0
movq %rax, 0x123909d(%rip)   # 0x1395ef8
jmp 0x15ce5d
movq 0x1239094(%rip), %rax   # 0x1395ef8
movq %rax, -0x68(%rbp)
leaq 0x2342e9(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x15cf1d
movq 0x1239068(%rip), %rax   # 0x1395ef8
movq %rax, -0x78(%rbp)
leaq 0x2342bd(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x70(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rax
cmpq $0x0, %rax
je 0x15cf1d
movq 0x123903a(%rip), %rax   # 0x1395ef8
movq %rax, -0x88(%rbp)
leaq 0x23428c(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x15cf1d
movq 0x123900c(%rip), %rax   # 0x1395ef8
movq %rax, -0x98(%rbp)
leaq 0x23425e(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x90(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x98(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x15cf1f
movq 0x1238fd2(%rip), %rax   # 0x1395ef8
movq %rax, -0x58(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq -0xa0(%rbp), %rcx
callq 0x9e820
movq -0xa0(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x15cf57
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_QName_definedzehardzy
static bool mw_mirth_name_QName_definedzehardzy (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_name_QName* in_QName_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct std_maybe_Maybe_1 v6 = mw_mirth_name_QName_defzehardzy(in_zaMirth_1, in_QName_2, &v5);
	int64_t v7 = (v6).tag;
	decref(MK_std_maybe_Maybe_1(v6));
	INT v8 = WRAP_I63(0LL);
	INT v9 = v8;
	INT v10 = i64_to_int(v7);
	bool v11 = int_eq(v10, v9);
	bool v12 = !v11;
	*out_zaMirth_3 = v5;
	return v12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x15d3b0
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movl -0x30(%rbp), %eax
movq %rax, -0x38(%rbp)
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x15d32d
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
cmpq $0x0, %rax
je 0x15d32d
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x15d32d
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x15d32b
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x127c0
jmp 0x15d32d
jmp 0x15d32f
movq 0x21171a(%rip), %rax    # 0x36ea50
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x38(%rbp), %rdi
callq 0x1a290
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x194b0
andb $0x1, %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0xa2(%rbp)
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movb -0xa2(%rbp), %al
andb $0x1, %al
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_mirth_PropLabel_prop_1_sp15
static struct mirth_mirth_Prop_1* mw_mirth_mirth_PropLabel_prop_1_sp15 (struct std_list_List_1 in_List_1, struct mirth_mirth_zaMirth* in_zaMirth_2, struct mirth_mirth_PropLabel in_PropLabel_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_LexicalState* v6 = in_zaMirth_2->mlexicalzestate;
	incref(MK_mirth_mirth_LexicalState(v6));
	FNPTR v7 = &mb_mirth_mirth_PropLabel_prop_1_sp15_0;
	struct mirth_mirth_PropState_1 v8 = mtw_mirth_mirth_PropState_1_Delay(v6, MK_std_list_List_1(in_List_1), MKFNPTR(v7));
	struct mirth_mirth_Prop_1* v9 = mtw_mirth_mirth_Prop_1_Prop(in_PropLabel_3, v8);
	*out_zaMirth_4 = in_zaMirth_2;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl %ecx, -0x20(%rbp)
movq %r8, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x232c44(%rip), %rax    # 0x3918f0
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x15ed3e
movq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x232c1f(%rip), %rax    # 0x3918f0
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
cmpq $0x0, %rax
je 0x15ed3e
movq -0x38(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x232bf4(%rip), %rax    # 0x3918f0
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x15ed3e
movq -0x38(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq 0x232bcf(%rip), %rax    # 0x3918f0
orq $0x1, %rax
movq %rax, -0x70(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x15ed40
leaq 0x4b9(%rip), %rax       # 0x15f200
movq %rax, -0x80(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0xc0(%rbp)
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x12780
movq -0xc0(%rbp), %rdi
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq 0x23245f(%rip), %rax    # 0x3911e8
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq -0xb0(%rbp), %rcx
movq -0xa8(%rbp), %r8
callq 0x788b0
movl %eax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
movl -0x90(%rbp), %edx
movq -0x88(%rbp), %rcx
callq 0x70ac0
movq %rax, -0xb8(%rbp)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0xb8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mb_mirth_mirth_PropLabel_prop_1_sp49_0
static void mb_mirth_mirth_PropLabel_prop_1_sp49_0 (void) {
	PTUP v0 = value_tup(pop_value());
	struct mirth_mirth_zaMirth* r1 = V_mirth_mirth_zaMirth(pop_resource());
	VAL v2 = ((TUP*)PTRPTR(v0))->cells[0];
	VAL v3 = ((TUP*)PTRPTR(v0))->cells[1];
	tup_decref_outer(v0);
	struct mirth_mirth_zaMirth* v4;
	struct std_list_List_1 v5 = mw_mirth_typedef_TypeDef_params(r1, V_mirth_typedef_TypeDef(v2), &v4);
	struct std_list_List_1 v6 = mw_std_list_List_1_zgCtx(v5);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_type_Type v8 = mw_mirth_elab_elabzesimplezetypezeatomzx(v4, v6, V_mirth_token_Token(v3), &v7);
	push_resource(MK_mirth_mirth_zaMirth(v7));
	push_value(MK_mirth_type_Type(v8));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
callq 0x138a0
movq %rax, -0x18(%rbp)
movq %rdx, -0x10(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xb770
movq %rax, -0x8(%rbp)
callq 0x13920
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x8(%rbp), %rax
movq 0x18(%rax), %rcx
movq %rcx, -0x50(%rbp)
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb7e0
movq -0x20(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x58(%rbp), %rdx
callq 0xd8870
movl %eax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movl -0x68(%rbp), %edi
movq -0x60(%rbp), %rsi
callq 0x73040
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rcx
movl -0x78(%rbp), %esi
movq -0x70(%rbp), %rdx
leaq -0x80(%rbp), %r8
callq 0x1603c0
movl %eax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq 0x232a9b(%rip), %rax    # 0x391980
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x5b40
movl -0x90(%rbp), %edi
movq -0x88(%rbp), %rsi
callq 0x6e780
movq %rax, -0xb0(%rbp)
movq %rdx, -0xa8(%rbp)
movq -0xb0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x12cc0
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mb_mirth_mirth_PropLabel_prop_1_sp15_0
static void mb_mirth_mirth_PropLabel_prop_1_sp15_0 (void) {
	struct std_list_List_1 v0 = V_std_list_List_1(pop_value());
	struct mirth_mirth_zaMirth* r1 = V_mirth_mirth_zaMirth(pop_resource());
	struct mirth_mirth_zaMirth* v2;
	struct std_list_List_1 v3 = mw_mirth_data_elabzedatazeparamszx(r1, v0, &v2);
	push_resource(MK_mirth_mirth_zaMirth(v2));
	push_value(MK_std_list_List_1(v3));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
callq 0x138a0
movq %rax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x12c80
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
callq 0x13920
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl -0x10(%rbp), %esi
movq -0x8(%rbp), %rdx
leaq -0x40(%rbp), %rcx
callq 0x15f2a0
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x232718(%rip), %rax    # 0x391980
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x5b40
movl -0x50(%rbp), %edi
movq -0x48(%rbp), %rsi
callq 0x12780
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x12cc0
addq $0x70, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_elabzesimplezetypezeatomzx
static struct mirth_type_Type mw_mirth_elab_elabzesimplezetypezeatomzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct std_list_List_1 in_Ctx_2, uint64_t in_Token_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	bool v6 = false;
	bool v7 = false;
	struct mirth_elab_zaTypeElab* v8;
	mtw_mirth_elab_zaTypeElab_zaTypeElab(in_Ctx_2, in_Token_3, v6, v7, &v8);
	struct mirth_mirth_zaMirth* v9;
	struct mirth_elab_zaTypeElab* v10;
	struct mirth_type_Type v11 = mw_mirth_elab_zaTypeElab_elabzetypezeatomzx(in_zaMirth_1, v8, &v9, &v10);
	mw_mirth_elab_zaTypeElab_rdrop(v10);
	*out_zaMirth_4 = v9;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movb $0x0, -0x39(%rbp)
movb $0x0, -0x3a(%rbp)
movq -0x30(%rbp), %rdx
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
movzbl -0x3a(%rbp), %r8d
movzbl -0x39(%rbp), %ecx
andl $0x1, %ecx
andl $0x1, %r8d
leaq -0x48(%rbp), %r9
callq 0xae790
movq -0x28(%rbp), %rdi
movq -0x48(%rbp), %rsi
leaq -0x50(%rbp), %rdx
leaq -0x58(%rbp), %rcx
callq 0xd3450
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x58(%rbp), %rdi
callq 0xae360
movq -0x50(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_external_elabzeexternalzeblockzepartzx
static struct mirth_external_ExternalBlockPart mw_mirth_external_elabzeexternalzeblockzepartzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_external_ExternalDeclPart in_ExternalDeclPart_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	struct mirth_external_ExternalBlockPart branch_ExternalBlockPart_6;
	switch ((in_ExternalDeclPart_2).tag) {
		case mirth_external_ExternalDeclPart_EDPCode: {
			uint64_t v7;
			STR* v8;
			mtp_mirth_external_ExternalDeclPart_EDPCode(in_ExternalDeclPart_2, &v7, &v8);
			struct mirth_external_ExternalBlockPart v9 = mtw_mirth_external_ExternalBlockPart_EBPCode(v8);
			branch_ExternalBlockPart_6 = v9;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
		case mirth_external_ExternalDeclPart_EDPDef: {
			struct std_maybe_Maybe_1 v10;
			uint64_t v11;
			struct std_maybe_Maybe_1 v12;
			uint64_t v13;
			mtp_mirth_external_ExternalDeclPart_EDPDef(in_ExternalDeclPart_2, &v10, &v11, &v12, &v13);
			struct mirth_mirth_zaMirth* v14;
			uint64_t v15 = mw_mirth_external_elabzeexternalzedefzx(in_zaMirth_1, v10, v11, v12, v13, &v14);
			struct mirth_external_ExternalBlockPart v16 = mtw_mirth_external_ExternalBlockPart_EBPDef(v15);
			branch_ExternalBlockPart_6 = v16;
			branch_zaMirth_5 = v14;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_ExternalBlockPart_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0xac(%rbp)
testl %eax, %eax
je 0x160f99
jmp 0x160f89
movl -0xac(%rbp), %eax
subl $0x1, %eax
je 0x160fda
jmp 0x16106f
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0x162950
movq -0x48(%rbp), %rdi
callq 0x162a70
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x161088
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x68(%rbp), %rdx
leaq -0x70(%rbp), %rcx
leaq -0x80(%rbp), %r8
leaq -0x88(%rbp), %r9
callq 0x162b00
movq -0x28(%rbp), %rdi
movq -0x70(%rbp), %rcx
movq -0x88(%rbp), %r10
movl -0x68(%rbp), %esi
movq -0x60(%rbp), %rdx
movl -0x80(%rbp), %r8d
movq -0x78(%rbp), %r9
leaq -0x90(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x162d10
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
callq 0x163490
movl %eax, -0xa8(%rbp)
movq %rdx, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x161088
leaq 0x1f2e0b(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_external_ExternalBlock_Makezx
static uint64_t mw_mirth_external_ExternalBlock_Makezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct std_maybe_Maybe_1 in_Maybe_2, uint64_t in_Token_3, struct std_list_List_1 in_List_4, struct mirth_mirth_zaMirth* *out_zaMirth_5) {
	struct mirth_mirth_zaMirth* v7;
	uint64_t v8 = mw_mirth_external_ExternalBlock_Alloczx(in_zaMirth_1, &v7);
	void* v9 = field_mut(&mfld_mirth_external_ExternalBlock_doc, v8);
	mut_set(MK_std_maybe_Maybe_1(in_Maybe_2), v9);
	void* v10 = field_mut(&mfld_mirth_external_ExternalBlock_token, v8);
	mut_set(MK_mirth_token_Token(in_Token_3), v10);
	void* v11 = field_mut(&mfld_mirth_external_ExternalBlock_parts, v8);
	mut_set(MK_std_list_List_1(in_List_4), v11);
	*out_zaMirth_5 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq 0x10(%rbp), %rax
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl %r8d, -0x20(%rbp)
movq %r9, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x28(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x16e910
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rsi
leaq 0x1234f16(%rip), %rdi   # 0x1396088
callq 0x40d30
movq %rax, -0x48(%rbp)
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x133a0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x48(%rbp), %rdx
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x431a0
movq -0x40(%rbp), %rsi
leaq 0x1234eed(%rip), %rdi   # 0x1396098
callq 0x40d30
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x230c85(%rip), %rax    # 0x391e48
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdx
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x431a0
movq -0x40(%rbp), %rsi
leaq 0x1234ec5(%rip), %rdi   # 0x13960a8
callq 0x40d30
movq %rax, -0x78(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x12780
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x78(%rbp), %rdx
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x431a0
movq -0x38(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_external_ExternalDeclPart_EDPCode
static struct mirth_external_ExternalDeclPart mtw_mirth_external_ExternalDeclPart_EDPCode (uint64_t in_Token_1, STR* in_Str_2) {
	struct mirth_external_ExternalDeclPart_EDPCode* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mcode = in_Str_2;
	v4->mtoken = in_Token_1;
	struct mirth_external_ExternalDeclPart v5 = { .tag=mirth_external_ExternalDeclPart_EDPCode, .ptr.EDPCode=v4 };
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x162264
movl $0x2, %edi
leaq 0x1f8320(%rip), %rsi    # 0x35a566
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x162266
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x0, -0x10(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_TokenValue_strzy
static struct std_maybe_Maybe_1 mw_mirth_token_TokenValue_strzy (struct mirth_token_TokenValue in_TokenValue_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_TokenValue_1).tag) {
		case mirth_token_TokenValue_Str: {
			STR* v4 = mtp_mirth_token_TokenValue_Str(in_TokenValue_1);
			struct std_maybe_Maybe_1 v5 = mtw_std_maybe_Maybe_1_Some(MKSTR(v4));
			branch_Maybe_3 = v5;
		} break;
		default: {
			decref(MK_mirth_token_TokenValue(in_TokenValue_1));
			struct std_maybe_Maybe_1 v6 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_3 = v6;
		} break;
	}
	return branch_Maybe_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl -0x20(%rbp), %eax
subl $0x1a, %eax
jne 0x16231c
jmp 0x1622cc
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x10fbc0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x22ee6d(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0xca10
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x162420
jmp 0x16231e
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x1623f5
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0x1623f5
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x1623f5
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x88(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x1623f3
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x127c0
jmp 0x1623f5
jmp 0x1623f7
leaq -0xa8(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0xa8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xb0, %rsp
popq %rbp
retq