// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_tycon_Tycon_c99zereprzeprefix
static STR* mw_mirth_tycon_Tycon_c99zereprzeprefix (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_tycon_Tycon in_Tycon_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* branch_zaMirth_5;
	STR* branch_Str_6;
	switch ((in_Tycon_2).tag) {
		case mirth_tycon_Tycon_Prim: {
			enum mirth_type_PrimType v7 = mtp_mirth_tycon_Tycon_Prim(in_Tycon_2);
			struct mirth_mirth_zaMirth* v8;
			STR* v9 = mw_mirth_type_PrimType_c99zereprzeprefix(in_zaMirth_1, v7, &v8);
			branch_Str_6 = v9;
			branch_zaMirth_5 = v8;
		} break;
		case mirth_tycon_Tycon_Data: {
			uint64_t v10 = mtp_mirth_tycon_Tycon_Data(in_Tycon_2);
			struct mirth_mirth_zaMirth* v11;
			STR* v12 = mw_mirth_data_Data_cname(in_zaMirth_1, v10, &v11);
			branch_Str_6 = v12;
			branch_zaMirth_5 = v11;
		} break;
		case mirth_tycon_Tycon_Table: {
			uint64_t v13 = mtp_mirth_tycon_Tycon_Table(in_Tycon_2);
			struct mirth_mirth_zaMirth* v14;
			STR* v15 = mw_mirth_table_Table_cname(in_zaMirth_1, v13, &v14);
			branch_Str_6 = v15;
			branch_zaMirth_5 = v14;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	*out_zaMirth_3 = branch_zaMirth_5;
	return branch_Str_6;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdi, %r14
testl %esi, %esi
je 0x9ae94
cmpl $0x1, %esi
je 0x9ae78
cmpl $0x2, %esi
jne 0x9b252
movq %rdx, %rdi
callq 0x17cce
cmpl $0x15, %eax
ja 0x9b252
movl %eax, %eax
leaq 0x38d50(%rip), %rcx     # 0xd3b94
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x107335c(%rip), %rax   # 0x110e1b0
testq %rax, %rax
jne 0x9b22c
leaq 0x528a8(%rip), %rdi     # 0xed70c
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x107333d(%rip)   # 0x110e1b0
jmp 0x9b22c
movq %rdx, %rdi
callq 0x17cb1
leaq -0x20(%rbp), %r15
movq %r14, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x8bd97
jmp 0x9aeae
movq %rdx, %rdi
callq 0x17c94
leaq -0x20(%rbp), %r15
movq %r14, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x9339f
movq (%r15), %r14
movq %r14, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x107336a(%rip), %rax   # 0x110e230
testq %rax, %rax
jne 0x9b22c
leaq 0x3c049(%rip), %rdi     # 0xd6f1f
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107334b(%rip)   # 0x110e230
jmp 0x9b22c
movq 0x107332f(%rip), %rax   # 0x110e220
testq %rax, %rax
jne 0x9b22c
leaq 0x3be21(%rip), %rdi     # 0xd6d22
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x1073310(%rip)   # 0x110e220
jmp 0x9b22c
movq 0x10732ec(%rip), %rax   # 0x110e208
testq %rax, %rax
jne 0x9b22c
leaq 0x3bf08(%rip), %rdi     # 0xd6e34
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, 0x10732cd(%rip)   # 0x110e208
jmp 0x9b22c
movq 0x1073289(%rip), %rax   # 0x110e1d0
testq %rax, %rax
jne 0x9b22c
leaq 0x527d1(%rip), %rdi     # 0xed728
pushq $0x4
popq %rsi
callq 0x8a21
movq %rax, 0x107326a(%rip)   # 0x110e1d0
jmp 0x9b22c
movq 0x107329e(%rip), %rax   # 0x110e210
testq %rax, %rax
jne 0x9b22c
leaq 0x3bec1(%rip), %rdi     # 0xd6e43
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107327f(%rip)   # 0x110e210
jmp 0x9b22c
movq 0x107325b(%rip), %rax   # 0x110e1f8
testq %rax, %rax
jne 0x9b22c
leaq 0x3be67(%rip), %rdi     # 0xd6e14
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107323c(%rip)   # 0x110e1f8
jmp 0x9b22c
movq 0x10731f8(%rip), %rax   # 0x110e1c0
testq %rax, %rax
jne 0x9b22c
leaq 0x5273c(%rip), %rdi     # 0xed714
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x10731d9(%rip)   # 0x110e1c0
jmp 0x9b22c
movq 0x1073235(%rip), %rax   # 0x110e228
testq %rax, %rax
jne 0x9b22c
leaq 0x3bfe2(%rip), %rdi     # 0xd6fe5
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x1073216(%rip)   # 0x110e228
jmp 0x9b22c
movq 0x10731aa(%rip), %rax   # 0x110e1c8
testq %rax, %rax
jne 0x9b22c
leaq 0x526ee(%rip), %rdi     # 0xed71c
pushq $0xb
popq %rsi
callq 0x8a21
movq %rax, 0x107318b(%rip)   # 0x110e1c8
jmp 0x9b22c
movq 0x107319f(%rip), %rax   # 0x110e1e8
testq %rax, %rax
jne 0x9b22c
leaq 0x3bd9c(%rip), %rdi     # 0xd6df5
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, 0x1073180(%rip)   # 0x110e1e8
jmp 0x9b22c
movq 0x1073144(%rip), %rax   # 0x110e1b8
testq %rax, %rax
jne 0x9b22c
leaq 0x52690(%rip), %rdi     # 0xed714
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1073125(%rip)   # 0x110e1b8
jmp 0x9b22c
movq 0x1073199(%rip), %rax   # 0x110e238
testq %rax, %rax
jne 0x9b22c
leaq 0x525bf(%rip), %rdi     # 0xed66e
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107317a(%rip)   # 0x110e238
jmp 0x9b22c
movq 0x1073186(%rip), %rax   # 0x110e250
testq %rax, %rax
jne 0x9b22c
leaq 0x52653(%rip), %rdi     # 0xed72d
pushq $0x5
popq %rsi
callq 0x8a21
movq %rax, 0x1073167(%rip)   # 0x110e250
jmp 0x9b22c
movq 0x10730e3(%rip), %rax   # 0x110e1d8
testq %rax, %rax
jne 0x9b22c
leaq 0x3ca82(%rip), %rdi     # 0xd7b87
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x10730c4(%rip)   # 0x110e1d8
jmp 0x9b22c
movq 0x1073138(%rip), %rax   # 0x110e258
testq %rax, %rax
jne 0x9b22c
leaq 0x397fb(%rip), %rdi     # 0xd492b
pushq $0x5
popq %rsi
callq 0x8a21
movq %rax, 0x1073119(%rip)   # 0x110e258
jmp 0x9b22c
movq 0x10730cd(%rip), %rax   # 0x110e218
testq %rax, %rax
jne 0x9b22c
leaq 0x3bcf8(%rip), %rdi     # 0xd6e53
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x10730ae(%rip)   # 0x110e218
jmp 0x9b22c
movq 0x107306a(%rip), %rax   # 0x110e1e0
testq %rax, %rax
jne 0x9b22c
leaq 0x3b8c5(%rip), %rdi     # 0xd6a4b
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107304b(%rip)   # 0x110e1e0
jmp 0x9b22c
movq 0x107309f(%rip), %rax   # 0x110e240
testq %rax, %rax
jne 0x9b22c
leaq 0x3ce5b(%rip), %rdi     # 0xd800c
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x1073080(%rip)   # 0x110e240
jmp 0x9b22c
movq 0x1073037(%rip), %rax   # 0x110e200
testq %rax, %rax
jne 0x9b22c
leaq 0x3b941(%rip), %rdi     # 0xd6b16
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107301c(%rip)   # 0x110e200
jmp 0x9b22c
movq 0x1073003(%rip), %rax   # 0x110e1f0
testq %rax, %rax
jne 0x9b22c
leaq 0x3bc0b(%rip), %rdi     # 0xd6e04
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x1072fe8(%rip)   # 0x110e1f0
jmp 0x9b22c
movq 0x1073037(%rip), %rax   # 0x110e248
testq %rax, %rax
jne 0x9b22c
leaq 0x536f4(%rip), %rdi     # 0xee911
pushq $0x3
popq %rsi
callq 0x8a21
movq %rax, 0x107301c(%rip)   # 0x110e248
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rcx
setne %dl
testb $0x3, %al
sete %sil
testb %sil, %dl
je 0x9aeb1
incl (%rcx)
jmp 0x9aeb1
leaq 0x395b4(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6