LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_TokenValue_lsquarezy
static struct std_maybe_Maybe_1 mw_mirth_token_TokenValue_lsquarezy (struct mirth_token_TokenValue in_TokenValue_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_TokenValue_1).tag) {
		case mirth_token_TokenValue_LSquare: {
			uint64_t v4 = mtp_mirth_token_TokenValue_LSquare(in_TokenValue_1);
			struct std_maybe_Maybe_1 v5 = mtw_std_maybe_Maybe_1_Some(MK_mirth_token_Token(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 $0x8, %eax
jne 0xac8f8
jmp 0xac8ac
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x7ada0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x2e557d(%rip), %rax    # 0x391e48
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 0xac9fc
jmp 0xac8fa
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 0xac9d1
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 0xac9d1
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 0xac9d1
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 0xac9cf
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 0xac9d1
jmp 0xac9d3
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
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_arrowzy
static bool mw_mirth_token_Token_arrowzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct mirth_mirth_zaMirth* v7;
	bool v8 = mw_mirth_token_TokenValue_arrowzy(v5, v6, &v7);
	*out_zaMirth_3 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %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 0x79660
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %esi
movq -0x28(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0xace90
andb $0x1, %al
movb %al, -0x39(%rbp)
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movb -0x39(%rbp), %al
andb $0x1, %al
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_def_Def_Word
static struct mirth_def_Def mtw_mirth_def_Def_Word (uint64_t in_Word_1) {
	struct mirth_def_Def_Word* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mWord = in_Word_1;
	struct mirth_def_Def v4 = { .tag=mirth_def_Def_Word, .ptr.Word=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 0xad2e0
movl $0x2, %edi
leaq 0x2ab296(%rip), %rsi    # 0x358558
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xad2e2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x8, -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_word_Word_Alloczx
static uint64_t mw_mirth_word_Word_Alloczx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	void* v4 = mbuf_mirth_word_Word_NumBuffer;
	uint64_t v5 = *(uint64_t*)v4;
	uint64_t v6 = 1ULL;
	uint64_t v7 = (v5 + v6);
	void* v8 = mbuf_mirth_word_Word_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 0x12e854d(%rip), %rax   # 0x1395880
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 0x12e8523(%rip), %rax   # 0x1395880
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: mw_mirth_elab_zaTypeElab_Startzx
static void mw_mirth_elab_zaTypeElab_Startzx (uint64_t in_Token_1, struct mirth_elab_zaTypeElab* *out_zaTypeElab_2) {
	struct std_list_List_1 v3 = mw_mirth_var_Ctx_L0();
	bool v4 = false;
	bool v5 = true;
	struct mirth_elab_zaTypeElab* v6;
	mtw_mirth_elab_zaTypeElab_zaTypeElab(v3, in_Token_1, v4, v5, &v6);
	*out_zaTypeElab_2 = v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
callq 0xae770
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movb $0x0, -0x21(%rbp)
movb $0x1, -0x22(%rbp)
movq -0x8(%rbp), %rdx
movb -0x21(%rbp), %cl
movb -0x22(%rbp), %al
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x30(%rbp), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %r8d
callq 0xae790
movq -0x30(%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: mtw_mirth_elab_zaTypeElab_zaTypeElab
static void mtw_mirth_elab_zaTypeElab_zaTypeElab (struct std_list_List_1 in_Ctx_1, uint64_t in_Token_2, bool in_Bool_3, bool in_Bool_4, struct mirth_elab_zaTypeElab* *out_zaTypeElab_5) {
	struct mirth_elab_zaTypeElab* v6 = calloc(1, sizeof *v6);
	ASSERT(v6);
	v6->mallowzeimplicitzetypezevars = in_Bool_4;
	v6->mallowzetypezeholes = in_Bool_3;
	v6->mtoken = in_Token_2;
	v6->mctx = in_Ctx_1;
	*out_zaTypeElab_5 = v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %r8b, %al
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %cl
movb %cl, -0x19(%rbp)
andb $0x1, %al
movb %al, -0x1a(%rbp)
movq %r9, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0xae7f9
movl $0x2, %edi
leaq 0x2a9e13(%rip), %rsi    # 0x3585ee
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xae7fb
movb -0x1a(%rbp), %cl
movq -0x30(%rbp), %rax
andb $0x1, %cl
movb %cl, 0x19(%rax)
movb -0x19(%rbp), %cl
movq -0x30(%rbp), %rax
andb $0x1, %cl
movb %cl, 0x18(%rax)
movq -0x18(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%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_elab_zaTypeElab_elabzestackzetypezx
static struct mirth_type_StackType mw_mirth_elab_zaTypeElab_elabzestackzetypezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_elab_zaTypeElab* in_zaTypeElab_2, struct mirth_type_StackType in_StackType_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_StackType v9 = mw_mirth_elab_zaTypeElab_elabzestackzetypezebasezx(in_zaMirth_1, in_zaTypeElab_2, in_StackType_3, &v7, &v8);
	struct mirth_mirth_zaMirth* v10;
	struct mirth_elab_zaTypeElab* v11;
	struct mirth_type_StackType v12 = mw_mirth_elab_zaTypeElab_elabzestackzetypezepartszx(v7, v8, v9, &v10, &v11);
	*out_zaTypeElab_5 = v11;
	*out_zaMirth_4 = v10;
	return v12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %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 0xaf410
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
movl -0x60(%rbp), %edx
movq -0x58(%rbp), %rcx
leaq -0x68(%rbp), %r8
leaq -0x70(%rbp), %r9
callq 0xafa90
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x70(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movq -0x68(%rbp), %rcx
movq -0x38(%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: mtw_mirth_type_Type_Arrow
static struct mirth_type_Type mtw_mirth_type_Type_Arrow (struct mirth_type_ArrowType* in_ArrowType_1) {
	struct mirth_type_Type_Arrow* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mArrowType = in_ArrowType_1;
	struct mirth_type_Type v4 = { .tag=mirth_type_Type_Arrow, .ptr.Arrow=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 0xaf3d0
movl $0x2, %edi
leaq 0x2a92a4(%rip), %rsi    # 0x358656
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xaf3d2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0xa, -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_token_Token_sigzestackzevarzy
static struct std_maybe_Maybe_1 mw_mirth_token_Token_sigzestackzevarzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct mirth_mirth_zaMirth* v7;
	struct std_maybe_Maybe_1 v8 = mw_mirth_token_TokenValue_sigzestackzevarzy(v5, v6, &v7);
	*out_zaMirth_3 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x79660
movl %eax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movl -0x40(%rbp), %esi
movq -0x38(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0xb0ea0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x48(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_zaTypeElab_elabzestackzetypezevarzx
static struct mirth_type_StackType mw_mirth_elab_zaTypeElab_elabzestackzetypezevarzx (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_STACK();
	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_StackType branch_StackType_11;
	switch ((v10).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v12 = mtp_std_maybe_Maybe_1_Some(v10);
			struct mirth_type_StackType v13 = mtw_mirth_type_StackType_Var(V_mirth_var_Var(v12));
			branch_StackType_11 = v13;
		} break;
		case std_maybe_Maybe_1_None: {
			struct mirth_type_StackType v14 = { .tag=mirth_type_StackType_Error };
			branch_StackType_11 = v14;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaTypeElab_5 = v9;
	*out_zaMirth_4 = v8;
	return branch_StackType_11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq %r8, -0x38(%rbp)
callq 0xb1410
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), %eax
movl %eax, -0x9c(%rbp)
testl %eax, %eax
je 0xafd40
jmp 0xafcf7
movl -0x9c(%rbp), %eax
subl $0x1, %eax
jne 0xafd6b
jmp 0xafd04
movl -0x68(%rbp), %edi
movq -0x60(%rbp), %rsi
callq 0x174a0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rdi
callq 0xb1e30
movl %eax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xafd84
leaq -0x98(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x98(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xafd84
leaq 0x2a410f(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
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 $0xb0, %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_StackTypeBase_unitzy
static bool mw_mirth_type_StackTypeBase_unitzy (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_StackTypeBase in_StackTypeBase_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	bool branch_Bool_6;
	switch ((in_StackTypeBase_2).tag) {
		case mirth_type_StackTypeBase_Unit: {
			bool v7 = true;
			branch_Bool_6 = v7;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
		case mirth_type_StackTypeBase_Meta: {
			uint64_t v8 = mtp_mirth_type_StackTypeBase_Meta(in_StackTypeBase_2);
			struct mirth_mirth_zaMirth* v9;
			bool v10 = mw_mirth_type_MetaVar_unitzestackzy(in_zaMirth_1, v8, &v9);
			branch_Bool_6 = v10;
			branch_zaMirth_5 = v9;
		} break;
		default: {
			decref(MK_mirth_type_StackTypeBase(in_StackTypeBase_2));
			bool v11 = false;
			branch_Bool_6 = v11;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_Bool_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0xa0(%rbp)
subl $0x2, %eax
je 0xb0b87
jmp 0xb0b7a
movl -0xa0(%rbp), %eax
subl $0x4, %eax
je 0xb0ba0
jmp 0xb0bdb
movb $0x1, -0x2a(%rbp)
movb -0x2a(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0xb0cd0
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0xc0bd0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0xc1af0
andb $0x1, %al
movb %al, -0x41(%rbp)
movb -0x41(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0xb0cd0
jmp 0xb0bdd
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0xc0680
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xb0cb4
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0xc0680
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0xb0cb4
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0xc0680
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xb0cb4
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0xc0680
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 0xb0cb2
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0xc0680
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x127c0
jmp 0xb0cb4
jmp 0xb0cb6
movb $0x0, -0x99(%rbp)
movb -0x99(%rbp), %al
andb $0x1, %al
movb %al, -0x29(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movb -0x29(%rbp), %al
andb $0x1, %al
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_StackType_Var
static struct mirth_type_StackType mtw_mirth_type_StackType_Var (uint64_t in_Var_1) {
	struct mirth_type_StackType_Var* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mVar = in_Var_1;
	struct mirth_type_StackType v4 = { .tag=mirth_type_StackType_Var, .ptr.Var=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 0xb1e80
movl $0x2, %edi
leaq 0x2a6eae(%rip), %rsi    # 0x358d10
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xb1e82
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_var_Var_type
static struct mirth_type_Type mw_mirth_var_Var_type (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Var_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_var_Var_type, in_Var_2);
	VAL v6 = mut_get(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return V_mirth_type_Type(v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x12e29a1(%rip), %rdi   # 0x1395130
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x40f30
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x6f100
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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_type_Type_unifyzx
static struct mirth_type_Type mw_mirth_type_Type_unifyzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Type_2, struct mirth_type_Type in_Type_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_zaMirth* v6;
	struct mirth_type_Type v7 = mw_mirth_type_Type_expand(in_zaMirth_1, in_Type_2, &v6);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_type_Type v9 = mw_mirth_type_Type_expand(v6, in_Type_3, &v8);
	struct mirth_mirth_zaMirth* v10;
	struct mirth_type_Type v11 = mw_mirth_type_Type_unifyzeauxzx(v8, v7, v9, &v10);
	*out_zaMirth_4 = v10;
	return v11;
}

// 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)
movq -0x38(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0x872e0
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x48(%rbp), %rdi
movl -0x30(%rbp), %esi
movq -0x28(%rbp), %rdx
leaq -0x60(%rbp), %rcx
callq 0x872e0
movl %eax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x60(%rbp), %rdi
movl -0x58(%rbp), %esi
movq -0x50(%rbp), %rdx
movl -0x70(%rbp), %ecx
movq -0x68(%rbp), %r8
leaq -0x78(%rbp), %r9
callq 0xb29c0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x78(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x80, %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_var_Ctx_new
static struct std_list_List_1 mw_mirth_var_Ctx_new (struct std_list_List_1 in_Ctx_1, uint64_t in_Var_2) {
	struct std_list_List_1 v4 = mw_mirth_var_Ctx_zgList(in_Ctx_1);
	struct std_list_List_1 v5 = mw_std_list_List_1_Snoc(v4, MK_mirth_var_Var(in_Var_2));
	struct std_list_List_1 v6 = mw_std_list_List_1_zgCtx(v5);
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xb2950
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x2df27b(%rip), %rax    # 0x391b30
movq %rax, -0x50(%rbp)
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq -0x50(%rbp), %rcx
callq 0xceed0
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x73040
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
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_mirth_zaMirth_errorzx
static void mw_mirth_mirth_zaMirth_errorzx (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_Str_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v4;
	struct mirth_location_Location* v5 = mw_mirth_mirth_zaMirth_errorzelocation(in_zaMirth_1, &v4);
	struct mirth_mirth_zaMirth* v6;
	mw_mirth_mirth_zaMirth_emitzeerrorzeatzx(v4, v5, in_Str_2, &v6);
	*out_zaMirth_3 = v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x61bb0
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x30(%rbp), %rcx
callq 0x620d0
movq -0x30(%rbp), %rcx
movq -0x18(%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: mtw_mirth_type_Type_Value
static struct mirth_type_Type mtw_mirth_type_Type_Value (struct mirth_type_Value in_Value_1) {
	struct mirth_type_Type_Value* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mValue = in_Value_1;
	struct mirth_type_Type v4 = { .tag=mirth_type_Type_Value, .ptr.Value=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 0xb5353
movl $0x2, %edi
leaq 0x2a367d(%rip), %rsi    # 0x3589b2
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xb5355
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0xd, -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_expand
static struct mirth_type_StackType mw_mirth_type_StackType_expand (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_StackType in_StackType_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	struct mirth_type_StackType branch_StackType_6;
	switch ((in_StackType_2).tag) {
		case mirth_type_StackType_Meta: {
			uint64_t v7 = mtp_mirth_type_StackType_Meta(in_StackType_2);
			struct mirth_mirth_zaMirth* v8;
			struct mirth_type_Type v9 = mw_mirth_type_MetaVar_expand(in_zaMirth_1, v7, &v8);
			struct mirth_type_StackType v10 = mw_mirth_type_Type_zgStackType(v9);
			branch_StackType_6 = v10;
			branch_zaMirth_5 = v8;
		} break;
		default: {
			branch_StackType_6 = in_StackType_2;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_StackType_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movl -0x20(%rbp), %eax
subl $0x4, %eax
jne 0xba246
jmp 0xba1f1
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xba280
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x88030
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0xba2d0
movl %eax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0xba25e
movq -0x20(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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: mtp_mirth_type_StackType_Meta
static uint64_t mtp_mirth_type_StackType_Meta (struct mirth_type_StackType in_StackType_1) {
	struct mirth_type_StackType_Meta v3 = *in_StackType_1.ptr.Meta;
	if (!--(in_StackType_1.ptr.Meta->refs)) {
		free(in_StackType_1.ptr.Meta);
	} else {
	}
	return v3.mMetaVar;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xba2bd
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0xba2bf
jmp 0xba2bf
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_StackType_Var
static uint64_t mtp_mirth_type_StackType_Var (struct mirth_type_StackType in_StackType_1) {
	struct mirth_type_StackType_Var v3 = *in_StackType_1.ptr.Var;
	if (!--(in_StackType_1.ptr.Var->refs)) {
		free(in_StackType_1.ptr.Var);
	} else {
	}
	return v3.mVar;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xba55d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0xba55f
jmp 0xba55f
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_StackType_Cons
static struct mirth_type_StackType mtp_mirth_type_StackType_Cons (struct mirth_type_StackType in_StackType_1, struct mirth_type_Type *out_Type_3) {
	struct mirth_type_StackType_Cons v4 = *in_StackType_1.ptr.Cons;
	if (!--(in_StackType_1.ptr.Cons->refs)) {
		free(in_StackType_1.ptr.Cons);
	} else {
		incref(MK_mirth_type_StackType(v4.mStackType));
		incref(MK_mirth_type_Type(v4.mType));
	}
	*out_Type_3 = v4.mType;
	return v4.mStackType;
}

// 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 0xba5b6
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xba71b
jmp 0xba5b8
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xba656
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x70(%rbp), %rax
cmpq $0x0, %rax
je 0xba656
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x80(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xba656
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
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 0xba658
jmp 0xba65a
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 0xba717
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 0xba717
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 0xba717
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 0xba719
jmp 0xba71b
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: mtp_mirth_type_StackType_With
static struct mirth_type_StackType mtp_mirth_type_StackType_With (struct mirth_type_StackType in_StackType_1, struct mirth_type_Type *out_Resource_3) {
	struct mirth_type_StackType_With v4 = *in_StackType_1.ptr.With;
	if (!--(in_StackType_1.ptr.With->refs)) {
		free(in_StackType_1.ptr.With);
	} else {
		incref(MK_mirth_type_StackType(v4.mStackType));
		incref(MK_mirth_type_Type(v4.mResource));
	}
	*out_Resource_3 = v4.mResource;
	return v4.mStackType;
}

// 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 0xba786
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xba8eb
jmp 0xba788
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xba826
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x70(%rbp), %rax
cmpq $0x0, %rax
je 0xba826
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x80(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xba826
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6f140
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 0xba828
jmp 0xba82a
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 0xba8e7
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 0xba8e7
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 0xba8e7
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 0xba8e9
jmp 0xba8eb
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_type_Resource_unifyzeerrorzx
static struct mirth_type_Type mw_mirth_type_Resource_unifyzeerrorzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Resource_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_type_Type v5 = mw_mirth_type_Resource_zgType(in_Resource_2);
	struct mirth_mirth_zaMirth* v6;
	struct mirth_type_Type v7 = mw_mirth_type_Type_unifyzeerrorzx(in_zaMirth_1, v5, &v6);
	struct mirth_type_Type v8 = mw_mirth_type_Type_zgResource(v7);
	*out_zaMirth_3 = v6;
	return v8;
}

// 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)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0xbadf0
movl %eax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x28(%rbp), %rdi
movl -0x40(%rbp), %esi
movq -0x38(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0xb3340
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0xbae10
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x48(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x60, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_StackType_ConsLabel
static struct mirth_type_StackType mtp_mirth_type_StackType_ConsLabel (struct mirth_type_StackType in_StackType_1, struct mirth_type_Type *out_Type_3, uint64_t *out_Label_4) {
	struct mirth_type_StackType_ConsLabel v5 = *in_StackType_1.ptr.ConsLabel;
	if (!--(in_StackType_1.ptr.ConsLabel->refs)) {
		free(in_StackType_1.ptr.ConsLabel);
	} else {
		incref(MK_mirth_type_StackType(v5.mStackType));
		incref(MK_mirth_type_Type(v5.mType));
	}
	*out_Label_4 = v5.mLabel;
	*out_Type_3 = v5.mType;
	return v5.mStackType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x60(%rbp), %rdi
movl $0x30, %edx
callq 0x50e0
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xba9ca
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xbab3c
jmp 0xba9cc
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x68(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xbaa77
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
cmpq $0x0, %rax
je 0xbaa77
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movq -0x90(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xbaa77
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xa0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xbaa79
jmp 0xbaa7b
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xb0(%rbp)
movq %rdx, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xbab38
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xc0(%rbp)
movq %rdx, -0xb8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xc0(%rbp), %rax
cmpq $0x0, %rax
je 0xbab38
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xd0(%rbp)
movq %rdx, -0xc8(%rbp)
movq -0xd0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xbab38
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xe0(%rbp)
movq %rdx, -0xd8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xe0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xbab3a
jmp 0xbab3c
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movups -0x48(%rbp), %xmm0
movups %xmm0, (%rax)
movups -0x58(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xe0, %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_StackType_WithLabel
static struct mirth_type_StackType mtp_mirth_type_StackType_WithLabel (struct mirth_type_StackType in_StackType_1, struct mirth_type_Type *out_Resource_3, uint64_t *out_Label_4) {
	struct mirth_type_StackType_WithLabel v5 = *in_StackType_1.ptr.WithLabel;
	if (!--(in_StackType_1.ptr.WithLabel->refs)) {
		free(in_StackType_1.ptr.WithLabel);
	} else {
		incref(MK_mirth_type_StackType(v5.mStackType));
		incref(MK_mirth_type_Type(v5.mResource));
	}
	*out_Label_4 = v5.mLabel;
	*out_Resource_3 = v5.mResource;
	return v5.mStackType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x60(%rbp), %rdi
movl $0x30, %edx
callq 0x50e0
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0xbabba
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0xbad2c
jmp 0xbabbc
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x68(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xbac67
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
cmpq $0x0, %rax
je 0xbac67
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movq -0x90(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xbac67
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x6f140
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xa0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xbac69
jmp 0xbac6b
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xb0(%rbp)
movq %rdx, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xbad28
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xc0(%rbp)
movq %rdx, -0xb8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xc0(%rbp), %rax
cmpq $0x0, %rax
je 0xbad28
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xd0(%rbp)
movq %rdx, -0xc8(%rbp)
movq -0xd0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xbad28
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x6e780
movq %rax, -0xe0(%rbp)
movq %rdx, -0xd8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xe0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xbad2a
jmp 0xbad2c
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movups -0x48(%rbp), %xmm0
movups %xmm0, (%rax)
movups -0x58(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xe0, %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_Meta
static struct mirth_type_StackType mtw_mirth_type_StackType_Meta (uint64_t in_MetaVar_1) {
	struct mirth_type_StackType_Meta* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mMetaVar = in_MetaVar_1;
	struct mirth_type_StackType v4 = { .tag=mirth_type_StackType_Meta, .ptr.Meta=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 0xbadb0
movl $0x2, %edi
leaq 0x29d98f(%rip), %rsi    # 0x358721
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xbadb2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x4, -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_Type_Hole
static struct mirth_type_Type mtw_mirth_type_Type_Hole (uint64_t in_Name_1) {
	struct mirth_type_Type_Hole* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mName = in_Name_1;
	struct mirth_type_Type v4 = { .tag=mirth_type_Type_Hole, .ptr.Hole=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 0xbb380
movl $0x2, %edi
leaq 0x29d45d(%rip), %rsi    # 0x3587bf
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xbb382
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x4, -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_typezj
static void mw_mirth_type_PrimType_typezj (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_zaStr_2, enum mirth_type_PrimType in_PrimType_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, STR* *out_zaStr_5) {
	struct mirth_mirth_zaMirth* v6;
	struct mirth_name_QName* v7 = mw_mirth_type_PrimType_tyconzeqname(in_zaMirth_1, in_PrimType_3, &v6);
	struct mirth_mirth_zaMirth* v8;
	STR* v9;
	mw_mirth_name_QName_namezj(v6, in_zaStr_2, v7, &v8, &v9);
	*out_zaStr_5 = v9;
	*out_zaMirth_4 = v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
leaq -0x30(%rbp), %rdx
callq 0x5b350
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x38(%rbp), %rdx
leaq -0x40(%rbp), %rcx
leaq -0x48(%rbp), %r8
callq 0x61a60
movq -0x48(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%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_var_Var_typezj
static void mw_mirth_var_Var_typezj (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_zaStr_2, uint64_t in_Var_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, STR* *out_zaStr_5) {
	struct mirth_mirth_zaMirth* v6;
	STR* v7;
	mw_mirth_var_Var_namezj(in_zaMirth_1, in_zaStr_2, in_Var_3, &v6, &v7);
	*out_zaStr_5 = v7;
	*out_zaMirth_4 = v6;
}

// 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 %r8, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x30(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0xbeb60
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%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_type_ArrowType_sigzj
static void mw_mirth_type_ArrowType_sigzj (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_zaStr_2, struct mirth_type_ArrowType* in_ArrowType_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, STR* *out_zaStr_5) {
	struct mirth_type_StackType v6;
	struct mirth_type_StackType v7;
	mtp_mirth_type_ArrowType_ArrowType(in_ArrowType_3, &v6, &v7);
	struct mirth_mirth_zaMirth* v8;
	STR* v9;
	mw_mirth_type_StackType_domzj(in_zaMirth_1, in_zaStr_2, v6, &v8, &v9);
	STR* v10;
	STRLIT(v10, "--", 2);
	STR* v11;
	mw_std_str_zaStr_pushzestrzx(v10, v9, &v11);
	struct mirth_mirth_zaMirth* v12;
	STR* v13;
	mw_mirth_type_StackType_codzj(v8, v11, v7, &v12, &v13);
	*out_zaStr_5 = v13;
	*out_zaMirth_4 = v12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0xc1010
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x38(%rbp), %edx
movq -0x30(%rbp), %rcx
leaq -0x50(%rbp), %r8
leaq -0x58(%rbp), %r9
callq 0xc11f0
cmpq $0x0, 0x12d7b94(%rip)   # 0x1395968
jne 0xbddee
leaq 0x2977c3(%rip), %rdi    # 0x3555a0
movl $0x2, %esi
callq 0xb6c0
movq %rax, 0x12d7b7a(%rip)   # 0x1395968
jmp 0xbddf0
movq 0x12d7b71(%rip), %rax   # 0x1395968
movq %rax, -0x70(%rbp)
leaq 0x2d3356(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xbdeb3
movq 0x12d7b45(%rip), %rax   # 0x1395968
movq %rax, -0x80(%rbp)
leaq 0x2d332a(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
cmpq $0x0, %rax
je 0xbdeb3
movq 0x12d7b17(%rip), %rax   # 0x1395968
movq %rax, -0x90(%rbp)
leaq 0x2d32f9(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x88(%rbp)
movq -0x90(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0xbdeb3
movq 0x12d7ae6(%rip), %rax   # 0x1395968
movq %rax, -0xa0(%rbp)
leaq 0x2d32c8(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x98(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xa0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0xbdeb5
movq 0x12d7aac(%rip), %rax   # 0x1395968
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
callq 0xb940
movq -0x50(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movl -0x48(%rbp), %edx
movq -0x40(%rbp), %rcx
leaq -0xb0(%rbp), %r8
leaq -0xb8(%rbp), %r9
callq 0xc15a0
movq -0xb8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0xb0(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0xc0, %rsp
popq %rbp
retq
nop