LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_match_Case_Case
static struct mirth_match_Case* mtw_mirth_match_Case_Case (struct mirth_match_Pattern* in_Pattern_1, struct mirth_arrow_Arrow* in_Arrow_2) {
	struct mirth_match_Case* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mbody = in_Arrow_2;
	v4->mpattern = in_Pattern_1;
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xf8534
movl $0x2, %edi
leaq 0x2610b3(%rip), %rsi    # 0x3595c9
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xf8536
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_pred
static uint64_t mw_mirth_token_Token_pred (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	uint64_t v5 = in_Token_2;
	uint64_t v6 = 0ULL;
	bool v7 = (v5 == v6);
	struct mirth_mirth_zaMirth* branch_zaMirth_8;
	uint64_t branch_U64_9;
	if (v7) {
		branch_U64_9 = v5;
		branch_zaMirth_8 = in_zaMirth_1;
	} else {
		uint64_t v10 = 1ULL;
		uint64_t v11 = (v5 - v10);
		branch_U64_9 = v11;
		branch_zaMirth_8 = in_zaMirth_1;
	}
	uint64_t v12 = branch_U64_9;
	*out_zaMirth_3 = branch_zaMirth_8;
	return v12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x28(%rbp), %rax
sete %al
andb $0x1, %al
movb %al, -0x29(%rbp)
testb $0x1, -0x29(%rbp)
je 0xf8dc8
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0xf8dec
movq $0x1, -0x48(%rbp)
movq -0x20(%rbp), %rax
subq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x58(%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_std_maybe_Maybe_1_ifzy_2_sp65
static bool mw_std_maybe_Maybe_1_ifzy_2_sp65 (struct std_list_List_1 in_zaLister_1, struct std_maybe_Maybe_1 in_Maybe_2, struct std_list_List_1 *out_zaLister_3) {
	struct std_list_List_1 branch_zaLister_5;
	bool branch_Bool_6;
	switch ((in_Maybe_2).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v7 = mtp_std_maybe_Maybe_1_Some(in_Maybe_2);
			struct std_list_List_1 v8;
			mw_std_list_zaLister_1_pushzx(v7, in_zaLister_1, &v8);
			bool v9 = true;
			branch_Bool_6 = v9;
			branch_zaLister_5 = v8;
		} break;
		case std_maybe_Maybe_1_None: {
			bool v10 = false;
			branch_Bool_6 = v10;
			branch_zaLister_5 = in_zaLister_1;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaLister_3 = branch_zaLister_5;
	return branch_Bool_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl %edx, -0x20(%rbp)
movq %rcx, -0x18(%rbp)
movq %r8, -0x28(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x68(%rbp)
testl %eax, %eax
je 0xf8e8a
jmp 0xf8e36
movl -0x68(%rbp), %eax
subl $0x1, %eax
jne 0xf8ea8
jmp 0xf8e40
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x174a0
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movl -0x10(%rbp), %edx
movq -0x8(%rbp), %rcx
leaq -0x60(%rbp), %r8
callq 0xcc30
movb $0x1, -0x61(%rbp)
movb -0x61(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xf8ec1
movb $0x0, -0x62(%rbp)
movb -0x62(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0xf8ec1
leaq 0x25afd2(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq -0x28(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
movb -0x39(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_elab_RejectedDef_WrongConstructor
static struct mirth_elab_RejectedDef mtw_mirth_elab_RejectedDef_WrongConstructor (struct mirth_def_Def in_Def_1) {
	struct mirth_elab_RejectedDef_WrongConstructor* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mDef = in_Def_1;
	struct mirth_elab_RejectedDef v4 = { .tag=mirth_elab_RejectedDef_WrongConstructor, .ptr.WrongConstructor=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 0xff363
movl $0x2, %edi
leaq 0x25a187(%rip), %rsi    # 0x3594cc
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0xff365
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x5, -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_match_PatternAtom_PatternAtom
static struct mirth_match_PatternAtom* mtw_mirth_match_PatternAtom_PatternAtom (uint64_t in_Token_1, struct std_list_List_1 in_Ctx_2, struct std_list_List_1 in_List_3, struct mirth_type_StackType in_StackType_4, struct mirth_type_StackType in_StackType_5, struct std_list_List_1 in_Subst_6, struct mirth_match_PatternOp in_PatternOp_7) {
	struct mirth_match_PatternAtom* v9 = calloc(1, sizeof *v9);
	ASSERT(v9);
	v9->refs = 1;
	v9->mop = in_PatternOp_7;
	v9->msubst = in_Subst_6;
	v9->mcod = in_StackType_5;
	v9->mdom = in_StackType_4;
	v9->msaved = in_List_3;
	v9->mctx = in_Ctx_2;
	v9->mtoken = in_Token_1;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
leaq 0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl %ecx, -0x20(%rbp)
movq %r8, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movl $0x1, %edi
movl $0x70, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x10125e
movl $0x2, %edi
leaq 0x25819f(%rip), %rsi    # 0x3593df
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x101260
movq -0x38(%rbp), %rcx
movq -0x40(%rbp), %rdx
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x30(%rbp), %rax
movq (%rdi), %r8
movq %r8, 0x60(%rax)
movq 0x8(%rdi), %rdi
movq %rdi, 0x68(%rax)
movq -0x30(%rbp), %rax
movq (%rsi), %rdi
movq %rdi, 0x50(%rax)
movq 0x8(%rsi), %rsi
movq %rsi, 0x58(%rax)
movq -0x30(%rbp), %rax
movq (%rdx), %rsi
movq %rsi, 0x40(%rax)
movq 0x8(%rdx), %rdx
movq %rdx, 0x48(%rax)
movq -0x30(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, 0x30(%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x38(%rax)
movq -0x30(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x18(%rbp), %rcx
movq %rcx, 0x28(%rax)
movq -0x30(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x8(%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: mirth_match_PatternOp_free
void mirth_match_PatternOp_free (VAL v) {
	struct mirth_match_PatternOp self = V_mirth_match_PatternOp(v);
	switch (self.tag) {
		case mirth_match_PatternOp_Underscore: break;
		case mirth_match_PatternOp_Tag: {
			free(self.ptr.Tag);
		} 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 0x1022b0
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0x1021aa
jmp 0x1021a0
movl -0x24(%rbp), %eax
subl $0x1, %eax
je 0x1021ac
jmp 0x1021b5
jmp 0x1021b5
movq -0x18(%rbp), %rdi
callq 0x5030
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_mirth_type_StackType_topzetyconzy
static struct std_maybe_Maybe_1 mw_mirth_type_StackType_topzetyconzy (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* v5;
	struct std_maybe_Maybe_1 v6 = mw_mirth_type_StackType_topzetypezy(in_zaMirth_1, in_StackType_2, &v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	struct std_maybe_Maybe_1 branch_Maybe_8;
	switch ((v6).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v9 = mtp_std_maybe_Maybe_1_Some(v6);
			struct mirth_mirth_zaMirth* v10;
			struct std_maybe_Maybe_1 v11 = mw_mirth_type_Type_tyconzy(v5, V_mirth_type_Type(v9), &v10);
			branch_Maybe_8 = v11;
			branch_zaMirth_7 = v10;
		} break;
		case std_maybe_Maybe_1_None: {
			struct std_maybe_Maybe_1 v12 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_8 = v12;
			branch_zaMirth_7 = v5;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Maybe_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0x103b60
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movl -0x48(%rbp), %eax
movl %eax, -0x9c(%rbp)
testl %eax, %eax
je 0x1031ba
jmp 0x103138
movl -0x9c(%rbp), %eax
subl $0x1, %eax
jne 0x1031ed
jmp 0x103149
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x174a0
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x6f100
movq -0xa8(%rbp), %rdi
movl %eax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movl -0x88(%rbp), %esi
movq -0x80(%rbp), %rdx
leaq -0x68(%rbp), %rcx
callq 0x862e0
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0x103206
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)
movq -0x38(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0x103206
leaq 0x250c8d(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
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 %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_match_PatternOp_Tag
static struct mirth_match_PatternOp mtw_mirth_match_PatternOp_Tag (uint64_t in_Tag_1) {
	struct mirth_match_PatternOp_Tag* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mTag = in_Tag_1;
	struct mirth_match_PatternOp v4 = { .tag=mirth_match_PatternOp_Tag, .ptr.Tag=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 0x104360
movl $0x2, %edi
leaq 0x2551bc(%rip), %rsi    # 0x3594fe
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x104362
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 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 %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_data_Tag_type
static struct mirth_type_ArrowType* mw_mirth_data_Tag_type (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Tag_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_type_ArrowType* v6;
	struct std_list_List_1 v7 = mw_mirth_data_Tag_ctxzetype(in_zaMirth_1, in_Tag_2, &v5, &v6);
	decref(MK_std_list_List_1(v7));
	*out_zaMirth_3 = v5;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %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
leaq -0x28(%rbp), %rcx
callq 0x1046a0
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x12780
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10449a
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x12780
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
cmpq $0x0, %rax
je 0x10449a
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x12780
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10449a
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x12780
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x104498
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x12780
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x127c0
jmp 0x10449a
jmp 0x10449c
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x90, %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_match_PatternOp_Tag
static uint64_t mtp_mirth_match_PatternOp_Tag (struct mirth_match_PatternOp in_PatternOp_1) {
	struct mirth_match_PatternOp_Tag v3 = *in_PatternOp_1.ptr.Tag;
	if (!--(in_PatternOp_1.ptr.Tag->refs)) {
		free(in_PatternOp_1.ptr.Tag);
	} else {
	}
	return v3.mTag;
}

// 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 0x108f9d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x108f9f
jmp 0x108f9f
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: mw_mirth_match_Match_thaw
static void mw_mirth_match_Match_thaw (struct mirth_match_Match* in_Match_1, struct mirth_match_zaMatch* *out_zaMatch_2) {
	struct mirth_arrow_Home v3;
	uint64_t v4;
	uint64_t v5;
	struct std_list_List_1 v6;
	struct mirth_type_StackType v7;
	struct mirth_type_StackType v8;
	struct std_list_List_1 v9;
	mtp_mirth_match_Match_Match(in_Match_1, &v3, &v4, &v5, &v6, &v7, &v8, &v9);
	struct mirth_match_zaMatch* v10;
	mtw_mirth_match_zaMatch_zaMatch(v3, v4, v5, v6, v7, v8, v9, &v10);
	*out_zaMatch_2 = v10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0xb0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x18(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
leaq -0x40(%rbp), %rcx
leaq -0x50(%rbp), %r8
leaq -0x60(%rbp), %r9
leaq -0x70(%rbp), %r10
leaq -0x80(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x10e2a0
movq -0x38(%rbp), %rdx
movq -0x40(%rbp), %rcx
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
movl -0x50(%rbp), %r8d
movq -0x48(%rbp), %r9
leaq -0x60(%rbp), %rbx
leaq -0x70(%rbp), %r11
leaq -0x80(%rbp), %r10
leaq -0x88(%rbp), %rax
movq (%rbx), %r14
movq %r14, (%rsp)
movq 0x8(%rbx), %rbx
movq %rbx, 0x8(%rsp)
movq (%r11), %rbx
movq %rbx, 0x10(%rsp)
movq 0x8(%r11), %r11
movq %r11, 0x18(%rsp)
movq (%r10), %r11
movq %r11, 0x20(%rsp)
movq 0x8(%r10), %r10
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0xf4910
movq -0x88(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_data_Data_numzetags
static INT mw_mirth_data_Data_numzetags (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Data_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct std_list_List_1 v6 = mw_mirth_data_Data_tags(in_zaMirth_1, in_Data_2, &v5);
	INT v7 = mw_std_list_List_1_len(v6);
	*out_zaMirth_3 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x10e0f0
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x33100
movq %rax, -0x8(%rbp)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %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_match_Case_iszedefaultzecasezy
static bool mw_mirth_match_Case_iszedefaultzecasezy (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_match_Case* in_Case_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_match_Pattern* v5 = in_Case_2->mpattern;
	incref(MK_mirth_match_Pattern(v5));
	decref(MK_mirth_match_Case(in_Case_2));
	bool v6 = mw_mirth_match_Pattern_iszedefaultzy(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x285d06(%rip), %rax    # 0x392628
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10c9b4
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x285ce1(%rip), %rax    # 0x392628
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x10c9b4
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x285cb6(%rip), %rax    # 0x392628
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10c9b4
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x285c91(%rip), %rax    # 0x392628
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x10c9b6
jmp 0x10c9b8
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x285d39(%rip), %rax    # 0x392700
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10caaa
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq 0x285d10(%rip), %rax    # 0x392700
orq $0x1, %rax
movq %rax, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
cmpq $0x0, %rax
je 0x10caaa
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x285cde(%rip), %rax    # 0x392700
orq $0x1, %rax
movq %rax, -0x88(%rbp)
movq -0x90(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10caaa
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq 0x285cb0(%rip), %rax    # 0x392700
orq $0x1, %rax
movq %rax, -0x98(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0xa0(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x10caa8
movq -0x10(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq 0x285c76(%rip), %rax    # 0x392700
orq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xb0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x127c0
jmp 0x10caaa
jmp 0x10caac
movq -0x20(%rbp), %rdi
callq 0x10cae0
andb $0x1, %al
movb %al, -0xb1(%rbp)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movb -0xb1(%rbp), %al
andb $0x1, %al
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_match_PatternOp_zfUnderscore
static bool mw_mirth_match_PatternOp_zfUnderscore (struct mirth_match_PatternOp in_PatternOp_1) {
	bool branch_Bool_3;
	switch ((in_PatternOp_1).tag) {
		case mirth_match_PatternOp_Underscore: {
			bool v4 = true;
			branch_Bool_3 = v4;
		} break;
		default: {
			decref(MK_mirth_match_PatternOp(in_PatternOp_1));
			bool v5 = false;
			branch_Bool_3 = v5;
		} break;
	}
	return branch_Bool_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl -0x10(%rbp), %eax
testl %eax, %eax
jne 0x10d7a9
jmp 0x10d798
movb $0x1, -0x12(%rbp)
movb -0x12(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
jmp 0x10d87a
jmp 0x10d7ab
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x102130
movq %rax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10d86c
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x102130
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
cmpq $0x0, %rax
je 0x10d86c
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x102130
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10d86c
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x102130
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x10d86a
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x102130
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x127c0
jmp 0x10d86c
jmp 0x10d86e
movb $0x0, -0x69(%rbp)
movb -0x69(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
movb -0x11(%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_match_PatternOp_zfTag
static struct std_maybe_Maybe_1 mw_mirth_match_PatternOp_zfTag (struct mirth_match_PatternOp in_PatternOp_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_PatternOp_1).tag) {
		case mirth_match_PatternOp_Tag: {
			uint64_t v4 = mtp_mirth_match_PatternOp_Tag(in_PatternOp_1);
			struct std_maybe_Maybe_1 v5 = mtw_std_maybe_Maybe_1_Some(MK_mirth_data_Tag(v4));
			branch_Maybe_3 = v5;
		} break;
		default: {
			decref(MK_mirth_match_PatternOp(in_PatternOp_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 $0x1, %eax
jne 0x10dfd8
jmp 0x10df8c
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x108f60
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x283d35(%rip), %rax    # 0x391ce0
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 0x10e0dc
jmp 0x10dfda
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x102130
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10e0b1
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x102130
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0x10e0b1
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x102130
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10e0b1
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x102130
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 0x10e0af
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x102130
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x127c0
jmp 0x10e0b1
jmp 0x10e0b3
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_data_Data_tags
static struct std_list_List_1 mw_mirth_data_Data_tags (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Data_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_data_Data_tags, in_Data_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	struct std_list_List_1 branch_List_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_List_8 = V_std_list_List_1(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		struct std_list_List_1 v10 = { .tag=std_list_List_1_Nil };
		incref(MK_std_list_List_1(v10));
		mut_set(MK_std_list_List_1(v10), v5);
		branch_List_8 = v10;
		branch_zaMirth_7 = in_zaMirth_1;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_List_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x1287286(%rip), %rdi   # 0x1395398
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x45e40
andb $0x1, %al
movb %al, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
je 0x10e171
movq -0x30(%rbp), %rdi
callq 0x40f30
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x12c80
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, -0x40(%rbp)
jmp 0x10e280
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x78(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10e235
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x90(%rbp), %rax
cmpq $0x0, %rax
je 0x10e235
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movq -0xa0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10e235
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0xb0(%rbp)
movq %rdx, -0xa8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xb0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x10e237
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0xc0(%rbp)
movq %rdx, -0xb8(%rbp)
movq -0x30(%rbp), %rdx
movq -0xc0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x431a0
movq -0x70(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_match_zaMatch_zaMatch
static void mtp_mirth_match_zaMatch_zaMatch (struct mirth_match_zaMatch* in_zaMatch_1, struct mirth_arrow_Home *out_Home_2, uint64_t *out_Token_3, uint64_t *out_Token_4, struct std_list_List_1 *out_Ctx_5, struct mirth_type_StackType *out_StackType_6, struct mirth_type_StackType *out_StackType_7, struct std_list_List_1 *out_List_8) {
	struct mirth_match_zaMatch v9 = *in_zaMatch_1;
	free(in_zaMatch_1);
	*out_List_8 = v9.mcases;
	*out_StackType_7 = v9.mcod;
	*out_StackType_6 = v9.mdom;
	*out_Ctx_5 = v9.mctx;
	*out_Token_4 = v9.mbody;
	*out_Token_3 = v9.mtoken;
	*out_Home_2 = v9.mhome;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x8(%rbp), %rsi
leaq -0x90(%rbp), %rdi
movl $0x60, %edx
callq 0x50e0
movq -0x8(%rbp), %rdi
callq 0x5030
movq 0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq 0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movq %rcx, (%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq -0x60(%rbp), %rcx
movq %rcx, (%rax)
movq -0x58(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
movq -0x70(%rbp), %rcx
movq %rcx, (%rax)
movq -0x68(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x78(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x80(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq -0x90(%rbp), %rcx
movq %rcx, (%rax)
movq -0x88(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_zaAB_abzetokenzx
static void mw_mirth_elab_zaAB_abzetokenzx (struct mirth_arrow_Arrow* in_zaAB_1, uint64_t in_Token_2, struct mirth_arrow_Arrow* *out_zaAB_3) {
	incref(MK_mirth_arrow_Arrow(in_zaAB_1));
	struct mirth_arrow_Arrow* v4 = mirth_arrow_Arrow_set_tokenzeend(in_zaAB_1, in_Token_2);
	decref(MK_mirth_arrow_Arrow(in_zaAB_1));
	*out_zaAB_3 = v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq 0x282d4a(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10f778
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x282d25(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
cmpq $0x0, %rax
je 0x10f778
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x282cfa(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x48(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10f778
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x282cd5(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x10f77a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x11dfb0
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x282c96(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10f87d
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq 0x282c6d(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
cmpq $0x0, %rax
je 0x10f87d
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x282c3b(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x88(%rbp)
movq -0x90(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10f87d
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq 0x282c0d(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0x98(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0xa0(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x10f87b
movq -0x8(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq 0x282bd3(%rip), %rax    # 0x392430
orq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xb0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
callq 0x127c0
jmp 0x10f87d
jmp 0x10f87f
movq -0x60(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_zaAB_abzelabelzepopzx
static void mw_mirth_elab_zaAB_abzelabelzepopzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_arrow_Arrow* in_zaAB_2, uint64_t in_Label_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_arrow_Arrow* *out_zaAB_5) {
	struct std_list_List_1 v6 = { .tag=std_list_List_1_Nil };
	struct mirth_arrow_Op v7 = mtw_mirth_arrow_Op_LabelPop(in_Label_3);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_arrow_Arrow* v9;
	mw_mirth_elab_zaAB_abzeopzx(in_zaMirth_1, in_zaAB_2, v6, v7, &v8, &v9);
	*out_zaAB_5 = v9;
	*out_zaMirth_4 = v8;
}

// 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 %r8, -0x28(%rbp)
leaq -0x38(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x18(%rbp), %rdi
callq 0x11e450
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x38(%rbp), %edx
movq -0x30(%rbp), %rcx
movl -0x48(%rbp), %r8d
movq -0x40(%rbp), %r9
leaq -0x50(%rbp), %r10
leaq -0x58(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0xe1ee0
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x50(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
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_zaAB_abzeprimzx
static void mw_mirth_elab_zaAB_abzeprimzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_arrow_Arrow* in_zaAB_2, struct std_list_List_1 in_List_3, enum mirth_prim_Prim in_Prim_4, struct mirth_mirth_zaMirth* *out_zaMirth_5, struct mirth_arrow_Arrow* *out_zaAB_6) {
	struct mirth_arrow_Op v7 = mtw_mirth_arrow_Op_Prim(in_Prim_4);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_arrow_Arrow* v9;
	mw_mirth_elab_zaAB_abzeopzx(in_zaMirth_1, in_zaAB_2, in_List_3, v7, &v8, &v9);
	*out_zaAB_6 = v9;
	*out_zaMirth_5 = v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq 0x10(%rbp), %rax
movl %edx, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq %r9, -0x30(%rbp)
movl -0x24(%rbp), %edi
callq 0x11e4e0
movl %eax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x10(%rbp), %edx
movq -0x8(%rbp), %rcx
movl -0x40(%rbp), %r8d
movq -0x38(%rbp), %r9
leaq -0x48(%rbp), %r10
leaq -0x50(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0xe1ee0
movq -0x50(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_zaAB_elabzeatomzednamezx
static void mw_mirth_elab_zaAB_elabzeatomzednamezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_arrow_Arrow* in_zaAB_2, struct mirth_name_DName* in_DName_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_arrow_Arrow* *out_zaAB_5) {
	struct std_either_Either_2 v6 = mtw_std_either_Either_2_Right(MK_mirth_name_DName(in_DName_3));
	struct mirth_mirth_zaMirth* v7;
	struct mirth_arrow_Arrow* v8;
	mw_mirth_elab_zaAB_elabzeatomzeresolvezedefzx(in_zaMirth_1, in_zaAB_2, v6, &v7, &v8);
	*out_zaAB_5 = v8;
	*out_zaMirth_4 = v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x28236d(%rip), %rax    # 0x391ed8
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x73fe0
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
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 0x111880
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x50(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0x60, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_token_TokenValue_Str
static STR* mtp_mirth_token_TokenValue_Str (struct mirth_token_TokenValue in_TokenValue_1) {
	struct mirth_token_TokenValue_Str v3 = *in_TokenValue_1.ptr.Str;
	if (!--(in_TokenValue_1.ptr.Str->refs)) {
		free(in_TokenValue_1.ptr.Str);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %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 0x10fc00
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x10fca7
jmp 0x10fc02
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x281547(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10fca3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x281522(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x10fca3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2814f7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10fca3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2814d2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x10fca5
jmp 0x10fca7
movq -0x18(%rbp), %rax
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: mtw_mirth_arrow_PushValue_Str
static struct mirth_arrow_PushValue mtw_mirth_arrow_PushValue_Str (STR* in_Str_1) {
	struct mirth_arrow_PushValue_Str* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mStr = in_Str_1;
	struct mirth_arrow_PushValue v4 = { .tag=mirth_arrow_PushValue_Str, .ptr.Str=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 0x10fd10
movl $0x2, %edi
leaq 0x249e0d(%rip), %rsi    # 0x359aff
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x10fd12
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
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: mw_mirth_elab_zaAB_abzepushzevaluezx
static void mw_mirth_elab_zaAB_abzepushzevaluezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_arrow_Arrow* in_zaAB_2, struct mirth_arrow_PushValue in_PushValue_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_arrow_Arrow* *out_zaAB_5) {
	struct std_list_List_1 v6 = { .tag=std_list_List_1_Nil };
	struct mirth_arrow_Op v7 = mtw_mirth_arrow_Op_Push(in_PushValue_3);
	struct mirth_mirth_zaMirth* v8;
	struct mirth_arrow_Arrow* v9;
	mw_mirth_elab_zaAB_abzeopzx(in_zaMirth_1, in_zaAB_2, v6, v7, &v8, &v9);
	*out_zaAB_5 = v9;
	*out_zaMirth_4 = v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edx, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
leaq -0x40(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x11dce0
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x40(%rbp), %edx
movq -0x38(%rbp), %rcx
movl -0x50(%rbp), %r8d
movq -0x48(%rbp), %r9
leaq -0x58(%rbp), %r10
leaq -0x60(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0xe1ee0
movq -0x60(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_token_TokenValue_Int
static INT mtp_mirth_token_TokenValue_Int (struct mirth_token_TokenValue in_TokenValue_1) {
	struct mirth_token_TokenValue_Int v3 = *in_TokenValue_1.ptr.Int;
	if (!--(in_TokenValue_1.ptr.Int->refs)) {
		free(in_TokenValue_1.ptr.Int);
	} else {
		incref(MKINT(v3.mInt));
	}
	return v3.mInt;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x18(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x10fe20
movq -0x10(%rbp), %rdi
callq 0x5030
jmp 0x10fec7
jmp 0x10fe22
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x2815f7(%rip), %rax    # 0x391428
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x10fec3
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x2815d2(%rip), %rax    # 0x391428
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x10fec3
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x2815a7(%rip), %rax    # 0x391428
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x10fec3
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x281582(%rip), %rax    # 0x391428
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x10fec5
jmp 0x10fec7
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
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_arrow_PushValue_Int
static struct mirth_arrow_PushValue mtw_mirth_arrow_PushValue_Int (INT in_Int_1) {
	struct mirth_arrow_PushValue_Int* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mInt = in_Int_1;
	struct mirth_arrow_PushValue v4 = { .tag=mirth_arrow_PushValue_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 0x10ff30
movl $0x2, %edi
leaq 0x249c51(%rip), %rsi    # 0x359b63
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x10ff32
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
movq %rcx, 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 %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_token_TokenValue_Nat
static INT mtp_mirth_token_TokenValue_Nat (struct mirth_token_TokenValue in_TokenValue_1) {
	struct mirth_token_TokenValue_Nat v3 = *in_TokenValue_1.ptr.Nat;
	if (!--(in_TokenValue_1.ptr.Nat->refs)) {
		free(in_TokenValue_1.ptr.Nat);
	} else {
		incref(MKNAT(v3.mNat));
	}
	return v3.mNat;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x18(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x10ffb0
movq -0x10(%rbp), %rdi
callq 0x5030
jmp 0x110057
jmp 0x10ffb2
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x28114f(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x110053
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x28112a(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x110053
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x2810ff(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x110053
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x2810da(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x110055
jmp 0x110057
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
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_arrow_PushValue_Nat
static struct mirth_arrow_PushValue mtw_mirth_arrow_PushValue_Nat (INT in_Nat_1) {
	struct mirth_arrow_PushValue_Nat* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mNat = in_Nat_1;
	struct mirth_arrow_PushValue v4 = { .tag=mirth_arrow_PushValue_Nat, .ptr.Nat=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 0x1100c0
movl $0x2, %edi
leaq 0x249af3(%rip), %rsi    # 0x359b95
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x1100c2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x2, -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: mtp_mirth_token_TokenValue_U8
static uint8_t mtp_mirth_token_TokenValue_U8 (struct mirth_token_TokenValue in_TokenValue_1) {
	struct mirth_token_TokenValue_U8 v3 = *in_TokenValue_1.ptr.U8;
	if (!--(in_TokenValue_1.ptr.U8->refs)) {
		free(in_TokenValue_1.ptr.U8);
	} else {
	}
	return v3.mU8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x110135
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x110137
jmp 0x110137
movb -0x14(%rbp), %al
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_arrow_PushValue_U8
static struct mirth_arrow_PushValue mtw_mirth_arrow_PushValue_U8 (uint8_t in_U8_1) {
	struct mirth_arrow_PushValue_U8* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mU8 = in_U8_1;
	struct mirth_arrow_PushValue v4 = { .tag=mirth_arrow_PushValue_U8, .ptr.U8=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dil, %al
movb %al, -0x11(%rbp)
movl $0x1, %edi
movl $0x8, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x110192
movl $0x2, %edi
leaq 0x249a53(%rip), %rsi    # 0x359bc7
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x110194
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movb -0x11(%rbp), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x4(%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)