LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_pushzevaluezelabelzx
static void mw_mirth_c99_pushzevaluezelabelzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, uint64_t in_Label_3, struct mirth_c99_zaC99Value* in_zaC99Value_4, struct mirth_mirth_zaMirth* *out_zaMirth_5, struct mirth_c99_zaC99Branch* *out_zaC99Branch_6) {
	struct mirth_c99_zaC99Stack r7 = in_zaC99Branch_2->mzastack;
	struct mirth_c99_zaC99Stack v8;
	mtw_mirth_c99_zaC99Stack_zaConsLabel(r7, in_zaC99Value_4, in_Label_3, &v8);
	in_zaC99Branch_2->mzastack = v8;
	*out_zaC99Branch_6 = in_zaC99Branch_2;
	*out_zaMirth_5 = in_zaMirth_1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
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 -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rdx
movq -0x18(%rbp), %rcx
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
leaq -0x50(%rbp), %r8
callq 0x28cea0
movq -0x10(%rbp), %rax
movq -0x50(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Value_turnzeintozeresourcezx
static void mw_mirth_c99_zaC99Value_turnzeintozeresourcezx (struct mirth_c99_zaC99Value* in_zaC99Value_1, struct mirth_c99_zaC99Resource* *out_zaC99Resource_2) {
	struct mirth_c99_C99ReprType v3;
	STR* v4;
	mtp_mirth_c99_zaC99Value_zaC99Value(in_zaC99Value_1, &v3, &v4);
	struct mirth_c99_zaC99Resource* v5;
	mtw_mirth_c99_zaC99Resource_zaC99Resource(v3, v4, &v5);
	*out_zaC99Resource_2 = v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x28cf60
movq -0x28(%rbp), %rdx
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x30(%rbp), %rcx
callq 0x28cfc0
movq -0x30(%rbp), %rcx
movq -0x10(%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: mtp_mirth_c99_C99APIArgSource_ResourceLabel
static uint64_t mtp_mirth_c99_C99APIArgSource_ResourceLabel (struct mirth_c99_C99APIArgSource in_C99APIArgSource_1) {
	struct mirth_c99_C99APIArgSource_ResourceLabel v3 = *in_C99APIArgSource_1.ptr.ResourceLabel;
	if (!--(in_C99APIArgSource_1.ptr.ResourceLabel->refs)) {
		free(in_C99APIArgSource_1.ptr.ResourceLabel);
	} else {
	}
	return v3.mLabel;
}

// 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 0x28cd5d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x28cd5f
jmp 0x28cd5f
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: mtw_mirth_c99_zaC99Stack_zaCons
static void mtw_mirth_c99_zaC99Stack_zaCons (struct mirth_c99_zaC99Stack in_zaC99Stack_1, struct mirth_c99_zaC99Value* in_zaC99Value_2, struct mirth_c99_zaC99Stack *out_zaC99Stack_3) {
	struct mirth_c99_zaC99Stack_zaCons* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->mzaC99Value = in_zaC99Value_2;
	v4->mzaC99Stack = in_zaC99Stack_1;
	struct mirth_c99_zaC99Stack v5 = { .tag=mirth_c99_zaC99Stack_zaCons, .ptr.zaCons=v4 };
	*out_zaC99Stack_3 = v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x28ce4b
movl $0x2, %edi
leaq 0xe081e(%rip), %rsi     # 0x36d64b
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28ce4d
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x1, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_c99_zaC99Stack_zaConsLabel
static void mtw_mirth_c99_zaC99Stack_zaConsLabel (struct mirth_c99_zaC99Stack in_zaC99Stack_1, struct mirth_c99_zaC99Value* in_zaC99Value_2, uint64_t in_Label_3, struct mirth_c99_zaC99Stack *out_zaC99Stack_4) {
	struct mirth_c99_zaC99Stack_zaConsLabel* v5 = calloc(1, sizeof *v5);
	ASSERT(v5);
	v5->mLabel = in_Label_3;
	v5->mzaC99Value = in_zaC99Value_2;
	v5->mzaC99Stack = in_zaC99Stack_1;
	struct mirth_c99_zaC99Stack v6 = { .tag=mirth_c99_zaC99Stack_zaConsLabel, .ptr.zaConsLabel=v5 };
	*out_zaC99Stack_4 = v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x28ceff
movl $0x2, %edi
leaq 0xe079c(%rip), %rsi     # 0x36d67d
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28cf01
movq -0x20(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 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)
movl $0x3, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_c99_zaC99Value_zaC99Value
static void mtp_mirth_c99_zaC99Value_zaC99Value (struct mirth_c99_zaC99Value* in_zaC99Value_1, struct mirth_c99_C99ReprType *out_C99ReprType_2, STR* *out_Str_3) {
	struct mirth_c99_zaC99Value v4 = *in_zaC99Value_1;
	free(in_zaC99Value_1);
	*out_Str_3 = v4.mvaluezename;
	*out_C99ReprType_2 = v4.mvaluezerepr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5030
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_c99_zaC99Resource_zaC99Resource
static void mtw_mirth_c99_zaC99Resource_zaC99Resource (struct mirth_c99_C99ReprType in_C99ReprType_1, STR* in_Str_2, struct mirth_c99_zaC99Resource* *out_zaC99Resource_3) {
	struct mirth_c99_zaC99Resource* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->mresourcezename = in_Str_2;
	v4->mresourcezerepr = in_C99ReprType_1;
	*out_zaC99Resource_3 = v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x28d01b
movl $0x2, %edi
leaq 0xe06b2(%rip), %rsi     # 0x36d6af
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28d01d
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_c99_zaC99Stack_zaWith
static void mtw_mirth_c99_zaC99Stack_zaWith (struct mirth_c99_zaC99Stack in_zaC99Stack_1, struct mirth_c99_zaC99Resource* in_zaC99Resource_2, struct mirth_c99_zaC99Stack *out_zaC99Stack_3) {
	struct mirth_c99_zaC99Stack_zaWith* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->mzaC99Resource = in_zaC99Resource_2;
	v4->mzaC99Stack = in_zaC99Stack_1;
	struct mirth_c99_zaC99Stack v5 = { .tag=mirth_c99_zaC99Stack_zaWith, .ptr.zaWith=v4 };
	*out_zaC99Stack_3 = v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x28d0ab
movl $0x2, %edi
leaq 0xe0654(%rip), %rsi     # 0x36d6e1
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28d0ad
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x2, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_c99_zaC99Stack_zaWithLabel
static void mtw_mirth_c99_zaC99Stack_zaWithLabel (struct mirth_c99_zaC99Stack in_zaC99Stack_1, struct mirth_c99_zaC99Resource* in_zaC99Resource_2, uint64_t in_Label_3, struct mirth_c99_zaC99Stack *out_zaC99Stack_4) {
	struct mirth_c99_zaC99Stack_zaWithLabel* v5 = calloc(1, sizeof *v5);
	ASSERT(v5);
	v5->mLabel = in_Label_3;
	v5->mzaC99Resource = in_zaC99Resource_2;
	v5->mzaC99Stack = in_zaC99Stack_1;
	struct mirth_c99_zaC99Stack v6 = { .tag=mirth_c99_zaC99Stack_zaWithLabel, .ptr.zaWithLabel=v5 };
	*out_zaC99Stack_4 = v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x28d15f
movl $0x2, %edi
leaq 0xe05d2(%rip), %rsi     # 0x36d713
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28d161
movq -0x20(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 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)
movl $0x4, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_data_Tag_c99zerepr
static struct mirth_c99_C99DataTagRepr mw_mirth_data_Tag_c99zerepr (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Tag_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_data_Tag_c99zerepr, in_Tag_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	struct mirth_c99_C99DataTagRepr branch_C99DataTagRepr_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_C99DataTagRepr_8 = V_mirth_c99_C99DataTagRepr(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		struct mirth_mirth_zaMirth* v10;
		struct mirth_c99_C99DataTagRepr v11 = mw_mirth_c99_C99DataTagRepr_Make(in_zaMirth_1, in_Tag_2, &v10);
		incref(MK_mirth_c99_C99DataTagRepr(v11));
		mut_set(MK_mirth_c99_C99DataTagRepr(v11), v5);
		branch_C99DataTagRepr_8 = v11;
		branch_zaMirth_7 = v10;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_C99DataTagRepr_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x110a98e(%rip), %rdi   # 0x1397b70
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x45e40
andb $0x1, %al
movb %al, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
je 0x28d241
movq -0x30(%rbp), %rdi
callq 0x40f30
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x28d720
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 0x28d35b
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x28d760
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0x28d7e0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x80(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x28d310
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0x28d7e0
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x98(%rbp), %rax
cmpq $0x0, %rax
je 0x28d310
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0x28d7e0
movq %rax, -0xa8(%rbp)
movq %rdx, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x28d310
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0x28d7e0
movq %rax, -0xb8(%rbp)
movq %rdx, -0xb0(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xb8(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x28d312
movl -0x78(%rbp), %edi
movq -0x70(%rbp), %rsi
callq 0x28d7e0
movq %rax, -0xc8(%rbp)
movq %rdx, -0xc0(%rbp)
movq -0x30(%rbp), %rdx
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
callq 0x431a0
movq -0x78(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x68(%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 $0xd0, %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_c99_zaC99ValuezfResource_pushzevaluezfresourcezx
static void mw_mirth_c99_zaC99ValuezfResource_pushzevaluezfresourcezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct std_either_zaEither_2 in_zaC99ValuezfResource_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99Branch* *out_zaC99Branch_5) {
	struct mirth_mirth_zaMirth* branch_zaMirth_6;
	struct mirth_c99_zaC99Branch* branch_zaC99Branch_7;
	switch ((in_zaC99ValuezfResource_3).tag) {
		case std_either_zaEither_2_zaLeft: {
			VAL v8;
			mtp_std_either_zaEither_2_zaLeft(in_zaC99ValuezfResource_3, &v8);
			struct mirth_mirth_zaMirth* v9;
			struct mirth_c99_zaC99Branch* v10;
			mw_mirth_c99_zaC99Value_pushzevaluezx(in_zaMirth_1, in_zaC99Branch_2, V_mirth_c99_zaC99Value(v8), &v9, &v10);
			branch_zaC99Branch_7 = v10;
			branch_zaMirth_6 = v9;
		} break;
		case std_either_zaEither_2_zaRight: {
			VAL v11;
			mtp_std_either_zaEither_2_zaRight(in_zaC99ValuezfResource_3, &v11);
			struct mirth_mirth_zaMirth* v12;
			struct mirth_c99_zaC99Branch* v13;
			mw_mirth_c99_zaC99Resource_pushzeresourcezx(in_zaMirth_1, in_zaC99Branch_2, V_mirth_c99_zaC99Resource(v11), &v12, &v13);
			branch_zaC99Branch_7 = v13;
			branch_zaMirth_6 = v12;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaC99Branch_5 = branch_zaC99Branch_7;
	*out_zaMirth_4 = branch_zaMirth_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %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)
movl -0x10(%rbp), %eax
movl %eax, -0x84(%rbp)
testl %eax, %eax
je 0x28d66e
jmp 0x28d661
movl -0x84(%rbp), %eax
subl $0x1, %eax
je 0x28d6a9
jmp 0x28d6e4
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x29e0c0
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x58(%rbp), %rcx
leaq -0x60(%rbp), %r8
callq 0x28cb50
movq -0x60(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x28d6fd
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x29e300
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x70(%rbp), %rdx
leaq -0x78(%rbp), %rcx
leaq -0x80(%rbp), %r8
callq 0x28cca0
movq -0x80(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x28d6fd
leaq 0xc6796(%rip), %rdi     # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq -0x40(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%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_c99_C99DataTagRepr_Make
static struct mirth_c99_C99DataTagRepr mw_mirth_c99_C99DataTagRepr_Make (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Tag_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_data_Tag_data(in_zaMirth_1, in_Tag_2, &v5);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_C99DataRepr v8 = mw_mirth_data_Data_c99zerepr(v5, v6, &v7);
	struct mirth_mirth_zaMirth* v9;
	struct mirth_c99_C99DataTagRepr v10 = mw_mirth_c99_C99DataRepr_tagzerepr(v7, in_Tag_2, v8, &v9);
	*out_zaMirth_3 = v9;
	return v10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %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 0x57890
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x22e4f0
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x50(%rbp), %edx
movq -0x48(%rbp), %rcx
leaq -0x58(%rbp), %r8
callq 0x28d820
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_c99_C99DataTagRepr_Unit
static struct mirth_c99_C99DataTagRepr mtw_mirth_c99_C99DataTagRepr_Unit (struct mirth_c99_C99DataUnitRepr* in_C99DataUnitRepr_1) {
	struct mirth_c99_C99DataTagRepr_Unit* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mC99DataUnitRepr = in_C99DataUnitRepr_1;
	struct mirth_c99_C99DataTagRepr v4 = { .tag=mirth_c99_C99DataTagRepr_Unit, .ptr.Unit=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 0x28e8b0
movl $0x2, %edi
leaq 0xdeeb3(%rip), %rsi     # 0x36d745
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28e8b2
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: mtw_mirth_c99_C99DataEnumTagRepr_C99DataEnumTagRepr
static struct mirth_c99_C99DataEnumTagRepr* mtw_mirth_c99_C99DataEnumTagRepr_C99DataEnumTagRepr (uint64_t in_C99DataEnumRepr_1, uint64_t in_Tag_2) {
	struct mirth_c99_C99DataEnumTagRepr* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mtag = in_Tag_2;
	v4->mdatazerepr = in_C99DataEnumRepr_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 0x28e944
movl $0x2, %edi
leaq 0xdee51(%rip), %rsi     # 0x36d777
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28e946
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: mtw_mirth_c99_C99DataTagRepr_Enum
static struct mirth_c99_C99DataTagRepr mtw_mirth_c99_C99DataTagRepr_Enum (struct mirth_c99_C99DataEnumTagRepr* in_C99DataEnumTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Enum* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mC99DataEnumTagRepr = in_C99DataEnumTagRepr_1;
	struct mirth_c99_C99DataTagRepr v4 = { .tag=mirth_c99_C99DataTagRepr_Enum, .ptr.Enum=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 0x28e9d0
movl $0x2, %edi
leaq 0xdedf7(%rip), %rsi     # 0x36d7a9
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28e9d2
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: mtw_mirth_c99_C99DataTagRepr_Struct
static struct mirth_c99_C99DataTagRepr mtw_mirth_c99_C99DataTagRepr_Struct (struct mirth_c99_C99DataStructRepr* in_C99DataStructRepr_1) {
	struct mirth_c99_C99DataTagRepr_Struct* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mC99DataStructRepr = in_C99DataStructRepr_1;
	struct mirth_c99_C99DataTagRepr v4 = { .tag=mirth_c99_C99DataTagRepr_Struct, .ptr.Struct=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 0x28eaf0
movl $0x2, %edi
leaq 0xded3b(%rip), %rsi     # 0x36d80d
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28eaf2
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: mtw_mirth_c99_C99DataTagRepr_Sum
static struct mirth_c99_C99DataTagRepr mtw_mirth_c99_C99DataTagRepr_Sum (struct mirth_c99_C99DataSumTagRepr in_C99DataSumTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Sum* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mC99DataSumTagRepr = in_C99DataSumTagRepr_1;
	struct mirth_c99_C99DataTagRepr v4 = { .tag=mirth_c99_C99DataTagRepr_Sum, .ptr.Sum=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 0x28eb83
movl $0x2, %edi
leaq 0xded07(%rip), %rsi     # 0x36d86c
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x28eb85
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x4, -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: mtp_mirth_c99_C99DataTagRepr_Unit
static struct mirth_c99_C99DataUnitRepr* mtp_mirth_c99_C99DataTagRepr_Unit (struct mirth_c99_C99DataTagRepr in_C99DataTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Unit v3 = *in_C99DataTagRepr_1.ptr.Unit;
	if (!--(in_C99DataTagRepr_1.ptr.Unit->refs)) {
		free(in_C99DataTagRepr_1.ptr.Unit);
	} else {
		incref(MK_mirth_c99_C99DataUnitRepr(v3.mC99DataUnitRepr));
	}
	return v3.mC99DataUnitRepr;
}

// 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 0x28f430
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x28f4d7
jmp 0x28f432
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x103a9f(%rip), %rax    # 0x392ee0
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x28f4d3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x103a7a(%rip), %rax    # 0x392ee0
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x28f4d3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x103a4f(%rip), %rax    # 0x392ee0
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x28f4d3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x103a2a(%rip), %rax    # 0x392ee0
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 0x28f4d5
jmp 0x28f4d7
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: mtp_mirth_c99_C99DataTagRepr_Enum
static struct mirth_c99_C99DataEnumTagRepr* mtp_mirth_c99_C99DataTagRepr_Enum (struct mirth_c99_C99DataTagRepr in_C99DataTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Enum v3 = *in_C99DataTagRepr_1.ptr.Enum;
	if (!--(in_C99DataTagRepr_1.ptr.Enum->refs)) {
		free(in_C99DataTagRepr_1.ptr.Enum);
	} else {
		incref(MK_mirth_c99_C99DataEnumTagRepr(v3.mC99DataEnumTagRepr));
	}
	return v3.mC99DataEnumTagRepr;
}

// 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 0x290300
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x2903a7
jmp 0x290302
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x102f77(%rip), %rax    # 0x393288
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x2903a3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x102f52(%rip), %rax    # 0x393288
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x2903a3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x102f27(%rip), %rax    # 0x393288
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x2903a3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x102f02(%rip), %rax    # 0x393288
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 0x2903a5
jmp 0x2903a7
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: mtp_mirth_c99_C99DataTagRepr_Trans
static struct mirth_c99_C99DataTransRepr* mtp_mirth_c99_C99DataTagRepr_Trans (struct mirth_c99_C99DataTagRepr in_C99DataTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Trans v3 = *in_C99DataTagRepr_1.ptr.Trans;
	if (!--(in_C99DataTagRepr_1.ptr.Trans->refs)) {
		free(in_C99DataTagRepr_1.ptr.Trans);
	} else {
		incref(MK_mirth_c99_C99DataTransRepr(v3.mC99DataTransRepr));
	}
	return v3.mC99DataTransRepr;
}

// 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 0x291020
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x2910c7
jmp 0x291022
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x101f3f(%rip), %rax    # 0x392f70
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x2910c3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x101f1a(%rip), %rax    # 0x392f70
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x2910c3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x101eef(%rip), %rax    # 0x392f70
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x2910c3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x101eca(%rip), %rax    # 0x392f70
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 0x2910c5
jmp 0x2910c7
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: mtp_mirth_c99_C99DataTagRepr_Struct
static struct mirth_c99_C99DataStructRepr* mtp_mirth_c99_C99DataTagRepr_Struct (struct mirth_c99_C99DataTagRepr in_C99DataTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Struct v3 = *in_C99DataTagRepr_1.ptr.Struct;
	if (!--(in_C99DataTagRepr_1.ptr.Struct->refs)) {
		free(in_C99DataTagRepr_1.ptr.Struct);
	} else {
		incref(MK_mirth_c99_C99DataStructRepr(v3.mC99DataStructRepr));
	}
	return v3.mC99DataStructRepr;
}

// 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 0x2915b0
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x291657
jmp 0x2915b2
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x1019f7(%rip), %rax    # 0x392fb8
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x291653
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x1019d2(%rip), %rax    # 0x392fb8
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x291653
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x1019a7(%rip), %rax    # 0x392fb8
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x291653
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x101982(%rip), %rax    # 0x392fb8
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 0x291655
jmp 0x291657
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: mw_mirth_c99_zaC99_freshzenamezx
static STR* mw_mirth_c99_zaC99_freshzenamezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99* in_zaC99_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, struct mirth_c99_zaC99* *out_zaC99_4) {
	STR* v6;
	STRLIT(v6, "v", 1);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_zaC99* v8;
	STR* v9 = mw_mirth_c99_zaC99_freshzenamezeonzx(in_zaMirth_1, in_zaC99_2, v6, &v7, &v8);
	*out_zaC99_4 = v8;
	*out_zaMirth_3 = v7;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, 0x110430d(%rip)   # 0x1397e30
jne 0x293b3d
leaq 0xc30ed(%rip), %rdi     # 0x356c19
movl $0x1, %esi
callq 0xb6c0
movq %rax, 0x11042f3(%rip)   # 0x1397e30
jmp 0x293b3f
movq 0x11042ea(%rip), %rax   # 0x1397e30
movq %rax, -0x38(%rbp)
leaq 0xfd607(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x293bf0
movq 0x11042be(%rip), %rax   # 0x1397e30
movq %rax, -0x48(%rbp)
leaq 0xfd5db(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x293bf0
movq 0x1104290(%rip), %rax   # 0x1397e30
movq %rax, -0x58(%rbp)
leaq 0xfd5ad(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x293bf0
movq 0x1104268(%rip), %rax   # 0x1397e30
movq %rax, -0x68(%rbp)
leaq 0xfd585(%rip), %rax     # 0x391158
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 0x293bf2
movq 0x1104237(%rip), %rax   # 0x1397e30
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq -0x70(%rbp), %rcx
leaq -0x78(%rbp), %r8
callq 0x285a40
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x70(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x80(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99ValuezfResource_rdrop
static void mw_mirth_c99_zaC99ValuezfResource_rdrop (struct std_either_zaEither_2 in_zaC99ValuezfResource_1) {
	switch ((in_zaC99ValuezfResource_1).tag) {
		case std_either_zaEither_2_zaLeft: {
			VAL v2;
			mtp_std_either_zaEither_2_zaLeft(in_zaC99ValuezfResource_1, &v2);
			mw_mirth_c99_zaC99Value_rdrop(V_mirth_c99_zaC99Value(v2));
		} break;
		case std_either_zaEither_2_zaRight: {
			VAL v3;
			mtp_std_either_zaEither_2_zaRight(in_zaC99ValuezfResource_1, &v3);
			mw_mirth_c99_zaC99Resource_rdrop(V_mirth_c99_zaC99Resource(v3));
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x34(%rbp)
testl %eax, %eax
je 0x2941f5
jmp 0x2941eb
movl -0x34(%rbp), %eax
subl $0x1, %eax
je 0x294210
jmp 0x29422b
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x29e0c0
movq -0x20(%rbp), %rdi
callq 0x29e110
jmp 0x294244
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x29e300
movq -0x30(%rbp), %rdi
callq 0x29e350
jmp 0x294244
leaq 0xbfc4f(%rip), %rdi     # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Branch_typezetozec99zerepr
static struct mirth_c99_C99ReprType mw_mirth_c99_zaC99Branch_typezetozec99zerepr (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct mirth_type_Type in_Type_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99Branch* *out_zaC99Branch_5) {
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_C99ReprType v8 = mw_mirth_type_Type_c99zerepr(in_zaMirth_1, in_Type_3, &v7);
	*out_zaC99Branch_5 = in_zaC99Branch_2;
	*out_zaMirth_4 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edx, -0x20(%rbp)
movq %rcx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movq %r8, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0x231fb0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_c99_zaC99Stack_zaCons
static void mtp_mirth_c99_zaC99Stack_zaCons (struct mirth_c99_zaC99Stack in_zaC99Stack_1, struct mirth_c99_zaC99Stack *out_zaC99Stack_2, struct mirth_c99_zaC99Value* *out_zaC99Value_3) {
	struct mirth_c99_zaC99Stack_zaCons v4 = *in_zaC99Stack_1.ptr.zaCons;
	free(in_zaC99Stack_1.ptr.zaCons);
	*out_zaC99Value_3 = v4.mzaC99Value;
	*out_zaC99Stack_2 = v4.mzaC99Stack;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5030
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_c99_zaC99Stack_zaWithLabel
static uint64_t mtp_mirth_c99_zaC99Stack_zaWithLabel (struct mirth_c99_zaC99Stack in_zaC99Stack_1, struct mirth_c99_zaC99Stack *out_zaC99Stack_2, struct mirth_c99_zaC99Resource* *out_zaC99Resource_3) {
	struct mirth_c99_zaC99Stack_zaWithLabel v5 = *in_zaC99Stack_1.ptr.zaWithLabel;
	free(in_zaC99Stack_1.ptr.zaWithLabel);
	*out_zaC99Resource_3 = v5.mzaC99Resource;
	*out_zaC99Stack_2 = v5.mzaC99Stack;
	return v5.mLabel;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x5030
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_C99DataEnumRepr_vzemacrozeprefixzesuffix
static STR* mw_mirth_c99_C99DataEnumRepr_vzemacrozeprefixzesuffix (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_C99DataEnumRepr_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, VAL *out__5) {
	struct mirth_mirth_zaMirth* v6;
	STR* v7 = mw_mirth_c99_C99DataEnumRepr_cname(in_zaMirth_1, in_C99DataEnumRepr_2, &v6);
	STR* v8 = mw_std_prim_Str_Str_1_sp36(v7);
	STR* v9;
	STRLIT(v9, ")", 1);
	*out__5 = MKSTR(v9);
	*out_zaMirth_3 = v6;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x24b120
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x29a930
movq %rax, -0x38(%rbp)
cmpq $0x0, 0x10fdf4b(%rip)   # 0x1397d50
jne 0x299e1f
leaq 0xd3c96(%rip), %rdi     # 0x36daa4
movl $0x1, %esi
callq 0xb6c0
movq %rax, 0x10fdf31(%rip)   # 0x1397d50
jmp 0x299e21
movq 0x10fdf28(%rip), %rax   # 0x1397d50
movq %rax, -0x50(%rbp)
leaq 0xf7325(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x299ed2
movq 0x10fdefc(%rip), %rax   # 0x1397d50
movq %rax, -0x60(%rbp)
leaq 0xf72f9(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
cmpq $0x0, %rax
je 0x299ed2
movq 0x10fdece(%rip), %rax   # 0x1397d50
movq %rax, -0x70(%rbp)
leaq 0xf72cb(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x299ed2
movq 0x10fdea6(%rip), %rax   # 0x1397d50
movq %rax, -0x80(%rbp)
leaq 0xf72a3(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x299ed4
movq 0x10fde75(%rip), %rax   # 0x1397d50
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, -0x90(%rbp)
leaq 0xf7263(%rip), %rcx     # 0x391158
orq $0x1, %rcx
movq %rcx, -0x88(%rbp)
movq -0x90(%rbp), %rcx
movq %rcx, (%rax)
movq -0x88(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %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_c99_C99DataSumRepr_vzemacrozeprefixzesuffix
static STR* mw_mirth_c99_C99DataSumRepr_vzemacrozeprefixzesuffix (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_C99DataSumRepr* in_C99DataSumRepr_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, VAL *out__5) {
	struct mirth_mirth_zaMirth* v6;
	STR* v7 = mw_mirth_c99_C99DataSumRepr_cname(in_zaMirth_1, in_C99DataSumRepr_2, &v6);
	STR* v8 = mw_std_prim_Str_Str_1_sp36(v7);
	STR* v9;
	STRLIT(v9, ")", 1);
	*out__5 = MKSTR(v9);
	*out_zaMirth_3 = v6;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x24fe80
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x29a930
movq %rax, -0x38(%rbp)
cmpq $0x0, 0x10fd58b(%rip)   # 0x1397d90
jne 0x29a81f
leaq 0xd3296(%rip), %rdi     # 0x36daa4
movl $0x1, %esi
callq 0xb6c0
movq %rax, 0x10fd571(%rip)   # 0x1397d90
jmp 0x29a821
movq 0x10fd568(%rip), %rax   # 0x1397d90
movq %rax, -0x50(%rbp)
leaq 0xf6925(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x29a8d2
movq 0x10fd53c(%rip), %rax   # 0x1397d90
movq %rax, -0x60(%rbp)
leaq 0xf68f9(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
cmpq $0x0, %rax
je 0x29a8d2
movq 0x10fd50e(%rip), %rax   # 0x1397d90
movq %rax, -0x70(%rbp)
leaq 0xf68cb(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x29a8d2
movq 0x10fd4e6(%rip), %rax   # 0x1397d90
movq %rax, -0x80(%rbp)
leaq 0xf68a3(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x29a8d4
movq 0x10fd4b5(%rip), %rax   # 0x1397d90
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, -0x90(%rbp)
leaq 0xf6863(%rip), %rcx     # 0x391158
orq $0x1, %rcx
movq %rcx, -0x88(%rbp)
movq -0x90(%rbp), %rcx
movq %rcx, (%rax)
movq -0x88(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %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_c99_zaC99_freshzeresourcezenamezx
static STR* mw_mirth_c99_zaC99_freshzeresourcezenamezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99* in_zaC99_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, struct mirth_c99_zaC99* *out_zaC99_4) {
	STR* v6;
	STRLIT(v6, "r", 1);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_zaC99* v8;
	STR* v9 = mw_mirth_c99_zaC99_freshzenamezeonzx(in_zaMirth_1, in_zaC99_2, v6, &v7, &v8);
	*out_zaC99_4 = v8;
	*out_zaMirth_3 = v7;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, 0x10fc065(%rip)   # 0x1397dc8
jne 0x29bd7d
leaq 0xd0b6f(%rip), %rdi     # 0x36c8db
movl $0x1, %esi
callq 0xb6c0
movq %rax, 0x10fc04b(%rip)   # 0x1397dc8
jmp 0x29bd7f
movq 0x10fc042(%rip), %rax   # 0x1397dc8
movq %rax, -0x38(%rbp)
leaq 0xf53c7(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x29be30
movq 0x10fc016(%rip), %rax   # 0x1397dc8
movq %rax, -0x48(%rbp)
leaq 0xf539b(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x29be30
movq 0x10fbfe8(%rip), %rax   # 0x1397dc8
movq %rax, -0x58(%rbp)
leaq 0xf536d(%rip), %rax     # 0x391158
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x29be30
movq 0x10fbfc0(%rip), %rax   # 0x1397dc8
movq %rax, -0x68(%rbp)
leaq 0xf5345(%rip), %rax     # 0x391158
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 0x29be32
movq 0x10fbf8f(%rip), %rax   # 0x1397dc8
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
leaq -0x70(%rbp), %rcx
leaq -0x78(%rbp), %r8
callq 0x285a40
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x70(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x80(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_std_either_zaEither_2_zaRight
static void mtw_std_either_zaEither_2_zaRight (VAL in_zab_1, struct std_either_zaEither_2 *out_zaEither_2) {
	struct std_either_zaEither_2_zaRight* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->m0 = in_zab_1;
	struct std_either_zaEither_2 v4 = { .tag=std_either_zaEither_2_zaRight, .ptr.zaRight=v3 };
	*out_zaEither_2 = v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x29bed8
movl $0x2, %edi
leaq 0xd1b92(%rip), %rsi     # 0x36da4c
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x29beda
movq -0x20(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x1, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)