// File: /workspace/github_c_makefile_star2_O3/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 %rbx
subq $0x28, %rsp
callq 0x2cae6
testl %eax, %eax
je 0x8bd59
cmpl $0x1, %eax
jne 0x8bd91
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0xd745
leaq -0x28(%rbp), %r14
leaq -0x38(%rbp), %r15
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0xf281
movl (%r15), %eax
movq 0x8(%r15), %rdi
movq (%r14), %r15
cmpl $0x1, %eax
jne 0x8bd5d
movq %r14, %rsi
callq 0xd0aa
movq %r15, %rdi
shrq $0x30, %rdi
andq %rbx, %r15
movq %rax, %rdx
shrq $0x30, %rdx
andq %rbx, %rax
movq %r15, %rsi
movq %rax, %rcx
callq 0x8bdc1
movl %eax, %r15d
movl -0x28(%rbp), %eax
movq -0x20(%rbp), %rdi
shlq $0x30, %r15
orq %rdx, %r15
jmp 0x8bd1a
xorl %ebx, %ebx
jmp 0x8bd83
testl %eax, %eax
jne 0x8bd91
leaq 0x85511(%rip), %rsi     # 0x111279
andq $-0x4, %r15
movq %r15, %rdi
callq 0x9353
movq %rdx, %rdi
callq 0xd745
andq %rax, %rbx
shrq $0x30, %rax
movq %rbx, %rdx
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0x20, %edi
callq 0xf5e4
movq $0x20, 0x10(%rax)
movups 0x54923(%rip), %xmm0    # 0xe06cd
movups %xmm0, 0x18(%rax)
movups 0x54928(%rip), %xmm0    # 0xe06dd
movups %xmm0, 0x28(%rax)
movq %rax, %rdi
callq 0x9302