// File: /workspace/github_c_makefile_star2_O3/mirth-lang[P]mirth/bin/mirth1.c
// Function: mb_mirth_mirth_PropLabel_prop_1_sp53_0
static void mb_mirth_mirth_PropLabel_prop_1_sp53_0 (void) {
	PTUP v0 = value_tup(pop_value());
	struct mirth_mirth_zaMirth* r1 = V_mirth_mirth_zaMirth(pop_resource());
	VAL v2 = ((TUP*)PTRPTR(v0))->cells[0];
	VAL v3 = ((TUP*)PTRPTR(v0))->cells[1];
	VAL v4 = ((TUP*)PTRPTR(v0))->cells[2];
	tup_decref_outer(v0);
	incref(v3);
	STR* v5;
	STRLIT(v5, "target", 6);
	bool v6 = false;
	bool v7 = false;
	struct mirth_mirth_zaMirth* v8;
	struct mirth_elab_zaResolveDef* v9;
	mw_mirth_elab_zaResolveDef_Beginzx(v5, V_mirth_token_Token(v3), V_std_either_Either_2(v2), v7, v6, r1, &v8, &v9);
	struct std_list_List_1 v10 = v9->mcandidates;
	incref(MK_std_list_List_1(v10));
	struct std_list_List_1 v11 = { .tag=std_list_List_1_Nil };
	struct std_list_List_1 v12;
	mw_std_list_List_1_buildzx(v11, &v12);
	bool v13 = true;
	VAL v14 = v4;
	struct std_list_List_1 r15 = v12;
	struct std_list_List_1 v16 = v10;
	bool v17 = v13;
	bool v18 = v13;
	while (v18) {
		VAL v19 = v14;
		struct std_list_List_1 r20 = r15;
		struct std_list_List_1 v21 = v16;
		bool v22 = v17;
		uint64_t branch_Alias_23;
		struct std_list_List_1 branch_zaLister_24;
		struct std_list_List_1 branch_List_25;
		bool branch_Bool_26;
		switch ((v21).tag) {
			case std_list_List_1_Cons: {
				struct std_list_List_1 v27;
				VAL v28 = mtp_std_list_List_1_Cons(v21, &v27);
				incref(v28);
				struct std_maybe_Maybe_1 v29 = mw_mirth_def_Def_aliaszy(V_mirth_def_Def(v28));
				uint64_t branch_Alias_30;
				bool branch_Bool_31;
				switch ((v29).tag) {
					case std_maybe_Maybe_1_Some: {
						VAL v32 = mtp_std_maybe_Maybe_1_Some(v29);
						incref(v19);
						uint64_t v33 = V_mirth_alias_Alias(v19);
						uint64_t v34 = V_mirth_alias_Alias(v32);
						bool v35 = (v33 == v34);
						branch_Bool_31 = v35;
						branch_Alias_30 = V_mirth_alias_Alias(v19);
					} break;
					case std_maybe_Maybe_1_None: {
						bool v36 = false;
						branch_Bool_31 = v36;
						branch_Alias_30 = V_mirth_alias_Alias(v19);
					} break;
					default: {
						do_panic(str_make("unexpected fallthrough in match\n", 32));
					}
				}
				bool v37 = !branch_Bool_31;
				uint64_t branch_Alias_38;
				struct std_list_List_1 branch_zaLister_39;
				if (v37) {
					struct std_list_List_1 v40;
					mw_std_list_zaLister_1_pushzx(v28, r20, &v40);
					branch_zaLister_39 = v40;
					branch_Alias_38 = branch_Alias_30;
				} else {
					decref(v28);
					branch_zaLister_39 = r20;
					branch_Alias_38 = branch_Alias_30;
				}
				bool v41 = true;
				branch_Bool_26 = v41;
				branch_List_25 = v27;
				branch_zaLister_24 = branch_zaLister_39;
				branch_Alias_23 = branch_Alias_38;
			} break;
			case std_list_List_1_Nil: {
				struct std_list_List_1 v42 = { .tag=std_list_List_1_Nil };
				bool v43 = false;
				branch_Bool_26 = v43;
				branch_List_25 = v42;
				branch_zaLister_24 = r20;
				branch_Alias_23 = V_mirth_alias_Alias(v19);
			} break;
			default: {
				do_panic(str_make("unexpected fallthrough in match\n", 32));
			}
		}
		v18 = branch_Bool_26;
		v17 = branch_Bool_26;
		v16 = branch_List_25;
		r15 = branch_zaLister_24;
		v14 = MK_mirth_alias_Alias(branch_Alias_23);
	}
	decref(MK_std_list_List_1(v16));
	struct std_list_List_1 v44 = mw_std_list_zaLister_1_donezx(r15);
	struct std_list_List_1 v45 = v9->mcandidates;
	decref(MK_std_list_List_1(v45));
	v9->mcandidates = v44;
	struct mirth_mirth_zaMirth* v46;
	INT v47 = mw_mirth_alias_Alias_arity(v8, V_mirth_alias_Alias(v14), &v46);
	struct std_list_List_1 v48 = v9->mcandidates;
	incref(MK_std_list_List_1(v48));
	struct std_list_List_1 v49 = { .tag=std_list_List_1_Nil };
	struct std_list_List_1 v50 = { .tag=std_list_List_1_Nil };
	bool v51 = true;
	struct mirth_mirth_zaMirth* r52 = v46;
	struct mirth_elab_zaResolveDef* r53 = v9;
	INT v54 = v47;
	struct std_list_List_1 v55 = v49;
	struct std_list_List_1 v56 = v50;
	struct std_list_List_1 v57 = v48;
	bool v58 = v51;
	bool v59 = v51;
	while (v59) {
		struct mirth_mirth_zaMirth* r60 = r52;
		struct mirth_elab_zaResolveDef* r61 = r53;
		INT v62 = v54;
		struct std_list_List_1 v63 = v55;
		struct std_list_List_1 v64 = v56;
		struct std_list_List_1 v65 = v57;
		bool v66 = v58;
		INT branch_Int_67;
		struct mirth_mirth_zaMirth* branch_zaMirth_68;
		VAL branch_zux1_69;
		struct std_list_List_1 branch_List_70;
		struct std_list_List_1 branch_List_71;
		struct std_list_List_1 branch_List_72;
		bool branch_Bool_73;
		switch ((v65).tag) {
			case std_list_List_1_Cons: {
				struct std_list_List_1 v74;
				VAL v75 = mtp_std_list_List_1_Cons(v65, &v74);
				incref(MKINT(v62));
				incref(v75);
				struct mirth_mirth_zaMirth* v76;
				INT v77 = mw_mirth_def_Def_arity(r60, V_mirth_def_Def(v75), &v76);
				bool v78 = mw_mirth_elab_arityzecompatiblezy(v62, v77);
				INT branch_Int_79;
				struct mirth_mirth_zaMirth* branch_zaMirth_80;
				VAL branch_zux1_81;
				struct std_either_Either_2 branch_Either_82;
				if (v78) {
					struct std_either_Either_2 v83 = mtw_std_either_Either_2_Right(v75);
					branch_Either_82 = v83;
					branch_zux1_81 = MK_mirth_elab_zaResolveDef(r61);
					branch_zaMirth_80 = v76;
					branch_Int_79 = v62;
				} else {
					struct mirth_elab_RejectedDef v84 = mtw_mirth_elab_RejectedDef_WrongArity(V_mirth_def_Def(v75));
					struct std_either_Either_2 v85 = mtw_std_either_Either_2_Left(MK_mirth_elab_RejectedDef(v84));
					branch_Either_82 = v85;
					branch_zux1_81 = MK_mirth_elab_zaResolveDef(r61);
					branch_zaMirth_80 = v76;
					branch_Int_79 = v62;
				}
				INT branch_Int_86;
				struct mirth_mirth_zaMirth* branch_zaMirth_87;
				VAL branch_zux1_88;
				struct std_list_List_1 branch_List_89;
				struct std_list_List_1 branch_List_90;
				switch ((branch_Either_82).tag) {
					case std_either_Either_2_Left: {
						VAL v91 = mtp_std_either_Either_2_Left(branch_Either_82);
						struct std_list_List_1 v92 = mw_std_list_List_1_cons(v91, v63);
						branch_List_90 = v64;
						branch_List_89 = v92;
						branch_zux1_88 = branch_zux1_81;
						branch_zaMirth_87 = branch_zaMirth_80;
						branch_Int_86 = branch_Int_79;
					} break;
					case std_either_Either_2_Right: {
						VAL v93 = mtp_std_either_Either_2_Right(branch_Either_82);
						struct std_list_List_1 v94 = mw_std_list_List_1_cons(v93, v64);
						branch_List_90 = v94;
						branch_List_89 = v63;
						branch_zux1_88 = branch_zux1_81;
						branch_zaMirth_87 = branch_zaMirth_80;
						branch_Int_86 = branch_Int_79;
					} break;
					default: {
						do_panic(str_make("unexpected fallthrough in match\n", 32));
					}
				}
				bool v95 = true;
				branch_Bool_73 = v95;
				branch_List_72 = v74;
				branch_List_71 = branch_List_90;
				branch_List_70 = branch_List_89;
				branch_zux1_69 = branch_zux1_88;
				branch_zaMirth_68 = branch_zaMirth_87;
				branch_Int_67 = branch_Int_86;
			} break;
			case std_list_List_1_Nil: {
				struct std_list_List_1 v96 = { .tag=std_list_List_1_Nil };
				bool v97 = false;
				branch_Bool_73 = v97;
				branch_List_72 = v96;
				branch_List_71 = v64;
				branch_List_70 = v63;
				branch_zux1_69 = MK_mirth_elab_zaResolveDef(r61);
				branch_zaMirth_68 = r60;
				branch_Int_67 = v62;
			} break;
			default: {
				do_panic(str_make("unexpected fallthrough in match\n", 32));
			}
		}
		v59 = branch_Bool_73;
		v58 = branch_Bool_73;
		v57 = branch_List_72;
		v56 = branch_List_71;
		v55 = branch_List_70;
		v54 = branch_Int_67;
		r53 = V_mirth_elab_zaResolveDef(branch_zux1_69);
		r52 = branch_zaMirth_68;
	}
	decref(MK_std_list_List_1(v57));
	struct std_list_List_1 v98 = mw_std_list_List_1_reverse(v55);
	struct std_list_List_1 v99 = mw_std_list_List_1_reverse(v56);
	struct std_list_List_1 v100 = r53->mrejected;
	incref(MK_std_list_List_1(v100));
	struct std_list_List_1 v101 = mw_std_list_List_1_cat(v98, v100);
	struct std_list_List_1 v102 = r53->mrejected;
	decref(MK_std_list_List_1(v102));
	r53->mrejected = v101;
	struct std_list_List_1 v103 = r53->mcandidates;
	decref(MK_std_list_List_1(v103));
	r53->mcandidates = v99;
	decref(MKINT(v54));
	struct mirth_mirth_zaMirth* v104;
	struct mirth_elab_zaResolveDef* v105;
	mw_mirth_elab_zaResolveDef_filterzequalifiers(r52, r53, &v104, &v105);
	struct std_list_List_1 v106 = { .tag=std_list_List_1_Nil };
	struct mirth_mirth_zaMirth* v107;
	struct mirth_elab_zaResolveDef* v108;
	mw_mirth_elab_zaResolveDef_filterzeroots(v104, v105, v106, &v107, &v108);
	struct mirth_mirth_zaMirth* v109;
	struct std_maybe_Maybe_1 v110 = mw_mirth_elab_zaResolveDef_endzx(v107, v108, &v109);
	struct mirth_mirth_zaMirth* v111;
	VAL v112 = mw_std_maybe_Maybe_1_unwrap_1_sp45(v109, v110, &v111);
	uint64_t branch_Token_113;
	struct mirth_mirth_zaMirth* branch_zaMirth_114;
	struct mirth_def_Def branch_Def_115;
	switch ((V_mirth_def_Def(v112)).tag) {
		case mirth_def_Def_Alias: {
			uint64_t v116 = mtp_mirth_def_Def_Alias(V_mirth_def_Def(v112));
			void* v117 = field_mut(&mfld_mirth_alias_Alias_zttarget, v116);
			struct mirth_mirth_zaMirth* v118;
			struct std_maybe_Maybe_1 v119 = mw_mirth_mirth_Prop_1_tryzeforcezx(v111, v117, &v118);
			struct mirth_mirth_zaMirth* branch_zaMirth_120;
			uint64_t branch_Token_121;
			VAL branch_zux1_122;
			switch ((v119).tag) {
				case std_maybe_Maybe_1_Some: {
					VAL v123 = mtp_std_maybe_Maybe_1_Some(v119);
					branch_zux1_122 = v123;
					branch_Token_121 = V_mirth_token_Token(v3);
					branch_zaMirth_120 = v118;
				} break;
				case std_maybe_Maybe_1_None: {
					incref(v3);
					STR* v124;
					STRLIT(v124, "Alias points to itself, circular aliases are not allowed.", 57);
					mw_mirth_mirth_zaMirth_emitzefatalzeerrorzx(v118, V_mirth_token_Token(v3), v124);
				} break;
				default: {
					do_panic(str_make("unexpected fallthrough in match\n", 32));
				}
			}
			branch_Def_115 = V_mirth_def_Def(branch_zux1_122);
			branch_zaMirth_114 = branch_zaMirth_120;
			branch_Token_113 = branch_Token_121;
		} break;
		default: {
			branch_Def_115 = V_mirth_def_Def(v112);
			branch_zaMirth_114 = v111;
			branch_Token_113 = V_mirth_token_Token(v3);
		} break;
	}
	push_resource(MK_mirth_mirth_zaMirth(branch_zaMirth_114));
	push_value(MK_mirth_def_Def(branch_Def_115));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
callq 0xd699
movq %rax, %r15
movq %rax, %rdi
movq %rdx, %rsi
callq 0x90ba
callq 0xd6f2
movq %rax, %r14
movq %r15, %rax
movq %rbx, -0x78(%rbp)
andq %rbx, %rax
movq 0x8(%rax), %rbx
movq 0x18(%rax), %r13
movq 0x20(%rax), %r12
movq 0x28(%rax), %rcx
movq %rcx, -0x50(%rbp)
movq 0x30(%rax), %rax
movq %rax, -0x38(%rbp)
movq %r15, %rdi
callq 0x910b
movq %r12, -0xb0(%rbp)
testb $0x1, %r12b
je 0x30ce2
movq %r13, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x30ce2
incl (%rax)
movq 0x10e4987(%rip), %rdi   # 0x1115670
testq %rdi, %rdi
jne 0x30d17
movl $0x6, %edi
callq 0xf5e4
movq %rax, %rdi
movq $0x6, 0x10(%rax)
movl $0x67726174, 0x18(%rax) # imm = 0x67726174
movw $0x7465, 0x1c(%rax)     # imm = 0x7465
movq %rax, 0x10e4959(%rip)   # 0x1115670
movq %rdi, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x30d37
incl (%rax)
movq %rbx, %rdx
shrq $0x30, %rdx
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
andq %r12, %rbx
subq $0x8, %rsp
leaq -0xc0(%rbp), %r15
leaq -0xc8(%rbp), %rax
movq %r13, -0x70(%rbp)
movq %r13, %rsi
movq %rbx, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %r15
pushq %rax
pushq %r14
callq 0x28951
addq $0x20, %rsp
movq (%r15), %rax
movl 0x20(%rax), %r13d
movq 0x28(%rax), %rbx
movq %rbx, %rax
andq %r12, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0x30d9b
incl (%rax)
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xd01b
movl %eax, %r15d
movq %rdx, -0x40(%rbp)
testb $0x1, -0x38(%rbp)
sete %r14b
movq -0x50(%rbp), %rcx
movq %rcx, %rdx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %rdx
movq %rdx, -0x58(%rbp)
sete %al
testb $0x3, %cl
setne %cl
orb %al, %cl
movb %cl, -0x38(%rbp)
cmpl $0x1, %r13d
jne 0x30eb9
movq %rbx, %rdi
leaq -0x68(%rbp), %rsi
callq 0xd0aa
movq %rax, %r12
movq %rdx, %rbx
movq %rax, %r13
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %r13
testb $0x1, %bl
je 0x30e23
testq %r13, %r13
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0x30e23
incl (%r13)
movq %r12, %rdi
shrq $0x30, %rdi
movq %r13, %rsi
callq 0x2f9d2
cmpl $0x1, %eax
jne 0x30e7e
movq %rdx, %rdi
callq 0xd745
orb -0x38(%rbp), %r14b
testb $0x1, %r14b
jne 0x30e4f
movq -0x58(%rbp), %rcx
incl (%rcx)
cmpq %rax, -0x50(%rbp)
jne 0x30e7e
testb $0x1, %bl
je 0x30ea9
testq %r13, %r13
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0x30ea9
decl (%r13)
jne 0x30ea9
movq %r12, %rdi
movq %rbx, %rsi
callq 0xd13d
jmp 0x30ea9
movq %r12, %rdi
movq %rbx, %rsi
movl %r15d, %edx
movq -0x40(%rbp), %rcx
leaq -0xa8(%rbp), %r8
callq 0x949e
movl -0xa8(%rbp), %r15d
movq -0xa0(%rbp), %rax
movq %rax, -0x40(%rbp)
movl -0x68(%rbp), %r13d
movq -0x60(%rbp), %rbx
movb $0x1, %r14b
jmp 0x30ddd
testl %r13d, %r13d
jne 0x31522
xorl %edi, %edi
xorl %esi, %esi
movl %r15d, %edx
movq -0x40(%rbp), %rcx
callq 0xd01b
movl %eax, %ebx
movq %rdx, %r14
movq -0xc0(%rbp), %rdi
movq 0x28(%rdi), %rax
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
movq %rdi, %rdx
movq %rdi, -0x30(%rbp)
jne 0x30f25
movl 0x20(%rdx), %edi
decl (%rcx)
jne 0x30f25
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xe035d(%rip), %rsi     # 0x111279
callq 0xd13d
movq -0x30(%rbp), %rdx
movl %ebx, 0x20(%rdx)
movq %r14, 0x28(%rdx)
movq -0xc8(%rbp), %rax
movq %rax, -0xb8(%rbp)
leaq 0x10e4717(%rip), %rdi   # 0x1115658
movq %rdx, %rbx
movq -0x50(%rbp), %rsi
callq 0x13c85
movq %rax, %rdi
callq 0x13d82
movq %rax, -0x40(%rbp)
movq %rax, %rdi
movq %rdx, %rsi
callq 0x1099d
movl 0x20(%rbx), %eax
movq 0x28(%rbx), %rdi
movq %rdi, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0x30f8d
incl (%rcx)
movq -0x40(%rbp), %rsi
movq %rsi, %r8
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %r8
movq %r8, -0x80(%rbp)
setne %cl
testb $0x3, %sil
sete %sil
andb %cl, %sil
movb %sil, -0x50(%rbp)
movq $0x0, -0x38(%rbp)
leaq 0x4(%rdx), %rcx
movq %rcx, -0x88(%rbp)
movl $0x0, -0x44(%rbp)
movq $0x0, -0x58(%rbp)
movl $0x0, -0x48(%rbp)
cmpl $0x1, %eax
jne 0x3122c
leaq -0x68(%rbp), %rsi
callq 0xd0aa
movq %rax, %r13
movq %rdx, %r14
cmpb $0x0, -0x50(%rbp)
je 0x31004
movq -0x80(%rbp), %rax
incl (%rax)
movq %r13, %rbx
movq %r13, %r12
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %r12
testb $0x1, %r14b
je 0x31031
testq %r12, %r12
sete %al
testb $0x3, %bl
setne %cl
orb %al, %cl
jne 0x31031
incl (%r12)
shrq $0x30, %r13
cmpw $0xc, %r13w
ja 0x31522
leaq 0xad76d(%rip), %rcx     # 0xde7b4
movslq (%rcx,%r13,4), %rax
addq %rcx, %rax
jmpq *%rax
decl (%r12)
movl $0x1, %r15d
jne 0x31198
movq %r12, %rdi
callq 0x5030
jmp 0x31198
movq 0x8(%r12), %r15
decl (%r12)
jne 0x31080
movq %r12, %rdi
callq 0x5030
leaq 0x10e45f9(%rip), %rdi   # 0x1115680
jmp 0x3117a
movq 0x8(%r12), %r15
decl (%r12)
jne 0x3109f
movq %r12, %rdi
callq 0x5030
leaq 0x10e4302(%rip), %rdi   # 0x11153a8
jmp 0x3117a
movl 0x4(%r12), %r15d
decl (%r12)
jne 0x310be
movq %r12, %rdi
callq 0x5030
movl %r15d, %edi
leaq -0xa8(%rbp), %rsi
callq 0x15bd6
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x310fe
decl (%rcx)
jne 0x310fe
movq %rax, %rdi
leaq 0xe0060(%rip), %rsi     # 0x111159
callq 0xd13d
movq -0xa8(%rbp), %r15
jmp 0x31198
movq 0x8(%r12), %r15
decl (%r12)
jne 0x3111d
movq %r12, %rdi
callq 0x5030
leaq 0x10e4534(%rip), %rdi   # 0x1115658
jmp 0x3117a
movq 0x8(%r12), %r15
decl (%r12)
jne 0x31139
movq %r12, %rdi
callq 0x5030
leaq 0x10e4550(%rip), %rdi   # 0x1115690
movq %r15, %rsi
callq 0x13c85
movq %rax, %rdi
callq 0x13d82
movq %rax, %r15
movq %rax, %rdi
movq %rdx, %rsi
callq 0x324c1
jmp 0x31198
movq 0x8(%r12), %r15
decl (%r12)
jne 0x31173
movq %r12, %rdi
callq 0x5030
leaq 0x10e40ce(%rip), %rdi   # 0x1115248
movq %r15, %rsi
callq 0x13c85
movq %rax, %rdi
callq 0x13d82
movq %rax, %r15
movq %rax, %rdi
movq %rdx, %rsi
callq 0x1099d
movq -0x40(%rbp), %rdi
movq %r15, %rsi
callq 0x32409
testb %al, %al
je 0x311da
movq %rbx, %rdi
movq %r14, %rsi
callq 0x206fc
movq %rdx, %rdi
callq 0x20aa1
movq %rax, %rdi
movq %rdx, %rsi
movl -0x48(%rbp), %edx
movq -0x58(%rbp), %rcx
callq 0xd1ec
movq %rdx, -0x58(%rbp)
movl $0x1, -0x48(%rbp)
jmp 0x31220
movl %r13d, %edi
movq %r12, %rsi
callq 0x32468
orq -0x88(%rbp), %rax
movq %rax, %rdi
leaq 0xe0dbb(%rip), %rsi     # 0x111fb1
callq 0x2069e
movq %rdx, %rdi
callq 0x20a5a
movq %rax, %rdi
movq %rdx, %rsi
movl -0x44(%rbp), %edx
movq -0x38(%rbp), %rcx
callq 0xd1ec
movq %rdx, -0x38(%rbp)
movl $0x1, -0x44(%rbp)
movl -0x68(%rbp), %eax
movq -0x60(%rbp), %rdi
jmp 0x30fe0
testl %eax, %eax
jne 0x31522
xorl %edi, %edi
xorl %esi, %esi
movl -0x44(%rbp), %edx
movq -0x38(%rbp), %rcx
callq 0xd01b
movl %eax, %r15d
movq %rdx, %r12
xorl %edi, %edi
xorl %esi, %esi
movl -0x48(%rbp), %edx
movq -0x58(%rbp), %rcx
callq 0xd01b
movl %eax, %ebx
movq %rdx, %r14
movq -0x30(%rbp), %rax
movl 0x30(%rax), %edx
movq 0x38(%rax), %rcx
movq %rcx, %rax
movabsq $0xfffffffffffc, %rsi   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %sil
testb $0x3, %cl
setne %dil
orb %sil, %dil
jne 0x3128c
incl (%rax)
movl %r15d, %edi
movq %r12, %rsi
callq 0x28d8d
movl %eax, %r15d
movq %rdx, %r12
movq -0x30(%rbp), %rdi
movq 0x38(%rdi), %rax
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
movq %rdi, %rdx
jne 0x312e4
movl 0x30(%rdx), %edi
decl (%rcx)
jne 0x312e4
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xdff9e(%rip), %rsi     # 0x111279
callq 0xd13d
movq -0x30(%rbp), %rdx
movl %r15d, 0x30(%rdx)
movq %r12, 0x38(%rdx)
movq 0x28(%rdx), %rax
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
movq -0x30(%rbp), %rsi
jne 0x31330
movl 0x20(%rsi), %edi
decl (%rcx)
jne 0x31330
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xdff52(%rip), %rsi     # 0x111279
callq 0xd13d
movq -0x30(%rbp), %rsi
movl %ebx, 0x20(%rsi)
movq %r14, 0x28(%rsi)
cmpb $0x0, -0x50(%rbp)
je 0x31359
movq -0x80(%rbp), %rax
decl (%rax)
jne 0x31359
leaq 0xe00dd(%rip), %rsi     # 0x111429
movq -0x40(%rbp), %rdi
callq 0xd13d
movq -0x30(%rbp), %rsi
leaq -0x68(%rbp), %rbx
leaq -0xa8(%rbp), %r14
movq -0xb8(%rbp), %rdi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x28dc9
movq (%rbx), %rdi
movq (%r14), %rsi
leaq -0xe0(%rbp), %rbx
leaq -0xd8(%rbp), %r14
xorl %edx, %edx
xorl %ecx, %ecx
movq %rbx, %r8
movq %r14, %r9
callq 0x2917d
movq (%rbx), %rdi
movq (%r14), %rsi
leaq -0xd0(%rbp), %rbx
movq %rbx, %rdx
callq 0x2a68a
movq (%rbx), %rdi
leaq -0x98(%rbp), %rcx
movl %eax, %esi
callq 0x323ab
movq %rax, %rdi
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rdi
cmpq -0x88(%rbp), %rax
jae 0x3142d
movq 0x8(%rdi), %rbx
decl (%rdi)
jne 0x313e5
callq 0x5030
leaq 0x10e402c(%rip), %rdi   # 0x1115418
movq %rbx, %rsi
callq 0x13c85
movq -0x98(%rbp), %rdi
leaq -0x90(%rbp), %rdx
movq %rax, %rsi
callq 0x1555d
cmpl $0x1, %eax
jne 0x31473
movq %rdx, %rdi
callq 0xd745
movq -0x90(%rbp), %rcx
movabsq $0xfffffffffffc, %rdi   # imm = 0xFFFFFFFFFFFC
andq %rax, %rdi
jmp 0x31434
movq -0x98(%rbp), %rcx
movabsq $-0x1000000000000, %rbx # imm = 0xFFFF000000000000
andq %rax, %rbx
orq %rdi, %rbx
leaq 0xe04a5(%rip), %rsi     # 0x1118f0
movq %rcx, %rdi
callq 0x8e6d
leaq 0xe032f(%rip), %rsi     # 0x111789
movq %rbx, %rdi
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd34b
testl %eax, %eax
jne 0x31522
testb $0x1, -0xb0(%rbp)
je 0x314a7
movq -0x70(%rbp), %rdx
movq %rdx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %dl
setne %dl
orb %cl, %dl
jne 0x314a7
incl (%rax)
movq 0x10e41ca(%rip), %rdx   # 0x1115678
testq %rdx, %rdx
jne 0x314fb
movl $0x39, %edi
callq 0xf5e4
movq %rax, %rdx
movq $0x39, 0x10(%rax)
movups 0xb34c1(%rip), %xmm0    # 0xe4990
movups %xmm0, 0x18(%rax)
movups 0xb34c6(%rip), %xmm0    # 0xe49a0
movups %xmm0, 0x28(%rax)
movups 0xb34cb(%rip), %xmm0    # 0xe49b0
movups %xmm0, 0x38(%rax)
movups 0xb34c9(%rip), %xmm0    # 0xe49b9
movups %xmm0, 0x41(%rax)
movq %rax, 0x10e417d(%rip)   # 0x1115678
andq %rdx, -0x78(%rbp)
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x31512
movq -0x78(%rbp), %rax
incl (%rax)
movq -0x90(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x27183
movl $0x20, %edi
callq 0xf5e4
movq $0x20, 0x10(%rax)
movups 0xaf192(%rip), %xmm0    # 0xe06cd
movups %xmm0, 0x18(%rax)
movups 0xaf197(%rip), %xmm0    # 0xe06dd
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x9302