// File: /workspace/github_c_makefile_star2_O3/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_str_zaStr_splitzebyte
static struct std_list_Nest_1* mw_std_str_zaStr_splitzebyte (enum std_byte_Byte in_Byte_1, STR* in_zaStr_2, STR* *out_zaStr_4) {
	struct std_list_List_1 v5 = { .tag=std_list_List_1_Nil };
	struct std_list_List_1 v6;
	mw_std_list_List_1_buildzx(v5, &v6);
	INT v7 = WRAP_I63(0LL);
	incref(MKINT(v7));
	incref(MKINT(v7));
	incref(MKSTR(in_zaStr_2));
	uint64_t v8 = str_size(in_zaStr_2);
	INT v9 = u64_to_int(v8);
	bool v10 = int_lt(v7, v9);
	enum std_byte_Byte v11 = in_Byte_1;
	INT v12 = v7;
	INT v13 = v7;
	STR* r14 = in_zaStr_2;
	struct std_list_List_1 r15 = v6;
	bool v16 = v10;
	while (v16) {
		enum std_byte_Byte v17 = v11;
		INT v18 = v12;
		INT v19 = v13;
		STR* r20 = r14;
		struct std_list_List_1 r21 = r15;
		incref(MKINT(v19));
		STR* v22;
		enum std_byte_Byte v23 = mw_std_str_zaStr_bytezo(v19, r20, &v22);
		int64_t v24 = v23;
		INT v25 = i64_to_int(v24);
		uint64_t v26 = int_to_u64(v25);
		uint8_t v27 = (uint8_t)(v26);
		int64_t v28 = v17;
		INT v29 = i64_to_int(v28);
		uint64_t v30 = int_to_u64(v29);
		uint8_t v31 = (uint8_t)(v30);
		uint64_t v32 = (uint64_t)(v31);
		uint32_t v33 = (uint32_t)(v32);
		uint64_t v34 = (uint64_t)(v27);
		uint32_t v35 = (uint32_t)(v34);
		uint64_t v36 = (uint64_t)(v35);
		uint64_t v37 = (uint64_t)(v33);
		bool v38 = (v36 == v37);
		enum std_byte_Byte branch_Byte_39;
		STR* branch_zaStr_40;
		struct std_list_List_1 branch_zaLister_41;
		INT branch_Offset_42;
		INT branch_Offset_43;
		if (v38) {
			incref(MKINT(v19));
			STR* v44;
			STR* v45 = mw_std_prelude_unsafe_1_sp19(v22, v18, v19, &v44);
			struct std_list_List_1 v46;
			mw_std_list_zaLister_1_pushzx(MKSTR(v45), r21, &v46);
			INT v47 = WRAP_I63(1LL);
			INT v48 = v47;
			INT v49 = int_add(v19, v48);
			incref(MKINT(v49));
			branch_Offset_43 = v49;
			branch_Offset_42 = v49;
			branch_zaLister_41 = v46;
			branch_zaStr_40 = v44;
			branch_Byte_39 = v17;
		} else {
			INT v50 = WRAP_I63(1LL);
			INT v51 = v50;
			INT v52 = int_add(v19, v51);
			branch_Offset_43 = v52;
			branch_Offset_42 = v18;
			branch_zaLister_41 = r21;
			branch_zaStr_40 = v22;
			branch_Byte_39 = v17;
		}
		incref(MKINT(branch_Offset_43));
		incref(MKSTR(branch_zaStr_40));
		uint64_t v53 = str_size(branch_zaStr_40);
		INT v54 = u64_to_int(v53);
		bool v55 = int_lt(branch_Offset_43, v54);
		v16 = v55;
		r15 = branch_zaLister_41;
		r14 = branch_zaStr_40;
		v13 = branch_Offset_43;
		v12 = branch_Offset_42;
		v11 = branch_Byte_39;
	}
	STR* v56;
	STR* v57 = mw_std_prelude_unsafe_1_sp19(r14, v12, v13, &v56);
	struct std_list_Nest_1* v58;
	mw_std_list_zaLister_1_pushzazx(MKSTR(v57), r15, &v58);
	struct std_list_Nest_1* v59 = mw_std_list_zaNester_1_donezx(v58);
	*out_zaStr_4 = v56;
	return v59;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, -0x48(%rbp)
movq %rsi, %r13
movl %edi, %ebx
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xd01b
movl %eax, -0x2c(%rbp)
movq %rdx, -0x40(%rbp)
movq %r13, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0xe195
incl (%rax)
movq %r13, %rdi
callq 0xe36d
movq %rax, %rdi
callq 0xe3d6
movl $0x1, %r15d
movl $0x1, %edi
movq %rax, %rsi
callq 0xe83a
testl %eax, %eax
js 0xe1ca
movl $0x1, %eax
movq %rax, -0x38(%rbp)
jmp 0xe320
movl %ebx, %eax
leaq 0x1(,%rax,2), %rax
movq %rax, -0x50(%rbp)
movl $0x1, %eax
movq %rax, -0x38(%rbp)
movq %r15, %rbx
andq %r12, %rbx
setne %al
testb $0x3, %r15b
sete %r14b
andb %al, %r14b
cmpb $0x1, %r14b
jne 0xe1fd
incl (%rbx)
movq %r13, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0xe213
incl (%rax)
movq %r15, %rdi
movq %r13, %rsi
callq 0xe699
movl %eax, %eax
leaq 0x1(,%rax,2), %rdi
callq 0xe445
movq %rax, %r12
movq -0x50(%rbp), %rdi
callq 0xe445
xorb %r12b, %al
je 0xe25d
movl $0x3, %esi
movq %r15, %rdi
callq 0xe50f
movq %rax, %r15
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
andq %r12, %rax
jmp 0xe2d4
testb %r14b, %r14b
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
je 0xe26e
incl (%rbx)
movq %r13, %rdi
movq -0x38(%rbp), %rsi
movq %r15, %rdx
leaq -0x68(%rbp), %rcx
callq 0xe4a4
movq %rax, %rdi
leaq 0x102ece(%rip), %rsi    # 0x111159
movl -0x2c(%rbp), %edx
movq -0x40(%rbp), %rcx
leaq -0x60(%rbp), %r8
callq 0x949e
movl $0x3, %esi
movq %r15, %rdi
callq 0xe50f
movq %rax, %r15
andq %r12, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xe2be
incl (%rax)
movl -0x60(%rbp), %ecx
movl %ecx, -0x2c(%rbp)
movq -0x58(%rbp), %rcx
movq %rcx, -0x40(%rbp)
movq -0x68(%rbp), %r13
movq %r15, -0x38(%rbp)
testq %rax, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xe2e7
incl (%rax)
movq %r13, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r13b
setne %dl
orb %cl, %dl
jne 0xe2fd
incl (%rax)
movq %r13, %rdi
callq 0xe36d
movq %rax, %rdi
callq 0xe3d6
movq %r15, %rdi
movq %rax, %rsi
callq 0xe83a
testl %eax, %eax
js 0xe1e1
leaq -0x60(%rbp), %r14
movq %r13, %rdi
movq -0x38(%rbp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0xe4a4
movq %rax, %rdi
leaq 0x102e19(%rip), %rsi    # 0x111159
movl -0x2c(%rbp), %edx
movq -0x40(%rbp), %rcx
callq 0xf154
movq %rax, %rdi
callq 0xf1c3
movq (%r14), %rcx
movq -0x48(%rbp), %rdx
movq %rcx, (%rdx)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq