LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_mirth_zaMirth_zaMirth
static void mtw_mirth_mirth_zaMirth_zaMirth (INT in_Nat_1, INT in_Nat_2, struct std_maybe_Maybe_1 in_Maybe_3, struct std_maybe_Maybe_1 in_Maybe_4, struct std_list_List_1 in_List_5, bool in_Bool_6, struct mirth_mirth_LexicalState* in_LexicalState_7, INT in_Int_8, struct std_list_List_1 in_zaLister_9, struct std_list_List_1 in_zaLister_10, ARR* in_zaNameHashMap_11, struct mirth_mirth_zaMirth* *out_zaMirth_12) {
	struct mirth_mirth_zaMirth* v13 = calloc(1, sizeof *v13);
	ASSERT(v13);
	v13->mzanamehashmap = in_zaNameHashMap_11;
	v13->mzapropstack = in_zaLister_10;
	v13->mzadiagnostics = in_zaLister_9;
	v13->mmainzehomezeindex = in_Int_8;
	v13->mlexicalzestate = in_LexicalState_7;
	v13->mpreferzeinlinezedefs = in_Bool_6;
	v13->mpackagezesearchzepaths = in_List_5;
	v13->mmirthzebasezepath = in_Maybe_4;
	v13->mbuiltinzy = in_Maybe_3;
	v13->mnumzewarnings = in_Nat_2;
	v13->mnumzeerrors = in_Nat_1;
	*out_zaMirth_12 = v13;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rcx, -0x78(%rbp)
movl %edx, %eax
movq -0x78(%rbp), %rdx
movl %eax, -0x6c(%rbp)
movq %rsi, %rax
movl -0x6c(%rbp), %esi
movq %rax, -0x68(%rbp)
movq %rdi, %r10
movq -0x68(%rbp), %rdi
movq 0x60(%rbp), %rax
movq 0x58(%rbp), %rax
leaq 0x48(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movq 0x30(%rbp), %rcx
movq 0x28(%rbp), %rax
movb 0x20(%rbp), %al
leaq 0x10(%rbp), %r11
movq %r11, -0x50(%rbp)
movq %r10, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl %r8d, -0x30(%rbp)
movq %r9, -0x28(%rbp)
movq %rcx, -0x38(%rbp)
andb $0x1, %al
movb %al, -0x39(%rbp)
movl $0x1, %edi
movl $0x80, %esi
callq 0x50c0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x3a6d8
movl $0x2, %edi
leaq 0x31afe3(%rip), %rsi    # 0x35569d
movl $0x32, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x3a6da
movq -0x50(%rbp), %rcx
movq -0x58(%rbp), %rdx
movq -0x60(%rbp), %rsi
movq 0x58(%rbp), %rdi
movq -0x48(%rbp), %rax
movq %rdi, 0x78(%rax)
movq -0x48(%rbp), %rax
movq (%rsi), %rdi
movq %rdi, 0x68(%rax)
movq 0x8(%rsi), %rsi
movq %rsi, 0x70(%rax)
movq -0x48(%rbp), %rax
movq (%rdx), %rsi
movq %rsi, 0x58(%rax)
movq 0x8(%rdx), %rdx
movq %rdx, 0x60(%rax)
movq -0x48(%rbp), %rax
movq -0x38(%rbp), %rdx
movq %rdx, 0x50(%rax)
movq 0x28(%rbp), %rdx
movq -0x48(%rbp), %rax
movq %rdx, 0x48(%rax)
movb -0x39(%rbp), %dl
movq -0x48(%rbp), %rax
andb $0x1, %dl
movb %dl, 0x40(%rax)
movq -0x48(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, 0x30(%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x38(%rax)
movq -0x48(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x28(%rax)
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x48(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rax
movq -0x8(%rbp), %rcx
movq %rcx, (%rax)
movq -0x48(%rbp), %rcx
movq 0x60(%rbp), %rax
movq %rcx, (%rax)
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_mirth_zaMirth_builtinzx
static void mw_mirth_mirth_zaMirth_builtinzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_Builtin* in_Builtin_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct std_maybe_Maybe_1 v4 = mtw_std_maybe_Maybe_1_Some(MK_mirth_mirth_Builtin(in_Builtin_2));
	struct std_maybe_Maybe_1 v5 = in_zaMirth_1->mbuiltinzy;
	decref(MK_std_maybe_Maybe_1(v5));
	in_zaMirth_1->mbuiltinzy = v4;
	*out_zaMirth_3 = in_zaMirth_1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x35675a(%rip), %rax    # 0x391740
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xca10
movl %eax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0x48(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x133a0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x50(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x3b0ed
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x133a0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0x3b0ed
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x133a0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x3b0ed
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x133a0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x88(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x3b0eb
movl -0x48(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x133a0
movq %rax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x127c0
jmp 0x3b0ed
jmp 0x3b0ef
movq -0x8(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_package_Package_Alloczx
static uint64_t mw_mirth_package_Package_Alloczx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	void* v4 = mbuf_mirth_package_Package_NumBuffer;
	uint64_t v5 = *(uint64_t*)v4;
	uint64_t v6 = 1ULL;
	uint64_t v7 = (v5 + v6);
	void* v8 = mbuf_mirth_package_Package_NumBuffer;
	*(uint64_t*)v8 = v7;
	uint64_t v9 = v7;
	*out_zaMirth_2 = in_zaMirth_1;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x13561a5(%rip), %rax   # 0x13945d8
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq $0x1, -0x28(%rbp)
movq -0x20(%rbp), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x135617b(%rip), %rax   # 0x13945d8
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_data_Tag_Alloczx
static uint64_t mw_mirth_data_Tag_Alloczx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	void* v4 = mbuf_mirth_data_Tag_NumBuffer;
	uint64_t v5 = *(uint64_t*)v4;
	uint64_t v6 = 1ULL;
	uint64_t v7 = (v5 + v6);
	void* v8 = mbuf_mirth_data_Tag_NumBuffer;
	*(uint64_t*)v8 = v7;
	uint64_t v9 = v7;
	*out_zaMirth_2 = in_zaMirth_1;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x135606d(%rip), %rax   # 0x13945f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq $0x1, -0x28(%rbp)
movq -0x20(%rbp), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x1356043(%rip), %rax   # 0x13945f0
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_def_Def_Package
static struct mirth_def_Def mtw_mirth_def_Def_Package (uint64_t in_Package_1) {
	struct mirth_def_Def_Package* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mPackage = in_Package_1;
	struct mirth_def_Def v4 = { .tag=mirth_def_Def_Package, .ptr.Package=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x18(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x3f2c0
movl $0x2, %edi
leaq 0x316c27(%rip), %rsi    # 0x355ec9
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x3f2c2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x2, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Hash_namezo
static struct std_maybe_Maybe_1 mw_mirth_name_Hash_namezo (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Hash_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	ARR* r5 = in_zaMirth_1->mzanamehashmap;
	ARR* v6;
	uint64_t v7 = mw_mirth_name_zaNameHashMap_namezeindexzo(r5, in_Hash_2, &v6);
	in_zaMirth_1->mzanamehashmap = v6;
	INT v8 = WRAP_I63(0LL);
	INT v9 = v8;
	INT v10 = u64_to_int(v7);
	bool v11 = int_eq(v10, v9);
	struct mirth_mirth_zaMirth* branch_zaMirth_12;
	struct std_maybe_Maybe_1 branch_Maybe_13;
	if (v11) {
		struct std_maybe_Maybe_1 v14 = { .tag=std_maybe_Maybe_1_None };
		branch_Maybe_13 = v14;
		branch_zaMirth_12 = in_zaMirth_1;
	} else {
		struct mirth_mirth_zaMirth* v15;
		uint64_t v16 = mw_mirth_name_Name_fromzeindex(in_zaMirth_1, v7, &v15);
		struct std_maybe_Maybe_1 v17 = mtw_std_maybe_Maybe_1_Some(MK_mirth_name_Name(v16));
		branch_Maybe_13 = v17;
		branch_zaMirth_12 = v15;
	}
	*out_zaMirth_3 = branch_zaMirth_12;
	return branch_Maybe_13;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x41010
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x78(%rax)
movq 0x32e085(%rip), %rax    # 0x36ea50
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x40(%rbp), %rdi
callq 0x1b520
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x194b0
andb $0x1, %al
movb %al, -0x59(%rbp)
testb $0x1, -0x59(%rbp)
je 0x40a26
leaq -0x78(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x78(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0x40a98
movq -0x18(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x80(%rbp), %rdx
callq 0x41070
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq 0x350d35(%rip), %rax    # 0x391788
movq %rax, -0xa0(%rbp)
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
callq 0xca10
movl %eax, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Name_Makezx
static uint64_t mw_mirth_name_Name_Makezx (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_Str_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v5;
	uint64_t v6 = mw_mirth_name_Name_Alloczx(in_zaMirth_1, &v5);
	void* v7 = field_mut(&mfld_mirth_name_Name_str, v6);
	mut_set(MKSTR(in_Str_2), v7);
	*out_zaMirth_3 = v5;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x43130
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
leaq 0x1353b18(%rip), %rdi   # 0x1394608
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x350650(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdx
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x431a0
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Hash_namezx
static void mw_mirth_name_Hash_namezx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Name_2, uint64_t in_Hash_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	uint64_t v5 = in_Name_2;
	ARR* r6 = in_zaMirth_1->mzanamehashmap;
	ARR* v7;
	mw_mirth_name_zaNameHashMap_namezeindexzx(r6, v5, in_Hash_3, &v7);
	in_zaMirth_1->mzanamehashmap = v7;
	*out_zaMirth_4 = in_zaMirth_1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0x43280
movq -0x38(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x78(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_prelude_unsafe_1_sp9
static enum std_byte_Byte mw_std_prelude_unsafe_1_sp9 (void* in_Ptr_1) {
	uint8_t v3 = *(uint8_t*)in_Ptr_1;
	uint64_t v4 = (uint64_t)(v3);
	INT v5 = u64_to_int(v4);
	int64_t v6 = int_to_i64(v5);
	return ((enum std_byte_Byte)v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movb (%rax), %al
movb %al, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1b520
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0xc6c0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Name_str
static STR* mw_mirth_name_Name_str (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Name_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_name_Name_str, in_Name_2);
	VAL v6 = mut_get(v5);
	*out_zaMirth_3 = in_zaMirth_1;
	return value_str(v6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x1353979(%rip), %rdi   # 0x1394608
callq 0x40d30
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x40f30
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xb980
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mut_get
static VAL mut_get (void* mut) {
    EXPECT(mut, "invalid pointer in prim-mut-get");
    VAL v = *(VAL*)mut;
    EXPECT(v.tag, "tried to read uninitialized value");
    incref(v);
    return v;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x40f6d
movl $0x2, %edi
leaq 0x31495c(%rip), %rsi    # 0x3558ab
movl $0x20, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x40f6f
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x40fb3
movl $0x2, %edi
leaq 0x314937(%rip), %rsi    # 0x3558cc
movl $0x22, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x40fb5
jmp 0x40fb7
movq -0x8(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x40ffc
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x10(%rbp), %rax
cmpq $0x0, %rax
je 0x40ffc
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x40ffc
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x40ffe
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_zaNameHashMap_namezeindexzo
static uint64_t mw_mirth_name_zaNameHashMap_namezeindexzo (ARR* in_zaNameHashMap_1, uint64_t in_Hash_2, ARR* *out_zaNameHashMap_3) {
	ARR* v5;
	INT v6 = mw_mirth_name_zaNameHashMap_hashmapzeindex(in_zaNameHashMap_1, in_Hash_2, &v5);
	ARR* v7;
	VAL v8 = mw_std_array_zaArray_1_valuezo(v5, v6, &v7);
	*out_zaNameHashMap_3 = v7;
	return value_u64(v8);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x410f0
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x41280
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x40cd0
addq $0x40, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Name_fromzeindex
static uint64_t mw_mirth_name_Name_fromzeindex (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_U64_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = mbuf_mirth_name_Name_NumBuffer;
	uint64_t v6 = *(uint64_t*)v5;
	bool v7 = (in_U64_2 <= v6);
	struct mirth_mirth_zaMirth* branch_zaMirth_8;
	uint64_t branch_U64_9;
	if (v7) {
		branch_U64_9 = in_U64_2;
		branch_zaMirth_8 = in_zaMirth_1;
	} else {
		uint64_t v10 = 0ULL;
		branch_U64_9 = v10;
		branch_zaMirth_8 = in_zaMirth_1;
	}
	uint64_t v11 = branch_U64_9;
	*out_zaMirth_3 = branch_zaMirth_8;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x1353591(%rip), %rax   # 0x1394618
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x28(%rbp), %rax
setbe %al
andb $0x1, %al
movb %al, -0x29(%rbp)
testb $0x1, -0x29(%rbp)
je 0x410be
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x410d6
movq $0x0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x50(%rbp), %rax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_zaNameHashMap_hashmapzeindex
static INT mw_mirth_name_zaNameHashMap_hashmapzeindex (ARR* in_zaNameHashMap_1, uint64_t in_Hash_2, ARR* *out_zaNameHashMap_3) {
	INT v5 = u64_to_int(in_Hash_2);
	INT v6 = v5;
	ARR* v7;
	INT v8 = mw_std_array_zaArray_1_lenzo(in_zaNameHashMap_1, &v7);
	INT v9 = v6;
	INT v10 = v8;
	INT v11;
	INT v12 = int_divmod(v9, v10, &v11);
	INT v13 = v11;
	INT v14 = v12;
	decref(MKNAT(v14));
	*out_zaNameHashMap_3 = v7;
	return v13;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1b520
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x35170
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rsi
leaq -0x58(%rbp), %rdx
callq 0x41390
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq 0x34ff9f(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x4125a
movq -0x68(%rbp), %rax
movq %rax, -0x88(%rbp)
leaq 0x34ff73(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x80(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x88(%rbp), %rax
cmpq $0x0, %rax
je 0x4125a
movq -0x68(%rbp), %rax
movq %rax, -0x98(%rbp)
leaq 0x34ff3e(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0x90(%rbp)
movq -0x98(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x4125a
movq -0x68(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq 0x34ff10(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0xa0(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0xa8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x41258
movq -0x68(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq 0x34fed6(%rip), %rax    # 0x391110
orq $0x1, %rax
movq %rax, -0xb0(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x127c0
jmp 0x4125a
jmp 0x4125c
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_array_zaArray_1_valuezo
static VAL mw_std_array_zaArray_1_valuezo (ARR* in_zaArray_1, INT in_Nat_2, ARR* *out_zaArray_3) {
	ARR* v5 = mw_std_array_zaArray_1_freezze(in_zaArray_1);
	incref(MKARR(v5));
	VAL v6 = mw_std_prim_Array_1_get(in_Nat_2, v5);
	ARR* v7;
	mw_std_prim_Array_1_thaw(v5, &v7);
	*out_zaArray_3 = v7;
	return v6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rsi, -0x18(%rbp)
movq %rdi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rdi
callq 0x35310
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x3503b5(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x41345
movq -0x30(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x350390(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x50(%rbp), %rax
cmpq $0x0, %rax
je 0x41345
movq -0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x350365(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x41345
movq -0x30(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x350340(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x70(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x41347
movq -0x30(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x425e0
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x35360
movq -0x78(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdx
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: big_u32_shift_udivmod
static void big_u32_shift_udivmod(BIG* a, uint32_t bhead, size_t bshift, INT* q, INT* r) {
    ASSERT(bhead >= 1); ASSERT(a && (a->size > bshift));
    BIG* accum = big_alloc(a->size - bshift + 2); // quatient in accum
    accum->size = a->size - bshift;
    a = big_reserve(a, a->size); // remainder in a
    uint64_t ar = 0;
    for (size_t i = a->size - bshift; i --> 0;) {
        ar = (ar << 32) | (uint64_t)a->radix[i + bshift];
        a->radix[i+bshift] = 0;
        uint64_t rq = ar / (uint64_t)bhead;
        ar = ar % (uint64_t)bhead;
        accum->radix[i] = rq;
    }
    a->radix[bshift] = ar;
    *r = big_normalize(a);
    *q = big_normalize(accum);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
cmpl $0x1, -0xc(%rbp)
jae 0x41bbb
movl $0x2, %edi
leaq 0x313e89(%rip), %rsi    # 0x355a26
movl $0x38, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x41bbd
jmp 0x41bbf
cmpq $0x0, -0x8(%rbp)
je 0x41bd4
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq -0x18(%rbp), %rax
ja 0x41bfe
movl $0x2, %edi
leaq 0x313e7f(%rip), %rsi    # 0x355a5f
movl $0x45, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x41c00
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
subq -0x18(%rbp), %rdi
addq $0x2, %rdi
callq 0x5250
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
subq -0x18(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x1c970
movq %rax, -0x8(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
subq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $-0x1, %rcx
movq %rcx, -0x40(%rbp)
cmpq $0x0, %rax
jbe 0x41cd6
movq -0x38(%rbp), %rax
shlq $0x20, %rax
movq -0x8(%rbp), %rcx
movq -0x40(%rbp), %rdx
addq -0x18(%rbp), %rdx
movl 0x18(%rcx,%rdx,4), %ecx
orq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq -0x40(%rbp), %rcx
addq -0x18(%rbp), %rcx
movl $0x0, 0x18(%rax,%rcx,4)
movq -0x38(%rbp), %rax
movl -0xc(%rbp), %ecx
xorl %edx, %edx
divq %rcx
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rax
movl -0xc(%rbp), %ecx
xorl %edx, %edx
divq %rcx
movq %rdx, -0x38(%rbp)
movq -0x48(%rbp), %rax
movl %eax, %edx
movq -0x30(%rbp), %rax
movq -0x40(%rbp), %rcx
movl %edx, 0x18(%rax,%rcx,4)
jmp 0x41c5a
movq -0x38(%rbp), %rax
movl %eax, %edx
movq -0x8(%rbp), %rax
movq -0x18(%rbp), %rcx
movl %edx, 0x18(%rax,%rcx,4)
movq -0x28(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rdi
callq 0x1cad0
movq %rax, %rcx
movq -0x68(%rbp), %rax
movq %rcx, -0x50(%rbp)
movq -0x50(%rbp), %rcx
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x30(%rbp), %rdi
callq 0x1cad0
movq %rax, %rcx
movq -0x60(%rbp), %rax
movq %rcx, -0x58(%rbp)
movq -0x58(%rbp), %rcx
movq %rcx, (%rax)
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: big_u64_add_at_accum_
static void big_u64_add_at_accum_(BIG* accum, uint64_t b, size_t shift) {
    for(size_t i = shift; b && (i < accum->size); i++) {
        uint32_t ar = accum->radix[i];
        uint32_t br = LO_RADIX(b);
        accum->radix[i] = ar + br;
        b = HI_RADIX(b);
        if (ar > UINT32_MAX - br)
            b++;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x29(%rbp)
je 0x41ff6
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x10(%rcx), %rax
setb %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0x41fff
jmp 0x42063
movq -0x8(%rbp), %rax
movq -0x20(%rbp), %rcx
movl 0x18(%rax,%rcx,4), %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %edx
addl -0x28(%rbp), %edx
movq -0x8(%rbp), %rax
movq -0x20(%rbp), %rcx
movl %edx, 0x18(%rax,%rcx,4)
movq -0x10(%rbp), %rax
shrq $0x20, %rax
movl %eax, %eax
movq %rax, -0x10(%rbp)
movl -0x24(%rbp), %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
subl -0x28(%rbp), %ecx
cmpl %ecx, %eax
jbe 0x42050
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x42052
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x41fd8
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: big_get_u32_
static uint32_t big_get_u32_ (BIG* a, size_t i) {
    if (i >= a->size) {
        return SIGN_RADIX(a);
    } else {
        return a->radix[i];
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x42576
movq -0x10(%rbp), %rax
movq -0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq $0x1, %rcx
movl 0x18(%rax,%rcx,4), %edx
andl $0x80000000, %edx       # imm = 0x80000000
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x42585
movq -0x10(%rbp), %rax
movq -0x18(%rbp), %rcx
movl 0x18(%rax,%rcx,4), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: arr_get
static VAL arr_get(ARR* arr, USIZE i) {
    ASSERT(arr);
    ASSERT(i < arr->size);
    VAL v = val_peek_(arr,i);
    incref(v);
    decref(MKARR(arr));
    return v;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x42e81
movl $0x2, %edi
leaq 0x312dfa(%rip), %rsi    # 0x355c5d
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x42e83
jmp 0x42e85
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x42ebd
movl $0x2, %edi
leaq 0x312df0(%rip), %rsi    # 0x355c8f
movl $0x3b, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x42ebf
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x35630
movq %rax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x8(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x42f19
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x10(%rbp), %rax
cmpq $0x0, %rax
je 0x42f19
movq -0x10(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x42f19
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x42f1b
jmp 0x42f1d
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x34e73c(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x42fed
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x34e713(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x42fed
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x34e6e8(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x42fed
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x34e6c3(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x42feb
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x34e692(%rip), %rax    # 0x391668
orq $0x1, %rax
movq %rax, -0x68(%rbp)
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x127c0
jmp 0x42fed
jmp 0x42fef
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rdx
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Name_Alloczx
static uint64_t mw_mirth_name_Name_Alloczx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	void* v4 = mbuf_mirth_name_Name_NumBuffer;
	uint64_t v5 = *(uint64_t*)v4;
	uint64_t v6 = 1ULL;
	uint64_t v7 = (v5 + v6);
	void* v8 = mbuf_mirth_name_Name_NumBuffer;
	*(uint64_t*)v8 = v7;
	uint64_t v9 = v7;
	*out_zaMirth_2 = in_zaMirth_1;
	return v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x13514d5(%rip), %rax   # 0x1394618
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq $0x1, -0x28(%rbp)
movq -0x20(%rbp), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x13514ab(%rip), %rax   # 0x1394618
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mut_set
static void mut_set (VAL newval, void* mut) {
    EXPECT(mut, "invalid pointer in prim-mut-set");
    VAL oldval = *(VAL*)mut;
    *(VAL*)mut = newval;
    if (oldval.tag) {
        decref(oldval);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x431e5
movl $0x2, %edi
leaq 0x312b0a(%rip), %rsi    # 0x355cd1
movl $0x20, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x431e7
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, (%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x8(%rax)
cmpq $0x0, -0x20(%rbp)
je 0x43273
jmp 0x43216
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x4326f
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x28(%rbp), %rax
cmpq $0x0, %rax
je 0x4326f
movq -0x28(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x4326f
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x28(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x4326d
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x127c0
jmp 0x4326f
jmp 0x43271
jmp 0x43273
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_zaNameHashMap_namezeindexzx
static void mw_mirth_name_zaNameHashMap_namezeindexzx (ARR* in_zaNameHashMap_1, uint64_t in_U64_2, uint64_t in_Hash_3, ARR* *out_zaNameHashMap_4) {
	ARR* v5;
	INT v6 = mw_mirth_name_zaNameHashMap_hashmapzeindex(in_zaNameHashMap_1, in_Hash_3, &v5);
	ARR* v7;
	mw_std_array_zaArray_1_valuezx(v5, MKU64(in_U64_2), v6, &v7);
	*out_zaNameHashMap_4 = v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x410f0
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x34e1b0(%rip), %rax    # 0x391470
movq %rax, -0x40(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq -0x30(%rbp), %rcx
leaq -0x38(%rbp), %r8
callq 0x432f0
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: arr_set
static ARR* arr_set(ARR* arr, USIZE i, VAL v) {
    ASSERT(arr);
    ASSERT(i < arr->size);
    ASSERT(arr->tag == v.tag);
    arr = arr_thaw(arr);
    if (TAG_HAS_REFS(v.tag)) {
        VAL u = val_peek_(arr,i);
        val_poke_(arr,i,v);
        decref(u);
    } else {
        val_poke_(arr,i,v);
    }
    return arr;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdx, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x43c09
movl $0x2, %edi
leaq 0x312107(%rip), %rsi    # 0x355cf2
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43c0b
jmp 0x43c0d
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x43c45
movl $0x2, %edi
leaq 0x3120fd(%rip), %rsi    # 0x355d24
movl $0x3b, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43c47
jmp 0x43c49
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
cmpq -0x8(%rbp), %rax
je 0x43c81
movl $0x2, %edi
leaq 0x3120fd(%rip), %rsi    # 0x355d60
movl $0x3f, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43c83
movq -0x18(%rbp), %rdi
callq 0x35840
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x43d29
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x35630
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
callq 0x43d50
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x43d25
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x30(%rbp), %rax
cmpq $0x0, %rax
je 0x43d25
movq -0x30(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x43d25
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x30(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x43d23
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x127c0
jmp 0x43d25
jmp 0x43d27
jmp 0x43d3e
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
callq 0x43d50
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: val_poke_
static void val_poke_(ARR* arr, USIZE i, VAL v) {
    ASSERT(arr);
    ASSERT(arr->refs == 1);
    ASSERT(arr->tag == v.tag);
    ASSERT(i < arr->size);
    const TYPE* ty = PTRPTR(arr->tag);
    ASSERT(ty && ty->poke_);
    ty->poke_(arr, i, v);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdx, -0x10(%rbp)
movq %rcx, -0x8(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x43d99
movl $0x2, %edi
leaq 0x312025(%rip), %rsi    # 0x355da0
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43d9b
jmp 0x43d9d
movq -0x18(%rbp), %rax
cmpl $0x1, (%rax)
je 0x43dd0
movl $0x2, %edi
leaq 0x312020(%rip), %rsi    # 0x355dd2
movl $0x3c, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43dd2
jmp 0x43dd4
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
cmpq -0x8(%rbp), %rax
je 0x43e0c
movl $0x2, %edi
leaq 0x312021(%rip), %rsi    # 0x355e0f
movl $0x3f, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43e0e
jmp 0x43e10
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jb 0x43e48
movl $0x2, %edi
leaq 0x312025(%rip), %rsi    # 0x355e4f
movl $0x3b, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43e4a
movq -0x18(%rbp), %rcx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq 0x20(%rcx), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x43e72
movq -0x28(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x43e9c
movl $0x2, %edi
leaq 0x31200d(%rip), %rsi    # 0x355e8b
movl $0x3d, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x43e9e
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
callq *%rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_QName_undefinedzesoftzy
static bool mw_mirth_name_QName_undefinedzesoftzy (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);
	*out_zaMirth_3 = v5;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x20(%rbp), %rdx
callq 0x57b20
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movl -0x30(%rbp), %eax
movq %rax, -0x38(%rbp)
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x445dd
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
cmpq $0x0, %rax
je 0x445dd
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x445dd
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x445db
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x133a0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x127c0
jmp 0x445dd
jmp 0x445df
movq 0x32a46a(%rip), %rax    # 0x36ea50
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x38(%rbp), %rdi
callq 0x1a290
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
movq -0x98(%rbp), %rsi
callq 0x194b0
andb $0x1, %al
movb %al, -0xa1(%rbp)
movq -0x20(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movb -0xa1(%rbp), %al
andb $0x1, %al
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_name_Name_defs
static struct std_list_List_1 mw_mirth_name_Name_defs (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Name_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_name_Name_defs, in_Name_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	struct std_list_List_1 branch_List_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_List_8 = V_std_list_List_1(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		struct std_list_List_1 v10 = { .tag=std_list_List_1_Nil };
		incref(MK_std_list_List_1(v10));
		mut_set(MK_std_list_List_1(v10), v5);
		branch_List_8 = v10;
		branch_zaMirth_7 = in_zaMirth_1;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_List_8;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x13501e6(%rip), %rdi   # 0x13950d8
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x45e40
andb $0x1, %al
movb %al, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
je 0x44f51
movq -0x30(%rbp), %rdi
callq 0x40f30
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x12c80
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x45060
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x78(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x45015
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x90(%rbp), %rax
cmpq $0x0, %rax
je 0x45015
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movq -0xa0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x45015
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0xb0(%rbp)
movq %rdx, -0xa8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xb0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x45017
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x12780
movq %rax, -0xc0(%rbp)
movq %rdx, -0xb8(%rbp)
movq -0x30(%rbp), %rdx
movq -0xc0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x431a0
movq -0x70(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mirth_def_Def_free
void mirth_def_Def_free (VAL v) {
	struct mirth_def_Def self = V_mirth_def_Def(v);
	switch (self.tag) {
		case mirth_def_Def_Alias: {
			free(self.ptr.Alias);
		} break;
		case mirth_def_Def_Module: {
			free(self.ptr.Module);
		} break;
		case mirth_def_Def_Package: {
			free(self.ptr.Package);
		} break;
		case mirth_def_Def_Data: {
			free(self.ptr.Data);
		} break;
		case mirth_def_Def_Table: {
			free(self.ptr.Table);
		} break;
		case mirth_def_Def_Type: {
			free(self.ptr.Type);
		} break;
		case mirth_def_Def_Tag: {
			free(self.ptr.Tag);
		} break;
		case mirth_def_Def_Prim: {
			free(self.ptr.Prim);
		} break;
		case mirth_def_Def_Word: {
			free(self.ptr.Word);
		} break;
		case mirth_def_Def_Buffer: {
			free(self.ptr.Buffer);
		} break;
		case mirth_def_Def_External: {
			free(self.ptr.External);
		} break;
		case mirth_def_Def_Field: {
			free(self.ptr.Field);
		} break;
		case mirth_def_Def_Macro: {
			free(self.ptr.Macro);
		} break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0x452c0
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x20(%rbp), %eax
movq %rax, -0x28(%rbp)
subq $0xc, %rax
ja 0x451c9
movq -0x28(%rbp), %rax
leaq 0x30c0f0(%rip), %rcx    # 0x351220
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x451c9
movq -0x18(%rbp), %rdi
callq 0x5030
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_def_Def_Alias
static uint64_t mtp_mirth_def_Def_Alias (struct mirth_def_Def in_Def_1) {
	struct mirth_def_Def_Alias v3 = *in_Def_1.ptr.Alias;
	if (!--(in_Def_1.ptr.Alias->refs)) {
		free(in_Def_1.ptr.Alias);
	} else {
	}
	return v3.mAlias;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x4533d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x4533f
jmp 0x4533f
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_alias_Alias_qnamezesoft
static struct std_maybe_Maybe_1 mw_mirth_alias_Alias_qnamezesoft (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_ztqname, in_Alias_2);
	struct std_maybe_Maybe_1 v6 = mw_std_prelude_zozy(v5);
	struct std_maybe_Maybe_1 v7 = mw_std_maybe_Maybe_1_bind_1_sp8(v6);
	*out_zaMirth_3 = in_zaMirth_1;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x134f2e1(%rip), %rdi   # 0x1394650
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x45d00
movl %eax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movl -0x40(%rbp), %edi
movq -0x38(%rbp), %rsi
callq 0x45d90
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_def_Def_Package
static uint64_t mtp_mirth_def_Def_Package (struct mirth_def_Def in_Def_1) {
	struct mirth_def_Def_Package v3 = *in_Def_1.ptr.Package;
	if (!--(in_Def_1.ptr.Package->refs)) {
		free(in_Def_1.ptr.Package);
	} else {
	}
	return v3.mPackage;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x453fd
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x453ff
jmp 0x453ff
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)