LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_var_Var_unifyzx
static struct mirth_type_Type mw_mirth_var_Var_unifyzx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Var_2, uint64_t in_Var_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	uint64_t v6 = in_Var_3;
	uint64_t v7 = in_Var_2;
	bool v8 = (v6 == v7);
	struct mirth_mirth_zaMirth* branch_zaMirth_9;
	struct mirth_type_Type branch_Type_10;
	if (v8) {
		struct mirth_type_Type v11 = mtw_mirth_type_Type_Var(in_Var_2);
		branch_Type_10 = v11;
		branch_zaMirth_9 = in_zaMirth_1;
	} else {
		struct mirth_type_Type v12 = mtw_mirth_type_Type_Var(in_Var_2);
		struct mirth_type_Type v13 = mtw_mirth_type_Type_Var(in_Var_3);
		struct mirth_mirth_zaMirth* v14;
		struct mirth_type_Type v15 = mw_mirth_type_Type_unifyzefailedzx(in_zaMirth_1, v12, v13, &v14);
		branch_Type_10 = v15;
		branch_zaMirth_9 = v14;
	}
	*out_zaMirth_4 = branch_zaMirth_9;
	return branch_Type_10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x41(%rbp)
testb $0x1, -0x41(%rbp)
je 0xc765b
movq -0x20(%rbp), %rdi
callq 0x70570
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0xc76c7
movq -0x20(%rbp), %rdi
callq 0x70570
movl %eax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x28(%rbp), %rdi
callq 0x70570
movl %eax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x18(%rbp), %rdi
movl -0x70(%rbp), %esi
movq -0x68(%rbp), %rdx
movl -0x80(%rbp), %ecx
movq -0x78(%rbp), %r8
leaq -0x88(%rbp), %r9
callq 0xc2ec0
movl %eax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xa0, %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_StackType_unifyzefailedzx
static struct mirth_type_StackType mw_mirth_type_StackType_unifyzefailedzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_StackType in_StackType_2, struct mirth_type_StackType in_StackType_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_type_Type v6 = mw_mirth_type_StackType_zgType(in_StackType_2);
	struct mirth_type_Type v7 = mw_mirth_type_StackType_zgType(in_StackType_3);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_type_Type v9 = mw_mirth_type_Type_unifyzefailedzx(in_zaMirth_1, v6, v7, &v8);
	struct mirth_type_StackType v10 = mw_mirth_type_Type_zgStackType(v9);
	*out_zaMirth_4 = v8;
	return v10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x30(%rbp)
movq %r8, -0x28(%rbp)
movq %rdi, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xc74c0
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0xc74c0
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x38(%rbp), %rdi
movl -0x50(%rbp), %esi
movq -0x48(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x58(%rbp), %r8
leaq -0x68(%rbp), %r9
callq 0xc2ec0
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0xba2d0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x68(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_Resource_unifyzx
static struct mirth_type_Type mw_mirth_type_Resource_unifyzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Resource_2, struct mirth_type_Type in_Resource_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_type_Type v6 = mw_mirth_type_Resource_zgType(in_Resource_2);
	struct mirth_type_Type v7 = mw_mirth_type_Resource_zgType(in_Resource_3);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_type_Type v9 = mw_mirth_type_Type_unifyzx(in_zaMirth_1, v6, v7, &v8);
	struct mirth_type_Type v10 = mw_mirth_type_Type_zgResource(v9);
	*out_zaMirth_4 = v8;
	return v10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x30(%rbp)
movq %r8, -0x28(%rbp)
movq %rdi, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xbadf0
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0xbadf0
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x38(%rbp), %rdi
movl -0x50(%rbp), %esi
movq -0x48(%rbp), %rdx
movl -0x60(%rbp), %ecx
movq -0x58(%rbp), %r8
leaq -0x68(%rbp), %r9
callq 0xb27e0
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0xbae10
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x68(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackType_ConsLabel
static struct mirth_type_StackType mtw_mirth_type_StackType_ConsLabel (struct mirth_type_StackType in_StackType_1, struct mirth_type_Type in_Type_2, uint64_t in_Label_3) {
	struct mirth_type_StackType_ConsLabel* v5 = calloc(1, sizeof *v5);
	ASSERT(v5);
	v5->refs = 1;
	v5->mLabel = in_Label_3;
	v5->mType = in_Type_2;
	v5->mStackType = in_StackType_1;
	struct mirth_type_StackType v6 = { .tag=mirth_type_StackType_ConsLabel, .ptr.ConsLabel=v5 };
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x30(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x38(%rbp)
movl $0x1, %edi
movl $0x30, %esi
callq 0x50c0
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0xc9eee
movl $0x2, %edi
leaq 0x28ea19(%rip), %rsi    # 0x3588e9
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xc9ef0
movq -0x40(%rbp), %rax
movl $0x1, (%rax)
movq -0x38(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x40(%rbp), %rax
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x18(%rax)
movq -0x40(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x6, -0x10(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackType_WithLabel
static struct mirth_type_StackType mtw_mirth_type_StackType_WithLabel (struct mirth_type_StackType in_StackType_1, struct mirth_type_Type in_Resource_2, uint64_t in_Label_3) {
	struct mirth_type_StackType_WithLabel* v5 = calloc(1, sizeof *v5);
	ASSERT(v5);
	v5->refs = 1;
	v5->mLabel = in_Label_3;
	v5->mResource = in_Resource_2;
	v5->mStackType = in_StackType_1;
	struct mirth_type_StackType v6 = { .tag=mirth_type_StackType_WithLabel, .ptr.WithLabel=v5 };
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x30(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x38(%rbp)
movl $0x1, %edi
movl $0x30, %esi
callq 0x50c0
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0xcb7ce
movl $0x2, %edi
leaq 0x28d16b(%rip), %rsi    # 0x35891b
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xcb7d0
movq -0x40(%rbp), %rax
movl $0x1, (%rax)
movq -0x38(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x40(%rbp), %rax
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x18(%rax)
movq -0x40(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x8, -0x10(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_Type_Stack
static struct mirth_type_Type mtw_mirth_type_Type_Stack (struct mirth_type_StackType in_StackType_1) {
	struct mirth_type_Type_Stack* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mStackType = in_StackType_1;
	struct mirth_type_Type v4 = { .tag=mirth_type_Type_Stack, .ptr.Stack=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0xcd0a3
movl $0x2, %edi
leaq 0x28b832(%rip), %rsi    # 0x3588b7
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xcd0a5
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x9, -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 (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_StackType_Freshzx
static struct mirth_type_StackType mw_mirth_type_StackType_Freshzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	struct mirth_type_Type v4 = mw_mirth_type_Kind_STACK();
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_type_MetaVar_Newzx(in_zaMirth_1, v4, &v5);
	struct mirth_type_StackType v7 = mtw_mirth_type_StackType_Meta(v6);
	*out_zaMirth_2 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
callq 0xcd4e0
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %esi
movq -0x28(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0xcd510
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0xbad60
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_Type_Freshzx
static struct mirth_type_Type mw_mirth_type_Type_Freshzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	struct mirth_type_Type v4 = mw_mirth_type_Kind_TYPE();
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_type_MetaVar_Newzx(in_zaMirth_1, v4, &v5);
	struct mirth_type_Type v7 = mtw_mirth_type_Type_Meta(v6);
	*out_zaMirth_2 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
callq 0xcd650
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movl -0x30(%rbp), %esi
movq -0x28(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0xcd510
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0x88280
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_MetaVar_Newzx
static uint64_t mw_mirth_type_MetaVar_Newzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Kind_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_type_MetaVar_Makezx(in_zaMirth_1, in_Kind_2, &v5);
	*out_zaMirth_3 = v5;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movl -0x10(%rbp), %esi
movq -0x8(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0xcd560
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
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_type_MetaVar_Makezx
static uint64_t mw_mirth_type_MetaVar_Makezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Kind_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_type_MetaVar_Alloczx(in_zaMirth_1, &v5);
	void* v7 = field_mut(&mfld_mirth_type_MetaVar_kind, v6);
	mut_set(MK_mirth_type_Type(in_Kind_2), v7);
	*out_zaMirth_3 = v5;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xcd5e0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rsi
leaq 0x12c844d(%rip), %rdi   # 0x13959e0
callq 0x40d30
movq %rax, -0x38(%rbp)
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x6e780
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x38(%rbp), %rdx
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x431a0
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
addq $0x50, %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_MetaVar_Alloczx
static uint64_t mw_mirth_type_MetaVar_Alloczx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	void* v4 = mbuf_mirth_type_MetaVar_NumBuffer;
	uint64_t v5 = *(uint64_t*)v4;
	uint64_t v6 = 1ULL;
	uint64_t v7 = (v5 + v6);
	void* v8 = mbuf_mirth_type_MetaVar_NumBuffer;
	*(uint64_t*)v8 = v7;
	uint64_t v9 = v7;
	*out_zaMirth_2 = in_zaMirth_1;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x12c83fd(%rip), %rax   # 0x13959f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq $0x1, -0x28(%rbp)
movq -0x20(%rbp), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x12c83d3(%rip), %rax   # 0x13959f0
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mirth_arrow_Home_free
void mirth_arrow_Home_free (VAL v) {
	struct mirth_arrow_Home self = V_mirth_arrow_Home(v);
	switch (self.tag) {
		case mirth_arrow_Home_Main: {
			free(self.ptr.Main);
		} break;
		case mirth_arrow_Home_Word: {
			free(self.ptr.Word);
		} break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0xce240
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0xce12a
jmp 0xce120
movl -0x24(%rbp), %eax
subl $0x1, %eax
je 0xce135
jmp 0xce13e
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xce13e
movq -0x18(%rbp), %rdi
callq 0x5030
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: mtw_mirth_type_Value_Int
static struct mirth_type_Value mtw_mirth_type_Value_Int (INT in_Int_1) {
	struct mirth_type_Value_Int* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mInt = in_Int_1;
	struct mirth_type_Value v4 = { .tag=mirth_type_Value_Int, .ptr.Int=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x18(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xce2d0
movl $0x2, %edi
leaq 0x28a900(%rip), %rsi    # 0x358bb2
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xce2d2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x0, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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: mtw_mirth_type_Value_F64
static struct mirth_type_Value mtw_mirth_type_Value_F64 (double in_F64_1) {
	struct mirth_type_Value_F64* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mF64 = in_F64_1;
	struct mirth_type_Value v4 = { .tag=mirth_type_Value_F64, .ptr.F64=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movsd %xmm0, -0x18(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xce3f1
movl $0x2, %edi
leaq 0x28a843(%rip), %rsi    # 0x358c16
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xce3f3
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movsd -0x18(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movl $0x1, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_Value_Block
static struct mirth_type_Value mtw_mirth_type_Value_Block (uint64_t in_Block_1) {
	struct mirth_type_Value_Block* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mBlock = in_Block_1;
	struct mirth_type_Value v4 = { .tag=mirth_type_Value_Block, .ptr.Block=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x18(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xce480
movl $0x2, %edi
leaq 0x28a7e6(%rip), %rsi    # 0x358c48
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xce482
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x3, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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_PrimType_unifyzx
static struct mirth_type_Type mw_mirth_type_PrimType_unifyzx (struct mirth_mirth_zaMirth* in_zaMirth_1, enum mirth_type_PrimType in_PrimType_2, enum mirth_type_PrimType in_PrimType_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	bool v6 = mw_mirth_type_PrimType_zd(in_PrimType_2, in_PrimType_3);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	struct mirth_type_Type branch_Type_8;
	if (v6) {
		struct mirth_type_Type v9 = mtw_mirth_type_Type_Prim(in_PrimType_2);
		branch_Type_8 = v9;
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		struct mirth_type_Type v10 = mtw_mirth_type_Type_Prim(in_PrimType_2);
		struct mirth_type_Type v11 = mtw_mirth_type_Type_Prim(in_PrimType_3);
		struct mirth_mirth_zaMirth* v12;
		struct mirth_type_Type v13 = mw_mirth_type_Type_unifyzefailedzx(in_zaMirth_1, v10, v11, &v12);
		branch_Type_8 = v13;
		branch_zaMirth_7 = v12;
	}
	*out_zaMirth_4 = branch_zaMirth_7;
	return branch_Type_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x18(%rbp)
movl %esi, -0x1c(%rbp)
movl %edx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
callq 0x5a520
andb $0x1, %al
movb %al, -0x29(%rbp)
testb $0x1, -0x29(%rbp)
je 0xce518
movl -0x1c(%rbp), %edi
callq 0x6dd40
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0xce570
movl -0x1c(%rbp), %edi
callq 0x6dd40
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movl -0x20(%rbp), %edi
callq 0x6dd40
movl %eax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x18(%rbp), %rdi
movl -0x58(%rbp), %esi
movq -0x50(%rbp), %rdx
movl -0x68(%rbp), %ecx
movq -0x60(%rbp), %r8
leaq -0x70(%rbp), %r9
callq 0xc2ec0
movl %eax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_table_Table_unifyzx
static struct mirth_type_Type mw_mirth_table_Table_unifyzx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Table_2, uint64_t in_Table_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	uint64_t v6 = in_Table_3;
	uint64_t v7 = in_Table_2;
	bool v8 = (v6 == v7);
	struct mirth_mirth_zaMirth* branch_zaMirth_9;
	struct mirth_type_Type branch_Type_10;
	if (v8) {
		struct mirth_type_Type v11 = mw_mirth_table_Table_zgType(in_Table_2);
		branch_Type_10 = v11;
		branch_zaMirth_9 = in_zaMirth_1;
	} else {
		struct mirth_type_Type v12 = mw_mirth_table_Table_zgType(in_Table_2);
		struct mirth_type_Type v13 = mw_mirth_table_Table_zgType(in_Table_3);
		struct mirth_mirth_zaMirth* v14;
		struct mirth_type_Type v15 = mw_mirth_type_Type_unifyzefailedzx(in_zaMirth_1, v12, v13, &v14);
		branch_Type_10 = v15;
		branch_zaMirth_9 = v14;
	}
	*out_zaMirth_4 = branch_zaMirth_9;
	return branch_Type_10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x41(%rbp)
testb $0x1, -0x41(%rbp)
je 0xceb2b
movq -0x20(%rbp), %rdi
callq 0xceea0
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0xceb97
movq -0x20(%rbp), %rdi
callq 0xceea0
movl %eax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x28(%rbp), %rdi
callq 0xceea0
movl %eax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x18(%rbp), %rdi
movl -0x70(%rbp), %esi
movq -0x68(%rbp), %rdx
movl -0x80(%rbp), %ecx
movq -0x78(%rbp), %r8
leaq -0x88(%rbp), %r9
callq 0xc2ec0
movl %eax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_Type_Table
static struct mirth_type_Type mtw_mirth_type_Type_Table (uint64_t in_Table_1) {
	struct mirth_type_Type_Table* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mTable = in_Table_1;
	struct mirth_type_Type v4 = { .tag=mirth_type_Type_Table, .ptr.Table=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x18(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xcec10
movl $0x2, %edi
leaq 0x28a0ba(%rip), %rsi    # 0x358cac
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xcec12
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x6, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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_Type_unify2zx
static struct mirth_type_Type mw_mirth_type_Type_unify2zx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Type_2, struct mirth_type_Type in_Type_3, struct mirth_type_Type in_Type_4, struct mirth_type_Type in_Type_5, struct mirth_mirth_zaMirth* *out_zaMirth_6, struct mirth_type_Type *out_Type_8) {
	struct mirth_mirth_zaMirth* v9;
	struct mirth_type_Type v10 = mw_mirth_type_Type_unifyzx(in_zaMirth_1, in_Type_2, in_Type_4, &v9);
	struct mirth_mirth_zaMirth* v11;
	struct mirth_type_Type v12 = mw_mirth_type_Type_unifyzx(v9, in_Type_3, in_Type_5, &v11);
	*out_Type_8 = v12;
	*out_zaMirth_6 = v11;
	return v10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq 0x30(%rbp), %rax
leaq 0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 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 -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
movl (%rax), %ecx
movq 0x8(%rax), %r8
leaq -0x48(%rbp), %r9
callq 0xb27e0
movl %eax, %ecx
movq -0x68(%rbp), %rax
movl %ecx, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x48(%rbp), %rdi
movl -0x30(%rbp), %esi
movq -0x28(%rbp), %rdx
movl (%rax), %ecx
movq 0x8(%rax), %r8
leaq -0x50(%rbp), %r9
callq 0xb27e0
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq 0x30(%rbp), %rax
movups -0x60(%rbp), %xmm0
movups %xmm0, (%rax)
movq -0x50(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_Type_Mut
static struct mirth_type_Type mtw_mirth_type_Type_Mut (struct mirth_type_Type in_Type_1) {
	struct mirth_type_Type_Mut* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mType = in_Type_1;
	struct mirth_type_Type v4 = { .tag=mirth_type_Type_Mut, .ptr.Mut=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0xced43
movl $0x2, %edi
leaq 0x289fb9(%rip), %rsi    # 0x358cde
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xced45
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0xc, -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 (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_data_DataPartial_zd
static bool mw_mirth_data_DataPartial_zd (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_data_DataPartial* in_DataPartial_2, struct mirth_data_DataPartial* in_DataPartial_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	uint64_t v6;
	uint64_t v7;
	mtp_mirth_data_DataPartial_DataPartial(in_DataPartial_3, &v6, &v7);
	uint64_t v8;
	uint64_t v9;
	mtp_mirth_data_DataPartial_DataPartial(in_DataPartial_2, &v8, &v9);
	uint64_t v10 = v6;
	uint64_t v11 = v8;
	bool v12 = (v10 == v11);
	uint64_t v13 = v7;
	uint64_t v14 = v9;
	bool v15 = (v13 == v14);
	bool v16 = (v12 && v15);
	*out_zaMirth_4 = in_zaMirth_1;
	return v16;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0xcee30
movq -0x10(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0xcee30
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
cmpq -0x50(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x51(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x69(%rbp)
xorl %eax, %eax
testb $0x1, -0x51(%rbp)
movb %al, -0x6b(%rbp)
je 0xcee0b
movb -0x69(%rbp), %al
movb %al, -0x6b(%rbp)
movb -0x6b(%rbp), %al
andb $0x1, %al
movb %al, -0x6a(%rbp)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movb -0x6a(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_data_DataPartial_DataPartial
static void mtp_mirth_data_DataPartial_DataPartial (struct mirth_data_DataPartial* in_DataPartial_1, uint64_t *out_Data_2, uint64_t *out_Label_3) {
	struct mirth_data_DataPartial v4 = *in_DataPartial_1;
	if (!--(in_DataPartial_1->refs)) {
		free(in_DataPartial_1);
	} else {
	}
	*out_Label_3 = v4.mfield;
	*out_Data_2 = v4.mdata;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xcee7a
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0xcee7c
jmp 0xcee7c
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_list_List_1_Snoc
static struct std_list_List_1 mw_std_list_List_1_Snoc (struct std_list_List_1 in_List_1, VAL in_t_2) {
	struct std_list_List_1 v4 = mw_std_list_List_1_reverse(in_List_1);
	struct std_list_List_1 v5 = mw_std_list_List_1_cons(in_t_2, v4);
	struct std_list_List_1 v6 = mw_std_list_List_1_reverse(v5);
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x30(%rbp)
movq %rcx, -0x28(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x122b0
movl %eax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
movl -0x40(%rbp), %edx
movq -0x38(%rbp), %rcx
callq 0x12740
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movl -0x50(%rbp), %edi
movq -0x48(%rbp), %rsi
callq 0x122b0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackTypePart_With
static struct mirth_type_StackTypePart mtw_mirth_type_StackTypePart_With (struct mirth_type_Type in_Resource_1) {
	struct mirth_type_StackTypePart_With* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mResource = in_Resource_1;
	struct mirth_type_StackTypePart v4 = { .tag=mirth_type_StackTypePart_With, .ptr.With=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0xcef93
movl $0x2, %edi
leaq 0x289dcd(%rip), %rsi    # 0x358d42
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xcef95
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x2, -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 (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackTypePart_ConsLabel
static struct mirth_type_StackTypePart mtw_mirth_type_StackTypePart_ConsLabel (struct mirth_type_Type in_Type_1, uint64_t in_Label_2) {
	struct mirth_type_StackTypePart_ConsLabel* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mLabel = in_Label_2;
	v4->mType = in_Type_1;
	struct mirth_type_StackTypePart v5 = { .tag=mirth_type_StackTypePart_ConsLabel, .ptr.ConsLabel=v4 };
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0xcf027
movl $0x2, %edi
leaq 0x289d6b(%rip), %rsi    # 0x358d74
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xcf029
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x1, -0x10(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackTypePart_WithLabel
static struct mirth_type_StackTypePart mtw_mirth_type_StackTypePart_WithLabel (struct mirth_type_Type in_Resource_1, uint64_t in_Label_2) {
	struct mirth_type_StackTypePart_WithLabel* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mLabel = in_Label_2;
	v4->mResource = in_Resource_1;
	struct mirth_type_StackTypePart v5 = { .tag=mirth_type_StackTypePart_WithLabel, .ptr.WithLabel=v4 };
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0xcf0c7
movl $0x2, %edi
leaq 0x289cfd(%rip), %rsi    # 0x358da6
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xcf0c9
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x3, -0x10(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_StackTypePart_Cons
static struct mirth_type_Type mtp_mirth_type_StackTypePart_Cons (struct mirth_type_StackTypePart in_StackTypePart_1) {
	struct mirth_type_StackTypePart_Cons v3 = *in_StackTypePart_1.ptr.Cons;
	if (!--(in_StackTypePart_1.ptr.Cons->refs)) {
		free(in_StackTypePart_1.ptr.Cons);
	} else {
		incref(MK_mirth_type_Type(v3.mType));
	}
	return v3.mType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xcf15b
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xcf1f6
jmp 0xcf15d
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x6e780
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xcf1f2
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x6e780
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
cmpq $0x0, %rax
je 0xcf1f2
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x6e780
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xcf1f2
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x6e780
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xcf1f4
jmp 0xcf1f6
movups -0x30(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x80, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_StackTypePart_ConsLabel
static struct mirth_type_Type mtp_mirth_type_StackTypePart_ConsLabel (struct mirth_type_StackTypePart in_StackTypePart_1, uint64_t *out_Label_3) {
	struct mirth_type_StackTypePart_ConsLabel v4 = *in_StackTypePart_1.ptr.ConsLabel;
	if (!--(in_StackTypePart_1.ptr.ConsLabel->refs)) {
		free(in_StackTypePart_1.ptr.ConsLabel);
	} else {
		incref(MK_mirth_type_Type(v4.mType));
	}
	*out_Label_3 = v4.mLabel;
	return v4.mType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x48(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xcf267
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xcf308
jmp 0xcf269
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x6e780
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xcf304
movl -0x40(%rbp), %edi
movq -0x38(%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 0xcf304
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x6e780
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xcf304
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x6e780
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 0xcf306
jmp 0xcf308
movq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movups -0x40(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_StackTypePart_WithLabel
static struct mirth_type_Type mtp_mirth_type_StackTypePart_WithLabel (struct mirth_type_StackTypePart in_StackTypePart_1, uint64_t *out_Label_3) {
	struct mirth_type_StackTypePart_WithLabel v4 = *in_StackTypePart_1.ptr.WithLabel;
	if (!--(in_StackTypePart_1.ptr.WithLabel->refs)) {
		free(in_StackTypePart_1.ptr.WithLabel);
	} else {
		incref(MK_mirth_type_Type(v4.mResource));
	}
	*out_Label_3 = v4.mLabel;
	return v4.mResource;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x48(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xcf487
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xcf528
jmp 0xcf489
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x6e780
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xcf524
movl -0x40(%rbp), %edi
movq -0x38(%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 0xcf524
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x6e780
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xcf524
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x6e780
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 0xcf526
jmp 0xcf528
movq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movups -0x40(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_sigzestackzeendzy
static bool mw_mirth_token_Token_sigzestackzeendzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	bool v6 = mw_mirth_token_Token_sigzedasheszy(in_zaMirth_1, in_Token_2, &v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	bool branch_Bool_8;
	if (v6) {
		bool v9 = true;
		branch_Bool_8 = v9;
		branch_zaMirth_7 = v5;
	} else {
		struct mirth_mirth_zaMirth* v10;
		bool v11 = mw_mirth_token_Token_vdashzy(v5, in_Token_2, &v10);
		struct mirth_mirth_zaMirth* branch_zaMirth_12;
		bool branch_Bool_13;
		if (v11) {
			bool v14 = true;
			branch_Bool_13 = v14;
			branch_zaMirth_12 = v10;
		} else {
			struct mirth_mirth_zaMirth* v15;
			bool v16 = mw_mirth_token_Token_runzeendzy(v10, in_Token_2, &v15);
			branch_Bool_13 = v16;
			branch_zaMirth_12 = v15;
		}
		branch_Bool_8 = branch_Bool_13;
		branch_zaMirth_7 = branch_zaMirth_12;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Bool_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %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 0xaf320
andb $0x1, %al
movb %al, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
je 0xcf596
movb $0x1, -0x32(%rbp)
movb -0x32(%rbp), %al
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xcf5fe
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0xaf2c0
andb $0x1, %al
movb %al, -0x41(%rbp)
testb $0x1, -0x41(%rbp)
je 0xcf5c8
movb $0x1, -0x52(%rbp)
movb -0x52(%rbp), %al
andb $0x1, %al
movb %al, -0x51(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0xcf5ee
movq -0x40(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x60(%rbp), %rdx
callq 0xacc30
andb $0x1, %al
movb %al, -0x61(%rbp)
movb -0x61(%rbp), %al
andb $0x1, %al
movb %al, -0x51(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x50(%rbp)
movb -0x51(%rbp), %al
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x50(%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 $0x70, %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_zaTypeElab_elabzetypezevarzx
static struct mirth_type_Type mw_mirth_elab_zaTypeElab_elabzetypezevarzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_elab_zaTypeElab* in_zaTypeElab_2, uint64_t in_Name_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_elab_zaTypeElab* *out_zaTypeElab_5) {
	struct mirth_type_Type v7 = mw_mirth_type_Type_TYPE();
	struct mirth_mirth_zaMirth* v8;
	struct mirth_elab_zaTypeElab* v9;
	struct std_maybe_Maybe_1 v10 = mw_mirth_elab_zaTypeElab_elabzeimplicitzevarzx(in_zaMirth_1, in_zaTypeElab_2, in_Name_3, v7, &v8, &v9);
	struct mirth_type_Type v11 = mw_std_maybe_Maybe_1_ifzy_2_sp92(v10);
	*out_zaTypeElab_5 = v9;
	*out_zaMirth_4 = v8;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
callq 0x6da00
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
movl -0x48(%rbp), %ecx
movq -0x40(%rbp), %r8
movq %rsp, %rax
leaq -0x58(%rbp), %r9
movq %r9, (%rax)
leaq -0x50(%rbp), %r9
callq 0xb1440
movl %eax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movl -0x68(%rbp), %edi
movq -0x60(%rbp), %rsi
callq 0xd4140
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x58(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x50(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x70, %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_zaTypeElab_elabzeresourcezeconzx
static struct mirth_type_Type mw_mirth_elab_zaTypeElab_elabzeresourcezeconzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_elab_zaTypeElab* in_zaTypeElab_2, struct std_either_Either_2 in_Either_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_elab_zaTypeElab* *out_zaTypeElab_5) {
	struct mirth_mirth_zaMirth* v7;
	struct mirth_elab_zaTypeElab* v8;
	struct mirth_type_Type v9 = mw_mirth_elab_zaTypeElab_elabzetypezeconzx(in_zaMirth_1, in_zaTypeElab_2, in_Either_3, &v7, &v8);
	*out_zaTypeElab_5 = v8;
	*out_zaMirth_4 = v7;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edx, -0x20(%rbp)
movq %rcx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
movl -0x20(%rbp), %edx
movq -0x18(%rbp), %rcx
leaq -0x48(%rbp), %r8
leaq -0x50(%rbp), %r9
callq 0xd0c80
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x50(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %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_name_Name_label
static uint64_t mw_mirth_name_Name_label (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Name_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_name_Name_label, in_Name_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	uint64_t branch_Label_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_Label_8 = V_mirth_label_Label(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		struct mirth_mirth_zaMirth* v10;
		uint64_t v11 = mw_mirth_label_Label_Makezx(in_zaMirth_1, in_Name_2, &v10);
		mut_set(MK_mirth_label_Label(v11), v5);
		branch_Label_8 = v11;
		branch_zaMirth_7 = v10;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Label_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x12c3661(%rip), %rdi   # 0x1395a70
callq 0x40d30
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x45e40
andb $0x1, %al
movb %al, -0x21(%rbp)
testb $0x1, -0x21(%rbp)
je 0xd244f
movq -0x20(%rbp), %rdi
callq 0x40f30
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xd2498
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0xd2630
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x2bfee5(%rip), %rax    # 0x392358
movq %rax, -0x60(%rbp)
movq -0x20(%rbp), %rdx
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x431a0
movq -0x58(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)