// File: /workspace/github_c_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x10, %rsp
movq %rcx, %rbx
movq %rdi, %r14
testl %esi, %esi
je 0x9b31f
cmpl $0x1, %esi
je 0x9b2de
cmpl $0x2, %esi
jne 0x9b726
movq %rdx, %rdi
callq 0x17cce
cmpl $0x15, %eax
ja 0x9b726
movl %eax, %eax
leaq 0x38942(%rip), %rcx     # 0xd3bec
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x1072fb6(%rip), %rax   # 0x110e270
testq %rax, %rax
jne 0x9b700
leaq 0x52469(%rip), %rdi     # 0xed733
pushq $0x8
popq %rsi
callq 0x8a21
movq %rax, 0x1072f97(%rip)   # 0x110e270
jmp 0x9b700
movq %rdx, %rdi
callq 0x17cb1
leaq -0x18(%rbp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x8bd97
movq %rax, %r14
movq 0x1072f69(%rip), %rdi   # 0x110e268
testq %rdi, %rdi
jne 0x9b35e
leaq 0x5251b(%rip), %rdi     # 0xed826
pushq $0x4
popq %rsi
callq 0x8a21
movq %rax, %rdi
movq %rax, 0x1072f4b(%rip)   # 0x110e268
jmp 0x9b35e
movq %rdx, %rdi
callq 0x17c94
leaq -0x18(%rbp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x9339f
movq %rax, %r14
movq 0x1072f20(%rip), %rdi   # 0x110e260
testq %rdi, %rdi
jne 0x9b35e
leaq 0x524da(%rip), %rdi     # 0xed826
pushq $0x4
popq %rsi
callq 0x8a21
movq %rax, %rdi
movq %rax, 0x1072f02(%rip)   # 0x110e260
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rdi, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x9b37b
incl (%rax)
movq %r14, %rsi
callq 0xd8b0
movq -0x18(%rbp), %r14
movq %r14, (%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movq 0x1072f56(%rip), %rax   # 0x110e2f0
testq %rax, %rax
jne 0x9b700
leaq 0x52411(%rip), %rdi     # 0xed7bb
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072f37(%rip)   # 0x110e2f0
jmp 0x9b700
movq 0x1072f1b(%rip), %rax   # 0x110e2e0
testq %rax, %rax
jne 0x9b700
leaq 0x523d6(%rip), %rdi     # 0xed7ab
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072efc(%rip)   # 0x110e2e0
jmp 0x9b700
movq 0x1072ed8(%rip), %rax   # 0x110e2c8
testq %rax, %rax
jne 0x9b700
leaq 0x52394(%rip), %rdi     # 0xed794
pushq $0x6
popq %rsi
callq 0x8a21
movq %rax, 0x1072eb9(%rip)   # 0x110e2c8
jmp 0x9b700
movq 0x1072e75(%rip), %rax   # 0x110e290
testq %rax, %rax
jne 0x9b700
leaq 0x52331(%rip), %rdi     # 0xed75c
pushq $0x8
popq %rsi
callq 0x8a21
movq %rax, 0x1072e56(%rip)   # 0x110e290
jmp 0x9b700
movq 0x1072e8a(%rip), %rax   # 0x110e2d0
testq %rax, %rax
jne 0x9b700
leaq 0x52345(%rip), %rdi     # 0xed79b
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072e6b(%rip)   # 0x110e2d0
jmp 0x9b700
movq 0x1072e47(%rip), %rax   # 0x110e2b8
testq %rax, %rax
jne 0x9b700
leaq 0x52303(%rip), %rdi     # 0xed784
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072e28(%rip)   # 0x110e2b8
jmp 0x9b700
movq 0x1072de4(%rip), %rax   # 0x110e280
testq %rax, %rax
jne 0x9b700
leaq 0x52299(%rip), %rdi     # 0xed745
pushq $0x9
popq %rsi
callq 0x8a21
movq %rax, 0x1072dc5(%rip)   # 0x110e280
jmp 0x9b700
movq 0x1072e21(%rip), %rax   # 0x110e2e8
testq %rax, %rax
jne 0x9b700
leaq 0x522dc(%rip), %rdi     # 0xed7b3
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072e02(%rip)   # 0x110e2e8
jmp 0x9b700
movq 0x1072d96(%rip), %rax   # 0x110e288
testq %rax, %rax
jne 0x9b700
leaq 0x5224d(%rip), %rdi     # 0xed74f
pushq $0xc
popq %rsi
callq 0x8a21
movq %rax, 0x1072d77(%rip)   # 0x110e288
jmp 0x9b700
movq 0x1072d8b(%rip), %rax   # 0x110e2a8
testq %rax, %rax
jne 0x9b700
leaq 0x52248(%rip), %rdi     # 0xed775
pushq $0x6
popq %rsi
callq 0x8a21
movq %rax, 0x1072d6c(%rip)   # 0x110e2a8
jmp 0x9b700
movq 0x1072d30(%rip), %rax   # 0x110e278
testq %rax, %rax
jne 0x9b700
leaq 0x521e4(%rip), %rdi     # 0xed73c
pushq $0x8
popq %rsi
callq 0x8a21
movq %rax, 0x1072d11(%rip)   # 0x110e278
jmp 0x9b700
movq 0x1072d95(%rip), %rax   # 0x110e308
testq %rax, %rax
jne 0x9b700
leaq 0x52250(%rip), %rdi     # 0xed7d3
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072d76(%rip)   # 0x110e308
jmp 0x9b700
movq 0x1072d72(%rip), %rax   # 0x110e310
testq %rax, %rax
jne 0x9b700
leaq 0x5222d(%rip), %rdi     # 0xed7db
pushq $0x9
popq %rsi
callq 0x8a21
movq %rax, 0x1072d53(%rip)   # 0x110e310
jmp 0x9b700
movq 0x1072ccf(%rip), %rax   # 0x110e298
testq %rax, %rax
jne 0x9b700
leaq 0x5218c(%rip), %rdi     # 0xed765
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072cb0(%rip)   # 0x110e298
jmp 0x9b700
movq 0x1072d24(%rip), %rax   # 0x110e318
testq %rax, %rax
jne 0x9b700
leaq 0x521e1(%rip), %rdi     # 0xed7e5
pushq $0x9
popq %rsi
callq 0x8a21
movq %rax, 0x1072d05(%rip)   # 0x110e318
jmp 0x9b700
movq 0x1072cb9(%rip), %rax   # 0x110e2d8
testq %rax, %rax
jne 0x9b700
leaq 0x52174(%rip), %rdi     # 0xed7a3
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072c9a(%rip)   # 0x110e2d8
jmp 0x9b700
movq 0x1072c56(%rip), %rax   # 0x110e2a0
testq %rax, %rax
jne 0x9b700
leaq 0x52113(%rip), %rdi     # 0xed76d
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072c37(%rip)   # 0x110e2a0
jmp 0x9b700
movq 0x1072c8b(%rip), %rax   # 0x110e300
testq %rax, %rax
jne 0x9b700
leaq 0x52146(%rip), %rdi     # 0xed7cb
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072c6c(%rip)   # 0x110e300
jmp 0x9b700
movq 0x1072c23(%rip), %rax   # 0x110e2c0
testq %rax, %rax
jne 0x9b700
leaq 0x520e3(%rip), %rdi     # 0xed78c
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072c08(%rip)   # 0x110e2c0
jmp 0x9b700
movq 0x1072bef(%rip), %rax   # 0x110e2b0
testq %rax, %rax
jne 0x9b700
leaq 0x520af(%rip), %rdi     # 0xed77c
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072bd4(%rip)   # 0x110e2b0
jmp 0x9b700
movq 0x1072c13(%rip), %rax   # 0x110e2f8
testq %rax, %rax
jne 0x9b700
leaq 0x520d2(%rip), %rdi     # 0xed7c3
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, 0x1072bf8(%rip)   # 0x110e2f8
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rcx
setne %dl
testb $0x3, %al
sete %sil
testb %sil, %dl
je 0x9b387
incl (%rcx)
jmp 0x9b387
leaq 0x390e0(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6