// File: /workspace/github_c_makefile_star2_O2/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 $0xc8, %rsp
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
callq 0xd3d6
movq %rax, %rbx
movq %rax, %rdi
movq %rdx, %rsi
callq 0x8a95
callq 0xd429
movq %rax, %r14
movq %rbx, %rax
movq %r15, -0x78(%rbp)
andq %r15, %rax
movq 0x8(%rax), %r15
movq 0x18(%rax), %r13
movq 0x20(%rax), %r12
movq 0x28(%rax), %rcx
movq %rcx, -0x40(%rbp)
movq 0x30(%rax), %rax
movq %rax, -0x30(%rbp)
movq %rbx, %rdi
callq 0x8ae0
movq %r12, -0xa8(%rbp)
testb $0x1, %r12b
je 0x2e3ee
movq %r13, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0x2e3ee
incl (%rax)
movq 0x10de27b(%rip), %rdi   # 0x110c670
testq %rdi, %rdi
jne 0x2e413
leaq 0xaa5cc(%rip), %rdi     # 0xd89cd
pushq $0x6
popq %rsi
callq 0x8a21
movq %rax, %rdi
movq %rax, 0x10de25d(%rip)   # 0x110c670
movq %rdi, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x2e433
incl (%rax)
movq %r15, %rdx
shrq $0x30, %rdx
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
andq %r12, %r15
subq $0x8, %rsp
leaq -0xc8(%rbp), %rbx
leaq -0xd0(%rbp), %rax
movq %r13, -0x70(%rbp)
movq %r13, %rsi
movq %r15, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
pushq %rbx
pushq %rax
pushq %r14
callq 0x25fba
addq $0x20, %rsp
movq (%rbx), %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 0x2e496
incl (%rax)
xorl %edi, %edi
xorl %esi, %esi
callq 0xcd32
movl %eax, %r12d
movq %rdx, %r15
testb $0x1, -0x30(%rbp)
sete %al
movq -0x40(%rbp), %rdx
movq %rdx, %rsi
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rsi
movq %rsi, -0x58(%rbp)
sete %cl
testb $0x3, %dl
setne %dl
orb %cl, %dl
movb %dl, -0x38(%rbp)
movb $0x1, %cl
movq %rbx, %rdi
testb $0x1, %cl
je 0x2e5ca
movl %eax, %r14d
movb $0x1, %al
xorl %ecx, %ecx
movl $0x0, %ebx
testl %r13d, %r13d
je 0x2e4d4
movq %r15, -0x30(%rbp)
cmpl $0x1, %r13d
jne 0x2ec3a
movl %r12d, %r15d
leaq -0x68(%rbp), %rsi
callq 0xce01
movq %rax, %rbx
movq %rdx, %r13
movq %rax, %r12
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %r12
testb $0x1, %r13b
je 0x2e53b
testq %r12, %r12
sete %al
testb $0x3, %bl
setne %cl
orb %al, %cl
jne 0x2e53b
incl (%r12)
movq %rbx, %rdi
shrq $0x30, %rdi
movq %r12, %rsi
callq 0x2d164
cmpl $0x1, %eax
jne 0x2e59d
movq %rdx, %rdi
callq 0xd491
orb -0x38(%rbp), %r14b
testb $0x1, %r14b
jne 0x2e567
movq -0x58(%rbp), %rcx
incl (%rcx)
cmpq %rax, -0x40(%rbp)
jne 0x2e59d
testb $0x1, %r13b
je 0x2e594
testq %r12, %r12
sete %al
testb $0x3, %bl
setne %cl
orb %al, %cl
jne 0x2e594
decl (%r12)
jne 0x2e594
movq %rbx, %rdi
movq %r13, %rsi
callq 0xce94
movl %r15d, %r12d
movq -0x30(%rbp), %r15
jmp 0x2e5bb
movq %rbx, %rdi
movq %r13, %rsi
movl %r15d, %edx
movq -0x30(%rbp), %rcx
leaq -0x50(%rbp), %r8
callq 0x8e35
movl -0x50(%rbp), %r12d
movq -0x48(%rbp), %r15
movl -0x68(%rbp), %r13d
movq -0x60(%rbp), %rbx
movb $0x1, %al
jmp 0x2e4d2
movq %rdi, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0x2e602
decl (%rax)
jne 0x2e602
shlq $0x30, %r13
orq %rdi, %r13
movq %r13, %rdi
leaq 0xd9c7c(%rip), %rsi     # 0x108279
callq 0xce94
movl %r12d, %edi
movq %r15, %rsi
callq 0xcd32
movl %eax, %ebx
movq %rdx, %r14
movq -0xc8(%rbp), %r15
movq 0x28(%r15), %rax
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x2e656
movl 0x20(%r15), %edi
decl (%rcx)
jne 0x2e656
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xd9c28(%rip), %rsi     # 0x108279
callq 0xce94
movl %ebx, 0x20(%r15)
movq %r14, 0x28(%r15)
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
movq -0x40(%rbp), %rsi
callq 0x2fa05
movq %rax, -0x40(%rbp)
movl 0x20(%r15), %edi
movq 0x28(%r15), %rcx
movq %rcx, %rax
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rax
sete %dl
testb $0x3, %cl
setne %sil
orb %dl, %sil
jne 0x2e6a2
incl (%rax)
movq -0xc0(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rdx
movq %rdx, %rsi
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %rsi
movq %rsi, -0x58(%rbp)
setne %al
testb $0x3, %dl
sete %dl
andb %al, %dl
movb %dl, -0x30(%rbp)
xorl %ebx, %ebx
leaq -0x68(%rbp), %rsi
xorl %r14d, %r14d
xorl %r13d, %r13d
xorl %r12d, %r12d
movb $0x1, %dl
movq %rcx, %rax
testb $0x1, %dl
je 0x2e977
xorl %edx, %edx
movl $0x0, %ecx
testl %edi, %edi
je 0x2e6e4
cmpl $0x1, %edi
jne 0x2ec3a
movq %r14, -0x88(%rbp)
movq %rbx, -0x90(%rbp)
movq %rax, %rdi
callq 0xce01
movq %rax, %rbx
cmpb $0x0, -0x30(%rbp)
je 0x2e729
movq -0x58(%rbp), %rax
incl (%rax)
movq %rbx, %rsi
movq %rbx, %r14
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %r14
testb $0x1, %dl
je 0x2e755
testq %r14, %r14
sete %al
testb $0x3, %sil
setne %cl
orb %al, %cl
jne 0x2e755
incl (%r14)
shrq $0x30, %rbx
cmpw $0xc, %bx
ja 0x2ec3a
movq %rsi, -0xb0(%rbp)
movq %rdx, -0xb8(%rbp)
leaq 0xa403c(%rip), %rcx     # 0xd27b4
movslq (%rcx,%rbx,4), %rax
addq %rcx, %rax
movq %r12, -0x80(%rbp)
jmpq *%rax
movq %r14, %rdi
callq 0x13ef6
movq -0x38(%rbp), %rdi
movq %rax, %rsi
leaq -0x50(%rbp), %rdx
callq 0x2fa05
jmp 0x2e8b4
movq %r14, %rdi
callq 0x14121
jmp 0x2e867
movq %r14, %rdi
callq 0x140ad
jmp 0x2e867
movq %r14, %rdi
callq 0x141c7
movq -0x38(%rbp), %rdi
movq %rax, %rsi
leaq -0x50(%rbp), %rdx
callq 0x2498c
jmp 0x2e8b4
movq %r14, %rdi
callq 0x13fe7
jmp 0x2e867
movq %r14, %rdi
callq 0x13f13
jmp 0x2e867
movq %r14, %rdi
callq 0x14090
leaq 0x10dda49(%rip), %rdi   # 0x110c248
jmp 0x2e87c
movq %r14, %rdi
callq 0x14004
movl %eax, %edi
leaq -0x50(%rbp), %rsi
callq 0x14e72
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x2e845
decl (%rcx)
jne 0x2e845
movq %rax, %rdi
leaq 0xd9919(%rip), %rsi     # 0x108159
callq 0xce94
movq -0x50(%rbp), %r12
jmp 0x2e8bf
movq %r14, %rdi
callq 0x13f68
jmp 0x2e867
movq %r14, %rdi
callq 0x140ca
jmp 0x2e867
movq %r14, %rdi
callq 0x1413e
pushq $0x1
popq %r12
jmp 0x2e8bf
movq %r14, %rdi
callq 0x140e7
leaq 0x10dde04(%rip), %rdi   # 0x110c680
movq %rax, %rsi
callq 0x12f88
movq %rax, %rdi
callq 0x1307d
movq %rax, %r12
movq %rax, %rdi
movq %rdx, %rsi
callq 0xff62
jmp 0x2e8bf
movq %r14, %rdi
callq 0x14104
movq -0x38(%rbp), %rdi
movq %rax, %rsi
leaq -0x50(%rbp), %rdx
callq 0x2fadc
movq %rax, %r12
movq -0x50(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rdi
movq %r12, %rsi
callq 0x2fa38
testb %al, %al
je 0x2e911
movq -0xb0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x1e454
movq %rdx, %rdi
callq 0x1e7e4
movq %rax, %rdi
movq %rdx, %rsi
movq -0x90(%rbp), %rdx
movq -0x88(%rbp), %rcx
callq 0xcf39
movq %rdx, %r14
pushq $0x1
popq %rax
movl %eax, %ebx
movq -0x80(%rbp), %r12
jmp 0x2e967
movl %ebx, %edi
movq %r14, %rsi
callq 0x2fa8d
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
leaq 0x4(%rcx), %rdi
orq %rax, %rdi
leaq 0xda67e(%rip), %rsi     # 0x108fb1
callq 0x1e400
movq %rdx, %rdi
callq 0x1e79d
movq %rax, %rdi
movq %rdx, %rsi
movl %r13d, %edx
movq -0x80(%rbp), %rcx
callq 0xcf39
movq %rdx, %r12
pushq $0x1
popq %r13
movq -0x90(%rbp), %rbx
movq -0x88(%rbp), %r14
movl -0x68(%rbp), %edi
movq -0x60(%rbp), %rcx
leaq -0x68(%rbp), %rsi
jmp 0x2e6e2
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x2e9ac
decl (%rcx)
jne 0x2e9ac
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xd98d2(%rip), %rsi     # 0x108279
callq 0xce94
movl %r13d, %edi
movq %r12, %rsi
callq 0xcd32
movl %eax, %r12d
movq %rdx, %r13
movl %ebx, %edi
movq %r14, %rsi
callq 0xcd32
movl %eax, %ebx
movq %rdx, %r14
movl 0x30(%r15), %edx
movq 0x38(%r15), %rcx
movq %rcx, %rax
movabsq $0xfffffffffffc, %rsi   # imm = 0xFFFFFFFFFFFC
andq %rsi, %rax
sete %sil
testb $0x3, %cl
setne %dil
orb %sil, %dil
jne 0x2e9f6
incl (%rax)
movl %r12d, %edi
movq %r13, %rsi
callq 0x26383
movl %eax, %r12d
movq %rdx, %r13
movq 0x38(%r15), %rax
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x2ea44
movl 0x30(%r15), %edi
decl (%rcx)
jne 0x2ea44
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xd983a(%rip), %rsi     # 0x108279
callq 0xce94
movl %r12d, 0x30(%r15)
movq %r13, 0x38(%r15)
movq 0x28(%r15), %rax
movq %rax, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x2ea89
movl 0x20(%r15), %edi
decl (%rcx)
jne 0x2ea89
shlq $0x30, %rdi
orq %rax, %rdi
leaq 0xd97f5(%rip), %rsi     # 0x108279
callq 0xce94
movl %ebx, 0x20(%r15)
movq %r14, 0x28(%r15)
cmpb $0x0, -0x30(%rbp)
je 0x2eaaf
movq -0x58(%rbp), %rax
decl (%rax)
jne 0x2eaaf
leaq 0xd9983(%rip), %rsi     # 0x108429
movq -0x40(%rbp), %rdi
callq 0xce94
leaq -0x68(%rbp), %rbx
leaq -0x50(%rbp), %r14
movq -0x38(%rbp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x263b9
movq (%rbx), %rdi
movq (%r14), %rsi
leaq -0xe8(%rbp), %rbx
leaq -0xe0(%rbp), %r14
xorl %edx, %edx
xorl %ecx, %ecx
movq %rbx, %r8
movq %r14, %r9
callq 0x267d7
movq (%rbx), %rdi
movq (%r14), %rsi
leaq -0xd8(%rbp), %rbx
movq %rbx, %rdx
callq 0x27e9f
movq (%rbx), %rdi
leaq -0xa0(%rbp), %rcx
movl %eax, %esi
callq 0x2f9c0
movq %rax, %rdi
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rdi
addq $0x4, %rcx
cmpq %rcx, %rax
jae 0x2eb78
callq 0x13ef6
leaq 0x10dd8e1(%rip), %rdi   # 0x110c418
movq %rax, %rsi
callq 0x12f88
movq -0xa0(%rbp), %rdi
leaq -0x98(%rbp), %rdx
movq %rax, %rsi
callq 0x1483b
cmpl $0x1, %eax
jne 0x2ebbe
movq %rdx, %rdi
callq 0xd491
movq -0x98(%rbp), %rcx
movabsq $0xfffffffffffc, %rdi   # imm = 0xFFFFFFFFFFFC
andq %rax, %rdi
jmp 0x2eb7f
movq -0xa0(%rbp), %rcx
movabsq $-0x1000000000000, %rbx # imm = 0xFFFF000000000000
andq %rax, %rbx
orq %rdi, %rbx
leaq 0xd9d5a(%rip), %rsi     # 0x1088f0
movq %rcx, %rdi
callq 0x883c
leaq 0xd9be4(%rip), %rsi     # 0x108789
movq %rbx, %rdi
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd08e
testl %eax, %eax
jne 0x2ec3a
testb $0x1, -0xa8(%rbp)
je 0x2ebee
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 0x2ebee
incl (%rax)
movq 0x10dda83(%rip), %rdx   # 0x110c678
testq %rdx, %rdx
jne 0x2ec13
leaq 0xa9f35(%rip), %rdi     # 0xd8b36
pushq $0x39
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x10dda65(%rip)   # 0x110c678
andq %rdx, -0x78(%rbp)
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0x2ec2a
movq -0x78(%rbp), %rax
incl (%rax)
movq -0x98(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x246fe
leaq 0xa5bcc(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6