LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_c99_C99DataTagRepr_Sum
static struct mirth_c99_C99DataSumTagRepr mtp_mirth_c99_C99DataTagRepr_Sum (struct mirth_c99_C99DataTagRepr in_C99DataTagRepr_1) {
	struct mirth_c99_C99DataTagRepr_Sum v3 = *in_C99DataTagRepr_1.ptr.Sum;
	if (!--(in_C99DataTagRepr_1.ptr.Sum->refs)) {
		free(in_C99DataTagRepr_1.ptr.Sum);
	} else {
		incref(MK_mirth_c99_C99DataSumTagRepr(v3.mC99DataSumTagRepr));
	}
	return v3.mC99DataSumTagRepr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movl 0x8(%rdi), %ebx
movq 0x10(%rdi), %r14
decl (%rdi)
je 0xa55e2
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %r14, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xa55e7
incl (%rax)
jmp 0xa55e7
callq 0x5030
movl %ebx, %eax
movq %r14, %rdx
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, %r14
movq %rdx, -0x30(%rbp)
movq %rsi, %r15
movq %rdi, %r12
movq 0x1069594(%rip), %rdx   # 0x110ecf0
testq %rdx, %rdx
jne 0xa577a
leaq 0x31c2a(%rip), %rdi     # 0xd7392
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x1069576(%rip)   # 0x110ecf0
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa5798
incl (%rax)
leaq -0x40(%rbp), %r13
leaq -0x38(%rbp), %rbx
movq %r12, %rdi
movq %r15, %rsi
movq %r13, %rcx
movq %rbx, %r8
callq 0xa2bf9
movq (%rbx), %rcx
movq %rcx, (%r14)
movq (%r13), %rcx
movq -0x30(%rbp), %rdx
movq %rcx, (%rdx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99ValuezfResource_convertzedatazx
static void mw_mirth_c99_zaC99ValuezfResource_convertzedatazx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct std_either_zaEither_2 in_zaC99ValuezfResource_3, uint64_t in_Data_4, struct mirth_mirth_zaMirth* *out_zaMirth_5, struct mirth_c99_zaC99Branch* *out_zaC99Branch_6, struct std_either_zaEither_2 *out_zaC99ValuezfResource_7) {
	struct mirth_c99_C99ReprType v8 = mtw_mirth_c99_C99ReprType_Data(in_Data_4);
	struct mirth_mirth_zaMirth* v9;
	struct mirth_c99_zaC99Branch* v10;
	struct std_either_zaEither_2 v11;
	mw_mirth_c99_zaC99ValuezfResource_convertzevaluezfresourcezx(in_zaMirth_1, in_zaC99Branch_2, v8, in_zaC99ValuezfResource_3, &v9, &v10, &v11);
	struct mirth_mirth_zaMirth* v12;
	bool v13 = mw_mirth_data_Data_iszeresourcezy(v9, in_Data_4, &v12);
	struct mirth_c99_zaC99Branch* branch_zaC99Branch_14;
	struct mirth_mirth_zaMirth* branch_zaMirth_15;
	struct std_either_zaEither_2 branch_zaC99ValuezfResource_16;
	if (v13) {
		struct mirth_c99_zaC99Resource* v17;
		mw_mirth_c99_zaC99ValuezfResource_turnzeintozeresourcezx(v11, &v17);
		struct std_either_zaEither_2 v18;
		mw_mirth_c99_zaC99ValuezfResource_zaRight(v17, &v18);
		branch_zaC99ValuezfResource_16 = v18;
		branch_zaMirth_15 = v12;
		branch_zaC99Branch_14 = v10;
	} else {
		struct mirth_c99_zaC99Value* v19;
		mw_mirth_c99_zaC99ValuezfResource_turnzeintozevaluezx(v11, &v19);
		struct std_either_zaEither_2 v20;
		mw_mirth_c99_zaC99ValuezfResource_zaLeft(v19, &v20);
		branch_zaC99ValuezfResource_16 = v20;
		branch_zaMirth_15 = v12;
		branch_zaC99Branch_14 = v10;
	}
	*out_zaC99ValuezfResource_7 = branch_zaC99ValuezfResource_16;
	*out_zaC99Branch_6 = branch_zaC99Branch_14;
	*out_zaMirth_5 = branch_zaMirth_15;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %r9, -0x50(%rbp)
movq %r8, %r14
movq %rcx, %r15
movl %edx, %r12d
movq %rsi, %r13
movq %rdi, %rbx
movq %r8, %rdi
callq 0x93ff0
subq $0x8, %rsp
leaq -0x38(%rbp), %r11
leaq -0x70(%rbp), %r10
pushq $0x15
popq %rdx
movq %rbx, %rdi
movq %r13, %rsi
movq %rax, %rcx
movl %r12d, %r8d
movq %r15, %r9
leaq -0x48(%rbp), %rax
pushq %rax
pushq %r11
pushq %r10
movq %r10, %rbx
callq 0xa8d6b
addq $0x20, %rsp
movq (%rbx), %rdi
leaq -0x30(%rbp), %rdx
movq %r14, %rsi
callq 0x1e4f2
testb %al, %al
je 0xa588e
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
leaq -0x58(%rbp), %rbx
movq %rbx, %rdx
callq 0xa8e6e
movq (%rbx), %rdi
leaq -0x68(%rbp), %rsi
callq 0xa6363
jmp 0xa58ad
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
leaq -0x58(%rbp), %rbx
movq %rbx, %rdx
callq 0xa8eda
movq (%rbx), %rdi
leaq -0x68(%rbp), %rsi
callq 0xa57d1
movq -0x30(%rbp), %rax
movq -0x38(%rbp), %rcx
movups -0x68(%rbp), %xmm0
movq 0x18(%rbp), %rdx
movups %xmm0, (%rdx)
movq 0x10(%rbp), %rdx
movq %rcx, (%rdx)
movq -0x50(%rbp), %rcx
movq %rax, (%rcx)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %rbx
subq $0x18, %rsp
cmpl $0x1, %edi
je 0xa5ae4
testl %edi, %edi
jne 0xa5b02
leaq -0x18(%rbp), %rbx
movq %rsi, %rdi
movq %rbx, %rsi
callq 0xa8b74
movq (%rbx), %rdi
callq 0xa8b9a
jmp 0xa5afb
leaq -0x18(%rbp), %rbx
movq %rsi, %rdi
movq %rbx, %rsi
callq 0xa8c28
movq (%rbx), %rdi
callq 0xa8c4e
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
leaq 0x2ed04(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movups (%rdi), %xmm0
movaps %xmm0, -0x30(%rbp)
movq 0x10(%rdi), %r12
movq 0x18(%rdi), %r15
callq 0x5030
movq %r12, (%rbx)
movaps -0x30(%rbp), %xmm0
movups %xmm0, (%r14)
movq %r15, %rax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_prim_Str_Str_1_sp36
static STR* mw_std_prim_Str_Str_1_sp36 (STR* in_Str_1) {
	STR* v3;
	STRLIT(v3, "", 0);
	STR* v4;
	STRLIT(v4, "V_", 2);
	STR* v5;
	mw_std_str_zaStr_pushzestrzx(v4, v3, &v5);
	STR* v6;
	mw_std_str_zaStr_pushzestrzx(in_Str_1, v5, &v6);
	STR* v7;
	STRLIT(v7, "(", 1);
	STR* v8;
	mw_std_str_zaStr_pushzestrzx(v7, v6, &v8);
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10667f8(%rip), %r14   # 0x110ec18
testq %r14, %r14
jne 0xa843d
leaq 0x342c9(%rip), %rdi     # 0xdc6f5
xorl %esi, %esi
callq 0x8a21
movq %rax, %r14
movq %rax, 0x10667db(%rip)   # 0x110ec18
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
movq %r14, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xa845d
incl (%rax)
movq 0x10667bc(%rip), %rsi   # 0x110ec20
testq %rsi, %rsi
jne 0xa8482
leaq 0x45547(%rip), %rdi     # 0xed9b7
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x106679e(%rip)   # 0x110ec20
movq %rsi, %rax
andq %r15, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xa8498
incl (%rax)
movq %r14, %rdi
callq 0xd8b0
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd8b0
movq %rax, %rbx
movq 0x1066773(%rip), %rsi   # 0x110ec28
testq %rsi, %rsi
jne 0xa84d3
leaq 0x45db5(%rip), %rdi     # 0xee276
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x1066755(%rip)   # 0x110ec28
andq %rsi, %r15
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0xa84e7
incl (%r15)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xd8b0
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, %r14
movq %rdx, -0x30(%rbp)
movq %rsi, %r15
movq %rdi, %r12
movq 0x10664d5(%rip), %rdx   # 0x110ec88
testq %rdx, %rdx
jne 0xa87d1
leaq 0x44775(%rip), %rdi     # 0xecf34
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10664b7(%rip)   # 0x110ec88
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa87ef
incl (%rax)
leaq -0x40(%rbp), %r13
leaq -0x38(%rbp), %rbx
movq %r12, %rdi
movq %r15, %rsi
movq %r13, %rcx
movq %rbx, %r8
callq 0xa2bf9
movq (%rbx), %rcx
movq %rcx, (%r14)
movq (%r13), %rcx
movq -0x30(%rbp), %rdx
movq %rcx, (%rdx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/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
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0xa8862
movq %r14, (%rax)
leaq 0x619a9(%rip), %rcx     # 0x10a1f8
movq %rcx, 0x8(%rax)
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x4583c(%rip), %rsi     # 0xee0a5
pushq $0x2
popq %rdi
pushq $0x31
popq %rdx
callq 0x5060
callq 0x52ae
pushq $0x1
popq %rdi
callq 0x5130
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Value_rdrop
static void mw_mirth_c99_zaC99Value_rdrop (struct mirth_c99_zaC99Value* in_zaC99Value_1) {
	struct mirth_c99_C99ReprType v2;
	STR* v3;
	mtp_mirth_c99_zaC99Value_zaC99Value(in_zaC99Value_1, &v2, &v3);
	decref(MK_mirth_c99_C99ReprType(v2));
	decref(MKSTR(v3));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
leaq -0x28(%rbp), %rbx
leaq -0x18(%rbp), %rdx
movq %rbx, %rsi
callq 0xa4c55
movq 0x8(%rbx), %rax
movq %rax, %rcx
andq %r14, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0xa8bf1
movl -0x28(%rbp), %edi
decl (%rcx)
jne 0xa8bf1
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0x6133d(%rip), %rsi     # 0x109f29
callq 0xce94
movq -0x18(%rbp), %rdi
andq %rdi, %r14
sete %al
testb $0x3, %dil
setne %cl
orb %al, %cl
jne 0xa8c0b
decl (%r14)
je 0xa8c14
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x5f53e(%rip), %rsi     # 0x108159
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
jmp 0xce94
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Resource_rdrop
static void mw_mirth_c99_zaC99Resource_rdrop (struct mirth_c99_zaC99Resource* in_zaC99Resource_1) {
	struct mirth_c99_C99ReprType v2;
	STR* v3;
	mtp_mirth_c99_zaC99Resource_zaC99Resource(in_zaC99Resource_1, &v2, &v3);
	decref(MK_mirth_c99_C99ReprType(v2));
	decref(MKSTR(v3));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
leaq -0x28(%rbp), %rbx
leaq -0x18(%rbp), %rdx
movq %rbx, %rsi
callq 0xa8cdc
movq 0x8(%rbx), %rax
movq %rax, %rcx
andq %r14, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0xa8ca5
movl -0x28(%rbp), %edi
decl (%rcx)
jne 0xa8ca5
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0x61289(%rip), %rsi     # 0x109f29
callq 0xce94
movq -0x18(%rbp), %rdi
andq %rdi, %r14
sete %al
testb $0x3, %dil
setne %cl
orb %al, %cl
jne 0xa8cbf
decl (%r14)
je 0xa8cc8
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x5f48a(%rip), %rsi     # 0x108159
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
jmp 0xce94
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_std_either_zaEither_2_zaLeft
static void mtw_std_either_zaEither_2_zaLeft (VAL in_zaa_1, struct std_either_zaEither_2 *out_zaEither_2) {
	struct std_either_zaEither_2_zaLeft* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->m0 = in_zaa_1;
	struct std_either_zaEither_2 v4 = { .tag=std_either_zaEither_2_zaLeft, .ptr.zaLeft=v3 };
	*out_zaEither_2 = v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0xa8d4c
movq %r14, (%rax)
leaq 0x61474(%rip), %rcx     # 0x10a1b0
movq %rcx, 0x8(%rax)
andl $0x0, (%rbx)
movq %rax, 0x8(%rbx)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x453bc(%rip), %rsi     # 0xee10f
pushq $0x2
popq %rdi
pushq $0x31
popq %rdx
callq 0x5060
callq 0x52ae
pushq $0x1
popq %rdi
callq 0x5130
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99ValuezfResource_turnzeintozeresourcezx
static void mw_mirth_c99_zaC99ValuezfResource_turnzeintozeresourcezx (struct std_either_zaEither_2 in_zaC99ValuezfResource_1, struct mirth_c99_zaC99Resource* *out_zaC99Resource_2) {
	struct mirth_c99_zaC99Resource* branch_zaC99Resource_3;
	switch ((in_zaC99ValuezfResource_1).tag) {
		case std_either_zaEither_2_zaLeft: {
			VAL v4;
			mtp_std_either_zaEither_2_zaLeft(in_zaC99ValuezfResource_1, &v4);
			struct mirth_c99_zaC99Resource* v5;
			mw_mirth_c99_zaC99Value_turnzeintozeresourcezx(V_mirth_c99_zaC99Value(v4), &v5);
			branch_zaC99Resource_3 = v5;
		} break;
		case std_either_zaEither_2_zaRight: {
			VAL v6;
			mtp_std_either_zaEither_2_zaRight(in_zaC99ValuezfResource_1, &v6);
			branch_zaC99Resource_3 = V_mirth_c99_zaC99Resource(v6);
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaC99Resource_2 = branch_zaC99Resource_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdx, %rbx
cmpl $0x1, %edi
je 0xa8ea5
testl %edi, %edi
jne 0xa8ec3
leaq -0x28(%rbp), %r14
movq %rsi, %rdi
movq %r14, %rsi
callq 0xa8b74
movq (%r14), %rdi
leaq -0x18(%rbp), %r14
movq %r14, %rsi
callq 0xa4a6f
jmp 0xa8eb4
leaq -0x28(%rbp), %r14
movq %rsi, %rdi
movq %r14, %rsi
callq 0xa8c28
movq (%r14), %rax
movq %rax, (%rbx)
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x2b943(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99ValuezfResource_turnzeintozevaluezx
static void mw_mirth_c99_zaC99ValuezfResource_turnzeintozevaluezx (struct std_either_zaEither_2 in_zaC99ValuezfResource_1, struct mirth_c99_zaC99Value* *out_zaC99Value_2) {
	struct mirth_c99_zaC99Value* branch_zaC99Value_3;
	switch ((in_zaC99ValuezfResource_1).tag) {
		case std_either_zaEither_2_zaLeft: {
			VAL v4;
			mtp_std_either_zaEither_2_zaLeft(in_zaC99ValuezfResource_1, &v4);
			branch_zaC99Value_3 = V_mirth_c99_zaC99Value(v4);
		} break;
		case std_either_zaEither_2_zaRight: {
			VAL v5;
			mtp_std_either_zaEither_2_zaRight(in_zaC99ValuezfResource_1, &v5);
			struct mirth_c99_zaC99Value* v6;
			mw_mirth_c99_zaC99Resource_turnzeintozevaluezx(V_mirth_c99_zaC99Resource(v5), &v6);
			branch_zaC99Value_3 = v6;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaC99Value_2 = branch_zaC99Value_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdx, %rbx
cmpl $0x1, %edi
je 0xa8f02
testl %edi, %edi
jne 0xa8f2f
leaq -0x28(%rbp), %r14
movq %rsi, %rdi
movq %r14, %rsi
callq 0xa8b74
jmp 0xa8f20
leaq -0x28(%rbp), %r14
movq %rsi, %rdi
movq %r14, %rsi
callq 0xa8c28
movq (%r14), %rdi
leaq -0x18(%rbp), %r14
movq %r14, %rsi
callq 0xa9c5b
movq (%r14), %rax
movq %rax, (%rbx)
addq $0x20, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x2b8d7(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Resource_convertzeresourcezx
static void mw_mirth_c99_zaC99Resource_convertzeresourcezx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct mirth_c99_zaC99Resource* in_zaC99Resource_3, struct mirth_c99_C99ReprType in_C99ReprType_4, struct mirth_mirth_zaMirth* *out_zaMirth_5, struct mirth_c99_zaC99Branch* *out_zaC99Branch_6, struct mirth_c99_zaC99Resource* *out_zaC99Resource_7) {
	incref(MK_mirth_c99_C99ReprType(in_C99ReprType_4));
	struct mirth_mirth_zaMirth* v8;
	STR* v9 = mw_mirth_c99_zaC99Resource_consumezeas(in_zaMirth_1, in_C99ReprType_4, in_zaC99Resource_3, &v8);
	struct mirth_c99_zaC99Resource* v10;
	mtw_mirth_c99_zaC99Resource_zaC99Resource(in_C99ReprType_4, v9, &v10);
	*out_zaC99Resource_7 = v10;
	*out_zaC99Branch_6 = in_zaC99Branch_2;
	*out_zaMirth_5 = v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r9, -0x30(%rbp)
movq %r8, %r15
movl %ecx, %r12d
movq %rdx, %rcx
movq %rsi, %r14
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %r8, %rax
sete %dl
testb $0x3, %r15b
setne %sil
orb %dl, %sil
jne 0xa9018
incl (%rax)
leaq -0x40(%rbp), %r13
movl %r12d, %esi
movq %r15, %rdx
movq %r13, %r8
callq 0xa9c00
leaq -0x38(%rbp), %rbx
movl %r12d, %edi
movq %r15, %rsi
movq %rax, %rdx
movq %rbx, %rcx
callq 0xa4c8e
movq (%rbx), %rax
movq 0x18(%rbp), %rcx
movq %rax, (%rcx)
movq 0x10(%rbp), %rax
movq %r14, (%rax)
movq (%r13), %rax
movq -0x30(%rbp), %rcx
movq %rax, (%rcx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Value_consumezeaszeVAL
static STR* mw_mirth_c99_zaC99Value_consumezeaszeVAL (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Value* in_zaC99Value_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_c99_C99ReprType v5;
	STR* v6;
	mtp_mirth_c99_zaC99Value_zaC99Value(in_zaC99Value_2, &v5, &v6);
	struct mirth_mirth_zaMirth* v7;
	STR* v8 = mw_mirth_c99_C99ReprType_mkzemacro(in_zaMirth_1, v6, v5, &v7);
	*out_zaMirth_3 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdx, %rbx
movq %rdi, %r14
leaq -0x40(%rbp), %r15
leaq -0x30(%rbp), %r12
movq %rsi, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0xa4c55
movq (%r12), %rsi
movl (%r15), %edx
movq 0x8(%r15), %rcx
leaq -0x28(%rbp), %r15
movq %r14, %rdi
movq %r15, %r8
callq 0x9cdcd
movq (%r15), %rcx
movq %rcx, (%rbx)
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Resource_consumezeas
static STR* mw_mirth_c99_zaC99Resource_consumezeas (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_C99ReprType in_C99ReprType_2, struct mirth_c99_zaC99Resource* in_zaC99Resource_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_c99_zaC99Value* v6;
	mw_mirth_c99_zaC99Resource_turnzeintozevaluezx(in_zaC99Resource_3, &v6);
	struct mirth_mirth_zaMirth* v7;
	STR* v8 = mw_mirth_c99_zaC99Value_consumezeas(in_zaMirth_1, in_C99ReprType_2, v6, &v7);
	*out_zaMirth_4 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, %rbx
movq %rdx, %r14
movl %esi, %r15d
movq %rdi, %r12
leaq -0x38(%rbp), %r13
movq %rcx, %rdi
movq %r13, %rsi
callq 0xa9c5b
movq (%r13), %rcx
leaq -0x30(%rbp), %r13
movq %r12, %rdi
movl %r15d, %esi
movq %r14, %rdx
movq %r13, %r8
callq 0xa906a
movq (%r13), %rcx
movq %rcx, (%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Resource_turnzeintozevaluezx
static void mw_mirth_c99_zaC99Resource_turnzeintozevaluezx (struct mirth_c99_zaC99Resource* in_zaC99Resource_1, struct mirth_c99_zaC99Value* *out_zaC99Value_2) {
	struct mirth_c99_C99ReprType v3;
	STR* v4;
	mtp_mirth_c99_zaC99Resource_zaC99Resource(in_zaC99Resource_1, &v3, &v4);
	struct mirth_c99_zaC99Value* v5;
	mtw_mirth_c99_zaC99Value_zaC99Value(v3, v4, &v5);
	*out_zaC99Value_2 = v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %rbx
leaq -0x38(%rbp), %r14
leaq -0x28(%rbp), %r15
movq %r14, %rsi
movq %r15, %rdx
callq 0xa8cdc
movq (%r15), %rdx
movl (%r14), %edi
movq 0x8(%r14), %rsi
leaq -0x20(%rbp), %r14
movq %r14, %rcx
callq 0xa496b
movq (%r14), %rax
movq %rax, (%rbx)
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99ValuezfResource_consumezeas
static STR* mw_mirth_c99_zaC99ValuezfResource_consumezeas (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_C99ReprType in_C99ReprType_2, struct std_either_zaEither_2 in_zaC99ValuezfResource_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_zaMirth* branch_zaMirth_6;
	STR* branch_Str_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;
			STR* v10 = mw_mirth_c99_zaC99Value_consumezeas(in_zaMirth_1, in_C99ReprType_2, V_mirth_c99_zaC99Value(v8), &v9);
			branch_Str_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;
			STR* v13 = mw_mirth_c99_zaC99Resource_consumezeas(in_zaMirth_1, in_C99ReprType_2, V_mirth_c99_zaC99Resource(v11), &v12);
			branch_Str_7 = v13;
			branch_zaMirth_6 = v12;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_4 = branch_zaMirth_6;
	return branch_Str_7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r9, %rbx
movq %rdx, %r14
movl %esi, %r15d
movq %rdi, %r12
cmpl $0x1, %ecx
je 0xaa893
testl %ecx, %ecx
jne 0xaa8d1
leaq -0x40(%rbp), %r13
movq %r8, %rdi
movq %r13, %rsi
callq 0xa8b74
movq (%r13), %rcx
leaq -0x30(%rbp), %r13
movq %r12, %rdi
movl %r15d, %esi
movq %r14, %rdx
movq %r13, %r8
callq 0xa906a
jmp 0xaa8bb
leaq -0x40(%rbp), %r13
movq %r8, %rdi
movq %r13, %rsi
callq 0xa8c28
movq (%r13), %rcx
leaq -0x30(%rbp), %r13
movq %r12, %rdi
movl %r15d, %esi
movq %r14, %rdx
movq %r13, %r8
callq 0xa9c00
movq (%r13), %rcx
movq %rcx, (%rbx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x29f35(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Branch_endzebranchzx
static void mw_mirth_c99_zaC99Branch_endzebranchzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, struct mirth_c99_zaC99* *out_zaC99_4, bool *out_Bool_5, struct std_list_List_1 *out_List_6) {
	struct mirth_c99_zaC99Stack r7 = in_zaC99Branch_2->mzastack;
	struct mirth_c99_zaC99Stack v8 = { .tag=mirth_c99_zaC99Stack_zaNil };
	in_zaC99Branch_2->mzastack = v8;
	struct mirth_mirth_zaMirth* v9;
	struct mirth_c99_zaC99Branch* v10;
	mw_mirth_c99_zaC99Stack_pushzestackzedirectzx(in_zaMirth_1, in_zaC99Branch_2, r7, &v9, &v10);
	struct mirth_c99_zaC99* v11;
	struct mirth_c99_zaC99Stack v12;
	struct std_list_List_1 v13;
	bool v14;
	mtp_mirth_c99_zaC99Branch_zaC99Branch(v10, &v11, &v12, &v13, &v14);
	mw_mirth_c99_zaC99Stack_rdrop(v12);
	*out_List_6 = v13;
	*out_Bool_5 = v14;
	*out_zaC99_4 = v11;
	*out_zaMirth_3 = v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %r9, %r12
movq %r8, -0x38(%rbp)
movq %rcx, -0x40(%rbp)
movq %rdx, -0x48(%rbp)
movl 0x8(%rsi), %edx
movq 0x10(%rsi), %rcx
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rsi)
leaq -0x50(%rbp), %r8
leaq -0x60(%rbp), %r13
movq %r13, %r9
callq 0xab09a
movq (%r13), %rdi
leaq -0x58(%rbp), %r13
leaq -0x80(%rbp), %rbx
leaq -0x70(%rbp), %r14
leaq -0x29(%rbp), %r15
movq %r13, %rsi
movq %rbx, %rdx
movq %r14, %rcx
movq %r15, %r8
callq 0xab49f
movl (%rbx), %edi
movq 0x8(%rbx), %rsi
callq 0xab506
movups (%r14), %xmm0
movups %xmm0, (%r12)
movb (%r15), %al
movq -0x38(%rbp), %rcx
movb %al, (%rcx)
movq (%r13), %rax
movq -0x40(%rbp), %rcx
movq %rax, (%rcx)
leaq -0x50(%rbp), %rax
movq (%rax), %rax
movq -0x48(%rbp), %rcx
movq %rax, (%rcx)
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_C99APIArg_popzeconsumezephysicalzx
static struct std_maybe_Maybe_1 mw_mirth_c99_C99APIArg_popzeconsumezephysicalzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct mirth_c99_C99APIArg* in_C99APIArg_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99Branch* *out_zaC99Branch_5) {
	incref(MK_mirth_c99_C99APIArg(in_C99APIArg_3));
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_zaC99Branch* v8;
	STR* v9 = mw_mirth_c99_C99APIArg_popzeconsumezx(in_zaMirth_1, in_zaC99Branch_2, in_C99APIArg_3, &v7, &v8);
	struct mirth_mirth_zaMirth* v10;
	bool v11 = mw_mirth_c99_C99APIArg_iszephysicalzy(v7, in_C99APIArg_3, &v10);
	struct mirth_c99_zaC99Branch* branch_zaC99Branch_12;
	struct mirth_mirth_zaMirth* branch_zaMirth_13;
	struct std_maybe_Maybe_1 branch_Maybe_14;
	if (v11) {
		struct std_maybe_Maybe_1 v15 = mtw_std_maybe_Maybe_1_Some(MKSTR(v9));
		branch_Maybe_14 = v15;
		branch_zaMirth_13 = v10;
		branch_zaC99Branch_12 = v8;
	} else {
		decref(MKSTR(v9));
		struct std_maybe_Maybe_1 v16 = { .tag=std_maybe_Maybe_1_None };
		branch_Maybe_14 = v16;
		branch_zaMirth_13 = v10;
		branch_zaC99Branch_12 = v8;
	}
	*out_zaC99Branch_5 = branch_zaC99Branch_12;
	*out_zaMirth_4 = branch_zaMirth_13;
	return branch_Maybe_14;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r8, %r14
movq %rcx, -0x30(%rbp)
movq %rdx, %r12
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %r12b
setne %dl
orb %cl, %dl
jne 0xab010
incl (%rax)
leaq -0x48(%rbp), %r13
leaq -0x40(%rbp), %r8
movq %r12, %rdx
movq %r13, %rcx
callq 0xaac87
movq %rax, %r15
movq (%r13), %rdi
leaq -0x38(%rbp), %rdx
movq %r12, %rsi
callq 0xa2ec1
testb %al, %al
je 0xab04e
leaq 0x5d118(%rip), %rsi     # 0x108159
movq %r15, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0xab079
movq %r15, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xab075
decl (%rax)
jne 0xab075
leaq 0x5d0ec(%rip), %rsi     # 0x108159
movq %r15, %rdi
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
movq -0x40(%rbp), %rcx
movq -0x38(%rbp), %rsi
movq %rcx, (%r14)
movq -0x30(%rbp), %rcx
movq %rsi, (%rcx)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_c99_zaC99Branch_zaC99Branch
static void mtp_mirth_c99_zaC99Branch_zaC99Branch (struct mirth_c99_zaC99Branch* in_zaC99Branch_1, struct mirth_c99_zaC99* *out_zaC99_2, struct mirth_c99_zaC99Stack *out_zaC99Stack_3, struct std_list_List_1 *out_List_4, bool *out_Bool_5) {
	struct mirth_c99_zaC99Branch v6 = *in_zaC99Branch_1;
	free(in_zaC99Branch_1);
	*out_Bool_5 = v6.mreachable;
	*out_List_4 = v6.menv;
	*out_zaC99Stack_3 = v6.mzastack;
	*out_zaC99_2 = v6.mzac99;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r8, %rbx
movq %rcx, %r14
movq %rdx, -0x30(%rbp)
movq %rsi, %r12
movq (%rdi), %r13
movups 0x8(%rdi), %xmm0
movaps %xmm0, -0x50(%rbp)
movups 0x18(%rdi), %xmm0
movaps %xmm0, -0x40(%rbp)
movb 0x28(%rdi), %r15b
callq 0x5030
andb $0x1, %r15b
movb %r15b, (%rbx)
movaps -0x40(%rbp), %xmm0
movups %xmm0, (%r14)
movaps -0x50(%rbp), %xmm0
movq -0x30(%rbp), %rax
movups %xmm0, (%rax)
movq %r13, (%r12)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Stack_rdrop
static void mw_mirth_c99_zaC99Stack_rdrop (struct mirth_c99_zaC99Stack in_zaC99Stack_1) {
	switch ((in_zaC99Stack_1).tag) {
		case mirth_c99_zaC99Stack_zaNil: {
		} break;
		case mirth_c99_zaC99Stack_zaCons: {
			struct mirth_c99_zaC99Stack v2;
			struct mirth_c99_zaC99Value* v3;
			mtp_mirth_c99_zaC99Stack_zaCons(in_zaC99Stack_1, &v2, &v3);
			mw_mirth_c99_zaC99Value_rdrop(v3);
			mw_mirth_c99_zaC99Stack_rdrop(v2);
		} break;
		case mirth_c99_zaC99Stack_zaWith: {
			struct mirth_c99_zaC99Stack v4;
			struct mirth_c99_zaC99Resource* v5;
			mtp_mirth_c99_zaC99Stack_zaWith(in_zaC99Stack_1, &v4, &v5);
			mw_mirth_c99_zaC99Resource_rdrop(v5);
			mw_mirth_c99_zaC99Stack_rdrop(v4);
		} break;
		case mirth_c99_zaC99Stack_zaConsLabel: {
			struct mirth_c99_zaC99Stack v6;
			struct mirth_c99_zaC99Value* v7;
			uint64_t v8 = mtp_mirth_c99_zaC99Stack_zaConsLabel(in_zaC99Stack_1, &v6, &v7);
			mw_mirth_c99_zaC99Value_rdrop(v7);
			mw_mirth_c99_zaC99Stack_rdrop(v6);
		} break;
		case mirth_c99_zaC99Stack_zaWithLabel: {
			struct mirth_c99_zaC99Stack v9;
			struct mirth_c99_zaC99Resource* v10;
			uint64_t v11 = mtp_mirth_c99_zaC99Stack_zaWithLabel(in_zaC99Stack_1, &v9, &v10);
			mw_mirth_c99_zaC99Resource_rdrop(v10);
			mw_mirth_c99_zaC99Stack_rdrop(v9);
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
leaq 0x28b9a(%rip), %r15     # 0xd40b4
leaq -0x30(%rbp), %rbx
leaq -0x20(%rbp), %r14
cmpl $0x4, %edi
ja 0xab596
movl %edi, %eax
movslq (%r15,%rax,4), %rax
addq %r15, %rax
jmpq *%rax
movq %rsi, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xa7040
jmp 0xab550
movq %rsi, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xa70f6
movq -0x20(%rbp), %rdi
callq 0xa8b9a
jmp 0xab582
movq %rsi, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xa70b2
jmp 0xab579
movq %rsi, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0xa7079
movq -0x20(%rbp), %rdi
callq 0xa8c4e
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
jmp 0xab522
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x29270(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_C99ReprType_cast
static STR* mw_mirth_c99_C99ReprType_cast (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_Str_2, struct mirth_c99_C99ReprType in_C99ReprType_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	STR* v6;
	STRLIT(v6, "", 0);
	STR* v7;
	STRLIT(v7, "((", 2);
	STR* v8;
	mw_std_str_zaStr_pushzestrzx(v7, v6, &v8);
	struct mirth_mirth_zaMirth* v9;
	STR* v10 = mw_mirth_c99_C99ReprType_underlyingzec99zetype(in_zaMirth_1, in_C99ReprType_3, &v9);
	STR* v11;
	mw_std_str_zaStr_pushzestrzx(v10, v8, &v11);
	STR* v12;
	STRLIT(v12, ")(", 2);
	STR* v13;
	mw_std_str_zaStr_pushzestrzx(v12, v11, &v13);
	STR* v14;
	mw_std_str_zaStr_pushzestrzx(in_Str_2, v13, &v14);
	STR* v15;
	STRLIT(v15, "))", 2);
	STR* v16;
	mw_std_str_zaStr_pushzestrzx(v15, v14, &v16);
	*out_zaMirth_4 = v9;
	return v16;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, -0x38(%rbp)
movq %rcx, %r15
movl %edx, %r12d
movq %rsi, -0x30(%rbp)
movq %rdi, %r13
movq 0x10631d0(%rip), %rbx   # 0x110ef78
testq %rbx, %rbx
jne 0xabdc5
leaq 0x30941(%rip), %rdi     # 0xdc6f5
xorl %esi, %esi
callq 0x8a21
movq %rax, %rbx
movq %rax, 0x10631b3(%rip)   # 0x110ef78
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
movq %rbx, %rax
andq %r14, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0xabde4
incl (%rax)
movq 0x1063195(%rip), %rsi   # 0x110ef80
testq %rsi, %rsi
jne 0xabe09
leaq 0x4234a(%rip), %rdi     # 0xee141
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x1063177(%rip)   # 0x110ef80
movq %rsi, %rax
andq %r14, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xabe1f
incl (%rax)
movq %rbx, %rdi
callq 0xd8b0
movq %rax, %rbx
leaq -0x40(%rbp), %rcx
movq %r13, %rdi
movl %r12d, %esi
movq %r15, %rdx
callq 0x9c7be
movq %rbx, %rdi
movq %rax, %rsi
callq 0xd8b0
movq %rax, %rbx
movq 0x1063137(%rip), %rsi   # 0x110ef88
testq %rsi, %rsi
jne 0xabe6f
leaq 0x429fe(%rip), %rdi     # 0xee85b
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x1063119(%rip)   # 0x110ef88
movq %rsi, %rax
andq %r14, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xabe85
incl (%rax)
movq %rbx, %rdi
callq 0xd8b0
movq %rax, %rdi
movq -0x30(%rbp), %rsi
callq 0xd8b0
movq %rax, %rbx
movq 0x10630ed(%rip), %rsi   # 0x110ef90
testq %rsi, %rsi
jne 0xabec1
leaq 0x4166b(%rip), %rdi     # 0xed51a
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x10630cf(%rip)   # 0x110ef90
andq %rsi, %r14
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0xabed5
incl (%r14)
movq %rbx, %rdi
callq 0xd8b0
movq -0x40(%rbp), %rcx
movq -0x38(%rbp), %rdx
movq %rcx, (%rdx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99ValuezfResource_consumezeaszedata
static STR* mw_mirth_c99_zaC99ValuezfResource_consumezeaszedata (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Data_2, struct std_either_zaEither_2 in_zaC99ValuezfResource_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_zaMirth* branch_zaMirth_6;
	STR* branch_Str_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;
			STR* v10 = mw_mirth_c99_zaC99Value_consumezeaszedata(in_zaMirth_1, V_mirth_c99_zaC99Value(v8), in_Data_2, &v9);
			branch_Str_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;
			STR* v13 = mw_mirth_c99_zaC99Resource_consumezeaszedata(in_zaMirth_1, V_mirth_c99_zaC99Resource(v11), in_Data_2, &v12);
			branch_Str_7 = v13;
			branch_zaMirth_6 = v12;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_4 = branch_zaMirth_6;
	return branch_Str_7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %r8, %rbx
movq %rsi, %r14
movq %rdi, %r15
cmpl $0x1, %edx
je 0xac188
testl %edx, %edx
jne 0xac1c1
leaq -0x38(%rbp), %r12
movq %rcx, %rdi
movq %r12, %rsi
callq 0xa8b74
movq (%r12), %rsi
leaq -0x28(%rbp), %r12
movq %r15, %rdi
movq %r14, %rdx
movq %r12, %rcx
callq 0xad13b
jmp 0xac1ad
leaq -0x38(%rbp), %r12
movq %rcx, %rdi
movq %r12, %rsi
callq 0xa8c28
movq (%r12), %rsi
leaq -0x28(%rbp), %r12
movq %r15, %rdi
movq %r14, %rdx
movq %r12, %rcx
callq 0xad187
movq (%r12), %rcx
movq %rcx, (%rbx)
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x28645(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Value_consumezeaszedata
static STR* mw_mirth_c99_zaC99Value_consumezeaszedata (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Value* in_zaC99Value_2, uint64_t in_Data_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_c99_C99ReprType v6 = mtw_mirth_c99_C99ReprType_Data(in_Data_3);
	struct mirth_mirth_zaMirth* v7;
	STR* v8 = mw_mirth_c99_zaC99Value_consumezeas(in_zaMirth_1, v6, in_zaC99Value_2, &v7);
	*out_zaMirth_4 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rcx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq %rdx, %rdi
callq 0x93ff0
pushq $0x15
popq %rsi
leaq -0x28(%rbp), %r12
movq %r15, %rdi
movq %rax, %rdx
movq %r14, %rcx
movq %r12, %r8
callq 0xa906a
movq (%r12), %rcx
movq %rcx, (%rbx)
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_prim_Str_Str_1_sp46
static STR* mw_std_prim_Str_Str_1_sp46 (struct mirth_c99_C99DataStructField* in_C99DataStructField_1, STR* in_Str_2, STR* *out_Str_3, struct mirth_c99_C99DataStructField* *out_C99DataStructField_4) {
	STR* v6;
	STRLIT(v6, "", 0);
	incref(MKSTR(in_Str_2));
	STR* v7;
	mw_std_str_zaStr_pushzestrzx(in_Str_2, v6, &v7);
	STR* v8;
	STRLIT(v8, ".", 1);
	STR* v9;
	mw_std_str_zaStr_pushzestrzx(v8, v7, &v9);
	incref(MK_mirth_c99_C99DataStructField(in_C99DataStructField_1));
	STR* v10 = in_C99DataStructField_1->mcname;
	incref(MKSTR(v10));
	decref(MK_mirth_c99_C99DataStructField(in_C99DataStructField_1));
	STR* v11;
	mw_std_str_zaStr_pushzestrzx(v10, v9, &v11);
	*out_C99DataStructField_4 = in_C99DataStructField_1;
	*out_Str_3 = in_Str_2;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, -0x30(%rbp)
movq %rdx, -0x38(%rbp)
movq %rsi, %r15
movq %rdi, %r12
movq 0x1061def(%rip), %rdi   # 0x110efe8
testq %rdi, %rdi
jne 0xad216
leaq 0x2f4f0(%rip), %rdi     # 0xdc6f5
xorl %esi, %esi
callq 0x8a21
movq %rax, %rdi
movq %rax, 0x1061dd2(%rip)   # 0x110efe8
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
movq %rdi, %rax
andq %r14, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0xad236
incl (%rax)
movq %r15, %rax
andq %r14, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xad24c
incl (%rax)
movq %r15, %rsi
callq 0xd8b0
movq %rax, %r13
movq 0x1061d92(%rip), %rsi   # 0x110eff0
testq %rsi, %rsi
jne 0xad27c
leaq 0x2f559(%rip), %rdi     # 0xdc7c3
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x1061d74(%rip)   # 0x110eff0
movq %rsi, %rax
andq %r14, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xad292
incl (%rax)
movq %r13, %rdi
callq 0xd8b0
movq %rax, %r13
movq %r12, %rax
andq %r14, %rax
setne %dl
testb $0x3, %r12b
sete %cl
andb %dl, %cl
cmpb $0x1, %cl
jne 0xad2b6
incl (%rax)
movq 0x28(%r12), %rbx
andq %rbx, %r14
sete %dl
testb $0x3, %bl
setne %sil
orb %dl, %sil
jne 0xad2d0
incl (%r14)
testb %cl, %cl
je 0xad2e7
decl (%rax)
jne 0xad2e7
leaq 0x5cc92(%rip), %rsi     # 0x109f71
movq %r12, %rdi
callq 0xce94
movq %r13, %rdi
movq %rbx, %rsi
callq 0xd8b0
movq -0x30(%rbp), %rcx
movq %r12, (%rcx)
movq -0x38(%rbp), %rcx
movq %r15, (%rcx)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99_c99zelinezeif_1_sp34
static void mw_mirth_c99_zaC99_c99zelinezeif_1_sp34 (struct mirth_mirth_zaMirth* in_zaMirth_1, bool in_Bool_2, struct mirth_c99_zaC99* in_zaC99_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99* *out_zaC99_5) {
	bool v6 = in_zaC99_3->mputzeenabled;
	bool v7 = (in_Bool_2 && v6);
	in_zaC99_3->mputzeenabled = v7;
	struct mirth_mirth_zaMirth* v8;
	struct mirth_c99_zaC99* v9;
	mw_mirth_c99_zaC99_indent(in_zaMirth_1, in_zaC99_3, &v8, &v9);
	STR* v10;
	STRLIT(v10, "} else {", 8);
	struct mirth_mirth_zaMirth* v11;
	struct mirth_c99_zaC99* v12;
	mw_mirth_c99_zaC99_put(v8, v9, v10, &v11, &v12);
	struct mirth_mirth_zaMirth* v13;
	struct mirth_c99_zaC99* v14;
	mw_mirth_c99_zaC99_line(v11, v12, &v13, &v14);
	v14->mputzeenabled = v6;
	*out_zaC99_5 = v14;
	*out_zaMirth_4 = v13;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %r8, %r14
movq %rcx, %rbx
movl 0x18(%rdx), %r13d
testl %esi, %esi
cmovnel %r13d, %esi
movb %sil, 0x18(%rdx)
leaq -0x38(%rbp), %rax
leaq -0x30(%rbp), %rcx
movq %rdx, %rsi
movq %rax, %rdx
callq 0x8bc28
movq 0x1061b44(%rip), %rdx   # 0x110f008
testq %rdx, %rdx
jne 0xad4e2
leaq 0x40d63(%rip), %rdi     # 0xee233
pushq $0x8
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x1061b26(%rip)   # 0x110f008
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xad500
incl (%rax)
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x58(%rbp), %r15
leaq -0x50(%rbp), %r12
movq %r15, %rcx
movq %r12, %r8
callq 0x8a8a9
movq (%r15), %rdi
movq (%r12), %rsi
leaq -0x48(%rbp), %r15
leaq -0x40(%rbp), %r12
movq %r15, %rdx
movq %r12, %rcx
callq 0x8a92c
movq (%r12), %rax
movb %r13b, 0x18(%rax)
movq %rax, (%r14)
movq (%r15), %rax
movq %rax, (%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Branch_c99zeline_1_sp24
static void mw_mirth_c99_zaC99Branch_c99zeline_1_sp24 (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Branch* in_zaC99Branch_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, struct mirth_c99_zaC99Branch* *out_zaC99Branch_4) {
	bool v5 = in_zaC99Branch_2->mreachable;
	struct mirth_c99_zaC99* r6 = in_zaC99Branch_2->mzac99;
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_zaC99* v8;
	mw_mirth_c99_zaC99_c99zelinezeif_1_sp23(in_zaMirth_1, v5, r6, &v7, &v8);
	in_zaC99Branch_2->mzac99 = v8;
	*out_zaC99Branch_4 = in_zaC99Branch_2;
	*out_zaMirth_3 = v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movzbl 0x28(%rsi), %esi
movq (%r15), %rdx
leaq -0x38(%rbp), %r12
leaq -0x30(%rbp), %r13
movq %r12, %rcx
movq %r13, %r8
callq 0xad5a9
movq (%r13), %rax
movq %rax, (%r15)
movq %r15, (%rbx)
movq (%r12), %rax
movq %rax, (%r14)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99_c99zelinezeif_1_sp23
static void mw_mirth_c99_zaC99_c99zelinezeif_1_sp23 (struct mirth_mirth_zaMirth* in_zaMirth_1, bool in_Bool_2, struct mirth_c99_zaC99* in_zaC99_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99* *out_zaC99_5) {
	bool v6 = in_zaC99_3->mputzeenabled;
	bool v7 = (in_Bool_2 && v6);
	in_zaC99_3->mputzeenabled = v7;
	struct mirth_mirth_zaMirth* v8;
	struct mirth_c99_zaC99* v9;
	mw_mirth_c99_zaC99_c99zeline_1_sp2(in_zaMirth_1, in_zaC99_3, &v8, &v9);
	v9->mputzeenabled = v6;
	*out_zaC99_5 = v9;
	*out_zaMirth_4 = v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, %rbx
movq %rcx, %r14
movl 0x18(%rdx), %r13d
testl %esi, %esi
movl %r13d, %eax
cmovel %esi, %eax
movb %al, 0x18(%rdx)
leaq -0x38(%rbp), %r15
leaq -0x30(%rbp), %r12
movq %rdx, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x8c2b0
movq (%r12), %rax
movb %r13b, 0x18(%rax)
movq %rax, (%rbx)
movq (%r15), %rax
movq %rax, (%r14)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_buffer_Buffer_cname
static STR* mw_mirth_buffer_Buffer_cname (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Buffer_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_buffer_Buffer_cname, in_Buffer_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	STR* branch_Str_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_Str_8 = value_str(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		STR* v10;
		STRLIT(v10, "", 0);
		STR* v11;
		STRLIT(v11, "mbuf_", 5);
		STR* v12;
		mw_std_str_zaStr_pushzestrzx(v11, v10, &v12);
		struct mirth_mirth_zaMirth* v13;
		struct mirth_name_QName* v14 = mw_mirth_buffer_Buffer_qnamezehard(in_zaMirth_1, in_Buffer_2, &v13);
		struct mirth_mirth_zaMirth* v15;
		STR* v16;
		mw_mirth_name_QName_mangledzj(v13, v12, v14, &v15, &v16);
		incref(MKSTR(v16));
		mut_set(MKSTR(v16), v5);
		branch_Str_8 = v16;
		branch_zaMirth_7 = v15;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Str_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, %r15
leaq 0x1061a1a(%rip), %rdi   # 0x110f040
callq 0x12f88
movq %rax, %r14
movq %rax, %rdi
callq 0x142de
testb %al, %al
je 0xad655
movq %r14, %rdi
callq 0x1307d
movq %rax, %rdi
movq %rdx, %rsi
callq 0x8b55
movq %rax, %r12
jmp 0xad744
movq %r14, -0x30(%rbp)
movq 0x10619f0(%rip), %r13   # 0x110f050
testq %r13, %r13
jne 0xad67d
leaq 0x2f089(%rip), %rdi     # 0xdc6f5
xorl %esi, %esi
callq 0x8a21
movq %rax, %r13
movq %rax, 0x10619d3(%rip)   # 0x110f050
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
movq %r13, %rax
andq %r14, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0xad69d
incl (%rax)
movq 0x10619b4(%rip), %rsi   # 0x110f058
testq %rsi, %rsi
jne 0xad6c2
leaq 0x40ba2(%rip), %rdi     # 0xee252
pushq $0x5
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x1061996(%rip)   # 0x110f058
movq %rbx, -0x38(%rbp)
movq %rsi, %rax
andq %r14, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xad6dc
incl (%rax)
movq %r13, %rdi
callq 0xd8b0
movq %rax, %r13
leaq -0x50(%rbp), %rbx
movq %r15, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2b857
movq (%rbx), %rdi
leaq -0x40(%rbp), %rcx
leaq -0x48(%rbp), %rbx
movq %r13, %rsi
movq %rax, %rdx
movq %rbx, %r8
callq 0x8c3f2
movq (%rbx), %r12
andq %r12, %r14
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0xad729
incl (%r14)
movq %r12, %rdi
leaq 0x5aa26(%rip), %rsi     # 0x108159
movq -0x30(%rbp), %rdx
callq 0x1393b
movq -0x40(%rbp), %r15
movq -0x38(%rbp), %rbx
movq %r15, (%rbx)
movq %r12, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq