// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_data_createzeprojectorszx
static void mw_mirth_data_createzeprojectorszx (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Tag_2, struct mirth_mirth_zaMirth* *out_zaMirth_3) {
	struct mirth_mirth_zaMirth* v4;
	uint64_t v5 = mw_mirth_data_Tag_data(in_zaMirth_1, in_Tag_2, &v4);
	struct mirth_mirth_zaMirth* v6;
	struct std_list_List_1 v7 = mw_mirth_data_Tag_labelzeinputs(v4, in_Tag_2, &v6);
	struct std_list_List_1 v8 = mw_std_list_List_1_reverse(v7);
	bool v9 = true;
	uint64_t v10 = in_Tag_2;
	struct mirth_mirth_zaMirth* r11 = v6;
	uint64_t v12 = v5;
	struct std_list_List_1 v13 = v8;
	bool v14 = v9;
	bool v15 = v9;
	while (v15) {
		uint64_t v16 = v10;
		struct mirth_mirth_zaMirth* r17 = r11;
		uint64_t v18 = v12;
		struct std_list_List_1 v19 = v13;
		bool v20 = v14;
		uint64_t branch_Tag_21;
		uint64_t branch_Data_22;
		struct mirth_mirth_zaMirth* branch_zaMirth_23;
		struct std_list_List_1 branch_List_24;
		bool branch_Bool_25;
		switch ((v19).tag) {
			case std_list_List_1_Cons: {
				struct std_list_List_1 v26;
				VAL v27 = mtp_std_list_List_1_Cons(v19, &v26);
				incref(v27);
				struct mirth_mirth_zaMirth* v28;
				uint64_t v29 = mw_mirth_label_Label_name(r17, V_mirth_label_Label(v27), &v28);
				INT v30 = WRAP_I63(0LL);
				struct mirth_mirth_zaMirth* v31;
				struct mirth_name_QName* v32 = mw_mirth_mirth_zaMirth_datazeqname(v28, v18, v29, v30, &v31);
				struct mirth_mirth_zaMirth* v33;
				bool v34 = mw_mirth_name_QName_undefinedzesoftzy(v31, v32, &v33);
				uint64_t branch_Tag_35;
				uint64_t branch_Label_36;
				uint64_t branch_Data_37;
				struct mirth_mirth_zaMirth* branch_zaMirth_38;
				if (v34) {
					struct std_maybe_Maybe_1 v39 = { .tag=std_maybe_Maybe_1_None };
					incref(v27);
					struct mirth_mirth_zaMirth* v40;
					STR* v41 = mw_mirth_label_Label_zgStr(v33, V_mirth_label_Label(v27), &v40);
					INT v42 = WRAP_I63(0LL);
					struct mirth_mirth_zaMirth* v43;
					uint64_t v44 = mw_mirth_data_datazewordzenewzx(v40, v18, v41, v42, v39, &v43);
					struct std_maybe_Maybe_1 v45 = { .tag=std_maybe_Maybe_1_None };
					incref(v27);
					struct mirth_mirth_zaMirth* v46;
					STR* v47 = mw_mirth_label_Label_zgStr(v43, V_mirth_label_Label(v27), &v46);
					STR* v48;
					STRLIT(v48, "!", 1);
					STR* v49 = str_cat(v47, v48);
					INT v50 = WRAP_I63(0LL);
					struct mirth_mirth_zaMirth* v51;
					uint64_t v52 = mw_mirth_data_datazewordzenewzx(v46, v18, v49, v50, v45, &v51);
					struct std_maybe_Maybe_1 v53 = { .tag=std_maybe_Maybe_1_None };
					incref(v27);
					struct mirth_mirth_zaMirth* v54;
					STR* v55 = mw_mirth_label_Label_zgStr(v51, V_mirth_label_Label(v27), &v54);
					INT v56 = WRAP_I63(1LL);
					struct mirth_mirth_zaMirth* v57;
					uint64_t v58 = mw_mirth_data_datazewordzenewzx(v54, v18, v55, v56, v53, &v57);
					struct mirth_mirth_zaMirth* v59;
					mw_mirth_word_Word_makezeinlinezx(v57, v44, &v59);
					incref(v27);
					struct mirth_mirth_PropLabel v60 = mtw_mirth_mirth_PropLabel_WordType(v44);
					PTUP r61 = PTRMK(0,tup_new(2),0);
					((TUP*)PTRPTR(r61))->size = 2;
					((TUP*)PTRPTR(r61))->cells[1] = v27;
					((TUP*)PTRPTR(r61))->cells[0] = MK_mirth_data_Tag(v16);
					struct mirth_mirth_LexicalState* v62 = v59->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v62));
					FNPTR v63 = &mb_mirth_mirth_PropLabel_prop_1_sp12_0;
					struct mirth_mirth_PropState_1 v64 = mtw_mirth_mirth_PropState_1_Delay(v62, MKTUP(r61), MKFNPTR(v63));
					struct mirth_mirth_Prop_1* v65 = mtw_mirth_mirth_Prop_1_Prop(v60, v64);
					void* v66 = field_mut(&mfld_mirth_word_Word_ztctxzetype, v44);
					mut_set(MK_mirth_mirth_Prop_1(v65), v66);
					incref(v27);
					struct mirth_mirth_PropLabel v67 = mtw_mirth_mirth_PropLabel_WordArrow(v44);
					PTUP r68 = PTRMK(0,tup_new(3),0);
					((TUP*)PTRPTR(r68))->size = 3;
					((TUP*)PTRPTR(r68))->cells[2] = MK_mirth_word_Word(v44);
					((TUP*)PTRPTR(r68))->cells[1] = v27;
					((TUP*)PTRPTR(r68))->cells[0] = MK_mirth_data_Tag(v16);
					struct mirth_mirth_LexicalState* v69 = v59->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v69));
					FNPTR v70 = &mb_mirth_mirth_PropLabel_prop_1_sp11_0;
					struct mirth_mirth_PropState_1 v71 = mtw_mirth_mirth_PropState_1_Delay(v69, MKTUP(r68), MKFNPTR(v70));
					struct mirth_mirth_Prop_1* v72 = mtw_mirth_mirth_Prop_1_Prop(v67, v71);
					void* v73 = field_mut(&mfld_mirth_word_Word_ztarrow, v44);
					mut_set(MK_mirth_mirth_Prop_1(v72), v73);
					struct mirth_mirth_zaMirth* v74;
					mw_mirth_word_Word_makezeinlinezx(v59, v52, &v74);
					incref(v27);
					struct mirth_mirth_PropLabel v75 = mtw_mirth_mirth_PropLabel_WordType(v52);
					PTUP r76 = PTRMK(0,tup_new(2),0);
					((TUP*)PTRPTR(r76))->size = 2;
					((TUP*)PTRPTR(r76))->cells[1] = v27;
					((TUP*)PTRPTR(r76))->cells[0] = MK_mirth_data_Tag(v16);
					struct mirth_mirth_LexicalState* v77 = v74->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v77));
					FNPTR v78 = &mb_mirth_mirth_PropLabel_prop_1_sp10_0;
					struct mirth_mirth_PropState_1 v79 = mtw_mirth_mirth_PropState_1_Delay(v77, MKTUP(r76), MKFNPTR(v78));
					struct mirth_mirth_Prop_1* v80 = mtw_mirth_mirth_Prop_1_Prop(v75, v79);
					void* v81 = field_mut(&mfld_mirth_word_Word_ztctxzetype, v52);
					mut_set(MK_mirth_mirth_Prop_1(v80), v81);
					incref(v27);
					struct mirth_mirth_PropLabel v82 = mtw_mirth_mirth_PropLabel_WordArrow(v52);
					PTUP r83 = PTRMK(0,tup_new(3),0);
					((TUP*)PTRPTR(r83))->size = 3;
					((TUP*)PTRPTR(r83))->cells[2] = MK_mirth_word_Word(v52);
					((TUP*)PTRPTR(r83))->cells[1] = v27;
					((TUP*)PTRPTR(r83))->cells[0] = MK_mirth_data_Tag(v16);
					struct mirth_mirth_LexicalState* v84 = v74->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v84));
					FNPTR v85 = &mb_mirth_mirth_PropLabel_prop_1_sp9_0;
					struct mirth_mirth_PropState_1 v86 = mtw_mirth_mirth_PropState_1_Delay(v84, MKTUP(r83), MKFNPTR(v85));
					struct mirth_mirth_Prop_1* v87 = mtw_mirth_mirth_Prop_1_Prop(v82, v86);
					void* v88 = field_mut(&mfld_mirth_word_Word_ztarrow, v52);
					mut_set(MK_mirth_mirth_Prop_1(v87), v88);
					struct mirth_mirth_zaMirth* v89;
					mw_mirth_word_Word_makezeinlinezx(v74, v58, &v89);
					incref(v27);
					struct mirth_mirth_PropLabel v90 = mtw_mirth_mirth_PropLabel_WordType(v58);
					PTUP r91 = PTRMK(0,tup_new(2),0);
					((TUP*)PTRPTR(r91))->size = 2;
					((TUP*)PTRPTR(r91))->cells[1] = v27;
					((TUP*)PTRPTR(r91))->cells[0] = MK_mirth_data_Tag(v16);
					struct mirth_mirth_LexicalState* v92 = v89->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v92));
					FNPTR v93 = &mb_mirth_mirth_PropLabel_prop_1_sp8_0;
					struct mirth_mirth_PropState_1 v94 = mtw_mirth_mirth_PropState_1_Delay(v92, MKTUP(r91), MKFNPTR(v93));
					struct mirth_mirth_Prop_1* v95 = mtw_mirth_mirth_Prop_1_Prop(v90, v94);
					void* v96 = field_mut(&mfld_mirth_word_Word_ztctxzetype, v58);
					mut_set(MK_mirth_mirth_Prop_1(v95), v96);
					struct mirth_mirth_PropLabel v97 = mtw_mirth_mirth_PropLabel_WordParams(v58);
					struct mirth_mirth_LexicalState* v98 = v89->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v98));
					FNPTR v99 = &mb_mirth_mirth_PropLabel_prop_1_sp6_0;
					struct mirth_mirth_PropState_1 v100 = mtw_mirth_mirth_PropState_1_Delay(v98, MK_mirth_word_Word(v58), MKFNPTR(v99));
					struct mirth_mirth_Prop_1* v101 = mtw_mirth_mirth_Prop_1_Prop(v97, v100);
					void* v102 = field_mut(&mfld_mirth_word_Word_ztparams, v58);
					mut_set(MK_mirth_mirth_Prop_1(v101), v102);
					struct mirth_mirth_PropLabel v103 = mtw_mirth_mirth_PropLabel_WordArrow(v58);
					PTUP r104 = PTRMK(0,tup_new(4),0);
					((TUP*)PTRPTR(r104))->size = 4;
					((TUP*)PTRPTR(r104))->cells[3] = MK_mirth_word_Word(v58);
					((TUP*)PTRPTR(r104))->cells[2] = MK_mirth_word_Word(v52);
					((TUP*)PTRPTR(r104))->cells[1] = MK_mirth_word_Word(v44);
					((TUP*)PTRPTR(r104))->cells[0] = MK_mirth_data_Data(v18);
					struct mirth_mirth_LexicalState* v105 = v89->mlexicalzestate;
					incref(MK_mirth_mirth_LexicalState(v105));
					FNPTR v106 = &mb_mirth_mirth_PropLabel_prop_1_sp7_0;
					struct mirth_mirth_PropState_1 v107 = mtw_mirth_mirth_PropState_1_Delay(v105, MKTUP(r104), MKFNPTR(v106));
					struct mirth_mirth_Prop_1* v108 = mtw_mirth_mirth_Prop_1_Prop(v103, v107);
					void* v109 = field_mut(&mfld_mirth_word_Word_ztarrow, v58);
					mut_set(MK_mirth_mirth_Prop_1(v108), v109);
					branch_zaMirth_38 = v89;
					branch_Data_37 = v18;
					branch_Label_36 = V_mirth_label_Label(v27);
					branch_Tag_35 = v16;
				} else {
					branch_zaMirth_38 = v33;
					branch_Data_37 = v18;
					branch_Label_36 = V_mirth_label_Label(v27);
					branch_Tag_35 = v16;
				}
				bool v110 = true;
				branch_Bool_25 = v110;
				branch_List_24 = v26;
				branch_zaMirth_23 = branch_zaMirth_38;
				branch_Data_22 = branch_Data_37;
				branch_Tag_21 = branch_Tag_35;
			} break;
			case std_list_List_1_Nil: {
				struct std_list_List_1 v111 = { .tag=std_list_List_1_Nil };
				bool v112 = false;
				branch_Bool_25 = v112;
				branch_List_24 = v111;
				branch_zaMirth_23 = r17;
				branch_Data_22 = v18;
				branch_Tag_21 = v16;
			} break;
			default: {
				do_panic(str_make("unexpected fallthrough in match\n", 32));
			}
		}
		v15 = branch_Bool_25;
		v14 = branch_Bool_25;
		v13 = branch_List_24;
		v12 = branch_Data_22;
		r11 = branch_zaMirth_23;
		v10 = branch_Tag_21;
	}
	decref(MK_std_list_List_1(v13));
	*out_zaMirth_3 = r11;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdx, %r14
movq %rsi, %r12
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
leaq -0xe0(%rbp), %rbx
movq %rbx, %rdx
callq 0x172b6
movq %rax, -0x50(%rbp)
movq (%rbx), %rdi
leaq -0xd8(%rbp), %rbx
movq %r12, -0x48(%rbp)
movq %r12, %rsi
movq %rbx, %rdx
callq 0x6f1b3
movl %eax, %edi
movq %rdx, %rsi
callq 0xcd32
movq (%rbx), %r12
leaq -0x70(%rbp), %rsi
movb $0x1, %cl
movq %rdx, %rdi
testb $0x1, %cl
je 0x6e9c9
xorl %ecx, %ecx
movl $0x0, %edx
testl %eax, %eax
je 0x6e26f
cmpl $0x1, %eax
jne 0x6ea0a
callq 0xce01
movq %rax, %r13
movq %rdx, %rbx
testb $0x1, %bl
je 0x6e2b5
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e2b5
incl (%rax)
movq %r12, %rdi
movq %r13, %rsi
leaq -0xd0(%rbp), %rdx
callq 0x37055
movq -0xd0(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
pushq $0x1
popq %r12
movq %r12, %rcx
leaq -0xc8(%rbp), %r8
callq 0x6ec82
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
leaq -0x60(%rbp), %rdx
callq 0x13b55
testb %al, %al
je 0x6e9b5
testb $0x1, %bl
je 0x6e31e
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e31e
incl (%rax)
movq %r14, -0x78(%rbp)
movq -0x60(%rbp), %rdi
movq %r13, %rsi
leaq -0xc0(%rbp), %rdx
callq 0x6f8a4
movq -0xc0(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
movq %r12, %rcx
leaq -0xb8(%rbp), %r8
callq 0x6d50c
movq %rax, -0x38(%rbp)
testb $0x1, %bl
je 0x6e371
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e371
incl (%rax)
movq -0xb8(%rbp), %rdi
movq %r13, %rsi
leaq -0xb0(%rbp), %rdx
callq 0x6f8a4
movq %rax, %r14
movq 0x109ef47(%rip), %rsi   # 0x110d2d8
testq %rsi, %rsi
jne 0x6e3af
leaq 0x6d1ca(%rip), %rdi     # 0xdb567
movq %r12, %rsi
callq 0x8a21
movq %rax, %rsi
movq %rax, 0x109ef29(%rip)   # 0x110d2d8
movq %rsi, %rax
andq %r15, %rax
sete %cl
testb $0x3, %sil
setne %dl
orb %cl, %dl
jne 0x6e3c5
incl (%rax)
movq %r14, %rdi
callq 0xd8b0
movq -0xb0(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
movq %r12, %rcx
leaq -0xa8(%rbp), %r8
callq 0x6d50c
movq %rax, -0x30(%rbp)
testb $0x1, %bl
je 0x6e409
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e409
incl (%rax)
movq -0xa8(%rbp), %rdi
movq %r13, %rsi
leaq -0xa0(%rbp), %rdx
callq 0x6f8a4
movq -0xa0(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
pushq $0x3
popq %rcx
leaq -0x98(%rbp), %r8
callq 0x6d50c
movq %rax, -0x40(%rbp)
movq -0x98(%rbp), %rdi
movq -0x38(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0x6323d
testb $0x1, %bl
je 0x6e472
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e472
incl (%rax)
movq -0x38(%rbp), %rdi
callq 0x30614
movq %rax, %r14
pushq $0x2
popq %rdi
callq 0xd928
movq %rax, %rcx
andq %r15, %rcx
movw $0x2, 0x6(%rcx)
movq %r13, 0x18(%rcx)
movq %rbx, 0x20(%rcx)
movq -0x48(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq 0x9a7a7(%rip), %rdx     # 0x108c50
movq %rdx, 0x10(%rcx)
movq -0x90(%rbp), %r8
movq 0x48(%r8), %rdi
movq %rdi, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0x6e4d0
incl (%rcx)
movq %r8, -0x58(%rbp)
movq %rax, %rsi
leaq 0x99ebb(%rip), %rdx     # 0x108399
leaq 0x13fa(%rip), %rcx      # 0x6f8df
callq 0x24c61
pushq $0xa
popq %rdi
movq %r14, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %r14
leaq 0x109e1ab(%rip), %rdi   # 0x110c6b0
movq -0x38(%rbp), %rsi
callq 0x12f88
movq %r14, %rdi
leaq 0x9a2b9(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
testb $0x1, %bl
je 0x6e53b
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e53b
incl (%rax)
movq -0x38(%rbp), %r12
movq %r12, %rdi
callq 0x30d4b
movq %rax, %r14
pushq $0x3
popq %rdi
callq 0xd928
movq %rax, %rcx
andq %r15, %rcx
movw $0x3, 0x6(%rcx)
movq %r12, 0x28(%rcx)
leaq 0x9abf7(%rip), %rdx     # 0x109160
movq %rdx, 0x30(%rcx)
movq %r13, 0x18(%rcx)
movq %rbx, 0x20(%rcx)
movq -0x48(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq 0x9a6cc(%rip), %rdx     # 0x108c50
movq %rdx, 0x10(%rcx)
movq -0x58(%rbp), %r12
movq 0x48(%r12), %rdi
movq %rdi, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0x6e5a9
incl (%rcx)
movq %rax, %rsi
leaq 0x99de6(%rip), %rdx     # 0x108399
leaq 0x1457(%rip), %rcx      # 0x6fa11
callq 0x24c61
pushq $0xc
popq %rdi
movq %r14, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %r14
leaq 0x109e0f6(%rip), %rdi   # 0x110c6d0
movq -0x38(%rbp), %rsi
callq 0x12f88
movq %r14, %rdi
leaq 0x9a1e4(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
movq %r12, %rdi
movq -0x30(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x6323d
testb $0x1, %bl
je 0x6e623
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e623
incl (%rax)
movq -0x30(%rbp), %rdi
callq 0x30614
movq %rax, %r14
pushq $0x2
popq %rdi
callq 0xd928
movq %rax, %rcx
andq %r15, %rcx
movw $0x2, 0x6(%rcx)
movq %r13, 0x18(%rcx)
movq %rbx, 0x20(%rcx)
movq -0x48(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq 0x9a5f6(%rip), %rdx     # 0x108c50
movq %rdx, 0x10(%rcx)
movq -0x88(%rbp), %r8
movq 0x48(%r8), %rdi
movq %rdi, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0x6e681
incl (%rcx)
movq %r8, -0x58(%rbp)
movq %rax, %rsi
leaq 0x99d0a(%rip), %rdx     # 0x108399
leaq 0x158c(%rip), %rcx      # 0x6fc22
callq 0x24c61
pushq $0xa
popq %rdi
movq %r14, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %r14
leaq 0x109dffa(%rip), %rdi   # 0x110c6b0
movq -0x30(%rbp), %rsi
callq 0x12f88
movq %r14, %rdi
leaq 0x9a108(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
testb $0x1, %bl
je 0x6e6ec
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e6ec
incl (%rax)
movq -0x30(%rbp), %r12
movq %r12, %rdi
callq 0x30d4b
movq %rax, %r14
pushq $0x3
popq %rdi
callq 0xd928
movq %rax, %rcx
andq %r15, %rcx
movw $0x3, 0x6(%rcx)
movq %r12, 0x28(%rcx)
leaq 0x9aa46(%rip), %rdx     # 0x109160
movq %rdx, 0x30(%rcx)
movq %r13, 0x18(%rcx)
movq %rbx, 0x20(%rcx)
movq -0x48(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq 0x9a51b(%rip), %rdx     # 0x108c50
movq %rdx, 0x10(%rcx)
movq -0x58(%rbp), %r12
movq 0x48(%r12), %rdi
movq %rdi, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0x6e75a
incl (%rcx)
movq %rax, %rsi
leaq 0x99c35(%rip), %rdx     # 0x108399
leaq 0x15e9(%rip), %rcx      # 0x6fd54
callq 0x24c61
pushq $0xc
popq %rdi
movq %r14, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %r14
leaq 0x109df45(%rip), %rdi   # 0x110c6d0
movq -0x30(%rbp), %rsi
callq 0x12f88
movq %r14, %rdi
leaq 0x9a033(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
movq %r12, %rdi
movq -0x40(%rbp), %rsi
leaq -0x80(%rbp), %rdx
callq 0x6323d
testb $0x1, %bl
je 0x6e7d1
movq %r13, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x6e7d1
incl (%rax)
movq -0x40(%rbp), %rdi
callq 0x30614
movq %rax, %r14
pushq $0x2
popq %rdi
callq 0xd928
movq %rax, %rcx
andq %r15, %rcx
movw $0x2, 0x6(%rcx)
movq %r13, 0x18(%rcx)
movq %rbx, 0x20(%rcx)
movq -0x48(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq 0x9a448(%rip), %rdx     # 0x108c50
movq %rdx, 0x10(%rcx)
movq -0x80(%rbp), %r12
movq 0x48(%r12), %rdi
movq %rdi, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0x6e82d
incl (%rcx)
movq %rax, %rsi
leaq 0x99b62(%rip), %rdx     # 0x108399
leaq 0x1727(%rip), %rcx      # 0x6ff65
callq 0x24c61
pushq $0xa
popq %rdi
movq %r14, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %rbx
leaq 0x109de52(%rip), %rdi   # 0x110c6b0
movq -0x40(%rbp), %r14
movq %r14, %rsi
callq 0x12f88
movq %rbx, %rdi
leaq 0x99f5d(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
movq %r14, %rdi
callq 0x30809
movq %rax, %rbx
movq 0x48(%r12), %rdi
movq %rdi, %rax
andq %r15, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x6e8a2
incl (%rax)
movq -0x40(%rbp), %r13
movq %r13, %rsi
leaq 0x9a8b0(%rip), %r14     # 0x109160
movq %r14, %rdx
leaq 0x1bed(%rip), %rcx      # 0x704a7
callq 0x24c61
pushq $0xb
popq %rdi
movq %rbx, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %rbx
leaq 0x109dde6(%rip), %rdi   # 0x110c6c0
movq %r13, %rsi
callq 0x12f88
movq %rbx, %rdi
leaq 0x99ee5(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
movq %r13, %rdi
callq 0x30d4b
movq %rax, %rbx
pushq $0x4
popq %rdi
callq 0xd928
movq %rax, %rcx
andq %r15, %rcx
movw $0x4, 0x6(%rcx)
movq %r13, 0x38(%rcx)
movq %r14, 0x40(%rcx)
movq -0x30(%rbp), %rdx
movq %rdx, 0x28(%rcx)
movq %r14, 0x30(%rcx)
movq -0x38(%rbp), %rdx
movq %rdx, 0x18(%rcx)
movq %r14, 0x20(%rcx)
movq -0x50(%rbp), %rdx
movq %rdx, 0x8(%rcx)
leaq 0x9a356(%rip), %rdx     # 0x108c98
movq %rdx, 0x10(%rcx)
movq 0x48(%r12), %rdi
movq %rdi, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
movq -0x78(%rbp), %r14
jne 0x6e967
incl (%rcx)
movq %rax, %rsi
leaq 0x99a28(%rip), %rdx     # 0x108399
leaq 0x1d33(%rip), %rcx      # 0x706ab
callq 0x24c61
pushq $0xc
popq %rdi
movq %rbx, %rsi
pushq $0x1
popq %rdx
movq %rax, %rcx
callq 0x1d29f
movq %rax, %rbx
leaq 0x109dd38(%rip), %rdi   # 0x110c6d0
movq -0x40(%rbp), %rsi
callq 0x12f88
movq %rbx, %rdi
leaq 0x99e26(%rip), %rsi     # 0x1087d1
movq %rax, %rdx
callq 0x1393b
jmp 0x6e9b9
movq -0x60(%rbp), %r12
leaq -0x70(%rbp), %rsi
movl -0x70(%rbp), %eax
movq -0x68(%rbp), %rdx
jmp 0x6e26d
andq %rdi, %r15
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x6e9f5
decl (%r15)
jne 0x6e9f5
shlq $0x30, %rax
orq %rdi, %rax
leaq 0x9988c(%rip), %rsi     # 0x108279
movq %rax, %rdi
callq 0xce94
movq %r12, (%r14)
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x65dfc(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6