LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_def_Def_wordzy
static struct std_maybe_Maybe_1 mw_mirth_def_Def_wordzy (struct mirth_def_Def in_Def_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_Def_1).tag) {
		case mirth_def_Def_Word: {
			uint64_t v4 = mtp_mirth_def_Def_Word(in_Def_1);
			struct std_maybe_Maybe_1 v5 = mtw_std_maybe_Maybe_1_Some(MK_mirth_word_Word(v4));
			branch_Maybe_3 = v5;
		} break;
		default: {
			decref(MK_mirth_def_Def(in_Def_1));
			struct std_maybe_Maybe_1 v6 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_3 = v6;
		} break;
	}
	return branch_Maybe_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x8, %edi
jne 0x2d393
movq %rsi, %rdi
callq 0x14104
leaq 0xdbdda(%rip), %rsi     # 0x109160
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x2d3c9
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0x2d3c5
decl (%rax)
jne 0x2d3c5
shlq $0x30, %rdi
orq %rsi, %rdi
leaq 0xdb3c9(%rip), %rsi     # 0x108789
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_def_Def_macrozy
static struct std_maybe_Maybe_1 mw_mirth_def_Def_macrozy (struct mirth_def_Def in_Def_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_Def_1).tag) {
		case mirth_def_Def_Macro: {
			uint64_t v4 = mtp_mirth_def_Def_Macro(in_Def_1);
			struct std_maybe_Maybe_1 v5 = mtw_std_maybe_Maybe_1_Some(MK_mirth_macro_Macro(v4));
			branch_Maybe_3 = v5;
		} break;
		default: {
			decref(MK_mirth_def_Def(in_Def_1));
			struct std_maybe_Maybe_1 v6 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_3 = v6;
		} break;
	}
	return branch_Maybe_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0xc, %edi
jne 0x2d3f0
movq %rsi, %rdi
callq 0x141c7
leaq 0xdbe9d(%rip), %rsi     # 0x109280
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x2d426
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0x2d422
decl (%rax)
jne 0x2d422
shlq $0x30, %rdi
orq %rsi, %rdi
leaq 0xdb36c(%rip), %rsi     # 0x108789
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_lcurlyzy
static struct std_maybe_Maybe_1 mw_mirth_token_Token_lcurlyzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct std_maybe_Maybe_1 v7 = mw_mirth_token_TokenValue_lcurlyzy(v6);
	*out_zaMirth_3 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdx, %rbx
leaq -0x10(%rbp), %rdx
callq 0x252f3
cmpl $0xa, %eax
jne 0x2d9ab
movq %rdx, %rdi
callq 0x257e5
leaq 0xdb41a(%rip), %rsi     # 0x108db8
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x2d9e6
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %sil
testb $0x3, %dl
setne %dil
orb %sil, %dil
jne 0x2d9e2
decl (%rcx)
jne 0x2d9e2
shlq $0x30, %rax
orq %rdx, %rax
leaq 0xdb4ff(%rip), %rsi     # 0x108ed9
movq %rax, %rdi
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
movq -0x10(%rbp), %rcx
movq %rcx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_maybe_Maybe_1_else_1_sp3
static uint64_t mw_std_maybe_Maybe_1_else_1_sp3 (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct std_maybe_Maybe_1 in_Maybe_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	int64_t v6 = (in_Maybe_3).tag;
	decref(MK_std_maybe_Maybe_1(in_Maybe_3));
	INT v7 = WRAP_I63(0LL);
	INT v8 = v7;
	INT v9 = i64_to_int(v6);
	bool v10 = int_eq(v9, v8);
	bool v11 = !v10;
	struct mirth_mirth_zaMirth* branch_zaMirth_12;
	uint64_t branch_Token_13;
	if (v11) {
		branch_Token_13 = in_Token_2;
		branch_zaMirth_12 = in_zaMirth_1;
	} else {
		STR* v14;
		STRLIT(v14, "Expected { ... }", 16);
		mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(in_zaMirth_1, in_Token_2, v14);
	}
	*out_zaMirth_4 = branch_zaMirth_12;
	return branch_Token_13;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r15
movq %rsi, %rbx
movq %rdi, %r14
movabsq $0xfffffffffffc, %r13   # imm = 0xFFFFFFFFFFFC
movl %edx, %r12d
movq %rcx, %rax
andq %r13, %rax
sete %dl
testb $0x3, %cl
setne %sil
orb %dl, %sil
jne 0x2da47
decl (%rax)
jne 0x2da47
movq %r12, %rdi
shlq $0x30, %rdi
orq %rcx, %rdi
leaq 0xda87f(%rip), %rsi     # 0x1082c1
callq 0xce94
movq %r12, %rdi
callq 0xd86d
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0xd759
testb %al, %al
jne 0x2da73
movq %r14, (%r15)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x10deb4e(%rip), %rdx   # 0x110c5c8
testq %rdx, %rdx
jne 0x2da98
leaq 0xaae67(%rip), %rdi     # 0xd88ed
pushq $0x10
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10deb30(%rip)   # 0x110c5c8
andq %rdx, %r13
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x2daac
incl (%r13)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x246fe
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_elabzedeclszx
static uint64_t mw_mirth_elab_elabzedeclszx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v7;
	bool v8 = mw_mirth_token_Token_argzeendzy(in_zaMirth_1, in_Token_2, &v7);
	bool v9 = !v8;
	struct mirth_mirth_zaMirth* v10;
	bool v11 = mw_mirth_token_Token_modulezeendzy(v7, in_Token_2, &v10);
	bool v12 = !v11;
	bool v13 = (v9 && v12);
	uint64_t v14 = in_Token_2;
	struct mirth_mirth_zaMirth* r15 = v10;
	bool v16 = v13;
	while (v16) {
		uint64_t v17 = v14;
		struct mirth_mirth_zaMirth* r18 = r15;
		struct mirth_mirth_zaMirth* v19;
		uint64_t v20 = mw_mirth_elab_elabzedeclzx(r18, v17, &v19);
		struct mirth_mirth_zaMirth* v21;
		bool v22 = mw_mirth_token_Token_argzeendzy(v19, v20, &v21);
		bool v23 = !v22;
		struct mirth_mirth_zaMirth* v24;
		bool v25 = mw_mirth_token_Token_modulezeendzy(v21, v20, &v24);
		bool v26 = !v25;
		bool v27 = (v23 && v26);
		v16 = v27;
		r15 = v24;
		v14 = v20;
	}
	*out_zaMirth_3 = r15;
	return v14;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, -0x30(%rbp)
movq %rsi, %r14
leaq -0x58(%rbp), %r15
movq %r15, %rdx
callq 0x258e2
movl %eax, %r12d
movq (%r15), %rdi
leaq -0x50(%rbp), %r15
movq %r14, %rsi
movq %r15, %rdx
callq 0x2dbd1
orb %r12b, %al
movq (%r15), %rdi
leaq -0x48(%rbp), %r15
leaq -0x40(%rbp), %r12
leaq -0x38(%rbp), %r13
testb $0x1, %al
jne 0x2db3c
movq %r14, %rsi
movq %r15, %rdx
callq 0x2dc3b
movq %rax, %r14
movq -0x48(%rbp), %rdi
movq %rax, %rsi
movq %r12, %rdx
callq 0x258e2
movl %eax, %ebx
movq -0x40(%rbp), %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x2dbd1
orb %bl, %al
movq -0x38(%rbp), %rdi
jmp 0x2db02
movq -0x30(%rbp), %rax
movq %rdi, (%rax)
movq %r14, %rax
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_token_Token_rcurlyzy
static struct std_maybe_Maybe_1 mw_mirth_token_Token_rcurlyzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct std_maybe_Maybe_1 v7 = mw_mirth_token_TokenValue_rcurlyzy(v6);
	*out_zaMirth_3 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdx, %rbx
leaq -0x10(%rbp), %rdx
callq 0x252f3
cmpl $0xb, %eax
jne 0x2db88
movq %rdx, %rdi
callq 0x258a8
leaq 0xdb23d(%rip), %rsi     # 0x108db8
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x2dbc3
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %sil
testb $0x3, %dl
setne %dil
orb %sil, %dil
jne 0x2dbbf
decl (%rcx)
jne 0x2dbbf
shlq $0x30, %rax
orq %rdx, %rax
leaq 0xdb322(%rip), %rsi     # 0x108ed9
movq %rax, %rdi
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
movq -0x10(%rbp), %rcx
movq %rcx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_modulezeendzy
static bool mw_mirth_token_Token_modulezeendzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	bool v6 = mw_mirth_token_Token_nonezy(in_zaMirth_1, in_Token_2, &v5);
	*out_zaMirth_3 = v5;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
leaq -0x18(%rbp), %rdx
callq 0x252f3
movl %eax, %r14d
testl %eax, %eax
je 0x2dc25
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0x2dc25
decl (%rax)
jne 0x2dc25
movq %r14, %rdi
shlq $0x30, %rdi
orq %rdx, %rdi
leaq 0xdb2b9(%rip), %rsi     # 0x108ed9
callq 0xce94
testl %r14d, %r14d
sete %al
movq -0x18(%rbp), %rcx
movq %rcx, (%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_mirth_zaMirth_errorzetokenzx
static void mw_mirth_mirth_zaMirth_errorzetokenzx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct std_maybe_Maybe_1 v4 = mtw_std_maybe_Maybe_1_Some(MK_mirth_token_Token(in_Token_2));
	struct mirth_mirth_LexicalState* v5 = in_zaMirth_1->mlexicalzestate;
	incref(MK_mirth_mirth_LexicalState(v5));
	struct mirth_mirth_LexicalState* v6 = mirth_mirth_LexicalState_set_errorzetoken(v5, v4);
	struct mirth_mirth_LexicalState* v7 = in_zaMirth_1->mlexicalzestate;
	decref(MK_mirth_mirth_LexicalState(v7));
	in_zaMirth_1->mlexicalzestate = v6;
	*out_zaMirth_3 = in_zaMirth_1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %rax
movq %rdi, %r14
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
leaq 0xdae87(%rip), %rsi     # 0x108db8
movq %rax, %rdi
callq 0x8d0c
movq 0x48(%r14), %rdi
movq %rdi, %rax
andq %r12, %rax
sete %cl
testb $0x3, %dil
setne %sil
orb %cl, %sil
jne 0x2df55
incl (%rax)
pushq $0x1
popq %rsi
callq 0x2e0a9
movq %rax, %r15
movq 0x48(%r14), %rdi
andq %rdi, %r12
sete %al
testb $0x3, %dil
setne %cl
orb %al, %cl
jne 0x2df87
decl (%r12)
jne 0x2df87
leaq 0xda8df(%rip), %rsi     # 0x108861
callq 0xce94
movq %r15, 0x48(%r14)
movq %r14, (%rbx)
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_maybe_Maybe_1_unwrap_1_sp27
static uint64_t mw_std_maybe_Maybe_1_unwrap_1_sp27 (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct std_maybe_Maybe_1 in_Maybe_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, VAL *out_zux1_6) {
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	uint64_t branch_Token_8;
	VAL branch_zux1_9;
	switch ((in_Maybe_3).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v10 = mtp_std_maybe_Maybe_1_Some(in_Maybe_3);
			branch_zux1_9 = v10;
			branch_Token_8 = in_Token_2;
			branch_zaMirth_7 = in_zaMirth_1;
		} break;
		case std_maybe_Maybe_1_None: {
			STR* v11;
			STRLIT(v11, "unknown declaration", 19);
			mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(in_zaMirth_1, in_Token_2, v11);
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zux1_6 = branch_zux1_9;
	*out_zaMirth_4 = branch_zaMirth_7;
	return branch_Token_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
cmpl $0x1, %edx
jne 0x2e006
movq %r9, %r12
movq %r8, %r15
movq %rcx, %rdi
callq 0xd491
movq %rax, (%r12)
movq %rdx, 0x8(%r12)
movq %r14, (%r15)
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
testl %edx, %edx
jne 0x2e058
movq 0x10de5bf(%rip), %rdx   # 0x110c5d0
testq %rdx, %rdx
jne 0x2e02f
leaq 0xaa916(%rip), %rdi     # 0xd8933
pushq $0x13
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10de5a1(%rip)   # 0x110c5d0
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0x2e04d
incl (%rax)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x246fe
leaq 0xa67ae(%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_macro_Macro_action
static struct mirth_macro_MacroAction mw_mirth_macro_Macro_action (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Macro_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_macro_Macro_action, in_Macro_2);
	VAL v6 = mut_get(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return V_mirth_macro_MacroAction(v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
leaq 0x10de335(%rip), %rdi   # 0x110c3b8
callq 0x12f88
movq %rax, %rdi
callq 0x1307d
movq %r14, (%rbx)
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rdx
shrq $0x30, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mirth_mirth_LexicalState_set_errorzetoken
static struct mirth_mirth_LexicalState* mirth_mirth_LexicalState_set_errorzetoken(struct mirth_mirth_LexicalState* self, struct std_maybe_Maybe_1 x) {
	if (self->refs > 1) {
		struct mirth_mirth_LexicalState* self2 = calloc(1, sizeof * self2);
		ASSERT(self2); memcpy(self2, self, sizeof * self2);
		self2->merrorzetoken = x;
		incref(MK_std_maybe_Maybe_1(self2->mdefiningzenamespace));
		self->refs--;
		return self2;
	}
	decref(MK_std_maybe_Maybe_1(self->merrorzetoken));
	self->merrorzetoken = x;
	return self;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdx, %r14
movl %esi, %r15d
movq %rdi, %rbx
movl (%rdi), %r12d
cmpl $0x2, %r12d
jb 0x2e124
pushq $0x1
popq %rdi
pushq $0x28
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x2e171
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm0, (%rax)
movups %xmm1, 0x10(%rax)
movq 0x20(%rbx), %rdx
movq %rdx, 0x20(%rax)
movl %r15d, 0x8(%rax)
movq %r14, 0x10(%rax)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %sil
testb $0x3, %dl
setne %dl
orb %sil, %dl
jne 0x2e119
incl (%rcx)
movl (%rbx), %r12d
decl %r12d
movl %r12d, (%rbx)
movq %rax, %rbx
jmp 0x2e165
movq 0x10(%rbx), %rcx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %dl
testb $0x3, %cl
setne %cl
orb %dl, %cl
jne 0x2e15d
decl (%rax)
jne 0x2e15d
leaq 0xda174(%rip), %rsi     # 0x1082c1
movl 0x8(%rbx), %edi
shlq $0x30, %rdi
orq 0x10(%rbx), %rdi
callq 0xce94
movl %r15d, 0x8(%rbx)
movq %r14, 0x10(%rbx)
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0xaa786(%rip), %rsi     # 0xd88fe
pushq $0x2
popq %rdi
pushq $0x34
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_token_TokenValue_namezy
static struct std_maybe_Maybe_1 mw_mirth_token_TokenValue_namezy (struct mirth_token_TokenValue in_TokenValue_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_TokenValue_1).tag) {
		case mirth_token_TokenValue_Name: {
			uint64_t v4 = mtp_mirth_token_TokenValue_Name(in_TokenValue_1);
			struct std_maybe_Maybe_1 v5 = mtw_std_maybe_Maybe_1_Some(MK_mirth_name_Name(v4));
			branch_Maybe_3 = v5;
		} break;
		default: {
			decref(MK_mirth_token_TokenValue(in_TokenValue_1));
			struct std_maybe_Maybe_1 v6 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_3 = v6;
		} break;
	}
	return branch_Maybe_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x1b, %edi
jne 0x2e1b5
movq %rsi, %rdi
callq 0x253e2
leaq 0xda550(%rip), %rsi     # 0x1086f8
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x2e1eb
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0x2e1e7
decl (%rax)
jne 0x2e1e7
shlq $0x30, %rdi
orq %rsi, %rdi
leaq 0xdacf7(%rip), %rsi     # 0x108ed9
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_doc
static struct std_maybe_Maybe_1 mw_mirth_token_Token_doc (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_token_Token_doc, in_Token_2);
	VAL v6 = mut_get(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return V_std_maybe_Maybe_1(v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
leaq 0x10dd993(%rip), %rdi   # 0x110c5f8
callq 0x12f88
movq %rax, %rdi
callq 0x1307d
movq %r14, (%rbx)
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rdx
shrq $0x30, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_lparenzy
static struct std_maybe_Maybe_1 mw_mirth_token_Token_lparenzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct std_maybe_Maybe_1 v7 = mw_mirth_token_TokenValue_lparenzy(v6);
	*out_zaMirth_3 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdx, %rbx
leaq -0x10(%rbp), %rdx
callq 0x252f3
cmpl $0x6, %eax
jne 0x2ecbe
movq %rdx, %rdi
callq 0x2578e
leaq 0xda107(%rip), %rsi     # 0x108db8
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x2ecf9
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %sil
testb $0x3, %dl
setne %dil
orb %sil, %dil
jne 0x2ecf5
decl (%rcx)
jne 0x2ecf5
shlq $0x30, %rax
orq %rdx, %rax
leaq 0xda1ec(%rip), %rsi     # 0x108ed9
movq %rax, %rdi
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
movq -0x10(%rbp), %rcx
movq %rcx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mb_mirth_elab_elabzedefzehead_0
static void mb_mirth_elab_elabzedefzehead_0 (void) {
	struct mirth_mirth_zaMirth* r0 = V_mirth_mirth_zaMirth(pop_resource());
	uint64_t v1 = V_mirth_token_Token(pop_value());
	struct mirth_mirth_zaMirth* v2;
	struct mirth_name_QName* v3 = mw_mirth_elab_elabzedefzeqnamezeundefined(r0, v1, &v2);
	push_resource(MK_mirth_mirth_zaMirth(v2));
	push_value(MK_mirth_name_QName(v3));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
callq 0xd429
movq %rax, %r14
callq 0xd3d6
movq %rax, %rbx
leaq -0x40(%rbp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x2ef31
movq %rax, %r14
movq %rax, %r13
movq %r15, -0x30(%rbp)
andq %r15, %r13
setne %al
testb $0x3, %r14b
sete %r12b
andb %al, %r12b
cmpb $0x1, %r12b
jne 0x2ee8f
incl (%r13)
leaq 0xd98ab(%rip), %r15     # 0x108741
movq -0x40(%rbp), %rdi
leaq -0x38(%rbp), %rdx
movq %r14, %rsi
callq 0x2f60f
testb %al, %al
jne 0x2eed3
movq -0x38(%rbp), %rdi
leaq 0xd9a3b(%rip), %rsi     # 0x1088f0
callq 0x883c
movq %r14, %rdi
movq %r15, %rsi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd08e
testb %r12b, %r12b
je 0x2eee9
decl (%r13)
jne 0x2eee9
movq %r14, %rdi
movq %r15, %rsi
callq 0xce94
movq 0x10dd730(%rip), %rdx   # 0x110c620
testq %rdx, %rdx
jne 0x2ef0e
leaq 0xa9b21(%rip), %rdi     # 0xd8a1d
pushq $0x14
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10dd712(%rip)   # 0x110c620
andq %rdx, -0x30(%rbp)
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x2ef25
movq -0x30(%rbp), %rax
incl (%rax)
movq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x246fe
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_QName_definedzesoftzy
static bool mw_mirth_name_QName_definedzesoftzy (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_name_QName* in_QName_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct std_maybe_Maybe_1 v6 = mw_mirth_name_QName_defzesoftzy(in_zaMirth_1, in_QName_2, &v5);
	int64_t v7 = (v6).tag;
	decref(MK_std_maybe_Maybe_1(v6));
	INT v8 = WRAP_I63(0LL);
	INT v9 = v8;
	INT v10 = i64_to_int(v7);
	bool v11 = int_eq(v10, v9);
	bool v12 = !v11;
	*out_zaMirth_3 = v5;
	return v12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
leaq -0x18(%rbp), %rdx
callq 0x173a0
movl %eax, %r14d
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0x2f65f
decl (%rax)
jne 0x2f65f
movq %r14, %rdi
shlq $0x30, %rdi
orq %rdx, %rdi
leaq 0xd8c67(%rip), %rsi     # 0x1082c1
callq 0xce94
movq %r14, %rdi
callq 0xd86d
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0xd759
xorb $0x1, %al
movq -0x18(%rbp), %rcx
movq %rcx, (%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_args
static struct std_list_List_1 mw_mirth_token_Token_args (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_token_Token_argszestart(in_zaMirth_1, in_Token_2, &v5);
	struct mirth_mirth_zaMirth* v7;
	bool v8 = mw_mirth_token_Token_leftzeenclosurezy(v5, v6, &v7);
	struct mirth_mirth_zaMirth* branch_zaMirth_9;
	struct std_list_List_1 branch_List_10;
	if (v8) {
		struct std_list_List_1 v11 = { .tag=std_list_List_1_Nil };
		struct std_list_List_1 v12;
		mw_std_list_List_1_buildzx(v11, &v12);
		struct mirth_mirth_zaMirth* v13;
		bool v14 = mw_mirth_token_Token_argszeendzy(v7, v6, &v13);
		bool v15 = !v14;
		uint64_t v16 = v6;
		struct mirth_mirth_zaMirth* r17 = v13;
		struct std_list_List_1 r18 = v12;
		bool v19 = v15;
		while (v19) {
			uint64_t v20 = v16;
			struct mirth_mirth_zaMirth* r21 = r17;
			struct std_list_List_1 r22 = r18;
			struct mirth_mirth_zaMirth* v23;
			uint64_t v24 = mw_mirth_token_Token_succ(r21, v20, &v23);
			struct mirth_mirth_zaMirth* v25;
			uint64_t v26 = mw_mirth_token_Token_nextzeargzeend(v23, v24, &v25);
			struct std_list_List_1 v27;
			mw_std_list_zaLister_1_pushzx(MK_mirth_token_Token(v24), r22, &v27);
			struct mirth_mirth_zaMirth* v28;
			bool v29 = mw_mirth_token_Token_argszeendzy(v25, v26, &v28);
			bool v30 = !v29;
			v19 = v30;
			r18 = v27;
			r17 = v28;
			v16 = v26;
		}
		struct std_list_List_1 v31 = mw_std_list_zaLister_1_donezx(r18);
		branch_List_10 = v31;
		branch_zaMirth_9 = r17;
	} else {
		struct std_list_List_1 v32 = { .tag=std_list_List_1_Nil };
		branch_List_10 = v32;
		branch_zaMirth_9 = v7;
	}
	*out_zaMirth_3 = branch_zaMirth_9;
	return branch_List_10;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %r15
leaq -0x68(%rbp), %rbx
movq %rbx, %rdx
callq 0x24fac
movq %rax, %r14
movq (%rbx), %rdi
leaq -0x30(%rbp), %rdx
movq %rax, %rsi
callq 0x25065
testb %al, %al
je 0x2f748
movq %r15, -0x38(%rbp)
xorl %edi, %edi
xorl %esi, %esi
callq 0xcd32
movl %eax, %r15d
movq %rdx, %r12
movq -0x30(%rbp), %rdi
leaq -0x60(%rbp), %rbx
movq %r14, %rsi
movq %rbx, %rdx
callq 0x25100
movq (%rbx), %rbx
testb $0x1, %al
jne 0x2f752
cmpq %r14, 0x10dcd06(%rip)   # 0x110c3f8
leaq 0x1(%r14), %r13
movl $0x0, %eax
cmovbeq %rax, %r13
movq %rbx, %rdi
movq %r13, %rsi
leaq -0x48(%rbp), %rdx
callq 0x251cf
movq %rax, %r14
movq %r13, %rdi
leaq 0xd969d(%rip), %rsi     # 0x108db8
movl %r15d, %edx
movq %r12, %rcx
leaq -0x58(%rbp), %r8
callq 0x8e35
movq -0x48(%rbp), %rdi
movq %r14, %rsi
leaq -0x40(%rbp), %rdx
callq 0x25100
movl -0x58(%rbp), %r15d
movq -0x50(%rbp), %r12
movq -0x40(%rbp), %rbx
jmp 0x2f6e7
xorl %eax, %eax
movq -0x30(%rbp), %rbx
xorl %edx, %edx
jmp 0x2f761
movl %r15d, %edi
movq %r12, %rsi
callq 0xcd32
movq -0x38(%rbp), %r15
movq %rbx, (%r15)
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_std_maybe_Maybe_1_unwrap_1_sp45
static VAL mw_std_maybe_Maybe_1_unwrap_1_sp45 (struct mirth_mirth_zaMirth* in_zaMirth_1, struct std_maybe_Maybe_1 in_Maybe_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	VAL branch_zux1_6;
	switch ((in_Maybe_2).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v7 = mtp_std_maybe_Maybe_1_Some(in_Maybe_2);
			branch_zux1_6 = v7;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
		case std_maybe_Maybe_1_None: {
			mw_mirth_mirth_zaMirth_paniczediagnosticszx(in_zaMirth_1);
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_zux1_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpl $0x1, %esi
jne 0x2f9e2
movq %rcx, %r14
movq %rdx, %rdi
callq 0xd491
movq %rbx, (%r14)
popq %rbx
popq %r14
popq %rbp
retq
testl %esi, %esi
jne 0x2f9ee
movq %rbx, %rdi
callq 0x19834
leaq 0xa4e18(%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_alias_Alias_arity
static INT mw_mirth_alias_Alias_arity (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Alias_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_alias_Alias_arity, in_Alias_2);
	VAL v6 = mut_get(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return value_int(v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
leaq 0x10dcc3f(%rip), %rdi   # 0x110c658
callq 0x12f88
movq %rax, %rdi
callq 0x1307d
movq %r14, (%rbx)
movq %rax, %rdi
movq %rdx, %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0xff62
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_arityzecompatiblezy
static bool mw_mirth_elab_arityzecompatiblezy (INT in_Int_1, INT in_Int_2) {
	incref(MKINT(in_Int_2));
	INT v4 = WRAP_I63(-1LL);
	bool v5 = int_eq(in_Int_2, v4);
	bool v6 = int_eq(in_Int_1, in_Int_2);
	bool v7 = (v6 || v5);
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0x2fa64
incl (%rax)
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0xd759
movl %eax, %r15d
movq %r14, %rdi
movq %rbx, %rsi
callq 0xd759
orb %r15b, %al
andb $0x1, %al
addq $0x8, %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: mtw_mirth_elab_RejectedDef_WrongArity
static struct mirth_elab_RejectedDef mtw_mirth_elab_RejectedDef_WrongArity (struct mirth_def_Def in_Def_1) {
	struct mirth_elab_RejectedDef_WrongArity* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mDef = in_Def_1;
	struct mirth_elab_RejectedDef v4 = { .tag=mirth_elab_RejectedDef_WrongArity, .ptr.WrongArity=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rsi, %rbx
movl %edi, %r14d
pushq $0x1
popq %rdi
pushq $0x18
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x2fabd
movl $0x1, (%rax)
movl %r14d, 0x8(%rax)
movq %rbx, 0x10(%rax)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0xa90e3(%rip), %rsi     # 0xd8ba7
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_word_Word_arity
static INT mw_mirth_word_Word_arity (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Word_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_word_Word_arity, in_Word_2);
	VAL v6 = mut_get(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return value_nat(v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rdi, %r14
leaq 0x10dcba0(%rip), %rdi   # 0x110c690
callq 0x12f88
movq %rax, %rdi
callq 0x1307d
movq %r14, (%rbx)
movq %rax, %rdi
movq %rdx, %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x2fb0c
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_argsze1
static uint64_t mw_mirth_token_Token_argsze1 (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	INT v6 = mw_mirth_token_Token_numzeargs(in_zaMirth_1, in_Token_2, &v5);
	INT v7 = WRAP_I63(1LL);
	INT v8 = v7;
	INT v9 = v6;
	bool v10 = int_eq(v9, v8);
	struct mirth_mirth_zaMirth* branch_zaMirth_11;
	uint64_t branch_Token_12;
	if (v10) {
		struct mirth_mirth_zaMirth* v13;
		uint64_t v14 = mw_mirth_token_Token_argszestart(v5, in_Token_2, &v13);
		struct mirth_mirth_zaMirth* v15;
		uint64_t v16 = mw_mirth_token_Token_succ(v13, v14, &v15);
		branch_Token_12 = v16;
		branch_zaMirth_11 = v15;
	} else {
		struct mirth_mirth_zaMirth* v17;
		INT v18 = mw_mirth_token_Token_numzeargs(v5, in_Token_2, &v17);
		INT v19 = WRAP_I63(1LL);
		INT v20 = v19;
		INT v21 = v18;
		bool v22 = int_lt(v21, v20);
		struct mirth_mirth_zaMirth* branch_zaMirth_23;
		uint64_t branch_Token_24;
		if (v22) {
			STR* v25;
			STRLIT(v25, "expected 1 arg, got none", 24);
			mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(v17, in_Token_2, v25);
		} else {
			STR* v28;
			STRLIT(v28, "expected 1 arg, got too many", 28);
			mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(v17, in_Token_2, v28);
		}
	}
	*out_zaMirth_3 = branch_zaMirth_11;
	return branch_Token_12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r14
movq %rsi, %rbx
leaq -0x28(%rbp), %rdx
callq 0x24ee3
pushq $0x3
popq %rsi
movq %rax, %rdi
callq 0xd759
testb %al, %al
je 0x2fbba
movq -0x28(%rbp), %rdi
leaq -0x20(%rbp), %r15
movq %rbx, %rsi
movq %r15, %rdx
callq 0x24fac
xorl %ecx, %ecx
cmpq %rax, 0x10dc85a(%rip)   # 0x110c3f8
leaq 0x1(%rax), %rax
cmovaq %rax, %rcx
movq (%r15), %rax
movq %rax, (%r14)
movq %rcx, %rax
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movabsq $0xfffffffffffc, %r14   # imm = 0xFFFFFFFFFFFC
movq -0x28(%rbp), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x24ee3
pushq $0x3
popq %rsi
movq %rax, %rdi
callq 0x89cc
testb %al, %al
je 0x2fc0a
movq 0x10dcab6(%rip), %rdx   # 0x110c6a0
testq %rdx, %rdx
jne 0x2fc2f
leaq 0xa8fe3(%rip), %rdi     # 0xd8bd9
pushq $0x18
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10dca98(%rip)   # 0x110c6a0
jmp 0x2fc2f
movq 0x10dca97(%rip), %rdx   # 0x110c6a8
testq %rdx, %rdx
jne 0x2fc2f
leaq 0xa8fd5(%rip), %rdi     # 0xd8bf2
pushq $0x1c
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10dca79(%rip)   # 0x110c6a8
andq %rdx, %r14
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x2fc42
incl (%r14)
movq -0x20(%rbp), %rdi
movq %rbx, %rsi
callq 0x246fe
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_word_Word_Newzx
static uint64_t mw_mirth_word_Word_Newzx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct std_maybe_Maybe_1 in_Maybe_3, uint64_t in_Token_4, uint64_t in_Name_5, INT in_Nat_6, struct std_maybe_Maybe_1 in_Maybe_7, struct mirth_mirth_zaMirth* *out_zaMirth_8) {
	struct mirth_mirth_zaMirth* v10;
	uint64_t v11 = mw_mirth_word_Word_Makezx(in_zaMirth_1, in_Maybe_7, in_Name_5, in_Nat_6, in_Token_2, in_Token_4, in_Maybe_3, &v10);
	struct mirth_def_Def v12 = mtw_mirth_def_Def_Word(v11);
	struct mirth_mirth_zaMirth* v13;
	mw_mirth_def_Def_register(v10, v12, &v13);
	*out_zaMirth_8 = v13;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r9, %r12
movq %r8, -0x38(%rbp)
movq %rcx, -0x40(%rbp)
movl %edx, %r15d
movq %rsi, %r14
movq %rdi, -0x30(%rbp)
movq 0x10dc306(%rip), %rbx   # 0x110c740
incq %rbx
movq %rbx, 0x10dc2fc(%rip)   # 0x110c740
movl 0x18(%rbp), %r13d
shlq $0x30, %r13
orq 0x20(%rbp), %r13
leaq 0x10dc2b9(%rip), %rdi   # 0x110c710
movq %rbx, %rsi
callq 0x12f88
leaq 0xd7e5b(%rip), %rsi     # 0x1082c1
movq %r13, %rdi
movq %rsi, %r13
movq %rax, %rdx
callq 0x1393b
leaq 0x10dbaed(%rip), %rdi   # 0x110bf68
movq %rbx, %rsi
callq 0x12f88
leaq 0xd826e(%rip), %rsi     # 0x1086f8
movq %r12, %rdi
movq %rax, %rdx
callq 0x1393b
leaq 0x10dc1f4(%rip), %rdi   # 0x110c690
movq %rbx, %rsi
callq 0x12f88
leaq 0xd7c66(%rip), %rsi     # 0x108111
movq 0x10(%rbp), %rdi
movq %rax, %rdx
callq 0x1393b
leaq 0x10db8e2(%rip), %rdi   # 0x110bda0
movq %rbx, %rsi
callq 0x12f88
leaq 0xd88eb(%rip), %r12     # 0x108db8
movq %r14, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x1393b
leaq 0x10dc23e(%rip), %rdi   # 0x110c720
movq %rbx, %rsi
callq 0x12f88
movq -0x38(%rbp), %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x1393b
leaq 0x10dc230(%rip), %rdi   # 0x110c730
movq %rbx, %rsi
callq 0x12f88
shlq $0x30, %r15
orq -0x40(%rbp), %r15
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x1393b
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x3056a
movq 0x28(%rbp), %r15
movl $0x1, (%rax)
movq %rbx, 0x8(%rax)
pushq $0x8
popq %rsi
leaq -0x48(%rbp), %r14
movq -0x30(%rbp), %rdi
movq %rax, %rdx
movq %r14, %rcx
callq 0x127fd
movq (%r14), %rax
movq %rax, (%r15)
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa872e(%rip), %rsi     # 0xd8c9f
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: mtw_mirth_mirth_PropLabel_WordQName
static struct mirth_mirth_PropLabel mtw_mirth_mirth_PropLabel_WordQName (uint64_t in_Word_1) {
	struct mirth_mirth_PropLabel_WordQName* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mWord = in_Word_1;
	struct mirth_mirth_PropLabel v4 = { .tag=mirth_mirth_PropLabel_WordQName, .ptr.WordQName=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x305b3
movl $0x1, (%rax)
movq %rbx, 0x8(%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xa8717(%rip), %rsi     # 0xd8cd1
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: mtw_mirth_mirth_PropLabel_WordType
static struct mirth_mirth_PropLabel mtw_mirth_mirth_PropLabel_WordType (uint64_t in_Word_1) {
	struct mirth_mirth_PropLabel_WordType* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mWord = in_Word_1;
	struct mirth_mirth_PropLabel v4 = { .tag=mirth_mirth_PropLabel_WordType, .ptr.WordType=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x3063e
movl $0x1, (%rax)
movq %rbx, 0x8(%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xa86be(%rip), %rsi     # 0xd8d03
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: mtw_mirth_mirth_PropLabel_WordParams
static struct mirth_mirth_PropLabel mtw_mirth_mirth_PropLabel_WordParams (uint64_t in_Word_1) {
	struct mirth_mirth_PropLabel_WordParams* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mWord = in_Word_1;
	struct mirth_mirth_PropLabel v4 = { .tag=mirth_mirth_PropLabel_WordParams, .ptr.WordParams=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x30833
movl $0x1, (%rax)
movq %rbx, 0x8(%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xa8f73(%rip), %rsi     # 0xd97ad
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: mtw_mirth_mirth_PropLabel_WordArrow
static struct mirth_mirth_PropLabel mtw_mirth_mirth_PropLabel_WordArrow (uint64_t in_Word_1) {
	struct mirth_mirth_PropLabel_WordArrow* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mWord = in_Word_1;
	struct mirth_mirth_PropLabel v4 = { .tag=mirth_mirth_PropLabel_WordArrow, .ptr.WordArrow=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x50c0
testq %rax, %rax
je 0x30d75
movl $0x1, (%rax)
movq %rbx, 0x8(%rax)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0xa8b67(%rip), %rsi     # 0xd98e3
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_token_Token_lsquarezy
static struct std_maybe_Maybe_1 mw_mirth_token_Token_lsquarezy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct std_maybe_Maybe_1 v7 = mw_mirth_token_TokenValue_lsquarezy(v6);
	*out_zaMirth_3 = v5;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdx, %rbx
leaq -0x10(%rbp), %rdx
callq 0x252f3
cmpl $0x8, %eax
jne 0x31250
movq %rdx, %rdi
callq 0x257c8
leaq 0xd7b75(%rip), %rsi     # 0x108db8
movq %rax, %rdi
callq 0x8d0c
pushq $0x1
popq %rax
jmp 0x3128b
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %sil
testb $0x3, %dl
setne %dil
orb %sil, %dil
jne 0x31287
decl (%rcx)
jne 0x31287
shlq $0x30, %rax
orq %rdx, %rax
leaq 0xd7c5a(%rip), %rsi     # 0x108ed9
movq %rax, %rdi
callq 0xce94
xorl %eax, %eax
xorl %edx, %edx
movq -0x10(%rbp), %rcx
movq %rcx, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_argsza
static struct std_list_Nest_1* mw_mirth_token_Token_argsza (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct std_list_List_1 v6 = mw_mirth_token_Token_args(in_zaMirth_1, in_Token_2, &v5);
	struct std_maybe_Maybe_1 v7 = mw_std_list_List_1_zgNestzy(v6);
	struct mirth_mirth_zaMirth* branch_zaMirth_8;
	uint64_t branch_Token_9;
	VAL branch_zux1_10;
	switch ((v7).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v11 = mtp_std_maybe_Maybe_1_Some(v7);
			branch_zux1_10 = v11;
			branch_Token_9 = in_Token_2;
			branch_zaMirth_8 = v5;
		} break;
		case std_maybe_Maybe_1_None: {
			STR* v12;
			STRLIT(v12, "expected 1 or more args, got none", 33);
			mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(v5, in_Token_2, v12);
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_3 = branch_zaMirth_8;
	return V_std_list_Nest_1(branch_zux1_10);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %r14
movq %rsi, %rbx
leaq -0x18(%rbp), %rdx
callq 0x2f684
movl %eax, %edi
movq %rdx, %rsi
callq 0x2a1b2
cmpl $0x1, %eax
jne 0x312da
movq %rdx, %rdi
callq 0xd491
movq -0x18(%rbp), %rcx
movq %rcx, (%r14)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
testl %eax, %eax
jne 0x3132d
movq 0x10db41b(%rip), %rdx   # 0x110c700
testq %rdx, %rdx
jne 0x31303
leaq 0xa798c(%rip), %rdi     # 0xd8c7d
pushq $0x21
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10db3fd(%rip)   # 0x110c700
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0x31321
incl (%rax)
movq -0x18(%rbp), %rdi
movq %rbx, %rsi
callq 0x246fe
leaq 0xa34d9(%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_std_maybe_Maybe_1_unwrap_1_sp3
static VAL mw_std_maybe_Maybe_1_unwrap_1_sp3 (struct std_maybe_Maybe_1 in_Maybe_1) {
	VAL branch_zux1_3;
	switch ((in_Maybe_1).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v4 = mtp_std_maybe_Maybe_1_Some(in_Maybe_1);
			branch_zux1_3 = v4;
		} break;
		case std_maybe_Maybe_1_None: {
			mw_std_prelude_impossiblezx();
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_zux1_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x1, %edi
jne 0x31356
movq %rsi, %rdi
popq %rbp
jmp 0xd491
testl %edi, %edi
jne 0x3135f
callq 0x2ce69
leaq 0xa34a7(%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_token_Token_runzetokens
static struct std_list_List_1 mw_mirth_token_Token_runzetokens (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct std_list_List_1 v5 = { .tag=std_list_List_1_Nil };
	struct std_list_List_1 v6;
	mw_std_list_List_1_buildzx(v5, &v6);
	struct mirth_mirth_zaMirth* v7;
	bool v8 = mw_mirth_token_Token_runzeendzy(in_zaMirth_1, in_Token_2, &v7);
	bool v9 = !v8;
	uint64_t v10 = in_Token_2;
	struct mirth_mirth_zaMirth* r11 = v7;
	struct std_list_List_1 r12 = v6;
	bool v13 = v9;
	while (v13) {
		uint64_t v14 = v10;
		struct mirth_mirth_zaMirth* r15 = r11;
		struct std_list_List_1 r16 = r12;
		struct mirth_mirth_zaMirth* v17;
		uint64_t v18 = mw_mirth_token_Token_next(r15, v14, &v17);
		struct std_list_List_1 v19;
		mw_std_list_zaLister_1_pushzx(MK_mirth_token_Token(v14), r16, &v19);
		struct mirth_mirth_zaMirth* v20;
		bool v21 = mw_mirth_token_Token_runzeendzy(v17, v18, &v20);
		bool v22 = !v21;
		v13 = v22;
		r12 = v19;
		r11 = v20;
		v10 = v18;
	}
	struct std_list_List_1 v23 = mw_std_list_zaLister_1_donezx(r12);
	*out_zaMirth_3 = r11;
	return v23;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, -0x30(%rbp)
movq %rsi, %rbx
movq %rdi, %r13
xorl %edi, %edi
xorl %esi, %esi
callq 0xcd32
movl %eax, %r14d
movq %rdx, %r15
leaq -0x58(%rbp), %r12
movq %r13, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x316aa
movq (%r12), %r12
testb $0x1, %al
jne 0x315e0
movq %r12, %rdi
movq %rbx, %rsi
leaq -0x40(%rbp), %rdx
callq 0x2598b
movq %rax, %r13
movq %rbx, %rdi
leaq 0xd7808(%rip), %rsi     # 0x108db8
movl %r14d, %edx
movq %r15, %rcx
leaq -0x50(%rbp), %r8
callq 0x8e35
movq -0x40(%rbp), %rdi
movq %r13, %rsi
leaq -0x38(%rbp), %rdx
callq 0x316aa
movl -0x50(%rbp), %r14d
movq -0x48(%rbp), %r15
movq -0x38(%rbp), %r12
movq %r13, %rbx
jmp 0x31590
movl %r14d, %edi
movq %r15, %rsi
callq 0xcd32
movq -0x30(%rbp), %rcx
movq %r12, (%rcx)
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_token_Token_arrowzy
static bool mw_mirth_token_Token_arrowzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct mirth_mirth_zaMirth* v7;
	bool v8 = mw_mirth_token_TokenValue_arrowzy(v5, v6, &v7);
	*out_zaMirth_3 = v7;
	return v8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
leaq -0x20(%rbp), %r14
movq %r14, %rdx
callq 0x252f3
movq (%r14), %r14
movl %eax, %edi
movq %rdx, %rsi
callq 0x2e190
cmpl $0x1, %eax
jne 0x3169c
movq %rdx, %rdi
callq 0xd491
leaq -0x18(%rbp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x1c901
movq %rax, %r14
movq 0x10db0ba(%rip), %rsi   # 0x110c708
testq %rsi, %rsi
jne 0x3166c
leaq 0xbc26d(%rip), %rdi     # 0xed8c7
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x10db09c(%rip)   # 0x110c708
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0x31689
incl (%rax)
movq %r14, %rdi
callq 0xd769
testl %eax, %eax
sete %al
movq -0x18(%rbp), %r14
jmp 0x3169e
xorl %eax, %eax
movq %r14, (%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_Token_runzeendzy
static bool mw_mirth_token_Token_runzeendzy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	struct mirth_token_TokenValue v6 = mw_mirth_token_Token_value(in_zaMirth_1, in_Token_2, &v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	bool branch_Bool_8;
	switch ((v6).tag) {
		case mirth_token_TokenValue_None: {
			bool v9 = true;
			branch_Bool_8 = v9;
			branch_zaMirth_7 = v5;
		} break;
		case mirth_token_TokenValue_Comma: {
			bool v10 = true;
			branch_Bool_8 = v10;
			branch_zaMirth_7 = v5;
		} break;
		case mirth_token_TokenValue_RParen: {
			uint64_t v11 = mtp_mirth_token_TokenValue_RParen(v6);
			bool v12 = true;
			branch_Bool_8 = v12;
			branch_zaMirth_7 = v5;
		} break;
		case mirth_token_TokenValue_RSquare: {
			uint64_t v13 = mtp_mirth_token_TokenValue_RSquare(v6);
			bool v14 = true;
			branch_Bool_8 = v14;
			branch_zaMirth_7 = v5;
		} break;
		case mirth_token_TokenValue_RCurly: {
			uint64_t v15 = mtp_mirth_token_TokenValue_RCurly(v6);
			bool v16 = true;
			branch_Bool_8 = v16;
			branch_zaMirth_7 = v5;
		} break;
		case mirth_token_TokenValue_RColon: {
			uint64_t v17 = mtp_mirth_token_TokenValue_RColon(v6);
			bool v18 = true;
			branch_Bool_8 = v18;
			branch_zaMirth_7 = v5;
		} break;
		default: {
			decref(MK_mirth_token_TokenValue(v6));
			bool v19 = false;
			branch_Bool_8 = v19;
			branch_zaMirth_7 = v5;
		} break;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Bool_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %rbx
leaq -0x18(%rbp), %rdx
callq 0x252f3
cmpl $0xd, %eax
ja 0x316ef
movb $0x1, %r14b
movl %eax, %ecx
leaq 0xa1116(%rip), %rsi     # 0xd27e8
movslq (%rsi,%rcx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
movq %rdx, %rdi
callq 0x2586e
jmp 0x3173d
movq %rdx, %rdi
callq 0x258c5
jmp 0x3173d
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %sil
testb $0x3, %dl
setne %dil
orb %sil, %dil
jne 0x31726
decl (%rcx)
jne 0x31726
shlq $0x30, %rax
orq %rdx, %rax
leaq 0xd77bb(%rip), %rsi     # 0x108ed9
movq %rax, %rdi
callq 0xce94
xorl %r14d, %r14d
jmp 0x3173d
movq %rdx, %rdi
callq 0x2588b
jmp 0x3173d
movq %rdx, %rdi
callq 0x258a8
movq -0x18(%rbp), %rax
movq %rax, (%rbx)
movl %r14d, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_elab_zaTypeElab_rdrop
static void mw_mirth_elab_zaTypeElab_rdrop (struct mirth_elab_zaTypeElab* in_zaTypeElab_1) {
	struct std_list_List_1 v2;
	uint64_t v3;
	bool v4;
	bool v5;
	mtp_mirth_elab_zaTypeElab_zaTypeElab(in_zaTypeElab_1, &v2, &v3, &v4, &v5);
	decref(MK_std_list_List_1(v2));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq 0x8(%rdi), %r14
movl (%rdi), %ebx
callq 0x5030
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %r14, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0x31bc5
decl (%rax)
je 0x31bca
popq %rbx
popq %r14
popq %rbp
retq
shlq $0x30, %rbx
orq %r14, %rbx
leaq 0xd66a1(%rip), %rsi     # 0x108279
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0xce94