// File: /workspace/github_c_makefile_star2_O3/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 0xa4243
cmpl $0x1, %esi
je 0xa41f0
cmpl $0x2, %esi
jne 0xa47db
movl 0x4(%rdx), %r15d
decl (%rdx)
jne 0xa4197
movq %rdx, %rdi
callq 0x5030
cmpl $0x15, %r15d
ja 0xa47db
movl %r15d, %eax
leaq 0x3ba21(%rip), %rcx     # 0xdfbcc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10730ad(%rip), %rax   # 0x1117268
testq %rax, %rax
jne 0xa47b5
movl $0x8, %edi
callq 0xf5e4
movq $0x8, 0x10(%rax)
movabsq $0x444e494b5f474154, %rcx # imm = 0x444E494B5F474154
movq %rcx, 0x18(%rax)
movq %rax, 0x107307d(%rip)   # 0x1117268
jmp 0xa47b5
movq 0x8(%rdx), %r15
decl (%rdx)
jne 0xa4200
movq %rdx, %rdi
callq 0x5030
leaq -0x20(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x93807
movq %rax, %r14
movq 0x1073047(%rip), %rdi   # 0x1117260
testq %rdi, %rdi
jne 0xa4294
movl $0x4, %edi
callq 0xf5e4
movq %rax, %rdi
movq $0x4, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movq %rax, 0x107301f(%rip)   # 0x1117260
jmp 0xa4294
movq 0x8(%rdx), %r15
decl (%rdx)
jne 0xa4253
movq %rdx, %rdi
callq 0x5030
leaq -0x20(%rbp), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x9b7b1
movq %rax, %r14
movq 0x1072fec(%rip), %rdi   # 0x1117258
testq %rdi, %rdi
jne 0xa4294
movl $0x4, %edi
callq 0xf5e4
movq %rax, %rdi
movq $0x4, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movq %rax, 0x1072fc4(%rip)   # 0x1117258
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdi, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0xa42b1
incl (%rax)
movq %r14, %rsi
callq 0xe069
movq -0x20(%rbp), %r14
movq %r14, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x1073016(%rip), %rax   # 0x11172e8
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3436465f, 0x1b(%rax) # imm = 0x3436465F
movq %rax, 0x1072fe6(%rip)   # 0x11172e8
jmp 0xa47b5
movq 0x1072fca(%rip), %rax   # 0x11172d8
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3436495f, 0x1b(%rax) # imm = 0x3436495F
movq %rax, 0x1072f9a(%rip)   # 0x11172d8
jmp 0xa47b5
movq 0x1072f76(%rip), %rax   # 0x11172c0
testq %rax, %rax
jne 0xa47b5
movl $0x6, %edi
callq 0xf5e4
movq $0x6, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movw $0x3849, 0x1c(%rax)     # imm = 0x3849
movq %rax, 0x1072f47(%rip)   # 0x11172c0
jmp 0xa47b5
movq 0x1072f03(%rip), %rax   # 0x1117288
testq %rax, %rax
jne 0xa47b5
movl $0x8, %edi
callq 0xf5e4
movq $0x8, 0x10(%rax)
movabsq $0x4c4f4f425f474154, %rcx # imm = 0x4C4F4F425F474154
movq %rcx, 0x18(%rax)
movq %rax, 0x1072ed3(%rip)   # 0x1117288
jmp 0xa47b5
movq 0x1072f07(%rip), %rax   # 0x11172c8
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3631495f, 0x1b(%rax) # imm = 0x3631495F
movq %rax, 0x1072ed7(%rip)   # 0x11172c8
jmp 0xa47b5
movq 0x1072eb3(%rip), %rax   # 0x11172b0
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3233555f, 0x1b(%rax) # imm = 0x3233555F
movq %rax, 0x1072e83(%rip)   # 0x11172b0
jmp 0xa47b5
movq 0x1072e3f(%rip), %rax   # 0x1117278
testq %rax, %rax
jne 0xa47b5
movl $0x9, %edi
callq 0xf5e4
movq $0x9, 0x10(%rax)
movabsq $0x434154535f474154, %rcx # imm = 0x434154535F474154
movq %rcx, 0x18(%rax)
movb $0x4b, 0x20(%rax)
movq %rax, 0x1072e0b(%rip)   # 0x1117278
jmp 0xa47b5
movq 0x1072e67(%rip), %rax   # 0x11172e0
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3233465f, 0x1b(%rax) # imm = 0x3233465F
movq %rax, 0x1072e37(%rip)   # 0x11172e0
jmp 0xa47b5
movq 0x1072dcb(%rip), %rax   # 0x1117280
testq %rax, %rax
jne 0xa47b5
movl $0xc, %edi
callq 0xf5e4
movq $0xc, 0x10(%rax)
movabsq $0x4f5345525f474154, %rcx # imm = 0x4F5345525F474154
movq %rcx, 0x18(%rax)
movl $0x45435255, 0x20(%rax) # imm = 0x45435255
movq %rax, 0x1072d94(%rip)   # 0x1117280
jmp 0xa47b5
movq 0x1072da8(%rip), %rax   # 0x11172a0
testq %rax, %rax
jne 0xa47b5
movl $0x6, %edi
callq 0xf5e4
movq $0x6, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movw $0x3855, 0x1c(%rax)     # imm = 0x3855
movq %rax, 0x1072d79(%rip)   # 0x11172a0
jmp 0xa47b5
movq 0x1072d3d(%rip), %rax   # 0x1117270
testq %rax, %rax
jne 0xa47b5
movl $0x8, %edi
callq 0xf5e4
movq $0x8, 0x10(%rax)
movabsq $0x455059545f474154, %rcx # imm = 0x455059545F474154
movq %rcx, 0x18(%rax)
movq %rax, 0x1072d0d(%rip)   # 0x1117270
jmp 0xa47b5
movq 0x1072d91(%rip), %rax   # 0x1117300
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x5254505f, 0x1b(%rax) # imm = 0x5254505F
movq %rax, 0x1072d61(%rip)   # 0x1117300
jmp 0xa47b5
movq 0x1072d5d(%rip), %rax   # 0x1117308
testq %rax, %rax
jne 0xa47b5
movl $0x9, %edi
callq 0xf5e4
movq $0x9, 0x10(%rax)
movabsq $0x4c524f575f474154, %rcx # imm = 0x4C524F575F474154
movq %rcx, 0x18(%rax)
movb $0x44, 0x20(%rax)
movq %rax, 0x1072d29(%rip)   # 0x1117308
jmp 0xa47b5
movq 0x1072ca5(%rip), %rax   # 0x1117290
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x544e495f, 0x1b(%rax) # imm = 0x544E495F
movq %rax, 0x1072c75(%rip)   # 0x1117290
jmp 0xa47b5
movq 0x1072ce9(%rip), %rax   # 0x1117310
testq %rax, %rax
jne 0xa47b5
movl $0x9, %edi
callq 0xf5e4
movq $0x9, 0x10(%rax)
movabsq $0x554245445f474154, %rcx # imm = 0x554245445F474154
movq %rcx, 0x18(%rax)
movb $0x47, 0x20(%rax)
movq %rax, 0x1072cb5(%rip)   # 0x1117310
jmp 0xa47b5
movq 0x1072c69(%rip), %rax   # 0x11172d0
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3233495f, 0x1b(%rax) # imm = 0x3233495F
movq %rax, 0x1072c39(%rip)   # 0x11172d0
jmp 0xa47b5
movq 0x1072bf5(%rip), %rax   # 0x1117298
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x54414e5f, 0x1b(%rax) # imm = 0x54414E5F
movq %rax, 0x1072bc5(%rip)   # 0x1117298
jmp 0xa47b5
movq 0x1072c19(%rip), %rax   # 0x11172f8
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x5254535f, 0x1b(%rax) # imm = 0x5254535F
movq %rax, 0x1072be9(%rip)   # 0x11172f8
jmp 0xa47b5
movq 0x1072b9d(%rip), %rax   # 0x11172b8
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3436555f, 0x1b(%rax) # imm = 0x3436555F
movq %rax, 0x1072b6d(%rip)   # 0x11172b8
jmp 0xa47b5
movq 0x1072b54(%rip), %rax   # 0x11172a8
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x3631555f, 0x1b(%rax) # imm = 0x3631555F
movq %rax, 0x1072b28(%rip)   # 0x11172a8
jmp 0xa47b5
movq 0x1072b67(%rip), %rax   # 0x11172f0
testq %rax, %rax
jne 0xa47b5
movl $0x7, %edi
callq 0xf5e4
movq $0x7, 0x10(%rax)
movl $0x5f474154, 0x18(%rax) # imm = 0x5F474154
movl $0x5252415f, 0x1b(%rax) # imm = 0x5252415F
movq %rax, 0x1072b3b(%rip)   # 0x11172f0
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rcx
setne %dl
testb $0x3, %al
sete %sil
testb %sil, %dl
je 0xa42bd
incl (%rcx)
jmp 0xa42bd
movl $0x20, %edi
callq 0xf5e4
movq $0x20, 0x10(%rax)
movups 0x3bed9(%rip), %xmm0    # 0xe06cd
movups %xmm0, 0x18(%rax)
movups 0x3bede(%rip), %xmm0    # 0xe06dd
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x9302