// File: /workspace/github_c_makefile_star2_O3/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 0xdb65d
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 0xdbd8b
movl %edx, %eax
leaq 0x4eb5(%rip), %rdx      # 0xe0524
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x8(%rcx), %r12
decl (%rcx)
jne 0xdb688
movq %rcx, %rdi
callq 0x5030
leaq -0x38(%rbp), %rdx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x946d0
cmpl $0x4, %eax
ja 0xdbdee
movq -0x38(%rbp), %rbx
movl %eax, %eax
leaq 0x4ecf(%rip), %rcx      # 0xe057c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9cf01
movq %r12, %rsi
movq %rax, %r13
movq %rax, %r12
movq %r15, %rax
andq %rsi, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xdb702
decl (%rax)
jne 0xdb702
leaq 0x35a69(%rip), %rsi     # 0x111159
movq %r15, %rdi
callq 0xd13d
movabsq $0xfffffffffffc, %rsi   # imm = 0xFFFFFFFFFFFC
movq 0x8(%r12), %r15
andq %rsi, %r13
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0xdb72d
decl (%r13)
jne 0xdb72d
leaq 0x3769c(%rip), %rsi     # 0x112dc1
movq %r12, %rdi
callq 0xd13d
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xdbe1e
movq %rax, %rbx
movq 0x103de9a(%rip), %rsi   # 0x11195e0
testq %rsi, %rsi
jne 0xdba11
movl $0x2, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x2, 0x10(%rax)
movw $0x4c4c, 0x18(%rax)     # imm = 0x4C4C
movq %rax, 0x103de6f(%rip)   # 0x11195e0
jmp 0xdba11
movabsq $0xfffffffffffc, %r13   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9cfb2
movq %rax, %rcx
andq %r13, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0xdb7af
decl (%rcx)
jne 0xdb7af
leaq 0x3773a(%rip), %rsi     # 0x112ee1
movq %rax, %rdi
callq 0xd13d
movq 0x103de52(%rip), %r12   # 0x1119608
testq %r12, %r12
jne 0xdb7d4
xorl %edi, %edi
callq 0xf5e4
movq %rax, %r12
movq $0x0, 0x10(%rax)
movq %rax, 0x103de34(%rip)   # 0x1119608
movq %r12, %rax
andq %r13, %rax
sete %cl
testb $0x3, %r12b
setne %dl
orb %cl, %dl
jne 0xdb7ea
incl (%rax)
movq 0x103de1f(%rip), %rsi   # 0x1119610
testq %rsi, %rsi
jne 0xdb816
movl $0x1, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x1, 0x10(%rax)
movb $0x28, 0x18(%rax)
movq %rax, 0x103ddfa(%rip)   # 0x1119610
movq %rsi, %rax
andq %r13, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xdb82c
incl (%rax)
movq %r12, %rdi
callq 0xe069
movq %rax, %rdi
movq %r15, %rsi
callq 0xe069
movq %rax, %r15
movq 0x103ddcf(%rip), %rsi   # 0x1119618
testq %rsi, %rsi
jne 0xdb875
movl $0x5, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x5, 0x10(%rax)
movl $0x61742e29, 0x18(%rax) # imm = 0x61742E29
movb $0x67, 0x1c(%rax)
movq %rax, 0x103dda3(%rip)   # 0x1119618
andq %rsi, %r13
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0xdb88a
incl (%r13)
movq %r15, %rdi
callq 0xe069
movq %rax, %r15
jmp 0xdb648
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9cf3c
movq %r12, %rsi
movq %rax, %r13
movq %rax, %r12
movq %r15, %rax
andq %rsi, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xdb8e6
decl (%rax)
jne 0xdb8e6
leaq 0x35885(%rip), %rsi     # 0x111159
movq %r15, %rdi
callq 0xd13d
movabsq $0xfffffffffffc, %rsi   # imm = 0xFFFFFFFFFFFC
movq 0x8(%r12), %r15
andq %rsi, %r13
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0xdb911
decl (%r13)
jne 0xdb911
leaq 0x37548(%rip), %rsi     # 0x112e51
movq %r12, %rdi
callq 0xd13d
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xdbe1e
movq %rax, %rbx
movq 0x103dcce(%rip), %rsi   # 0x11195f8
testq %rsi, %rsi
jne 0xdba11
movl $0x2, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x2, 0x10(%rax)
movw $0x4c4c, 0x18(%rax)     # imm = 0x4C4C
movq %rax, 0x103dca3(%rip)   # 0x11195f8
jmp 0xdba11
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0x9cf77
movq %r12, %rsi
movq %rax, %r13
movq %rax, %r12
movq %r15, %rax
andq %rsi, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xdb9a6
decl (%rax)
jne 0xdb9a6
leaq 0x357c5(%rip), %rsi     # 0x111159
movq %r15, %rdi
callq 0xd13d
movabsq $0xfffffffffffc, %rsi   # imm = 0xFFFFFFFFFFFC
movq 0x8(%r12), %r15
andq %rsi, %r13
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0xdb9d1
decl (%r13)
jne 0xdb9d1
leaq 0x374d0(%rip), %rsi     # 0x112e99
movq %r12, %rdi
callq 0xd13d
leaq -0x30(%rbp), %rdx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xdbe1e
movq %rax, %rbx
movq 0x103dc16(%rip), %rsi   # 0x1119600
testq %rsi, %rsi
jne 0xdba11
movl $0x2, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x2, 0x10(%rax)
movw $0x4c4c, 0x18(%rax)     # imm = 0x4C4C
movq %rax, 0x103dbef(%rip)   # 0x1119600
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rdx
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0xdba2e
incl (%rdx)
movq %rbx, %rdi
callq 0xe069
movq %rax, %r15
movq -0x30(%rbp), %rbx
jmp 0xdb648
decl (%rdx)
jne 0xdb648
movq %rdx, %rdi
callq 0x5030
jmp 0xdb648
decl (%rcx)
jne 0xdba63
movq %rcx, %rdi
callq 0x5030
movq 0x103db1e(%rip), %rsi   # 0x1119588
testq %rsi, %rsi
jne 0xdbdc9
movl $0x15, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x15, 0x10(%rax)
movabsq $0x656c626154206e6f, %rax # imm = 0x656C626154206E6F
movq %rax, 0x25(%rsi)
movups 0x1ebff(%rip), %xmm0    # 0xfa69c
movups %xmm0, 0x18(%rsi)
movq %rsi, 0x103dae0(%rip)   # 0x1119588
jmp 0xdbdc9
movq 0x103db0c(%rip), %rsi   # 0x11195c0
testq %rsi, %rsi
jne 0xdbdc9
movl $0x15, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x15, 0x10(%rax)
movabsq $0x5254504e46206e6f, %rax # imm = 0x5254504E46206E6F
movq %rax, 0x25(%rsi)
movups 0x1ec44(%rip), %xmm0    # 0xfa72b
movups %xmm0, 0x18(%rsi)
movq %rsi, 0x103dace(%rip)   # 0x11195c0
jmp 0xdbdc9
movq 0x103daba(%rip), %rsi   # 0x11195b8
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1ebf4(%rip), %xmm0    # 0xfa717
movups %xmm0, 0x18(%rax)
movl $0x52545020, 0x27(%rax) # imm = 0x52545020
movq %rax, 0x103da83(%rip)   # 0x11195b8
jmp 0xdbdc9
movq 0x103da8f(%rip), %rsi   # 0x11195d0
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1ebef(%rip), %xmm0    # 0xfa755
movups %xmm0, 0x18(%rax)
movl $0x32334620, 0x27(%rax) # imm = 0x32334620
movq %rax, 0x103da58(%rip)   # 0x11195d0
jmp 0xdbdc9
movq 0x103da44(%rip), %rsi   # 0x11195c8
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1eb98(%rip), %xmm0    # 0xfa741
movups %xmm0, 0x18(%rax)
movl $0x34364620, 0x27(%rax) # imm = 0x34364620
movq %rax, 0x103da0d(%rip)   # 0x11195c8
jmp 0xdbdc9
movq 0x103d9b1(%rip), %rsi   # 0x1119578
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1ea88(%rip), %xmm0    # 0xfa674
movups %xmm0, 0x18(%rax)
movl $0x74614e20, 0x27(%rax) # imm = 0x74614E20
movq %rax, 0x103d97a(%rip)   # 0x1119578
jmp 0xdbdc9
movq 0x103d976(%rip), %rsi   # 0x1119580
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1ea59(%rip), %xmm0    # 0xfa688
movups %xmm0, 0x18(%rax)
movl $0x746e4920, 0x27(%rax) # imm = 0x746E4920
movq %rax, 0x103d93f(%rip)   # 0x1119580
jmp 0xdbdc9
movq 0x103d963(%rip), %rsi   # 0x11195b0
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1ea91(%rip), %xmm0    # 0xfa703
movups %xmm0, 0x18(%rax)
movl $0x50555420, 0x27(%rax) # imm = 0x50555420
movq %rax, 0x103d92c(%rip)   # 0x11195b0
jmp 0xdbdc9
movq 0x103d918(%rip), %rsi   # 0x11195a8
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1ea3a(%rip), %xmm0    # 0xfa6ef
movups %xmm0, 0x18(%rax)
movl $0x52524120, 0x27(%rax) # imm = 0x52524120
movq %rax, 0x103d8e1(%rip)   # 0x11195a8
jmp 0xdbdc9
movq 0x103d8cd(%rip), %rsi   # 0x11195a0
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1e9e3(%rip), %xmm0    # 0xfa6db
movups %xmm0, 0x18(%rax)
movl $0x52545320, 0x27(%rax) # imm = 0x52545320
movq %rax, 0x103d896(%rip)   # 0x11195a0
jmp 0xdbdc9
movq 0x103d882(%rip), %rsi   # 0x1119598
testq %rsi, %rsi
jne 0xdbdc9
movl $0x13, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x13, 0x10(%rax)
movups 0x1e98c(%rip), %xmm0    # 0xfa6c7
movups %xmm0, 0x18(%rax)
movl $0x4c415620, 0x27(%rax) # imm = 0x4C415620
movq %rax, 0x103d84b(%rip)   # 0x1119598
jmp 0xdbdc9
movq 0x103d83a(%rip), %rsi   # 0x1119590
testq %rsi, %rsi
jne 0xdbdc9
movl $0x14, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x14, 0x10(%rax)
movups 0x1e93b(%rip), %xmm0    # 0xfa6b2
movups %xmm0, 0x18(%rax)
movl $0x64696f56, 0x28(%rax) # imm = 0x64696F56
movq %rax, 0x103d807(%rip)   # 0x1119590
jmp 0xdbdc9
movq 0x103d846(%rip), %rsi   # 0x11195d8
testq %rsi, %rsi
jne 0xdbdc9
movl $0x1c, %edi
callq 0xf5e4
movq %rax, %rsi
movq $0x1c, 0x10(%rax)
movups 0x1e9b6(%rip), %xmm0    # 0xfa769
movups %xmm0, 0x18(%rax)
movups 0x1e9b7(%rip), %xmm0    # 0xfa775
movups %xmm0, 0x24(%rax)
movq %rax, 0x103d80f(%rip)   # 0x11195d8
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0xdbde6
incl (%rax)
movq %rbx, %rdi
callq 0x14cad
movl $0x20, %edi
callq 0xf5e4
movq $0x20, 0x10(%rax)
movups 0x48c6(%rip), %xmm0     # 0xe06cd
movups %xmm0, 0x18(%rax)
movups 0x48cb(%rip), %xmm0     # 0xe06dd
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x9302