// File: /workspace/github_c_makefile_star2_O1/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_tycon_Tycon_c99zereprzetag
static STR* mw_mirth_tycon_Tycon_c99zereprzetag (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_c99zereprzetag(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);
			STR* v13;
			STRLIT(v13, "TAG_", 4);
			STR* v14 = str_cat(v13, v12);
			branch_Str_6 = v14;
			branch_zaMirth_5 = v11;
		} break;
		case mirth_tycon_Tycon_Table: {
			uint64_t v15 = mtp_mirth_tycon_Tycon_Table(in_Tycon_2);
			struct mirth_mirth_zaMirth* v16;
			STR* v17 = mw_mirth_table_Table_cname(in_zaMirth_1, v15, &v16);
			STR* v18;
			STRLIT(v18, "TAG_", 4);
			STR* v19 = str_cat(v18, v17);
			branch_Str_6 = v19;
			branch_zaMirth_5 = v16;
		} 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 0xa6dc4
cmpl $0x1, %esi
je 0xa6d6f
cmpl $0x2, %esi
jne 0xa737b
movl 0x4(%rdx), %r15d
decl (%rdx)
jne 0xa6d15
movq %rdx, %rdi
callq 0x5030
cmpl $0x15, %r15d
ja 0xa737b
movl %r15d, %eax
leaq 0x3ce5b(%rip), %rcx     # 0xe3b84
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpq $0x0, 0x107452e(%rip)   # 0x111b268
jne 0xa6d63
movl $0x8, %edi
callq 0xf9f7
movq $0x8, 0x10(%rax)
movabsq $0x444e494b5f474154, %rcx # imm = 0x444E494B5F474154
movq %rcx, 0x18(%rax)
movq %rax, 0x1074505(%rip)   # 0x111b268
movq 0x10744fe(%rip), %rax   # 0x111b268
jmp 0xa7355
movq 0x8(%rdx), %r15
decl (%rdx)
jne 0xa6d7f
movq %rdx, %rdi
callq 0x5030
leaq -0x20(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x95f0c
movq %rax, %r14
cmpq $0x0, 0x10744c7(%rip)   # 0x111b260
jne 0xa6dbb
movl $0x4, %edi
callq 0xf9f7
movq $0x4, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movq %rax, 0x10744a5(%rip)   # 0x111b260
movq 0x107449e(%rip), %rdi   # 0x111b260
jmp 0xa6e17
movq 0x8(%rdx), %r15
decl (%rdx)
jne 0xa6dd4
movq %rdx, %rdi
callq 0x5030
leaq -0x20(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x9e227
movq %rax, %r14
cmpq $0x0, 0x107446a(%rip)   # 0x111b258
jne 0xa6e10
movl $0x4, %edi
callq 0xf9f7
movq $0x4, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movq %rax, 0x1074448(%rip)   # 0x111b258
movq 0x1074441(%rip), %rdi   # 0x111b258
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdi, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0xa6e34
incl (%rax)
movq %r14, %rsi
callq 0xe43c
movq -0x20(%rbp), %r14
movq %r14, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0x1074492(%rip)   # 0x111b2e8
jne 0xa6e7f
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3436465f, 0x1b(%rax) # imm = 0x3436465F
movq %rax, 0x1074469(%rip)   # 0x111b2e8
movq 0x1074462(%rip), %rax   # 0x111b2e8
jmp 0xa7355
cmpq $0x0, 0x1074445(%rip)   # 0x111b2d8
jne 0xa6ebc
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3436495f, 0x1b(%rax) # imm = 0x3436495F
movq %rax, 0x107441c(%rip)   # 0x111b2d8
movq 0x1074415(%rip), %rax   # 0x111b2d8
jmp 0xa7355
cmpq $0x0, 0x10743f0(%rip)   # 0x111b2c0
jne 0xa6ef8
movl $0x6, %edi
callq 0xf9f7
movq $0x6, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movw $0x3849, 0x1c(%rax)     # imm = 0x3849
movq %rax, 0x10743c8(%rip)   # 0x111b2c0
movq 0x10743c1(%rip), %rax   # 0x111b2c0
jmp 0xa7355
cmpq $0x0, 0x107437c(%rip)   # 0x111b288
jne 0xa6f35
movl $0x8, %edi
callq 0xf9f7
movq $0x8, 0x10(%rax)
movabsq $0x4c4f4f425f474154, %rcx # imm = 0x4C4F4F425F474154
movq %rcx, 0x18(%rax)
movq %rax, 0x1074353(%rip)   # 0x111b288
movq 0x107434c(%rip), %rax   # 0x111b288
jmp 0xa7355
cmpq $0x0, 0x107437f(%rip)   # 0x111b2c8
jne 0xa6f72
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3631495f, 0x1b(%rax) # imm = 0x3631495F
movq %rax, 0x1074356(%rip)   # 0x111b2c8
movq 0x107434f(%rip), %rax   # 0x111b2c8
jmp 0xa7355
cmpq $0x0, 0x107432a(%rip)   # 0x111b2b0
jne 0xa6faf
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3233555f, 0x1b(%rax) # imm = 0x3233555F
movq %rax, 0x1074301(%rip)   # 0x111b2b0
movq 0x10742fa(%rip), %rax   # 0x111b2b0
jmp 0xa7355
cmpq $0x0, 0x10742b5(%rip)   # 0x111b278
jne 0xa6ff0
movl $0x9, %edi
callq 0xf9f7
movq $0x9, 0x10(%rax)
movabsq $0x434154535f474154, %rcx # imm = 0x434154535F474154
movq %rcx, 0x18(%rax)
movb $0x4b, 0x20(%rax)
movq %rax, 0x1074288(%rip)   # 0x111b278
movq 0x1074281(%rip), %rax   # 0x111b278
jmp 0xa7355
cmpq $0x0, 0x10742dc(%rip)   # 0x111b2e0
jne 0xa702d
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3233465f, 0x1b(%rax) # imm = 0x3233465F
movq %rax, 0x10742b3(%rip)   # 0x111b2e0
movq 0x10742ac(%rip), %rax   # 0x111b2e0
jmp 0xa7355
cmpq $0x0, 0x107423f(%rip)   # 0x111b280
jne 0xa7071
movl $0xc, %edi
callq 0xf9f7
movq $0xc, 0x10(%rax)
movabsq $0x4f5345525f474154, %rcx # imm = 0x4F5345525F474154
movq %rcx, 0x18(%rax)
movl $0x45435255, 0x20(%rax) # imm = 0x45435255
movq %rax, 0x107420f(%rip)   # 0x111b280
movq 0x1074208(%rip), %rax   # 0x111b280
jmp 0xa7355
cmpq $0x0, 0x107421b(%rip)   # 0x111b2a0
jne 0xa70ad
movl $0x6, %edi
callq 0xf9f7
movq $0x6, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movw $0x3855, 0x1c(%rax)     # imm = 0x3855
movq %rax, 0x10741f3(%rip)   # 0x111b2a0
movq 0x10741ec(%rip), %rax   # 0x111b2a0
jmp 0xa7355
cmpq $0x0, 0x10741af(%rip)   # 0x111b270
jne 0xa70ea
movl $0x8, %edi
callq 0xf9f7
movq $0x8, 0x10(%rax)
movabsq $0x455059545f474154, %rcx # imm = 0x455059545F474154
movq %rcx, 0x18(%rax)
movq %rax, 0x1074186(%rip)   # 0x111b270
movq 0x107417f(%rip), %rax   # 0x111b270
jmp 0xa7355
cmpq $0x0, 0x1074202(%rip)   # 0x111b300
jne 0xa7127
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x5254505f, 0x1b(%rax) # imm = 0x5254505F
movq %rax, 0x10741d9(%rip)   # 0x111b300
movq 0x10741d2(%rip), %rax   # 0x111b300
jmp 0xa7355
cmpq $0x0, 0x10741cd(%rip)   # 0x111b308
jne 0xa7168
movl $0x9, %edi
callq 0xf9f7
movq $0x9, 0x10(%rax)
movabsq $0x4c524f575f474154, %rcx # imm = 0x4C524F575F474154
movq %rcx, 0x18(%rax)
movb $0x44, 0x20(%rax)
movq %rax, 0x10741a0(%rip)   # 0x111b308
movq 0x1074199(%rip), %rax   # 0x111b308
jmp 0xa7355
cmpq $0x0, 0x1074114(%rip)   # 0x111b290
jne 0xa71a5
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x544e495f, 0x1b(%rax) # imm = 0x544E495F
movq %rax, 0x10740eb(%rip)   # 0x111b290
movq 0x10740e4(%rip), %rax   # 0x111b290
jmp 0xa7355
cmpq $0x0, 0x1074157(%rip)   # 0x111b310
jne 0xa71e6
movl $0x9, %edi
callq 0xf9f7
movq $0x9, 0x10(%rax)
movabsq $0x554245445f474154, %rcx # imm = 0x554245445F474154
movq %rcx, 0x18(%rax)
movb $0x47, 0x20(%rax)
movq %rax, 0x107412a(%rip)   # 0x111b310
movq 0x1074123(%rip), %rax   # 0x111b310
jmp 0xa7355
cmpq $0x0, 0x10740d6(%rip)   # 0x111b2d0
jne 0xa7223
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3233495f, 0x1b(%rax) # imm = 0x3233495F
movq %rax, 0x10740ad(%rip)   # 0x111b2d0
movq 0x10740a6(%rip), %rax   # 0x111b2d0
jmp 0xa7355
cmpq $0x0, 0x1074061(%rip)   # 0x111b298
jne 0xa7260
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x54414e5f, 0x1b(%rax) # imm = 0x54414E5F
movq %rax, 0x1074038(%rip)   # 0x111b298
movq 0x1074031(%rip), %rax   # 0x111b298
jmp 0xa7355
cmpq $0x0, 0x1074084(%rip)   # 0x111b2f8
jne 0xa729d
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x5254535f, 0x1b(%rax) # imm = 0x5254535F
movq %rax, 0x107405b(%rip)   # 0x111b2f8
movq 0x1074054(%rip), %rax   # 0x111b2f8
jmp 0xa7355
cmpq $0x0, 0x1074007(%rip)   # 0x111b2b8
jne 0xa72da
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3436555f, 0x1b(%rax) # imm = 0x3436555F
movq %rax, 0x1073fde(%rip)   # 0x111b2b8
movq 0x1073fd7(%rip), %rax   # 0x111b2b8
jmp 0xa7355
cmpq $0x0, 0x1073fbd(%rip)   # 0x111b2a8
jne 0xa7314
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3631555f, 0x1b(%rax) # imm = 0x3631555F
movq %rax, 0x1073f94(%rip)   # 0x111b2a8
movq 0x1073f8d(%rip), %rax   # 0x111b2a8
jmp 0xa7355
cmpq $0x0, 0x1073fcb(%rip)   # 0x111b2f0
jne 0xa734e
movl $0x7, %edi
callq 0xf9f7
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x5252415f, 0x1b(%rax) # imm = 0x5252415F
movq %rax, 0x1073fa2(%rip)   # 0x111b2f0
movq 0x1073f9b(%rip), %rax   # 0x111b2f0
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0xa6e40
incl (%rcx)
jmp 0xa6e40
movl $0x20, %edi
callq 0xf9f7
movq $0x20, 0x10(%rax)
movups 0x3d3b9(%rip), %xmm0    # 0xe474d
movups %xmm0, 0x18(%rax)
movups 0x3d3be(%rip), %xmm0    # 0xe475d
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x95a5