LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mirth_name_DName_free
static void mirth_name_DName_free (VAL vself) {
	ASSERT(vself.tag == TAG_mirth_name_DName);
	struct mirth_name_DName* self = vself.data.ptr;
	decref(MK_std_maybe_Maybe_1(self->mMaybe));
	decref(MK_std_list_Nest_1(self->mNest));
	free(self);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
leaq 0x3182aa(%rip), %rcx    # 0x391ed8
orq $0x1, %rcx
cmpq %rcx, %rax
je 0x79c61
movl $0x2, %edi
leaq 0x2ddddc(%rip), %rsi    # 0x357a1f
movl $0x50, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x79c63
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rax), %rsi
callq 0x133a0
movq %rax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x79d40
movq -0x18(%rbp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rax), %rsi
callq 0x133a0
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
cmpq $0x0, %rax
je 0x79d40
movq -0x18(%rbp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rax), %rsi
callq 0x133a0
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x79d40
movq -0x18(%rbp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rax), %rsi
callq 0x133a0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x79d3e
movq -0x18(%rbp), %rax
movl 0x8(%rax), %edi
movq 0x10(%rax), %rsi
callq 0x133a0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x127c0
jmp 0x79d40
jmp 0x79d42
jmp 0x79d44
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x78(%rbp)
leaq 0x3181c9(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x79e50
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x88(%rbp)
leaq 0x318199(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0x80(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x88(%rbp), %rax
cmpq $0x0, %rax
je 0x79e50
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
leaq 0x318160(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0x90(%rbp)
movq -0x98(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x79e50
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xa8(%rbp)
leaq 0x31812e(%rip), %rax    # 0x391f20
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 0x79e4e
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xb8(%rbp)
leaq 0x3180f0(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0xb0(%rbp)
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x127c0
jmp 0x79e50
jmp 0x79e52
movq -0x18(%rbp), %rdi
callq 0x5030
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: std_list_Nest_1_free
static void std_list_Nest_1_free (VAL vself) {
	ASSERT(vself.tag == TAG_std_list_Nest_1);
	struct std_list_Nest_1* self = vself.data.ptr;
	decref(self->mhead);
	decref(MK_std_list_List_1(self->mtail));
	free(self);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
leaq 0x317fa5(%rip), %rcx    # 0x391f20
orq $0x1, %rcx
cmpq %rcx, %rax
je 0x79fae
movl $0x2, %edi
leaq 0x2ddae5(%rip), %rsi    # 0x357a75
movl $0x4e, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x79fb0
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x7a025
movq -0x18(%rbp), %rcx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq 0x8(%rcx), %rax
cmpq $0x0, %rax
je 0x7a025
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x7a025
movq -0x18(%rbp), %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq 0x8(%rax), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x7a023
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
movq 0x10(%rax), %rsi
callq 0x127c0
jmp 0x7a025
jmp 0x7a027
jmp 0x7a029
movq -0x18(%rbp), %rax
movl 0x18(%rax), %edi
movq 0x20(%rax), %rsi
callq 0x12780
movq %rax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x7a0fe
movq -0x18(%rbp), %rax
movl 0x18(%rax), %edi
movq 0x20(%rax), %rsi
callq 0x12780
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
cmpq $0x0, %rax
je 0x7a0fe
movq -0x18(%rbp), %rax
movl 0x18(%rax), %edi
movq 0x20(%rax), %rsi
callq 0x12780
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x7a0fe
movq -0x18(%rbp), %rax
movl 0x18(%rax), %edi
movq 0x20(%rax), %rsi
callq 0x12780
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x7a0fc
movq -0x18(%rbp), %rax
movl 0x18(%rax), %edi
movq 0x20(%rax), %rsi
callq 0x12780
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x127c0
jmp 0x7a0fe
jmp 0x7a100
movq -0x18(%rbp), %rdi
callq 0x5030
addq $0x70, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_token_TokenValue_LParen
static uint64_t mtp_mirth_token_TokenValue_LParen (struct mirth_token_TokenValue in_TokenValue_1) {
	struct mirth_token_TokenValue_LParen v3 = *in_TokenValue_1.ptr.LParen;
	if (!--(in_TokenValue_1.ptr.LParen->refs)) {
		free(in_TokenValue_1.ptr.LParen);
	} else {
	}
	return v3.mToken;
}

// 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 0x7ab6d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x7ab6f
jmp 0x7ab6f
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_token_TokenValue_commazy
static bool mw_mirth_token_TokenValue_commazy (struct mirth_token_TokenValue in_TokenValue_1) {
	bool branch_Bool_3;
	switch ((in_TokenValue_1).tag) {
		case mirth_token_TokenValue_Comma: {
			bool v4 = true;
			branch_Bool_3 = v4;
		} break;
		default: {
			decref(MK_mirth_token_TokenValue(in_TokenValue_1));
			bool v5 = false;
			branch_Bool_3 = v5;
		} break;
	}
	return branch_Bool_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl -0x10(%rbp), %eax
subl $0x1, %eax
jne 0x7af2a
jmp 0x7af19
movb $0x1, -0x12(%rbp)
movb -0x12(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
jmp 0x7affb
jmp 0x7af2c
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x20(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x7afed
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x38(%rbp), %rax
cmpq $0x0, %rax
je 0x7afed
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x7afed
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x7afeb
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x79bd0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x127c0
jmp 0x7afed
jmp 0x7afef
movb $0x0, -0x69(%rbp)
movb -0x69(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: std_either_Either_2_free
void std_either_Either_2_free (VAL v) {
	struct std_either_Either_2 self = V_std_either_Either_2(v);
	switch (self.tag) {
		case std_either_Either_2_Left: {
			decref(self.ptr.Left->m0);
			free(self.ptr.Left);
		} break;
		case std_either_Either_2_Right: {
			decref(self.ptr.Right->m0);
			free(self.ptr.Right);
		} 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 0x7bd50
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0x7bb61
jmp 0x7bb50
movl -0x24(%rbp), %eax
subl $0x1, %eax
je 0x7bbdd
jmp 0x7bc57
jmp 0x7bb63
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x7bbd0
movq -0x18(%rbp), %rcx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq 0x8(%rcx), %rax
cmpq $0x0, %rax
je 0x7bbd0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x7bbd0
movq -0x18(%rbp), %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq 0x8(%rax), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x7bbce
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
movq 0x10(%rax), %rsi
callq 0x127c0
jmp 0x7bbd0
jmp 0x7bbd2
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x7bc57
jmp 0x7bbdf
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x7bc4c
movq -0x18(%rbp), %rcx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq 0x8(%rcx), %rax
cmpq $0x0, %rax
je 0x7bc4c
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x7bc4c
movq -0x18(%rbp), %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq 0x8(%rax), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x7bc4a
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
movq 0x10(%rax), %rsi
callq 0x127c0
jmp 0x7bc4c
jmp 0x7bc4e
movq -0x18(%rbp), %rdi
callq 0x5030
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_def_Def_aszedefzenamespacezy
static struct std_maybe_Maybe_1 mw_mirth_def_Def_aszedefzenamespacezy (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_def_Def in_Def_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	struct std_maybe_Maybe_1 branch_Maybe_6;
	switch ((in_Def_2).tag) {
		case mirth_def_Def_Alias: {
			uint64_t v7 = mtp_mirth_def_Def_Alias(in_Def_2);
			void* v8 = field_mut(&mfld_mirth_alias_Alias_zttarget, v7);
			struct mirth_mirth_zaMirth* v9;
			struct std_maybe_Maybe_1 v10 = mw_mirth_mirth_Prop_1_tryzeforcezx(in_zaMirth_1, v8, &v9);
			struct mirth_mirth_zaMirth* v11;
			struct std_maybe_Maybe_1 v12 = mw_std_maybe_Maybe_1_bind_1_sp16(v9, v10, &v11);
			branch_Maybe_6 = v12;
			branch_zaMirth_5 = v11;
		} break;
		case mirth_def_Def_Word: {
			uint64_t v13 = mtp_mirth_def_Def_Word(in_Def_2);
			struct std_maybe_Maybe_1 v14 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_6 = v14;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
		default: {
			struct mirth_mirth_zaMirth* v15;
			struct std_maybe_Maybe_1 v16 = mw_mirth_def_Def_aszenamespacezy(in_zaMirth_1, in_Def_2, &v15);
			branch_Maybe_6 = v16;
			branch_zaMirth_5 = v15;
		} break;
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_Maybe_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0xac(%rbp)
testl %eax, %eax
je 0x7d3c9
jmp 0x7d3b9
movl -0xac(%rbp), %eax
subl $0x8, %eax
je 0x7d43d
jmp 0x7d480
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x45300
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rsi
leaq 0x1318174(%rip), %rdi   # 0x1395558
callq 0x40d30
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rdi
movq -0x48(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x472c0
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movl -0x60(%rbp), %esi
movq -0x58(%rbp), %rdx
leaq -0x68(%rbp), %rcx
callq 0x84b90
movl %eax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x7d4c5
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x459e0
movq %rax, -0x80(%rbp)
leaq -0x90(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x90(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x7d4c5
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
leaq -0x98(%rbp), %rcx
callq 0x85a30
movl %eax, -0xa8(%rbp)
movq %rdx, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xb0, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_elab_RejectedDef_WrongSort
static struct mirth_elab_RejectedDef mtw_mirth_elab_RejectedDef_WrongSort (struct mirth_def_Def in_Def_1) {
	struct mirth_elab_RejectedDef_WrongSort* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mDef = in_Def_1;
	struct mirth_elab_RejectedDef v4 = { .tag=mirth_elab_RejectedDef_WrongSort, .ptr.WrongSort=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x7d533
movl $0x2, %edi
leaq 0x2da730(%rip), %rsi    # 0x357c45
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x7d535
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x0, -0x10(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_list_List_1_cat
static struct std_list_List_1 mw_std_list_List_1_cat (struct std_list_List_1 in_List_1, struct std_list_List_1 in_List_2) {
	struct std_list_List_1 branch_List_4;
	switch ((in_List_2).tag) {
		case std_list_List_1_Nil: {
			branch_List_4 = in_List_1;
		} break;
		default: {
			struct std_list_List_1 v5 = mw_std_list_List_1_reverse(in_List_1);
			struct std_list_List_1 v6 = mw_std_list_List_1_for_1_sp5(in_List_2, v5);
			branch_List_4 = v6;
		} break;
	}
	return branch_List_4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x30(%rbp)
movq %rcx, -0x28(%rbp)
movl -0x30(%rbp), %eax
testl %eax, %eax
jne 0x7d5e1
jmp 0x7d5cf
movq -0x20(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x7d61e
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x122b0
movl %eax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
movl -0x40(%rbp), %edx
movq -0x38(%rbp), %rcx
callq 0x122f0
movl %eax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_maybe_Maybe_1_bind_1_sp16
static struct std_maybe_Maybe_1 mw_std_maybe_Maybe_1_bind_1_sp16 (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;
	struct std_maybe_Maybe_1 branch_Maybe_6;
	switch ((in_Maybe_2).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v7 = mtp_std_maybe_Maybe_1_Some(in_Maybe_2);
			struct mirth_mirth_zaMirth* v8;
			struct std_maybe_Maybe_1 v9 = mw_mirth_def_Def_aszedefzenamespacezy(in_zaMirth_1, V_mirth_def_Def(v7), &v8);
			branch_Maybe_6 = v9;
			branch_zaMirth_5 = v8;
		} break;
		case std_maybe_Maybe_1_None: {
			struct std_maybe_Maybe_1 v10 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_6 = v10;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_Maybe_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x84(%rbp)
testl %eax, %eax
je 0x84c35
jmp 0x84bb9
movl -0x84(%rbp), %eax
subl $0x1, %eax
jne 0x84c5f
jmp 0x84bca
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x174a0
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x452c0
movq -0x90(%rbp), %rdi
movl %eax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movl -0x70(%rbp), %esi
movq -0x68(%rbp), %rdx
leaq -0x50(%rbp), %rcx
callq 0x7d390
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 -0x50(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x84c78
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x84c78
leaq 0x2cf21b(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_token_namezfdnamezepenultimatezenamezy
static struct std_maybe_Maybe_1 mw_mirth_token_namezfdnamezepenultimatezenamezy (struct std_either_Either_2 in_Either_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_Either_1).tag) {
		case std_either_Either_2_Left: {
			VAL v4 = mtp_std_either_Either_2_Left(in_Either_1);
			decref(v4);
			struct std_maybe_Maybe_1 v5 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_3 = v5;
		} break;
		case std_either_Either_2_Right: {
			VAL v6 = mtp_std_either_Either_2_Right(in_Either_1);
			struct std_maybe_Maybe_1 v7 = mw_mirth_name_DName_penultimatezenamezy(V_mirth_name_DName(v6));
			branch_Maybe_3 = v7;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_Maybe_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x64(%rbp)
testl %eax, %eax
je 0x84ccc
jmp 0x84cbb
movl -0x64(%rbp), %eax
subl $0x1, %eax
je 0x84d5d
jmp 0x84d93
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x74840
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x84d39
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x30(%rbp), %rax
cmpq $0x0, %rax
je 0x84d39
movq -0x30(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x84d39
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x30(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x84d37
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x127c0
jmp 0x84d39
jmp 0x84d3b
leaq -0x40(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x40(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x84dac
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x748f0
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
callq 0x84f70
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x84dac
leaq 0x2cf0e7(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movl -0x10(%rbp), %eax
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_token_namezfdnamezelastzename
static uint64_t mw_mirth_token_namezfdnamezelastzename (struct std_either_Either_2 in_Either_1) {
	uint64_t branch_Name_3;
	switch ((in_Either_1).tag) {
		case std_either_Either_2_Left: {
			VAL v4 = mtp_std_either_Either_2_Left(in_Either_1);
			branch_Name_3 = V_mirth_name_Name(v4);
		} break;
		case std_either_Either_2_Right: {
			VAL v5 = mtp_std_either_Either_2_Right(in_Either_1);
			uint64_t v6 = mw_mirth_name_DName_lastzename(V_mirth_name_DName(v5));
			branch_Name_3 = v6;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_Name_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x44(%rbp)
testl %eax, %eax
je 0x84de5
jmp 0x84ddb
movl -0x44(%rbp), %eax
subl $0x1, %eax
je 0x84e03
jmp 0x84e2e
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x74840
movq %rax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x84e47
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x748f0
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movq -0x38(%rbp), %rdi
callq 0x85900
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x84e47
leaq 0x2cf04c(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movq -0x18(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_elab_zaResolveDef_zaResolveDef
static void mtw_mirth_elab_zaResolveDef_zaResolveDef (STR* in_Str_1, uint64_t in_Token_2, struct std_either_Either_2 in_Either_3, struct std_list_List_1 in_List_4, struct std_list_List_1 in_List_5, bool in_Bool_6, bool in_Bool_7, struct mirth_elab_zaResolveDef* *out_zaResolveDef_8) {
	struct mirth_elab_zaResolveDef* v9 = calloc(1, sizeof *v9);
	ASSERT(v9);
	v9->mreportzeambiguouszeaszewarning = in_Bool_7;
	v9->mignorezelastzename = in_Bool_6;
	v9->mrejected = in_List_5;
	v9->mcandidates = in_List_4;
	v9->mnamezfdname = in_Either_3;
	v9->mtoken = in_Token_2;
	v9->msort = in_Str_1;
	*out_zaResolveDef_8 = v9;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rcx, -0x50(%rbp)
movl %edx, %r10d
movq -0x50(%rbp), %rdx
movq 0x30(%rbp), %rax
movb 0x28(%rbp), %al
movb 0x20(%rbp), %cl
leaq 0x10(%rbp), %r11
movq %r11, -0x48(%rbp)
movl %r10d, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl %r8d, -0x20(%rbp)
movq %r9, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
andb $0x1, %cl
movb %cl, -0x31(%rbp)
andb $0x1, %al
movb %al, -0x32(%rbp)
movl $0x1, %edi
movl $0x48, %esi
callq 0x50c0
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0x84eec
movl $0x2, %edi
leaq 0x2d2c63(%rip), %rsi    # 0x357b31
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x84eee
movq -0x48(%rbp), %rcx
movb -0x32(%rbp), %dl
movq -0x40(%rbp), %rax
andb $0x1, %dl
movb %dl, 0x41(%rax)
movb -0x31(%rbp), %dl
movq -0x40(%rbp), %rax
andb $0x1, %dl
movb %dl, 0x40(%rax)
movq -0x40(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, 0x30(%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x38(%rax)
movq -0x40(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x18(%rbp), %rcx
movq %rcx, 0x28(%rax)
movq -0x40(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rcx
movq 0x30(%rbp), %rax
movq %rcx, (%rax)
addq $0x50, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_name_DName_DName
static struct std_maybe_Maybe_1 mtp_mirth_name_DName_DName (struct mirth_name_DName* in_DName_1, struct std_list_Nest_1* *out_Nest_3) {
	struct mirth_name_DName v4 = *in_DName_1;
	if (!--(in_DName_1->refs)) {
		free(in_DName_1);
	} else {
		incref(MK_std_maybe_Maybe_1(v4.mMaybe));
		incref(MK_std_list_Nest_1(v4.mNest));
	}
	*out_Nest_3 = v4.mNest;
	return v4.mMaybe;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x85204
movq -0x18(%rbp), %rdi
callq 0x5030
jmp 0x8536c
jmp 0x85206
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x48(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x8529b
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
cmpq $0x0, %rax
je 0x8529b
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x70(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x8529b
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x8529d
jmp 0x8529f
movq -0x28(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x30cc6f(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x85368
movq -0x28(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq 0x30cc3d(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0x98(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xa0(%rbp), %rax
cmpq $0x0, %rax
je 0x85368
movq -0x28(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq 0x30cc09(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xb0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x85368
movq -0x28(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq 0x30cbdb(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0xb8(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0xc0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x8536a
jmp 0x8536c
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movups -0x38(%rbp), %xmm0
movaps %xmm0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0xc0, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_list_Nest_1_unsnoc
static struct std_list_List_1 mw_std_list_Nest_1_unsnoc (struct std_list_Nest_1* in_Nest_1, VAL *out_t_3) {
	struct std_list_Nest_1* v4 = mw_std_list_Nest_1_reverse(in_Nest_1);
	struct std_list_List_1 v5;
	VAL v6 = mw_std_list_Nest_1_uncons(v4, &v5);
	struct std_list_List_1 v7 = mw_std_list_List_1_reverse(v5);
	*out_t_3 = v6;
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1ecb0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1f210
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x122b0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movq -0x20(%rbp), %rax
movups -0x48(%rbp), %xmm0
movups %xmm0, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_list_List_1_last
static struct std_maybe_Maybe_1 mw_std_list_List_1_last (struct std_list_List_1 in_List_1) {
	struct std_maybe_Maybe_1 v3 = mw_std_list_List_1_zgNestzy(in_List_1);
	struct std_maybe_Maybe_1 branch_Maybe_4;
	switch ((v3).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v5 = mtp_std_maybe_Maybe_1_Some(v3);
			VAL v6 = mw_std_list_Nest_1_last(V_std_list_Nest_1(v5));
			struct std_maybe_Maybe_1 v7 = mtw_std_maybe_Maybe_1_Some(v6);
			branch_Maybe_4 = v7;
		} break;
		case std_maybe_Maybe_1_None: {
			struct std_maybe_Maybe_1 v8 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_4 = v8;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_Maybe_4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x854d0
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movl -0x30(%rbp), %eax
movl %eax, -0x74(%rbp)
testl %eax, %eax
je 0x85476
jmp 0x85421
movl -0x74(%rbp), %eax
subl $0x1, %eax
jne 0x85498
jmp 0x8542b
movl -0x30(%rbp), %edi
movq -0x28(%rbp), %rsi
callq 0x174a0
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x40(%rbp), %rdi
callq 0x855c0
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0xca10
movl %eax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x854b1
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x70(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x854b1
leaq 0x2ce9e2(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movl -0x10(%rbp), %eax
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: mw_std_list_List_1_zgNestzy
static struct std_maybe_Maybe_1 mw_std_list_List_1_zgNestzy (struct std_list_List_1 in_List_1) {
	struct std_maybe_Maybe_1 branch_Maybe_3;
	switch ((in_List_1).tag) {
		case std_list_List_1_Cons: {
			struct std_list_List_1 v4;
			VAL v5 = mtp_std_list_List_1_Cons(in_List_1, &v4);
			struct std_list_Nest_1* v6 = mtw_std_list_Nest_1_Nest(v5, v4);
			struct std_maybe_Maybe_1 v7 = mtw_std_maybe_Maybe_1_Some(MK_std_list_Nest_1(v6));
			branch_Maybe_3 = v7;
		} break;
		case std_list_List_1_Nil: {
			struct std_maybe_Maybe_1 v8 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_3 = v8;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_Maybe_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x7c(%rbp)
testl %eax, %eax
je 0x85569
jmp 0x854ee
movl -0x7c(%rbp), %eax
subl $0x1, %eax
jne 0x8558b
jmp 0x854fc
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x125e0
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
movl -0x30(%rbp), %edx
movq -0x28(%rbp), %rcx
callq 0x1ec10
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x30c9e5(%rip), %rax    # 0x391f20
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0xca10
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x855a4
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)
jmp 0x855a4
leaq 0x2ce8ef(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movl -0x10(%rbp), %eax
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: mw_mirth_name_DName_parts
static struct std_list_Nest_1* mw_mirth_name_DName_parts (struct mirth_name_DName* in_DName_1) {
	struct std_list_Nest_1* v3;
	struct std_maybe_Maybe_1 v4 = mtp_mirth_name_DName_DName(in_DName_1, &v3);
	decref(MK_std_maybe_Maybe_1(v4));
	return v3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x851b0
movl %eax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x133a0
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x85a21
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x133a0
movq %rax, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x85a21
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x133a0
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x85a21
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x133a0
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x85a1f
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x133a0
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x127c0
jmp 0x85a21
jmp 0x85a23
movq -0x10(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_tycon_Tycon_Table
static struct mirth_tycon_Tycon mtw_mirth_tycon_Tycon_Table (uint64_t in_Table_1) {
	struct mirth_tycon_Tycon_Table* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mTable = in_Table_1;
	struct mirth_tycon_Tycon v4 = { .tag=mirth_tycon_Tycon_Table, .ptr.Table=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 0x86230
movl $0x2, %edi
leaq 0x2d1951(%rip), %rsi    # 0x357b63
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x86232
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x1, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_typedef_TypeDef_target
static struct mirth_type_Type mw_mirth_typedef_TypeDef_target (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_TypeDef_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_typedef_TypeDef_zttarget, in_TypeDef_2);
	struct mirth_mirth_zaMirth* v6;
	VAL v7 = mw_mirth_mirth_Prop_1_forcezx(in_zaMirth_1, v5, &v6);
	*out_zaMirth_3 = v6;
	return V_mirth_type_Type(v7);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x130eed9(%rip), %rdi   # 0x1395168
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x5d130
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x6f100
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_name_Namespace_Word
static struct mirth_name_Namespace mtw_mirth_name_Namespace_Word (uint64_t in_Word_1) {
	struct mirth_name_Namespace_Word* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mWord = in_Word_1;
	struct mirth_name_Namespace v4 = { .tag=mirth_name_Namespace_Word, .ptr.Word=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 0x86fd0
movl $0x2, %edi
leaq 0x2d0c47(%rip), %rsi    # 0x357bf9
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x86fd2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x4, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_Type_Prim
static enum mirth_type_PrimType mtp_mirth_type_Type_Prim (struct mirth_type_Type in_Type_1) {
	struct mirth_type_Type_Prim v3 = *in_Type_1.ptr.Prim;
	if (!--(in_Type_1.ptr.Prim->refs)) {
		free(in_Type_1.ptr.Prim);
	} else {
	}
	return v3.mPrimType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x87045
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x87047
jmp 0x87047
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_tycon_Tycon_Prim
static struct mirth_tycon_Tycon mtw_mirth_tycon_Tycon_Prim (enum mirth_type_PrimType in_PrimType_1) {
	struct mirth_tycon_Tycon_Prim* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mPrimType = in_PrimType_1;
	struct mirth_tycon_Tycon v4 = { .tag=mirth_tycon_Tycon_Prim, .ptr.Prim=v3 };
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x14(%rbp)
movl $0x1, %edi
movl $0x8, %esi
callq 0x50c0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x8709f
movl $0x2, %edi
leaq 0x2d0b14(%rip), %rsi    # 0x357b95
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x870a1
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%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_type_MetaVar_typezy
static struct std_maybe_Maybe_1 mw_mirth_type_MetaVar_typezy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_MetaVar_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_type_MetaVar_typezy, in_MetaVar_2);
	bool v6 = mut_is_set(v5);
	struct mirth_mirth_zaMirth* branch_zaMirth_7;
	struct std_maybe_Maybe_1 branch_Maybe_8;
	if (v6) {
		VAL v9 = mut_get(v5);
		branch_Maybe_8 = V_std_maybe_Maybe_1(v9);
		branch_zaMirth_7 = in_zaMirth_1;
	} else {
		struct std_maybe_Maybe_1 v10 = { .tag=std_maybe_Maybe_1_None };
		incref(MK_std_maybe_Maybe_1(v10));
		mut_set(MK_std_maybe_Maybe_1(v10), v5);
		branch_Maybe_8 = v10;
		branch_zaMirth_7 = in_zaMirth_1;
	}
	*out_zaMirth_3 = branch_zaMirth_7;
	return branch_Maybe_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 0x130e416(%rip), %rdi   # 0x1395568
callq 0x40d30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x45e40
andb $0x1, %al
movb %al, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
je 0x871b1
movq -0x30(%rbp), %rdi
callq 0x40f30
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x135d0
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 0x872c0
leaq -0x70(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x133a0
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq -0x78(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x87275
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x133a0
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x90(%rbp), %rax
cmpq $0x0, %rax
je 0x87275
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x133a0
movq %rax, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movq -0xa0(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x87275
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x133a0
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 0x87277
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
callq 0x133a0
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: mw_mirth_type_Type_expand
static struct mirth_type_Type mw_mirth_type_Type_expand (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_Type in_Type_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	struct mirth_type_Type branch_Type_6;
	switch ((in_Type_2).tag) {
		case mirth_type_Type_Meta: {
			uint64_t v7 = mtp_mirth_type_Type_Meta(in_Type_2);
			struct mirth_mirth_zaMirth* v8;
			struct mirth_type_Type v9 = mw_mirth_type_MetaVar_expand(in_zaMirth_1, v7, &v8);
			branch_Type_6 = v9;
			branch_zaMirth_5 = v8;
		} break;
		default: {
			branch_Type_6 = in_Type_2;
			branch_zaMirth_5 = in_zaMirth_1;
		} break;
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_Type_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %esi, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movl -0x20(%rbp), %eax
subl $0x3, %eax
jne 0x87343
jmp 0x87301
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x870e0
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x88030
movl %eax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x8735b
movq -0x20(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_Type_Var
static uint64_t mtp_mirth_type_Type_Var (struct mirth_type_Type in_Type_1) {
	struct mirth_type_Type_Var v3 = *in_Type_1.ptr.Var;
	if (!--(in_Type_1.ptr.Var->refs)) {
		free(in_Type_1.ptr.Var);
	} else {
	}
	return v3.mVar;
}

// 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 0x8747d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x8747f
jmp 0x8747f
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: mtp_mirth_type_Type_Data
static uint64_t mtp_mirth_type_Type_Data (struct mirth_type_Type in_Type_1) {
	struct mirth_type_Type_Data v3 = *in_Type_1.ptr.Data;
	if (!--(in_Type_1.ptr.Data->refs)) {
		free(in_Type_1.ptr.Data);
	} else {
	}
	return v3.mData;
}

// 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 0x8751d
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x8751f
jmp 0x8751f
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: mtp_mirth_type_Type_DataPartial
static struct mirth_data_DataPartial* mtp_mirth_type_Type_DataPartial (struct mirth_type_Type in_Type_1) {
	struct mirth_type_Type_DataPartial v3 = *in_Type_1.ptr.DataPartial;
	if (!--(in_Type_1.ptr.DataPartial->refs)) {
		free(in_Type_1.ptr.DataPartial);
	} else {
		incref(MK_mirth_data_DataPartial(v3.mDataPartial));
	}
	return v3.mDataPartial;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x87570
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x87617
jmp 0x87572
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x30a63f(%rip), %rax    # 0x391bc0
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x87613
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x30a61a(%rip), %rax    # 0x391bc0
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x87613
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x30a5ef(%rip), %rax    # 0x391bc0
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x87613
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x30a5ca(%rip), %rax    # 0x391bc0
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x87615
jmp 0x87617
movq -0x18(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_type_Type_Arrow
static struct mirth_type_ArrowType* mtp_mirth_type_Type_Arrow (struct mirth_type_Type in_Type_1) {
	struct mirth_type_Type_Arrow v3 = *in_Type_1.ptr.Arrow;
	if (!--(in_Type_1.ptr.Arrow->refs)) {
		free(in_Type_1.ptr.Arrow);
	} else {
		incref(MK_mirth_type_ArrowType(v3.mArrowType));
	}
	return v3.mArrowType;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x20(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x87670
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x87717
jmp 0x87672
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x30a587(%rip), %rax    # 0x391c08
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x87713
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x30a562(%rip), %rax    # 0x391c08
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x87713
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x30a537(%rip), %rax    # 0x391c08
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x87713
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x30a512(%rip), %rax    # 0x391c08
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x87715
jmp 0x87717
movq -0x18(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)