// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99_smartzesigzeput
static void mw_mirth_c99_zaC99_smartzesigzeput (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99* in_zaC99_2, struct mirth_c99_C99API* in_C99API_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99* *out_zaC99_5) {
	STR* v6;
	STRLIT(v6, "static ", 7);
	struct mirth_mirth_zaMirth* v7;
	struct mirth_c99_zaC99* v8;
	mw_mirth_c99_zaC99_put(in_zaMirth_1, in_zaC99_2, v6, &v7, &v8);
	incref(MK_mirth_c99_C99API(in_C99API_3));
	struct std_maybe_Maybe_1 v9 = in_C99API_3->mreturnzeparam;
	incref(MK_std_maybe_Maybe_1(v9));
	decref(MK_mirth_c99_C99API(in_C99API_3));
	struct mirth_mirth_zaMirth* branch_zaMirth_10;
	struct mirth_c99_zaC99* branch_zaC99_11;
	switch ((v9).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v12 = mtp_std_maybe_Maybe_1_Some(v9);
			struct mirth_c99_C99ReprType v13 = V_mirth_c99_C99APIArg(v12)->margzerepr;
			incref(MK_mirth_c99_C99ReprType(v13));
			decref(MK_mirth_c99_C99APIArg(V_mirth_c99_C99APIArg(v12)));
			struct mirth_mirth_zaMirth* v14;
			STR* v15 = mw_mirth_c99_C99ReprType_underlyingzec99zetype(v7, v13, &v14);
			struct mirth_mirth_zaMirth* v16;
			struct mirth_c99_zaC99* v17;
			mw_mirth_c99_zaC99_put(v14, v8, v15, &v16, &v17);
			branch_zaC99_11 = v17;
			branch_zaMirth_10 = v16;
		} break;
		case std_maybe_Maybe_1_None: {
			STR* v18;
			STRLIT(v18, "void", 4);
			struct mirth_mirth_zaMirth* v19;
			struct mirth_c99_zaC99* v20;
			mw_mirth_c99_zaC99_put(v7, v8, v18, &v19, &v20);
			branch_zaC99_11 = v20;
			branch_zaMirth_10 = v19;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	STR* v21;
	STRLIT(v21, " ", 1);
	struct mirth_mirth_zaMirth* v22;
	struct mirth_c99_zaC99* v23;
	mw_mirth_c99_zaC99_put(branch_zaMirth_10, branch_zaC99_11, v21, &v22, &v23);
	incref(MK_mirth_c99_C99API(in_C99API_3));
	STR* v24 = in_C99API_3->mcname;
	incref(MKSTR(v24));
	decref(MK_mirth_c99_C99API(in_C99API_3));
	struct mirth_mirth_zaMirth* v25;
	struct mirth_c99_zaC99* v26;
	mw_mirth_c99_zaC99_put(v22, v23, v24, &v25, &v26);
	STR* v27;
	STRLIT(v27, " (", 2);
	struct mirth_mirth_zaMirth* v28;
	struct mirth_c99_zaC99* v29;
	mw_mirth_c99_zaC99_put(v25, v26, v27, &v28, &v29);
	STR* v30;
	STRLIT(v30, "", 0);
	incref(MK_mirth_c99_C99API(in_C99API_3));
	struct std_list_List_1 v31 = in_C99API_3->minzeparams;
	incref(MK_std_list_List_1(v31));
	decref(MK_mirth_c99_C99API(in_C99API_3));
	struct mirth_mirth_zaMirth* v32;
	VAL v33;
	struct std_list_List_1 v34 = mw_std_list_List_1_filter_1_sp6(v28, MK_mirth_c99_zaC99(v29), v31, &v32, &v33);
	bool v35 = true;
	struct mirth_mirth_zaMirth* r36 = v32;
	VAL r37 = v33;
	STR* v38 = v30;
	struct std_list_List_1 v39 = v34;
	bool v40 = v35;
	bool v41 = v35;
	while (v41) {
		struct mirth_mirth_zaMirth* r42 = r36;
		VAL r43 = r37;
		STR* v44 = v38;
		struct std_list_List_1 v45 = v39;
		bool v46 = v40;
		STR* branch_Str_47;
		struct mirth_mirth_zaMirth* branch_zaMirth_48;
		struct mirth_c99_zaC99* branch_zaC99_49;
		struct std_list_List_1 branch_List_50;
		bool branch_Bool_51;
		switch ((v45).tag) {
			case std_list_List_1_Cons: {
				struct std_list_List_1 v52;
				VAL v53 = mtp_std_list_List_1_Cons(v45, &v52);
				struct mirth_mirth_zaMirth* v54;
				struct mirth_c99_zaC99* v55;
				mw_mirth_c99_zaC99_put(r42, V_mirth_c99_zaC99(r43), v44, &v54, &v55);
				STR* v56;
				STRLIT(v56, ", ", 2);
				incref(v53);
				struct mirth_c99_C99ReprType v57 = V_mirth_c99_C99APIArg(v53)->margzerepr;
				incref(MK_mirth_c99_C99ReprType(v57));
				decref(MK_mirth_c99_C99APIArg(V_mirth_c99_C99APIArg(v53)));
				struct mirth_mirth_zaMirth* v58;
				STR* v59 = mw_mirth_c99_C99ReprType_underlyingzec99zetype(v54, v57, &v58);
				struct mirth_mirth_zaMirth* v60;
				struct mirth_c99_zaC99* v61;
				mw_mirth_c99_zaC99_put(v58, v55, v59, &v60, &v61);
				STR* v62;
				STRLIT(v62, " ", 1);
				struct mirth_mirth_zaMirth* v63;
				struct mirth_c99_zaC99* v64;
				mw_mirth_c99_zaC99_put(v60, v61, v62, &v63, &v64);
				STR* v65 = V_mirth_c99_C99APIArg(v53)->margzename;
				incref(MKSTR(v65));
				decref(MK_mirth_c99_C99APIArg(V_mirth_c99_C99APIArg(v53)));
				struct mirth_mirth_zaMirth* v66;
				struct mirth_c99_zaC99* v67;
				mw_mirth_c99_zaC99_put(v63, v64, v65, &v66, &v67);
				bool v68 = true;
				branch_Bool_51 = v68;
				branch_List_50 = v52;
				branch_zaC99_49 = v67;
				branch_zaMirth_48 = v66;
				branch_Str_47 = v56;
			} break;
			case std_list_List_1_Nil: {
				struct std_list_List_1 v69 = { .tag=std_list_List_1_Nil };
				bool v70 = false;
				branch_Bool_51 = v70;
				branch_List_50 = v69;
				branch_zaC99_49 = V_mirth_c99_zaC99(r43);
				branch_zaMirth_48 = r42;
				branch_Str_47 = v44;
			} break;
			default: {
				do_panic(str_make("unexpected fallthrough in match\n", 32));
			}
		}
		v41 = branch_Bool_51;
		v40 = branch_Bool_51;
		v39 = branch_List_50;
		v38 = branch_Str_47;
		r37 = MK_mirth_c99_zaC99(branch_zaC99_49);
		r36 = branch_zaMirth_48;
	}
	decref(MK_std_list_List_1(v39));
	incref(MK_mirth_c99_C99API(in_C99API_3));
	struct std_list_List_1 v71 = in_C99API_3->moutzeparamsze1;
	incref(MK_std_list_List_1(v71));
	decref(MK_mirth_c99_C99API(in_C99API_3));
	incref(MK_mirth_c99_C99API(in_C99API_3));
	struct std_list_List_1 v72 = in_C99API_3->moutzeparamsze2;
	incref(MK_std_list_List_1(v72));
	decref(MK_mirth_c99_C99API(in_C99API_3));
	struct std_list_List_1 v73 = mw_std_list_List_1_cat(v71, v72);
	struct mirth_mirth_zaMirth* v74;
	VAL v75;
	struct std_list_List_1 v76 = mw_std_list_List_1_filter_1_sp6(r36, r37, v73, &v74, &v75);
	bool v77 = true;
	struct mirth_mirth_zaMirth* r78 = v74;
	VAL r79 = v75;
	STR* v80 = v38;
	struct std_list_List_1 v81 = v76;
	bool v82 = v77;
	bool v83 = v77;
	while (v83) {
		struct mirth_mirth_zaMirth* r84 = r78;
		VAL r85 = r79;
		STR* v86 = v80;
		struct std_list_List_1 v87 = v81;
		bool v88 = v82;
		STR* branch_Str_89;
		struct mirth_mirth_zaMirth* branch_zaMirth_90;
		struct mirth_c99_zaC99* branch_zaC99_91;
		struct std_list_List_1 branch_List_92;
		bool branch_Bool_93;
		switch ((v87).tag) {
			case std_list_List_1_Cons: {
				struct std_list_List_1 v94;
				VAL v95 = mtp_std_list_List_1_Cons(v87, &v94);
				struct mirth_mirth_zaMirth* v96;
				struct mirth_c99_zaC99* v97;
				mw_mirth_c99_zaC99_put(r84, V_mirth_c99_zaC99(r85), v86, &v96, &v97);
				STR* v98;
				STRLIT(v98, ", ", 2);
				incref(v95);
				struct mirth_c99_C99ReprType v99 = V_mirth_c99_C99APIArg(v95)->margzerepr;
				incref(MK_mirth_c99_C99ReprType(v99));
				decref(MK_mirth_c99_C99APIArg(V_mirth_c99_C99APIArg(v95)));
				struct mirth_mirth_zaMirth* v100;
				STR* v101 = mw_mirth_c99_C99ReprType_underlyingzec99zetype(v96, v99, &v100);
				struct mirth_mirth_zaMirth* v102;
				struct mirth_c99_zaC99* v103;
				mw_mirth_c99_zaC99_put(v100, v97, v101, &v102, &v103);
				STR* v104;
				STRLIT(v104, " *", 2);
				struct mirth_mirth_zaMirth* v105;
				struct mirth_c99_zaC99* v106;
				mw_mirth_c99_zaC99_put(v102, v103, v104, &v105, &v106);
				STR* v107 = V_mirth_c99_C99APIArg(v95)->margzename;
				incref(MKSTR(v107));
				decref(MK_mirth_c99_C99APIArg(V_mirth_c99_C99APIArg(v95)));
				struct mirth_mirth_zaMirth* v108;
				struct mirth_c99_zaC99* v109;
				mw_mirth_c99_zaC99_put(v105, v106, v107, &v108, &v109);
				bool v110 = true;
				branch_Bool_93 = v110;
				branch_List_92 = v94;
				branch_zaC99_91 = v109;
				branch_zaMirth_90 = v108;
				branch_Str_89 = v98;
			} break;
			case std_list_List_1_Nil: {
				struct std_list_List_1 v111 = { .tag=std_list_List_1_Nil };
				bool v112 = false;
				branch_Bool_93 = v112;
				branch_List_92 = v111;
				branch_zaC99_91 = V_mirth_c99_zaC99(r85);
				branch_zaMirth_90 = r84;
				branch_Str_89 = v86;
			} break;
			default: {
				do_panic(str_make("unexpected fallthrough in match\n", 32));
			}
		}
		v83 = branch_Bool_93;
		v82 = branch_Bool_93;
		v81 = branch_List_92;
		v80 = branch_Str_89;
		r79 = MK_mirth_c99_zaC99(branch_zaC99_91);
		r78 = branch_zaMirth_90;
	}
	decref(MK_std_list_List_1(v81));
	uint64_t v113 = str_size(v80);
	INT v114 = u64_to_int(v113);
	INT v115 = WRAP_I63(0LL);
	INT v116 = v115;
	bool v117 = int_eq(v114, v116);
	struct mirth_mirth_zaMirth* branch_zaMirth_118;
	struct mirth_c99_zaC99* branch_zaC99_119;
	if (v117) {
		STR* v120;
		STRLIT(v120, "void", 4);
		struct mirth_mirth_zaMirth* v121;
		struct mirth_c99_zaC99* v122;
		mw_mirth_c99_zaC99_put(r78, V_mirth_c99_zaC99(r79), v120, &v121, &v122);
		branch_zaC99_119 = v122;
		branch_zaMirth_118 = v121;
	} else {
		branch_zaC99_119 = V_mirth_c99_zaC99(r79);
		branch_zaMirth_118 = r78;
	}
	STR* v123;
	STRLIT(v123, ")", 1);
	struct mirth_mirth_zaMirth* v124;
	struct mirth_c99_zaC99* v125;
	mw_mirth_c99_zaC99_put(branch_zaMirth_118, branch_zaC99_119, v123, &v124, &v125);
	decref(MK_mirth_c99_C99API(in_C99API_3));
	*out_zaC99_5 = v125;
	*out_zaMirth_4 = v124;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %r8, -0xe0(%rbp)
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %rbx
movq %rdi, %r14
movq 0x106b1d0(%rip), %rdx   # 0x110e9d8
testq %rdx, %rdx
jne 0xa3826
leaq 0x49da2(%rip), %rdi     # 0xed5b6
pushq $0x7
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106b1b2(%rip)   # 0x110e9d8
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rax
andq %r15, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa3847
incl (%rax)
leaq -0xc8(%rbp), %rcx
leaq -0xc0(%rbp), %r8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x8a8a9
movq %r13, %rsi
andq %r15, %rsi
setne %al
testb $0x3, %r13b
sete %dil
andb %al, %dil
cmpb $0x1, %dil
jne 0xa387c
incl (%rsi)
movl 0x38(%r13), %r14d
movq 0x40(%r13), %rbx
movq %rbx, %rax
andq %r15, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0xa3899
incl (%rax)
testb %dil, %dil
movq %rsi, -0x40(%rbp)
movb %dil, -0x29(%rbp)
je 0xa38b9
decl (%rsi)
jne 0xa38b9
movq %r13, %rdi
leaq 0x6674d(%rip), %rsi     # 0x10a001
callq 0xce94
testl %r14d, %r14d
je 0xa3967
cmpl $0x1, %r14d
jne 0xa42af
movq %rbx, %rdi
callq 0xd491
movq %rax, %rdi
movl 0x18(%rax), %ebx
movq 0x20(%rax), %r14
movq %r14, %rcx
andq %r15, %rcx
sete %dl
testb $0x3, %r14b
setne %sil
orb %dl, %sil
jne 0xa38f6
incl (%rcx)
andq %r15, %rax
sete %cl
testb $0x3, %dil
setne %dl
orb %cl, %dl
jne 0xa3917
decl (%rax)
jne 0xa3917
leaq 0x6677f(%rip), %rsi     # 0x10a091
callq 0xce94
movq -0xc8(%rbp), %rdi
leaq -0x130(%rbp), %r15
movl %ebx, %esi
movq %r14, %rdx
movq %r15, %rcx
callq 0x9c7be
movq (%r15), %rdi
movq -0xc0(%rbp), %rsi
leaq -0xb0(%rbp), %r14
leaq -0x60(%rbp), %rbx
movq %rax, %rdx
movq %r14, %rcx
movq %rbx, %r8
callq 0x8a8a9
movq (%rbx), %rbx
movq (%r14), %r14
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
jmp 0xa39d0
movq 0x106b072(%rip), %rdx   # 0x110e9e0
testq %rdx, %rdx
jne 0xa398c
leaq 0x3418d(%rip), %rdi     # 0xd7b07
pushq $0x4
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106b054(%rip)   # 0x110e9e0
movq %rdx, %rax
andq %r15, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa39a3
incl (%rax)
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
leaq -0x130(%rbp), %r14
leaq -0xb0(%rbp), %rbx
movq %r14, %rcx
movq %rbx, %r8
callq 0x8a8a9
movq (%rbx), %rbx
movq (%r14), %r14
movq 0x106b011(%rip), %rdx   # 0x110e9e8
testq %rdx, %rdx
jne 0xa39f5
leaq 0x32424(%rip), %rdi     # 0xd5e07
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106aff3(%rip)   # 0x110e9e8
movq %rdx, %rax
andq %r15, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa3a0c
incl (%rax)
leaq -0x120(%rbp), %rcx
leaq -0x118(%rbp), %r8
movq %r14, %rdi
movq %rbx, %rsi
callq 0x8a8a9
movb -0x29(%rbp), %dil
testb %dil, %dil
movq -0x40(%rbp), %rsi
je 0xa3a34
incl (%rsi)
movq 0x8(%r13), %rbx
movq %rbx, %rax
andq %r15, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0xa3a4d
incl (%rax)
testb %dil, %dil
je 0xa3a65
decl (%rsi)
jne 0xa3a65
movq %r13, %rdi
leaq 0x665a1(%rip), %rsi     # 0x10a001
callq 0xce94
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rsi
leaq -0x110(%rbp), %rcx
leaq -0x108(%rbp), %r8
movq %rbx, %rdx
callq 0x8a8a9
movq 0x106af60(%rip), %rdx   # 0x110e9f0
testq %rdx, %rdx
jne 0xa3aae
leaq 0x4a7d9(%rip), %rdi     # 0xee275
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106af42(%rip)   # 0x110e9f0
movq %rdx, %rax
andq %r15, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa3ac5
incl (%rax)
movq -0x110(%rbp), %rdi
movq -0x108(%rbp), %rsi
leaq -0x100(%rbp), %rcx
leaq -0xf8(%rbp), %r8
callq 0x8a8a9
movq 0x106af0b(%rip), %rax   # 0x110e9f8
testq %rax, %rax
jne 0xa3b07
leaq 0x38bfc(%rip), %rdi     # 0xdc6f5
xorl %esi, %esi
callq 0x8a21
movq %rax, 0x106aef1(%rip)   # 0x110e9f8
movq %rax, %rsi
andq %r15, %rsi
sete %cl
movq %rax, -0x48(%rbp)
testb $0x3, %al
setne %dl
orb %cl, %dl
jne 0xa3b1f
incl (%rsi)
movb -0x29(%rbp), %dil
testb %dil, %dil
movq -0x40(%rbp), %rsi
je 0xa3b2e
incl (%rsi)
movl 0x18(%r13), %r14d
movq 0x20(%r13), %r15
movq %r15, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xa3b56
incl (%rax)
movq %r12, -0xd8(%rbp)
testb %dil, %dil
je 0xa3b75
decl (%rsi)
jne 0xa3b75
movq %r13, %rdi
leaq 0x66491(%rip), %rsi     # 0x10a001
callq 0xce94
movq -0x100(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq %r13, -0x68(%rbp)
leaq -0x130(%rbp), %r13
movq %r13, (%rsp)
leaq 0x664af(%rip), %rbx     # 0x10a048
leaq -0x138(%rbp), %r12
movq %rbx, %rdx
movl %r14d, %ecx
movq %r15, %r8
movq %r12, %r9
callq 0xa42c6
movq (%r12), %r12
movq (%r13), %rsi
movq 0x8(%r13), %r15
movq -0x68(%rbp), %r13
movb $0x1, %cl
movq %rdx, %rdi
testb $0x1, %cl
je 0xa3df6
xorl %ecx, %ecx
movl $0x0, %edx
movq %rbx, %r15
testl %eax, %eax
je 0xa3bc3
cmpl $0x1, %eax
jne 0xa42af
movq %rsi, %r13
leaq -0xb0(%rbp), %rsi
callq 0xce01
movq %rax, %r15
movq %rdx, %r14
movq %r12, %rdi
movq %r13, %rsi
movq -0x48(%rbp), %rdx
leaq -0x60(%rbp), %rcx
leaq -0xb8(%rbp), %r8
callq 0x8a8a9
movq 0x106ade4(%rip), %rax   # 0x110ea00
testq %rax, %rax
jne 0xa3c37
leaq 0x4a6ec(%rip), %rdi     # 0xee314
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, 0x106adc9(%rip)   # 0x110ea00
movq %rax, %rsi
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rsi
sete %cl
movq %rax, -0x48(%rbp)
testb $0x3, %al
setne %dl
orb %cl, %dl
jne 0xa3c59
incl (%rsi)
testb $0x1, %r14b
je 0xa3c7f
movq %r15, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xa3c7f
incl (%rax)
movl 0x18(%r15), %r14d
movq 0x20(%r15), %r12
movq %r12, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r12b
setne %dl
orb %cl, %dl
jne 0xa3ca7
incl (%rax)
movq %r15, %rcx
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %rcx
movq %rcx, -0x50(%rbp)
setne %al
testb $0x3, %r15b
sete %r13b
andb %al, %r13b
cmpb $0x1, %r13b
jne 0xa3ce6
movq -0x50(%rbp), %rax
decl (%rax)
jne 0xa3ce6
movq %r15, %rdi
leaq 0x663b0(%rip), %rsi     # 0x10a091
callq 0xce94
movq -0x60(%rbp), %rdi
movl %r14d, %esi
movq %r12, %rdx
leaq -0x38(%rbp), %rcx
callq 0x9c7be
movq -0x38(%rbp), %rdi
movq -0xb8(%rbp), %rsi
movq %rax, %rdx
leaq -0x98(%rbp), %rcx
leaq -0x90(%rbp), %r8
callq 0x8a8a9
movq 0x106ace7(%rip), %rdx   # 0x110ea08
testq %rdx, %rdx
jne 0xa3d3f
leaq 0x320da(%rip), %rdi     # 0xd5e07
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106acc9(%rip)   # 0x110ea08
movq %rdx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa3d60
incl (%rax)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
leaq -0x88(%rbp), %rcx
leaq -0x80(%rbp), %r8
callq 0x8a8a9
movq 0x28(%r15), %r14
movq %r14, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xa3da2
incl (%rax)
testb %r13b, %r13b
je 0xa3dbe
movq -0x50(%rbp), %rax
decl (%rax)
jne 0xa3dbe
movq %r15, %rdi
leaq 0x662d8(%rip), %rsi     # 0x10a091
callq 0xce94
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
movq %r14, %rdx
leaq -0x78(%rbp), %rcx
leaq -0x70(%rbp), %r8
callq 0x8a8a9
movl -0xb0(%rbp), %eax
movq -0xa8(%rbp), %rdx
movq -0x70(%rbp), %rsi
movq -0x78(%rbp), %r12
movq %rbx, %r15
jmp 0xa3bbd
movq %rsi, -0x50(%rbp)
movq %rdi, %rcx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rdx, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0xa3e34
decl (%rcx)
jne 0xa3e34
shlq $0x30, %rax
orq %rdi, %rax
movq %rax, %rdi
leaq 0x6444a(%rip), %rsi     # 0x108279
callq 0xce94
movq %r12, -0xd0(%rbp)
movb -0x29(%rbp), %dil
testb %dil, %dil
movq -0x40(%rbp), %rsi
je 0xa3e4a
incl (%rsi)
movl 0x28(%r13), %r8d
movq 0x30(%r13), %r14
movq %r14, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xa3e72
incl (%rax)
testb %dil, %dil
je 0xa3ea4
movl (%rsi), %eax
movl %eax, %ecx
decl %ecx
movl %ecx, (%rsi)
jne 0xa3ea2
movq %r13, %rdi
leaq 0x66176(%rip), %rsi     # 0x10a001
movl %r8d, %ebx
callq 0xce94
movl %ebx, %r8d
movb -0x29(%rbp), %dil
movq -0x40(%rbp), %rsi
movl (%rsi), %eax
incl %eax
movl %eax, (%rsi)
movl 0x48(%r13), %r12d
movq 0x50(%r13), %rbx
movq %rbx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0xa3ecb
incl (%rax)
testb %dil, %dil
je 0xa3ef1
decl (%rsi)
jne 0xa3ef1
movq %r13, %rdi
leaq 0x66123(%rip), %rsi     # 0x10a001
movl %r8d, -0x9c(%rbp)
callq 0xce94
movl -0x9c(%rbp), %r8d
movl %r8d, %edi
movq %r14, %rsi
movl %r12d, %edx
movq %rbx, %rcx
callq 0x26383
movq %rdx, %r8
leaq -0xb0(%rbp), %rcx
movq %rcx, (%rsp)
leaq -0xb8(%rbp), %rbx
movq -0xd0(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %r15, %rdx
movl %eax, %ecx
movq %rbx, %r9
callq 0xa42c6
movq (%rbx), %r12
movq -0xb0(%rbp), %r14
leaq -0x60(%rbp), %rsi
movb $0x1, %cl
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
testb $0x1, %cl
je 0xa4165
xorl %ecx, %ecx
movl $0x0, %edx
testl %eax, %eax
je 0xa3f49
cmpl $0x1, %eax
jne 0xa42af
callq 0xce01
movq %rax, %r15
movq %rdx, %rbx
movq %r12, %rdi
movq %r14, %rsi
movq -0x48(%rbp), %rdx
leaq -0x38(%rbp), %rcx
leaq -0x98(%rbp), %r8
callq 0x8a8a9
movq 0x106aa7b(%rip), %rax   # 0x110ea10
testq %rax, %rax
jne 0xa3fb0
leaq 0x4a373(%rip), %rdi     # 0xee314
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, 0x106aa60(%rip)   # 0x110ea10
movq %rax, %rsi
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rsi
sete %cl
movq %rax, -0x48(%rbp)
testb $0x3, %al
setne %dl
orb %cl, %dl
jne 0xa3fd2
incl (%rsi)
testb $0x1, %bl
je 0xa3ff7
movq %r15, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xa3ff7
incl (%rax)
movl 0x18(%r15), %ebx
movq 0x20(%r15), %r14
movq %r14, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xa401f
incl (%rax)
movq %r15, %r12
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %r12
setne %al
testb $0x3, %r15b
sete %r13b
andb %al, %r13b
cmpb $0x1, %r13b
jne 0xa4058
decl (%r12)
jne 0xa4058
movq %r15, %rdi
leaq 0x6603e(%rip), %rsi     # 0x10a091
callq 0xce94
movq -0x38(%rbp), %rdi
movl %ebx, %esi
movq %r14, %rdx
leaq -0x90(%rbp), %rcx
callq 0x9c7be
movq -0x90(%rbp), %rdi
movq -0x98(%rbp), %rsi
movq %rax, %rdx
leaq -0x88(%rbp), %rcx
leaq -0x80(%rbp), %r8
callq 0x8a8a9
movq 0x106a983(%rip), %rdx   # 0x110ea18
testq %rdx, %rdx
jne 0xa40b3
leaq 0x4a0f3(%rip), %rdi     # 0xee194
pushq $0x2
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106a965(%rip)   # 0x110ea18
movq %rdx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa40d4
incl (%rax)
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rsi
leaq -0x78(%rbp), %rcx
leaq -0x70(%rbp), %r8
callq 0x8a8a9
movq 0x28(%r15), %rbx
movq %rbx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0xa410f
incl (%rax)
testb %r13b, %r13b
je 0xa4129
decl (%r12)
jne 0xa4129
movq %r15, %rdi
leaq 0x65f6d(%rip), %rsi     # 0x10a091
callq 0xce94
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq %rbx, %rdx
leaq -0xf0(%rbp), %rcx
leaq -0xe8(%rbp), %r8
callq 0x8a8a9
movl -0x60(%rbp), %eax
movq -0x58(%rbp), %rdx
movq -0xe8(%rbp), %r14
movq -0xf0(%rbp), %r12
movq -0x68(%rbp), %r13
jmp 0xa3f39
movq %rdi, %rcx
andq %rbx, %rcx
sete %dl
testb $0x3, %dil
setne %sil
orb %dl, %sil
jne 0xa4195
decl (%rcx)
jne 0xa4195
shlq $0x30, %rax
orq %rdi, %rax
movq %rax, %rdi
leaq 0x640e9(%rip), %rsi     # 0x108279
callq 0xce94
movq -0x48(%rbp), %rdi
callq 0xdb65
movq %rax, %rdi
callq 0xdbc8
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0xd759
testb %al, %al
je 0xa421a
movq 0x106a864(%rip), %rdx   # 0x110ea20
testq %rdx, %rdx
jne 0xa41da
leaq 0x3393f(%rip), %rdi     # 0xd7b07
pushq $0x4
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106a846(%rip)   # 0x110ea20
movq %rdx, %rax
andq %rbx, %rax
sete %cl
testb $0x3, %dl
setne %sil
orb %cl, %sil
jne 0xa41f1
incl (%rax)
leaq -0x60(%rbp), %rbx
leaq -0x38(%rbp), %r15
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, %rcx
movq %r15, %r8
callq 0x8a8a9
movq (%r15), %r14
movq (%rbx), %r12
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq 0x106a807(%rip), %rdx   # 0x110ea28
testq %rdx, %rdx
jne 0xa423f
leaq 0x49ed0(%rip), %rdi     # 0xee0fd
pushq $0x1
popq %rsi
callq 0x8a21
movq %rax, %rdx
movq %rax, 0x106a7e9(%rip)   # 0x110ea28
andq %rdx, %rbx
sete %al
testb $0x3, %dl
setne %cl
orb %al, %cl
jne 0xa4251
incl (%rbx)
leaq -0x60(%rbp), %rcx
leaq -0x38(%rbp), %r8
movq %r12, %rdi
movq %r14, %rsi
callq 0x8a8a9
cmpb $0x0, -0x29(%rbp)
je 0xa4281
movq -0x40(%rbp), %rax
decl (%rax)
jne 0xa4281
movq %r13, %rdi
leaq 0x65d85(%rip), %rsi     # 0x10a001
callq 0xce94
movq -0x38(%rbp), %rax
movq -0xe0(%rbp), %rcx
movq %rax, (%rcx)
movq -0x60(%rbp), %rax
movq -0xd8(%rbp), %rcx
movq %rax, (%rcx)
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x30557(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6