// File: /workspace/github_c_makefile_star2_O2/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, -0x50(%rbp)
movq %rsi, %r14
movl %edi, %ebx
movabsq $0xfffffffffffc, %r12   # imm = 0xFFFFFFFFFFFC
xorl %edi, %edi
xorl %esi, %esi
callq 0xcd32
movl %eax, -0x2c(%rbp)
movq %rdx, -0x40(%rbp)
movq %r14, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xd9c8
incl (%rax)
movq %r14, %rdi
callq 0xdb65
movq %rax, %rdi
callq 0xdbc8
pushq $0x1
popq %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x89cc
movl %ebx, %ecx
movq %rcx, -0x58(%rbp)
movq %r15, -0x38(%rbp)
testb $0x1, %al
je 0xdb18
movq %r15, %r13
andq %r12, %r13
setne %al
testb $0x3, %r15b
sete %bl
andb %al, %bl
cmpb $0x1, %bl
jne 0xda14
incl (%r13)
movq %r15, %rdi
movq %r14, %rsi
leaq -0x48(%rbp), %rdx
callq 0xdc09
movl %eax, %edi
callq 0xd86d
movq %rax, %rdi
callq 0xdc43
movq %rax, %r14
movq -0x58(%rbp), %rdi
callq 0xd86d
movq %rax, %rdi
callq 0xdc43
xorb %r14b, %al
je 0xda62
movq %r15, %rdi
pushq $0x3
popq %rsi
callq 0xdd03
movq %rax, %r15
movq -0x48(%rbp), %r14
andq %r12, %rax
jmp 0xdacf
testb %bl, %bl
je 0xda6a
incl (%r13)
movq -0x48(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq %r15, %rdx
leaq -0x70(%rbp), %rcx
callq 0xdc98
movq %rax, %rdi
leaq 0xfa6d1(%rip), %rsi     # 0x108159
movl -0x2c(%rbp), %edx
movq -0x40(%rbp), %rcx
leaq -0x68(%rbp), %r8
callq 0x8e35
movq %r15, %rdi
pushq $0x3
popq %rsi
callq 0xdd03
movq %rax, %r15
andq %r12, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xdab9
incl (%rax)
movl -0x68(%rbp), %ecx
movl %ecx, -0x2c(%rbp)
movq -0x60(%rbp), %rcx
movq %rcx, -0x40(%rbp)
movq -0x70(%rbp), %r14
movq %r15, -0x38(%rbp)
testq %rax, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0xdae2
incl (%rax)
movq %r14, %rax
andq %r12, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0xdaf8
incl (%rax)
movq %r14, %rdi
callq 0xdb65
movq %rax, %rdi
callq 0xdbc8
movq %r15, %rdi
movq %rax, %rsi
callq 0x89cc
jmp 0xd9f1
leaq -0x68(%rbp), %rbx
movq %r14, %rdi
movq -0x38(%rbp), %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0xdc98
movq %rax, %rdi
leaq 0xfa621(%rip), %rsi     # 0x108159
movl -0x2c(%rbp), %edx
movq -0x40(%rbp), %rcx
callq 0xe7fd
movq %rax, %rdi
callq 0xe862
movq (%rbx), %rcx
movq -0x50(%rbp), %rdx
movq %rcx, (%rdx)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq