// File: /workspace/github_c_makefile_star2_O1/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_C99ReprType_getzedatazetag
static STR* mw_mirth_c99_C99ReprType_getzedatazetag (struct mirth_mirth_zaMirth* in_zaMirth_1, STR* in_Str_2, struct mirth_c99_C99ReprType in_C99ReprType_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	struct mirth_mirth_zaMirth* branch_zaMirth_6;
	STR* branch_Str_7;
	switch ((in_C99ReprType_3).tag) {
		case mirth_c99_C99ReprType_I64: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_I32: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_I16: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_I8: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_U64: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_U32: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_U16: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_U8: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_Bool: {
			branch_Str_7 = in_Str_2;
			branch_zaMirth_6 = in_zaMirth_1;
		} break;
		case mirth_c99_C99ReprType_Data: {
			uint64_t v8 = mtp_mirth_c99_C99ReprType_Data(in_C99ReprType_3);
			struct mirth_mirth_zaMirth* v9;
			struct mirth_c99_C99DataRepr v10 = mw_mirth_data_Data_c99zerepr(in_zaMirth_1, v8, &v9);
			struct mirth_mirth_zaMirth* v11;
			STR* v12 = mw_mirth_c99_C99DataRepr_getzedatazetag(v9, in_Str_2, v10, &v11);
			branch_Str_7 = v12;
			branch_zaMirth_6 = v11;
		} break;
		case mirth_c99_C99ReprType_Nat: {
			STR* v13;
			STRLIT(v13, "get-data-tag on Nat", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v13);
		} break;
		case mirth_c99_C99ReprType_Int: {
			STR* v15;
			STRLIT(v15, "get-data-tag on Int", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v15);
		} break;
		case mirth_c99_C99ReprType_Table: {
			uint64_t v17 = mtp_mirth_c99_C99ReprType_Table(in_C99ReprType_3);
			STR* v18;
			STRLIT(v18, "get-data-tag on Table", 21);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v18);
		} break;
		case mirth_c99_C99ReprType_Void: {
			STR* v20;
			STRLIT(v20, "get-data-tag on Void", 20);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v20);
		} break;
		case mirth_c99_C99ReprType_VAL: {
			STR* v22;
			STRLIT(v22, "get-data-tag on VAL", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v22);
		} break;
		case mirth_c99_C99ReprType_STR: {
			STR* v24;
			STRLIT(v24, "get-data-tag on STR", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v24);
		} break;
		case mirth_c99_C99ReprType_ARR: {
			STR* v26;
			STRLIT(v26, "get-data-tag on ARR", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v26);
		} break;
		case mirth_c99_C99ReprType_TUP: {
			STR* v28;
			STRLIT(v28, "get-data-tag on TUP", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v28);
		} break;
		case mirth_c99_C99ReprType_PTR: {
			STR* v30;
			STRLIT(v30, "get-data-tag on PTR", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v30);
		} break;
		case mirth_c99_C99ReprType_FNPTR: {
			STR* v32;
			STRLIT(v32, "get-data-tag on FNPTR", 21);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v32);
		} break;
		case mirth_c99_C99ReprType_F64: {
			STR* v34;
			STRLIT(v34, "get-data-tag on F64", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v34);
		} break;
		case mirth_c99_C99ReprType_F32: {
			STR* v36;
			STRLIT(v36, "get-data-tag on F32", 19);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v36);
		} break;
		default: {
			STR* v38;
			STRLIT(v38, "get-data-tag on unknown repr", 28);
			mw_mirth_mirth_zaMirth_fatalzeerrorzx(in_zaMirth_1, v38);
		} break;
	}
	*out_zaMirth_4 = branch_zaMirth_6;
	return branch_Str_7;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, %r14
movq %rsi, %r15
movq %rdi, %rbx
leal -0x7(%rdx), %eax
cmpl $0x8, %eax
jae 0xdfe34
movq %rbx, (%r14)
movq %r15, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x15, %edx
ja 0xe052f
movl %edx, %eax
leaq 0x4696(%rip), %rdx      # 0xe44dc
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x8(%rcx), %r12
decl (%rcx)
jne 0xdfe5f
movq %rcx, %rdi
callq 0x5030
leaq -0x40(%rbp), %rdx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x96e7c
cmpl $0x4, %eax
ja 0xe0594
movq -0x40(%rbp), %rbx
movl %eax, %eax
leaq 0x46b0(%rip), %rcx      # 0xe4534
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9f9b7
movq %rax, %r13
movq %rax, %rdi
movq %r15, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xdfed4
decl (%rax)
jne 0xdfed4
leaq 0x35295(%rip), %rsi     # 0x115159
movq %rdi, -0x30(%rbp)
movq %r15, %rdi
callq 0xd4e3
movq -0x30(%rbp), %rdi
movq 0x8(%rdi), %r15
andq %r12, %r13
sete %al
testb $0x3, %dil
setne %cl
orb %al, %cl
jne 0xdfefb
decl (%r13)
jne 0xdfefb
leaq 0x36ecb(%rip), %rsi     # 0x116dc1
callq 0xd4e3
leaq -0x38(%rbp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xe05c4
movq %rax, %rbx
cmpq $0x0, 0x103d6cb(%rip)   # 0x111d5e0
jne 0xdff36
movl $0x2, %edi
callq 0xf9f7
movq $0x2, 0x10(%rax)
movw $0x4c4c, 0x18(%rax)     # imm = 0x4C4C
movq %rax, 0x103d6aa(%rip)   # 0x111d5e0
movq 0x103d6a3(%rip), %rsi   # 0x111d5e0
jmp 0xe01d1
movabsq $0xfffffffffffc, %r13   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9fa68
movq %rax, %rcx
andq %r13, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0xdff7b
decl (%rcx)
jne 0xdff7b
leaq 0x36f6e(%rip), %rsi     # 0x116ee1
movq %rax, %rdi
callq 0xd4e3
cmpq $0x0, 0x103d685(%rip)   # 0x111d608
jne 0xdff9b
xorl %edi, %edi
callq 0xf9f7
movq $0x0, 0x10(%rax)
movq %rax, 0x103d66d(%rip)   # 0x111d608
movq 0x103d666(%rip), %r12   # 0x111d608
movq %r12, %rax
andq %r13, %rax
sete %cl
testb $0x3, %r12b
setne %dl
orb %cl, %dl
jne 0xdffb8
incl (%rax)
cmpq $0x0, 0x103d650(%rip)   # 0x111d610
jne 0xdffdf
movl $0x1, %edi
callq 0xf9f7
movq $0x1, 0x10(%rax)
movb $0x28, 0x18(%rax)
movq %rax, 0x103d631(%rip)   # 0x111d610
movq 0x103d62a(%rip), %rsi   # 0x111d610
movq %rsi, %rax
andq %r13, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xdfffc
incl (%rax)
movq %r12, %rdi
callq 0xe43c
movq %rax, %rdi
movq %r15, %rsi
callq 0xe43c
movq %rax, %r15
cmpq $0x0, 0x103d5fe(%rip)   # 0x111d618
jne 0xe0040
movl $0x5, %edi
callq 0xf9f7
movq $0x5, 0x10(%rax)
movl $0x61742e29, 0x18(%rax) # imm = 0x61742E29
movb $0x67, 0x1c(%rax)
movq %rax, 0x103d5d8(%rip)   # 0x111d618
movq 0x103d5d1(%rip), %rsi   # 0x111d618
andq %rsi, %r13
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0xe005c
incl (%r13)
movq %r15, %rdi
callq 0xe43c
movq %rax, %r15
jmp 0xdfe1f
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9f9f2
movq %rax, %r13
movq %rax, %rdi
movq %r15, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xe00b3
decl (%rax)
jne 0xe00b3
leaq 0x350b6(%rip), %rsi     # 0x115159
movq %rdi, -0x30(%rbp)
movq %r15, %rdi
callq 0xd4e3
movq -0x30(%rbp), %rdi
movq 0x8(%rdi), %r15
andq %r12, %r13
sete %al
testb $0x3, %dil
setne %cl
orb %al, %cl
jne 0xe00da
decl (%r13)
jne 0xe00da
leaq 0x36d7c(%rip), %rsi     # 0x116e51
callq 0xd4e3
leaq -0x38(%rbp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xe05c4
movq %rax, %rbx
cmpq $0x0, 0x103d504(%rip)   # 0x111d5f8
jne 0xe0115
movl $0x2, %edi
callq 0xf9f7
movq $0x2, 0x10(%rax)
movw $0x4c4c, 0x18(%rax)     # imm = 0x4C4C
movq %rax, 0x103d4e3(%rip)   # 0x111d5f8
movq 0x103d4dc(%rip), %rsi   # 0x111d5f8
jmp 0xe01d1
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9fa2d
movq %rax, %r13
movq %rax, %rdi
movq %r15, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xe0168
decl (%rax)
jne 0xe0168
leaq 0x35001(%rip), %rsi     # 0x115159
movq %rdi, -0x30(%rbp)
movq %r15, %rdi
callq 0xd4e3
movq -0x30(%rbp), %rdi
movq 0x8(%rdi), %r15
andq %r12, %r13
sete %al
testb $0x3, %dil
setne %cl
orb %al, %cl
jne 0xe018f
decl (%r13)
jne 0xe018f
leaq 0x36d0f(%rip), %rsi     # 0x116e99
callq 0xd4e3
leaq -0x38(%rbp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xe05c4
movq %rax, %rbx
cmpq $0x0, 0x103d457(%rip)   # 0x111d600
jne 0xe01ca
movl $0x2, %edi
callq 0xf9f7
movq $0x2, 0x10(%rax)
movw $0x4c4c, 0x18(%rax)     # imm = 0x4C4C
movq %rax, 0x103d436(%rip)   # 0x111d600
movq 0x103d42f(%rip), %rsi   # 0x111d600
andq %rsi, %r12
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0xe01e6
incl (%r12)
movq %rbx, %rdi
callq 0xe43c
movq %rax, %r15
movq -0x38(%rbp), %rbx
jmp 0xdfe1f
decl (%rdx)
jne 0xdfe1f
movq %rdx, %rdi
callq 0x5030
jmp 0xdfe1f
decl (%rcx)
jne 0xe021b
movq %rcx, %rdi
callq 0x5030
cmpq $0x0, 0x103d365(%rip)   # 0x111d588
jne 0xe0257
movl $0x15, %edi
callq 0xf9f7
movq $0x15, 0x10(%rax)
movabsq $0x656c626154206e6f, %rcx # imm = 0x656C626154206E6F
movq %rcx, 0x25(%rax)
movups 0x1e581(%rip), %xmm0    # 0xfe7cd
movups %xmm0, 0x18(%rax)
movq %rax, 0x103d331(%rip)   # 0x111d588
movq 0x103d32a(%rip), %rsi   # 0x111d588
jmp 0xe056f
cmpq $0x0, 0x103d355(%rip)   # 0x111d5c0
jne 0xe029f
movl $0x15, %edi
callq 0xf9f7
movq $0x15, 0x10(%rax)
movabsq $0x5254504e46206e6f, %rcx # imm = 0x5254504E46206E6F
movq %rcx, 0x25(%rax)
movups 0x1e5c8(%rip), %xmm0    # 0xfe85c
movups %xmm0, 0x18(%rax)
movq %rax, 0x103d321(%rip)   # 0x111d5c0
movq 0x103d31a(%rip), %rsi   # 0x111d5c0
jmp 0xe056f
cmpq $0x0, 0x103d305(%rip)   # 0x111d5b8
jne 0xe02e0
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e57a(%rip), %xmm0    # 0xfe848
movups %xmm0, 0x18(%rax)
movl $0x52545020, 0x27(%rax) # imm = 0x52545020
movq %rax, 0x103d2d8(%rip)   # 0x111d5b8
movq 0x103d2d1(%rip), %rsi   # 0x111d5b8
jmp 0xe056f
cmpq $0x0, 0x103d2dc(%rip)   # 0x111d5d0
jne 0xe0321
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e577(%rip), %xmm0    # 0xfe886
movups %xmm0, 0x18(%rax)
movl $0x32334620, 0x27(%rax) # imm = 0x32334620
movq %rax, 0x103d2af(%rip)   # 0x111d5d0
movq 0x103d2a8(%rip), %rsi   # 0x111d5d0
jmp 0xe056f
cmpq $0x0, 0x103d293(%rip)   # 0x111d5c8
jne 0xe0362
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e522(%rip), %xmm0    # 0xfe872
movups %xmm0, 0x18(%rax)
movl $0x34364620, 0x27(%rax) # imm = 0x34364620
movq %rax, 0x103d266(%rip)   # 0x111d5c8
movq 0x103d25f(%rip), %rsi   # 0x111d5c8
jmp 0xe056f
cmpq $0x0, 0x103d202(%rip)   # 0x111d578
jne 0xe03a3
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e414(%rip), %xmm0    # 0xfe7a5
movups %xmm0, 0x18(%rax)
movl $0x74614e20, 0x27(%rax) # imm = 0x74614E20
movq %rax, 0x103d1d5(%rip)   # 0x111d578
movq 0x103d1ce(%rip), %rsi   # 0x111d578
jmp 0xe056f
cmpq $0x0, 0x103d1c9(%rip)   # 0x111d580
jne 0xe03e4
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e3e7(%rip), %xmm0    # 0xfe7b9
movups %xmm0, 0x18(%rax)
movl $0x746e4920, 0x27(%rax) # imm = 0x746E4920
movq %rax, 0x103d19c(%rip)   # 0x111d580
movq 0x103d195(%rip), %rsi   # 0x111d580
jmp 0xe056f
cmpq $0x0, 0x103d1b8(%rip)   # 0x111d5b0
jne 0xe0425
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e421(%rip), %xmm0    # 0xfe834
movups %xmm0, 0x18(%rax)
movl $0x50555420, 0x27(%rax) # imm = 0x50555420
movq %rax, 0x103d18b(%rip)   # 0x111d5b0
movq 0x103d184(%rip), %rsi   # 0x111d5b0
jmp 0xe056f
cmpq $0x0, 0x103d16f(%rip)   # 0x111d5a8
jne 0xe0466
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e3cc(%rip), %xmm0    # 0xfe820
movups %xmm0, 0x18(%rax)
movl $0x52524120, 0x27(%rax) # imm = 0x52524120
movq %rax, 0x103d142(%rip)   # 0x111d5a8
movq 0x103d13b(%rip), %rsi   # 0x111d5a8
jmp 0xe056f
cmpq $0x0, 0x103d126(%rip)   # 0x111d5a0
jne 0xe04a7
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e377(%rip), %xmm0    # 0xfe80c
movups %xmm0, 0x18(%rax)
movl $0x52545320, 0x27(%rax) # imm = 0x52545320
movq %rax, 0x103d0f9(%rip)   # 0x111d5a0
movq 0x103d0f2(%rip), %rsi   # 0x111d5a0
jmp 0xe056f
cmpq $0x0, 0x103d0dd(%rip)   # 0x111d598
jne 0xe04e8
movl $0x13, %edi
callq 0xf9f7
movq $0x13, 0x10(%rax)
movups 0x1e322(%rip), %xmm0    # 0xfe7f8
movups %xmm0, 0x18(%rax)
movl $0x4c415620, 0x27(%rax) # imm = 0x4C415620
movq %rax, 0x103d0b0(%rip)   # 0x111d598
movq 0x103d0a9(%rip), %rsi   # 0x111d598
jmp 0xe056f
cmpq $0x0, 0x103d097(%rip)   # 0x111d590
jne 0xe0526
movl $0x14, %edi
callq 0xf9f7
movq $0x14, 0x10(%rax)
movups 0x1e2cf(%rip), %xmm0    # 0xfe7e3
movups %xmm0, 0x18(%rax)
movl $0x64696f56, 0x28(%rax) # imm = 0x64696F56
movq %rax, 0x103d06a(%rip)   # 0x111d590
movq 0x103d063(%rip), %rsi   # 0x111d590
jmp 0xe056f
cmpq $0x0, 0x103d0a1(%rip)   # 0x111d5d8
jne 0xe0568
movl $0x1c, %edi
callq 0xf9f7
movq $0x1c, 0x10(%rax)
movups 0x1e348(%rip), %xmm0    # 0xfe89a
movups %xmm0, 0x18(%rax)
movups 0x1e349(%rip), %xmm0    # 0xfe8a6
movups %xmm0, 0x24(%rax)
movq %rax, 0x103d070(%rip)   # 0x111d5d8
movq 0x103d069(%rip), %rsi   # 0x111d5d8
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xe058c
incl (%rax)
movq %rbx, %rdi
callq 0x15000
movl $0x20, %edi
callq 0xf9f7
movq $0x20, 0x10(%rax)
movups 0x41a0(%rip), %xmm0     # 0xe474d
movups %xmm0, 0x18(%rax)
movups 0x41a5(%rip), %xmm0     # 0xe475d
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x95a5