// File: /workspace/github_c_makefile_star2_O1/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_std_list_List_1_unions_sp1
static struct std_list_List_1 mw_std_list_List_1_unions_sp1 (struct std_list_List_1 in_List_1) {
	struct std_maybe_Maybe_1 v3 = mw_std_list_List_1_zgNestzy(in_List_1);
	struct std_maybe_Maybe_1 branch_Maybe_4;
	switch ((v3).tag) {
		case std_maybe_Maybe_1_Some: {
			VAL v5 = mtp_std_maybe_Maybe_1_Some(v3);
			struct std_list_List_1 v6;
			VAL v7 = mw_std_list_Nest_1_uncons(V_std_list_Nest_1(v5), &v6);
			bool v8 = true;
			VAL v9 = v7;
			struct std_list_List_1 v10 = v6;
			bool v11 = v8;
			bool v12 = v8;
			while (v12) {
				VAL v13 = v9;
				struct std_list_List_1 v14 = v10;
				bool v15 = v11;
				struct std_list_List_1 branch_List_16;
				struct std_list_List_1 branch_List_17;
				bool branch_Bool_18;
				switch ((v14).tag) {
					case std_list_List_1_Cons: {
						struct std_list_List_1 v19;
						VAL v20 = mtp_std_list_List_1_Cons(v14, &v19);
						struct std_list_List_1 v21 = mw_std_list_List_1_union_sp1(V_std_list_List_1(v13), V_std_list_List_1(v20));
						bool v22 = true;
						branch_Bool_18 = v22;
						branch_List_17 = v19;
						branch_List_16 = v21;
					} break;
					case std_list_List_1_Nil: {
						struct std_list_List_1 v23 = { .tag=std_list_List_1_Nil };
						bool v24 = false;
						branch_Bool_18 = v24;
						branch_List_17 = v23;
						branch_List_16 = V_std_list_List_1(v13);
					} break;
					default: {
						do_panic(str_make("unexpected fallthrough in match\n", 32));
					}
				}
				v12 = branch_Bool_18;
				v11 = branch_Bool_18;
				v10 = branch_List_17;
				v9 = MK_std_list_List_1(branch_List_16);
			}
			decref(MK_std_list_List_1(v10));
			struct std_maybe_Maybe_1 v25 = mtw_std_maybe_Maybe_1_Some(v9);
			branch_Maybe_4 = v25;
		} break;
		case std_maybe_Maybe_1_None: {
			struct std_maybe_Maybe_1 v26 = { .tag=std_maybe_Maybe_1_None };
			branch_Maybe_4 = v26;
		} break;
		default: {
			do_panic(str_make("unexpected fallthrough in match\n", 32));
		}
	}
	struct std_list_List_1 v27 = mw_std_maybe_Maybe_1_unwrap_1_sp16(branch_Maybe_4);
	return v27;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
callq 0x2d76b
movl %eax, %r14d
xorl %ebx, %ebx
testl %eax, %eax
je 0x8e2c1
cmpl $0x1, %r14d
jne 0x8e2f7
movabsq $0xfffffffffffc, %r13   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0xdaeb
leaq -0x38(%rbp), %r12
leaq -0x48(%rbp), %r15
movq %rax, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0xf694
movl (%r15), %edi
movq 0x8(%r15), %rax
movq (%r12), %r15
testl %edi, %edi
je 0x8e26b
cmpl $0x1, %edi
jne 0x8e2f7
movq %rax, %rdi
movq %r12, %rsi
callq 0xd450
movq %r15, %rdi
shrq $0x30, %rdi
andq %r13, %r15
movq %rax, %rdx
shrq $0x30, %rdx
andq %r13, %rax
movq %r15, %rsi
movq %rax, %rcx
callq 0x8e327
movl %eax, %r15d
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rax
movb $0x1, %cl
jmp 0x8e27b
movq %r15, %rdx
shrq $0x30, %r15
andq %r13, %rdx
xorl %ecx, %ecx
xorl %edi, %edi
xorl %eax, %eax
shlq $0x30, %r15
orq %rdx, %r15
testb %cl, %cl
jne 0x8e226
leaq 0x86fec(%rip), %r12     # 0x115279
andq %rax, %r13
sete %cl
testb $0x3, %al
setne %dl
orb %cl, %dl
jne 0x8e2b1
decl (%r13)
jne 0x8e2b1
shlq $0x30, %rdi
orq %rax, %rdi
movq %r12, %rsi
callq 0xd4e3
movq %r15, %rdi
movq %r12, %rsi
callq 0x95f6
movq %rdx, %rdi
jmp 0x8e2c3
xorl %edi, %edi
cmpl $0x1, %r14d
jne 0x8e2e4
callq 0xdaeb
movq %rax, %rbx
movabsq $0xfffffffffffc, %rdx   # imm = 0xFFFFFFFFFFFC
andq %rax, %rdx
shrq $0x30, %rbx
jmp 0x8e2e6
xorl %edx, %edx
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x20, %edi
callq 0xf9f7
movq $0x20, 0x10(%rax)
movups 0x5643d(%rip), %xmm0    # 0xe474d
movups %xmm0, 0x18(%rax)
movups 0x56442(%rip), %xmm0    # 0xe475d
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x95a5