LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_external_ExternalDeclPart_EDPDef
static struct mirth_external_ExternalDeclPart mtw_mirth_external_ExternalDeclPart_EDPDef (struct std_maybe_Maybe_1 in_Maybe_1, uint64_t in_Token_2, struct std_maybe_Maybe_1 in_Maybe_3, uint64_t in_Token_4) {
	struct mirth_external_ExternalDeclPart_EDPDef* v6 = calloc(1, sizeof *v6);
	ASSERT(v6);
	v6->refs = 1;
	v6->msig = in_Token_4;
	v6->msymbol = in_Maybe_3;
	v6->mhead = in_Token_2;
	v6->mdoc = in_Maybe_1;
	struct mirth_external_ExternalDeclPart v7 = { .tag=mirth_external_ExternalDeclPart_EDPDef, .ptr.EDPDef=v6 };
	return v7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl %ecx, -0x30(%rbp)
movq %r8, -0x28(%rbp)
movq %rdx, -0x38(%rbp)
movq %r9, -0x40(%rbp)
movl $0x1, %edi
movl $0x38, %esi
callq 0x50c0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x1628f2
movl $0x2, %edi
leaq 0x1f7d22(%rip), %rsi    # 0x35a5f6
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x1628f4
movq -0x48(%rbp), %rax
movl $0x1, (%rax)
movq -0x40(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x48(%rbp), %rax
movups -0x30(%rbp), %xmm0
movups %xmm0, 0x20(%rax)
movq -0x38(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x48(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x1, -0x10(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtp_mirth_external_ExternalDeclPart_EDPCode
static void mtp_mirth_external_ExternalDeclPart_EDPCode (struct mirth_external_ExternalDeclPart in_ExternalDeclPart_1, uint64_t *out_Token_2, STR* *out_Str_3) {
	struct mirth_external_ExternalDeclPart_EDPCode v4 = *in_ExternalDeclPart_1.ptr.EDPCode;
	if (!--(in_ExternalDeclPart_1.ptr.EDPCode->refs)) {
		free(in_ExternalDeclPart_1.ptr.EDPCode);
	} else {
		incref(MKSTR(v4.mcode));
	}
	*out_Str_3 = v4.mcode;
	*out_Token_2 = v4.mtoken;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x38(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x1629a3
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x162a4a
jmp 0x1629a5
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x22e7a4(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x162a46
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x22e77f(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x58(%rbp), %rax
cmpq $0x0, %rax
je 0x162a46
movq -0x28(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq 0x22e754(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x162a46
movq -0x28(%rbp), %rax
movq %rax, -0x78(%rbp)
leaq 0x22e72f(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x70(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x78(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x162a48
jmp 0x162a4a
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_external_ExternalBlockPart_EBPCode
static struct mirth_external_ExternalBlockPart mtw_mirth_external_ExternalBlockPart_EBPCode (STR* in_Str_1) {
	struct mirth_external_ExternalBlockPart_EBPCode* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mStr = in_Str_1;
	struct mirth_external_ExternalBlockPart v4 = { .tag=mirth_external_ExternalBlockPart_EBPCode, .ptr.EBPCode=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 0x162ac0
movl $0x2, %edi
leaq 0x1f7b86(%rip), %rsi    # 0x35a628
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x162ac2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x0, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_external_ExternalBlockPart_EBPDef
static struct mirth_external_ExternalBlockPart mtw_mirth_external_ExternalBlockPart_EBPDef (uint64_t in_External_1) {
	struct mirth_external_ExternalBlockPart_EBPDef* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mExternal = in_External_1;
	struct mirth_external_ExternalBlockPart v4 = { .tag=mirth_external_ExternalBlockPart_EBPDef, .ptr.EBPDef=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 0x1634e0
movl $0x2, %edi
leaq 0x1f7608(%rip), %rsi    # 0x35aaca
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x1634e2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x1, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_mirth_PropLabel_ExternalQName
static struct mirth_mirth_PropLabel mtw_mirth_mirth_PropLabel_ExternalQName (uint64_t in_External_1) {
	struct mirth_mirth_PropLabel_ExternalQName* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mExternal = in_External_1;
	struct mirth_mirth_PropLabel v4 = { .tag=mirth_mirth_PropLabel_ExternalQName, .ptr.ExternalQName=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 0x163760
movl $0x2, %edi
leaq 0x1f6f18(%rip), %rsi    # 0x35a65a
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x163762
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x10, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_mirth_PropLabel_ExternalType
static struct mirth_mirth_PropLabel mtw_mirth_mirth_PropLabel_ExternalType (uint64_t in_External_1) {
	struct mirth_mirth_PropLabel_ExternalType* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mExternal = in_External_1;
	struct mirth_mirth_PropLabel v4 = { .tag=mirth_mirth_PropLabel_ExternalType, .ptr.ExternalType=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 0x1637f0
movl $0x2, %edi
leaq 0x1f6eba(%rip), %rsi    # 0x35a68c
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x1637f2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x11, -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: mb_mirth_mirth_PropLabel_prop_1_sp48_0
static void mb_mirth_mirth_PropLabel_prop_1_sp48_0 (void) {
	uint64_t v0 = V_mirth_external_External(pop_value());
	struct mirth_mirth_zaMirth* r1 = V_mirth_mirth_zaMirth(pop_resource());
	struct mirth_mirth_zaMirth* v2;
	struct mirth_type_CTypeArrow* v3 = mw_mirth_external_elabzeexternalzectype(r1, v0, &v2);
	push_resource(MK_mirth_mirth_zaMirth(v2));
	push_value(MK_mirth_type_CTypeArrow(v3));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
callq 0x138a0
movq %rax, -0x18(%rbp)
movq %rdx, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
callq 0x13920
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x163d40
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x22ddda(%rip), %rax    # 0x391980
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x5b40
movq -0x40(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x22ee52(%rip), %rax    # 0x392a18
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x12cc0
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: mtw_mirth_def_Def_External
static struct mirth_def_Def mtw_mirth_def_Def_External (uint64_t in_External_1) {
	struct mirth_def_Def_External* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mExternal = in_External_1;
	struct mirth_def_Def v4 = { .tag=mirth_def_Def_External, .ptr.External=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 0x163c40
movl $0x2, %edi
leaq 0x1f6e76(%rip), %rsi    # 0x35aa98
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x163c42
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0xa, -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_external_External_Alloczx
static uint64_t mw_mirth_external_External_Alloczx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_mirth_zaMirth* *out_zaMirth_2) {
	void* v4 = mbuf_mirth_external_External_NumBuffer;
	uint64_t v5 = *(uint64_t*)v4;
	uint64_t v6 = 1ULL;
	uint64_t v7 = (v5 + v6);
	void* v8 = mbuf_mirth_external_External_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 0x1232305(%rip), %rax   # 0x1395f98
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 0x12322db(%rip), %rax   # 0x1395f98
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_type_ArrowType_ctype
static struct mirth_type_CTypeArrow* mw_mirth_type_ArrowType_ctype (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_type_ArrowType* in_ArrowType_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_type_StackType v5;
	struct mirth_type_StackType v6;
	mtp_mirth_type_ArrowType_ArrowType(in_ArrowType_2, &v5, &v6);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_type_CTypeStack* v8 = mw_mirth_type_StackType_ctype(in_zaMirth_1, v5, &v7);
	struct mirth_mirth_zaMirth* v9;
	struct mirth_type_CTypeStack* v10 = mw_mirth_type_StackType_ctype(v7, v6, &v9);
	struct mirth_type_CTypeArrow* v11 = mtw_mirth_type_CTypeArrow_CTypeArrow(v8, v10);
	*out_zaMirth_3 = v9;
	return v11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0xc1010
movq -0x8(%rbp), %rdi
movl -0x28(%rbp), %esi
movq -0x20(%rbp), %rdx
leaq -0x40(%rbp), %rcx
callq 0x168290
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movl -0x38(%rbp), %esi
movq -0x30(%rbp), %rdx
leaq -0x50(%rbp), %rcx
callq 0x168290
movq %rax, -0x58(%rbp)
movq -0x48(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x168750
movq %rax, -0x60(%rbp)
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x60(%rbp), %rax
addq $0x60, %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_CTypeStackPart_ctype
static struct mirth_type_CType mw_mirth_type_CTypeStackPart_ctype (struct mirth_type_CTypeStackPart in_CTypeStackPart_1) {
	struct mirth_type_CType branch_CType_3;
	switch ((in_CTypeStackPart_1).tag) {
		case mirth_type_CTypeStackPart_Cons: {
			struct mirth_type_CType v4 = mtp_mirth_type_CTypeStackPart_Cons(in_CTypeStackPart_1);
			branch_CType_3 = v4;
		} break;
		case mirth_type_CTypeStackPart_ConsLabel: {
			uint64_t v5;
			struct mirth_type_CType v6 = mtp_mirth_type_CTypeStackPart_ConsLabel(in_CTypeStackPart_1, &v5);
			branch_CType_3 = v6;
		} break;
		case mirth_type_CTypeStackPart_With: {
			struct mirth_type_CType v7 = mtp_mirth_type_CTypeStackPart_With(in_CTypeStackPart_1);
			branch_CType_3 = v7;
		} break;
		case mirth_type_CTypeStackPart_WithLabel: {
			uint64_t v8;
			struct mirth_type_CType v9 = mtp_mirth_type_CTypeStackPart_WithLabel(in_CTypeStackPart_1, &v8);
			branch_CType_3 = v9;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_CType_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movl -0x20(%rbp), %eax
movq %rax, -0x78(%rbp)
subq $0x3, %rax
ja 0x167cc6
movq -0x78(%rbp), %rax
leaq 0x1eaade(%rip), %rcx    # 0x3526fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x16def0
movl %eax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x167cdf
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x16dff0
movl %eax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x167cdf
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
callq 0x16e110
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 0x167cdf
movl -0x20(%rbp), %edi
movq -0x18(%rbp), %rsi
leaq -0x60(%rbp), %rdx
callq 0x16e210
movl %eax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x167cdf
leaq 0x1ec1b4(%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
nop
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_CTypeArrow_CTypeArrow
static struct mirth_type_CTypeArrow* mtw_mirth_type_CTypeArrow_CTypeArrow (struct mirth_type_CTypeStack* in_CTypeStack_1, struct mirth_type_CTypeStack* in_CTypeStack_2) {
	struct mirth_type_CTypeArrow* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mcod = in_CTypeStack_2;
	v4->mdom = in_CTypeStack_1;
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x1, %edi
movl $0x18, %esi
callq 0x50c0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x1687a4
movl $0x2, %edi
leaq 0x1f2206(%rip), %rsi    # 0x35a98c
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x1687a6
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_CTypeStack_CTypeStack
static struct mirth_type_CTypeStack* mtw_mirth_type_CTypeStack_CTypeStack (struct std_maybe_Maybe_1 in_Maybe_1, struct std_list_List_1 in_List_2) {
	struct mirth_type_CTypeStack* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mparts = in_List_2;
	v4->mbasezy = in_Maybe_1;
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl %edx, -0x20(%rbp)
movq %rcx, -0x18(%rbp)
movl $0x1, %edi
movl $0x28, %esi
callq 0x50c0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x168caa
movl $0x2, %edi
leaq 0x1f1cce(%rip), %rsi    # 0x35a95a
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x168cac
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x28(%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: mtw_mirth_type_CTypeStackPart_Cons
static struct mirth_type_CTypeStackPart mtw_mirth_type_CTypeStackPart_Cons (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CTypeStackPart_Cons* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mCType = in_CType_1;
	struct mirth_type_CTypeStackPart v4 = { .tag=mirth_type_CTypeStackPart_Cons, .ptr.Cons=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 0x169383
movl $0x2, %edi
leaq 0x1f150d(%rip), %rsi    # 0x35a872
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x169385
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: mtw_mirth_type_CTypeStackPart_ConsLabel
static struct mirth_type_CTypeStackPart mtw_mirth_type_CTypeStackPart_ConsLabel (struct mirth_type_CType in_CType_1, uint64_t in_Label_2) {
	struct mirth_type_CTypeStackPart_ConsLabel* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mLabel = in_Label_2;
	v4->mCType = in_CType_1;
	struct mirth_type_CTypeStackPart v5 = { .tag=mirth_type_CTypeStackPart_ConsLabel, .ptr.ConsLabel=v4 };
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x169417
movl $0x2, %edi
leaq 0x1f14ab(%rip), %rsi    # 0x35a8a4
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x169419
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x1, -0x10(%rbp)
movq -0x30(%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: mtw_mirth_type_CTypeStackPart_With
static struct mirth_type_CTypeStackPart mtw_mirth_type_CTypeStackPart_With (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CTypeStackPart_With* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mCType = in_CType_1;
	struct mirth_type_CTypeStackPart v4 = { .tag=mirth_type_CTypeStackPart_With, .ptr.With=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 0x169503
movl $0x2, %edi
leaq 0x1f13f1(%rip), %rsi    # 0x35a8d6
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x169505
movq -0x28(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x2, -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: mtw_mirth_type_CTypeStackPart_WithLabel
static struct mirth_type_CTypeStackPart mtw_mirth_type_CTypeStackPart_WithLabel (struct mirth_type_CType in_CType_1, uint64_t in_Label_2) {
	struct mirth_type_CTypeStackPart_WithLabel* v4 = calloc(1, sizeof *v4);
	ASSERT(v4);
	v4->refs = 1;
	v4->mLabel = in_Label_2;
	v4->mCType = in_CType_1;
	struct mirth_type_CTypeStackPart v5 = { .tag=mirth_type_CTypeStackPart_WithLabel, .ptr.WithLabel=v4 };
	return v5;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x28(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x50c0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x169597
movl $0x2, %edi
leaq 0x1f138f(%rip), %rsi    # 0x35a908
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x169599
movq -0x30(%rbp), %rax
movl $0x1, (%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movups -0x20(%rbp), %xmm0
movups %xmm0, 0x8(%rax)
movl $0x3, -0x10(%rbp)
movq -0x30(%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_mirth_data_Data_ctypezy
static struct std_maybe_Maybe_1 mw_mirth_data_Data_ctypezy (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Data_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	void* v5 = field_mut(&mfld_mirth_data_Data_ztctypezy, in_Data_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_std_maybe_Maybe_1(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 0x122a069(%rip), %rdi   # 0x1395368
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 0x135d0
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_type_CType_FnPtr
static struct mirth_type_CType mtw_mirth_type_CType_FnPtr (STR* in_Str_1) {
	struct mirth_type_CType_FnPtr* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mStr = in_Str_1;
	struct mirth_type_CType v4 = { .tag=mirth_type_CType_FnPtr, .ptr.FnPtr=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 0x16b3a0
movl $0x2, %edi
leaq 0x1ef4a6(%rip), %rsi    # 0x35a828
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x16b3a2
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x5, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mtw_mirth_type_CType_Ptr
static struct mirth_type_CType mtw_mirth_type_CType_Ptr (STR* in_Str_1) {
	struct mirth_type_CType_Ptr* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mStr = in_Str_1;
	struct mirth_type_CType v4 = { .tag=mirth_type_CType_Ptr, .ptr.Ptr=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 0x16b700
movl $0x2, %edi
leaq 0x1ef0b0(%rip), %rsi    # 0x35a792
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x16b702
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: mtw_mirth_type_CType_F64
static struct mirth_type_CType mtw_mirth_type_CType_F64 (STR* in_Str_1) {
	struct mirth_type_CType_F64* v3 = calloc(1, sizeof *v3);
	ASSERT(v3);
	v3->refs = 1;
	v3->mStr = in_Str_1;
	struct mirth_type_CType v4 = { .tag=mirth_type_CType_F64, .ptr.F64=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 0x16b820
movl $0x2, %edi
leaq 0x1eeff4(%rip), %rsi    # 0x35a7f6
movl $0x31, %edx
callq 0x5060
callq 0x5310
callq 0x53b0
movl $0x1, %edi
callq 0x5130
jmp 0x16b822
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x3, -0x10(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_type_CType_ptr
static struct mirth_type_CType mw_mirth_type_CType_ptr (struct mirth_type_CType in_CType_1) {
	STR* v3 = mw_mirth_type_CType_cname(in_CType_1);
	STR* v4;
	STRLIT(v4, " *", 2);
	STR* v5 = str_cat(v3, v4);
	struct mirth_type_CType v6 = mtw_mirth_type_CType_Ptr(v5);
	return v6;
}

// 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 0x16c6d0
movq %rax, -0x28(%rbp)
cmpq $0x0, 0x1229dee(%rip)   # 0x1396048
jne 0x16c274
leaq 0x2018d8(%rip), %rdi    # 0x36db3b
movl $0x2, %esi
callq 0xb6c0
movq %rax, 0x1229dd4(%rip)   # 0x1396048
jmp 0x16c276
movq 0x1229dcb(%rip), %rax   # 0x1396048
movq %rax, -0x40(%rbp)
leaq 0x224ed0(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16c327
movq 0x1229d9f(%rip), %rax   # 0x1396048
movq %rax, -0x50(%rbp)
leaq 0x224ea4(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x50(%rbp), %rax
cmpq $0x0, %rax
je 0x16c327
movq 0x1229d71(%rip), %rax   # 0x1396048
movq %rax, -0x60(%rbp)
leaq 0x224e76(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16c327
movq 0x1229d49(%rip), %rax   # 0x1396048
movq %rax, -0x70(%rbp)
leaq 0x224e4e(%rip), %rax    # 0x391158
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 0x16c329
movq 0x1229d18(%rip), %rax   # 0x1396048
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x1a680
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0x16b6b0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
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_type_CType_const
static struct mirth_type_CType mw_mirth_type_CType_const (struct mirth_type_CType in_CType_1) {
	STR* v3;
	STRLIT(v3, "const", 5);
	struct mirth_type_CType v4 = mw_mirth_type_CType_qualify(v3, in_CType_1);
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, 0x1229cc9(%rip)   # 0x1396050
jne 0x16c3a1
leaq 0x1ee4ca(%rip), %rdi    # 0x35a85a
movl $0x5, %esi
callq 0xb6c0
movq %rax, 0x1229caf(%rip)   # 0x1396050
jmp 0x16c3a3
movq 0x1229ca6(%rip), %rax   # 0x1396050
movq %rax, -0x38(%rbp)
leaq 0x224da3(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16c454
movq 0x1229c7a(%rip), %rax   # 0x1396050
movq %rax, -0x48(%rbp)
leaq 0x224d77(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x16c454
movq 0x1229c4c(%rip), %rax   # 0x1396050
movq %rax, -0x58(%rbp)
leaq 0x224d49(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16c454
movq 0x1229c24(%rip), %rax   # 0x1396050
movq %rax, -0x68(%rbp)
leaq 0x224d21(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x16c456
movq 0x1229bf3(%rip), %rax   # 0x1396050
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x16cef0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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: mw_mirth_type_CType_restrict
static struct mirth_type_CType mw_mirth_type_CType_restrict (struct mirth_type_CType in_CType_1) {
	STR* v3;
	STRLIT(v3, "restrict", 8);
	struct mirth_type_CType v4 = mw_mirth_type_CType_qualify(v3, in_CType_1);
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, 0x1229bd1(%rip)   # 0x1396078
jne 0x16c4c1
leaq 0x1ee3b0(%rip), %rdi    # 0x35a860
movl $0x8, %esi
callq 0xb6c0
movq %rax, 0x1229bb7(%rip)   # 0x1396078
jmp 0x16c4c3
movq 0x1229bae(%rip), %rax   # 0x1396078
movq %rax, -0x38(%rbp)
leaq 0x224c83(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16c574
movq 0x1229b82(%rip), %rax   # 0x1396078
movq %rax, -0x48(%rbp)
leaq 0x224c57(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x16c574
movq 0x1229b54(%rip), %rax   # 0x1396078
movq %rax, -0x58(%rbp)
leaq 0x224c29(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16c574
movq 0x1229b2c(%rip), %rax   # 0x1396078
movq %rax, -0x68(%rbp)
leaq 0x224c01(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x16c576
movq 0x1229afb(%rip), %rax   # 0x1396078
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x16cef0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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: mw_mirth_type_CType_volatile
static struct mirth_type_CType mw_mirth_type_CType_volatile (struct mirth_type_CType in_CType_1) {
	STR* v3;
	STRLIT(v3, "volatile", 8);
	struct mirth_type_CType v4 = mw_mirth_type_CType_qualify(v3, in_CType_1);
	return v4;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl %edi, -0x20(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, 0x1229ab9(%rip)   # 0x1396080
jne 0x16c5e1
leaq 0x1ee299(%rip), %rdi    # 0x35a869
movl $0x8, %esi
callq 0xb6c0
movq %rax, 0x1229a9f(%rip)   # 0x1396080
jmp 0x16c5e3
movq 0x1229a96(%rip), %rax   # 0x1396080
movq %rax, -0x38(%rbp)
leaq 0x224b63(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16c694
movq 0x1229a6a(%rip), %rax   # 0x1396080
movq %rax, -0x48(%rbp)
leaq 0x224b37(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x40(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x48(%rbp), %rax
cmpq $0x0, %rax
je 0x16c694
movq 0x1229a3c(%rip), %rax   # 0x1396080
movq %rax, -0x58(%rbp)
leaq 0x224b09(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16c694
movq 0x1229a14(%rip), %rax   # 0x1396080
movq %rax, -0x68(%rbp)
leaq 0x224ae1(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x60(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x68(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x16c696
movq 0x12299e3(%rip), %rax   # 0x1396080
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movl -0x20(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x16cef0
movl %eax, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rdx
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: mw_mirth_type_CType_cname
static STR* mw_mirth_type_CType_cname (struct mirth_type_CType in_CType_1) {
	STR* branch_Str_3;
	switch ((in_CType_1).tag) {
		case mirth_type_CType_UInt: {
			STR* v4 = mtp_mirth_type_CType_UInt(in_CType_1);
			branch_Str_3 = v4;
		} break;
		case mirth_type_CType_Int: {
			STR* v5 = mtp_mirth_type_CType_Int(in_CType_1);
			branch_Str_3 = v5;
		} break;
		case mirth_type_CType_F32: {
			STR* v6 = mtp_mirth_type_CType_F32(in_CType_1);
			branch_Str_3 = v6;
		} break;
		case mirth_type_CType_F64: {
			STR* v7 = mtp_mirth_type_CType_F64(in_CType_1);
			branch_Str_3 = v7;
		} break;
		case mirth_type_CType_Ptr: {
			STR* v8 = mtp_mirth_type_CType_Ptr(in_CType_1);
			branch_Str_3 = v8;
		} break;
		case mirth_type_CType_FnPtr: {
			STR* v9 = mtp_mirth_type_CType_FnPtr(in_CType_1);
			branch_Str_3 = v9;
		} break;
		case mirth_type_CType_Void: {
			STR* v10 = mtp_mirth_type_CType_Void(in_CType_1);
			branch_Str_3 = v10;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	return branch_Str_3;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x10(%rbp)
movq %rsi, -0x8(%rbp)
movl -0x10(%rbp), %eax
movq %rax, -0x58(%rbp)
subq $0x6, %rax
ja 0x16c7c3
movq -0x58(%rbp), %rax
leaq 0x1e60a1(%rip), %rcx    # 0x35279c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16c7f0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16c8f0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16c9f0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16caf0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16cbf0
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16ccf0
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
movl -0x10(%rbp), %edi
movq -0x8(%rbp), %rsi
callq 0x16cdf0
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x16c7dc
leaq 0x1e76b7(%rip), %rdi    # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
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_CType_UInt
static STR* mtp_mirth_type_CType_UInt (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CType_UInt v3 = *in_CType_1.ptr.UInt;
	if (!--(in_CType_1.ptr.UInt->refs)) {
		free(in_CType_1.ptr.UInt);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// 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 0x16c830
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x16c8d7
jmp 0x16c832
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x224917(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16c8d3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x2248f2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x16c8d3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2248c7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16c8d3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2248a2(%rip), %rax    # 0x391158
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 0x16c8d5
jmp 0x16c8d7
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_CType_Int
static STR* mtp_mirth_type_CType_Int (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CType_Int v3 = *in_CType_1.ptr.Int;
	if (!--(in_CType_1.ptr.Int->refs)) {
		free(in_CType_1.ptr.Int);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// 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 0x16c930
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x16c9d7
jmp 0x16c932
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x224817(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16c9d3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x2247f2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x16c9d3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2247c7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16c9d3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2247a2(%rip), %rax    # 0x391158
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 0x16c9d5
jmp 0x16c9d7
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_CType_F32
static STR* mtp_mirth_type_CType_F32 (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CType_F32 v3 = *in_CType_1.ptr.F32;
	if (!--(in_CType_1.ptr.F32->refs)) {
		free(in_CType_1.ptr.F32);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// 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 0x16ca30
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x16cad7
jmp 0x16ca32
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x224717(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16cad3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x2246f2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x16cad3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2246c7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16cad3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2246a2(%rip), %rax    # 0x391158
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 0x16cad5
jmp 0x16cad7
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_CType_F64
static STR* mtp_mirth_type_CType_F64 (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CType_F64 v3 = *in_CType_1.ptr.F64;
	if (!--(in_CType_1.ptr.F64->refs)) {
		free(in_CType_1.ptr.F64);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// 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 0x16cb30
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x16cbd7
jmp 0x16cb32
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x224617(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16cbd3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x2245f2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x16cbd3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2245c7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16cbd3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2245a2(%rip), %rax    # 0x391158
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 0x16cbd5
jmp 0x16cbd7
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_CType_Ptr
static STR* mtp_mirth_type_CType_Ptr (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CType_Ptr v3 = *in_CType_1.ptr.Ptr;
	if (!--(in_CType_1.ptr.Ptr->refs)) {
		free(in_CType_1.ptr.Ptr);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// 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 0x16cc30
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x16ccd7
jmp 0x16cc32
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x224517(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16ccd3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x2244f2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x16ccd3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2244c7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16ccd3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2244a2(%rip), %rax    # 0x391158
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 0x16ccd5
jmp 0x16ccd7
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_CType_FnPtr
static STR* mtp_mirth_type_CType_FnPtr (struct mirth_type_CType in_CType_1) {
	struct mirth_type_CType_FnPtr v3 = *in_CType_1.ptr.FnPtr;
	if (!--(in_CType_1.ptr.FnPtr->refs)) {
		free(in_CType_1.ptr.FnPtr);
	} else {
		incref(MKSTR(v3.mStr));
	}
	return v3.mStr;
}

// 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 0x16cd30
movq -0x8(%rbp), %rdi
callq 0x5030
jmp 0x16cdd7
jmp 0x16cd32
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x224417(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x16cdd3
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x2243f2(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x38(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x40(%rbp), %rax
cmpq $0x0, %rax
je 0x16cdd3
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq 0x2243c7(%rip), %rax    # 0x391158
orq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x16cdd3
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x2243a2(%rip), %rax    # 0x391158
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 0x16cdd5
jmp 0x16cdd7
movq -0x18(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)