// File: /workspace/github_c_makefile_star2_O2/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 0x2a1b2
testl %eax, %eax
je 0x847ee
cmpl $0x1, %eax
jne 0x84845
movabsq $0xfffffffffffc, %rbx   # imm = 0xFFFFFFFFFFFC
movq %rdx, %rdi
callq 0xd491
leaq -0x48(%rbp), %r15
movq %rax, %rdi
movq %r15, %rsi
callq 0xea2f
movq %rax, %r14
movq %rdx, %r13
movl (%r15), %edi
movq 0x8(%r15), %rax
movb $0x1, %cl
leaq 0x83af5(%rip), %r15     # 0x108279
leaq -0x38(%rbp), %r12
testb $0x1, %cl
je 0x847f2
testl %edi, %edi
je 0x847d2
cmpl $0x1, %edi
jne 0x84845
movq %rax, %rdi
movq %r12, %rsi
callq 0xce01
movq %r14, %rdi
shrq $0x30, %rdi
andq %rbx, %r14
movq %rax, %rdx
shrq $0x30, %rdx
andq %rbx, %rax
movq %r14, %rsi
movq %rax, %rcx
callq 0x8485c
movl %eax, %r14d
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rax
movb $0x1, %cl
jmp 0x847e2
movq %r14, %rdx
shrq $0x30, %r14
andq %rbx, %rdx
xorl %ecx, %ecx
xorl %edi, %edi
xorl %eax, %eax
shlq $0x30, %r14
orq %rdx, %r14
movq %r15, %r13
jmp 0x84788
xorl %ebx, %ebx
jmp 0x84833
movq %rax, %rcx
andq %rbx, %rcx
sete %dl
testb $0x3, %al
setne %sil
orb %dl, %sil
jne 0x84819
decl (%rcx)
jne 0x84819
shlq $0x30, %rdi
orq %rax, %rdi
movq %r15, %rsi
callq 0xce94
movq %r14, %rdi
movq %r13, %rsi
callq 0x8d0c
movq %rdx, %rdi
callq 0xd491
andq %rax, %rbx
shrq $0x30, %rax
movq %rbx, %rdx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4ffc1(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6