// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_c99_zaC99Stack_reversezecatzx
static void mw_mirth_c99_zaC99Stack_reversezecatzx (struct mirth_mirth_zaMirth* in_zaMirth_1, struct mirth_c99_zaC99Stack in_zaC99Stack_2, struct mirth_c99_zaC99Stack in_zaC99Stack_3, struct mirth_mirth_zaMirth* *out_zaMirth_4, struct mirth_c99_zaC99Stack *out_zaC99Stack_5) {
	bool v6 = true;
	struct mirth_c99_zaC99Stack r7 = in_zaC99Stack_2;
	struct mirth_c99_zaC99Stack r8 = in_zaC99Stack_3;
	bool v9 = v6;
	bool v10 = v6;
	while (v10) {
		struct mirth_c99_zaC99Stack r11 = r7;
		struct mirth_c99_zaC99Stack r12 = r8;
		bool v13 = v9;
		struct mirth_c99_zaC99Stack branch_zaC99Stack_14;
		struct mirth_c99_zaC99Stack branch_zaC99Stack_15;
		bool branch_Bool_16;
		switch ((r12).tag) {
			case mirth_c99_zaC99Stack_zaNil: {
				struct mirth_c99_zaC99Stack v17 = { .tag=mirth_c99_zaC99Stack_zaNil };
				bool v18 = false;
				branch_Bool_16 = v18;
				branch_zaC99Stack_15 = v17;
				branch_zaC99Stack_14 = r11;
			} break;
			case mirth_c99_zaC99Stack_zaCons: {
				struct mirth_c99_zaC99Stack v19;
				struct mirth_c99_zaC99Value* v20;
				mtp_mirth_c99_zaC99Stack_zaCons(r12, &v19, &v20);
				struct mirth_c99_zaC99Stack v21;
				mtw_mirth_c99_zaC99Stack_zaCons(r11, v20, &v21);
				bool v22 = true;
				branch_Bool_16 = v22;
				branch_zaC99Stack_15 = v19;
				branch_zaC99Stack_14 = v21;
			} break;
			case mirth_c99_zaC99Stack_zaWith: {
				struct mirth_c99_zaC99Stack v23;
				struct mirth_c99_zaC99Resource* v24;
				mtp_mirth_c99_zaC99Stack_zaWith(r12, &v23, &v24);
				struct mirth_c99_zaC99Stack v25;
				mtw_mirth_c99_zaC99Stack_zaWith(r11, v24, &v25);
				bool v26 = true;
				branch_Bool_16 = v26;
				branch_zaC99Stack_15 = v23;
				branch_zaC99Stack_14 = v25;
			} break;
			case mirth_c99_zaC99Stack_zaConsLabel: {
				struct mirth_c99_zaC99Stack v27;
				struct mirth_c99_zaC99Value* v28;
				uint64_t v29 = mtp_mirth_c99_zaC99Stack_zaConsLabel(r12, &v27, &v28);
				struct mirth_c99_zaC99Stack v30;
				mtw_mirth_c99_zaC99Stack_zaConsLabel(r11, v28, v29, &v30);
				bool v31 = true;
				branch_Bool_16 = v31;
				branch_zaC99Stack_15 = v27;
				branch_zaC99Stack_14 = v30;
			} break;
			case mirth_c99_zaC99Stack_zaWithLabel: {
				struct mirth_c99_zaC99Stack v32;
				struct mirth_c99_zaC99Resource* v33;
				uint64_t v34 = mtp_mirth_c99_zaC99Stack_zaWithLabel(r12, &v32, &v33);
				struct mirth_c99_zaC99Stack v35;
				mtw_mirth_c99_zaC99Stack_zaWithLabel(r11, v33, v34, &v35);
				bool v36 = true;
				branch_Bool_16 = v36;
				branch_zaC99Stack_15 = v32;
				branch_zaC99Stack_14 = v35;
			} break;
			default: {
				do_panic(str_make("unexpected fallthrough in match\n", 32));
			}
		}
		v10 = branch_Bool_16;
		v9 = branch_Bool_16;
		r8 = branch_zaC99Stack_15;
		r7 = branch_zaC99Stack_14;
	}
	mw_mirth_c99_zaC99Stack_rdrop(r8);
	*out_zaC99Stack_5 = r7;
	*out_zaMirth_4 = in_zaMirth_1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq 0x10(%rbp), %rax
movl %esi, -0x10(%rbp)
movq %rdx, -0x8(%rbp)
movl %ecx, -0x20(%rbp)
movq %r8, -0x18(%rbp)
movq %rdi, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movb $0x1, -0x31(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movb -0x31(%rbp), %al
andb $0x1, %al
movb %al, -0x59(%rbp)
movb -0x31(%rbp), %al
andb $0x1, %al
movb %al, -0x5a(%rbp)
testb $0x1, -0x5a(%rbp)
je 0x3294e9
movups -0x48(%rbp), %xmm0
movaps %xmm0, -0x70(%rbp)
movups -0x58(%rbp), %xmm0
movaps %xmm0, -0x80(%rbp)
movb -0x59(%rbp), %al
andb $0x1, %al
movb %al, -0x81(%rbp)
movl -0x80(%rbp), %eax
movq %rax, -0x1a0(%rbp)
subq $0x4, %rax
ja 0x329489
movq -0x1a0(%rbp), %rax
leaq 0x2aaa8(%rip), %rcx     # 0x353c98
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movb $0x0, -0xc1(%rbp)
movb -0xc1(%rbp), %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x3294a2
movl -0x80(%rbp), %edi
movq -0x78(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0xe0(%rbp), %rcx
callq 0x295c50
movq -0xe0(%rbp), %rdx
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
leaq -0xf0(%rbp), %rcx
callq 0x28cdf0
movb $0x1, -0xf1(%rbp)
movb -0xf1(%rbp), %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0xe8(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x3294a2
movl -0x80(%rbp), %edi
movq -0x78(%rbp), %rsi
leaq -0x108(%rbp), %rdx
leaq -0x110(%rbp), %rcx
callq 0x295cb0
movq -0x110(%rbp), %rdx
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
leaq -0x120(%rbp), %rcx
callq 0x28d050
movb $0x1, -0x121(%rbp)
movb -0x121(%rbp), %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
movq -0x108(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x100(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x120(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x118(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x3294a2
movl -0x80(%rbp), %edi
movq -0x78(%rbp), %rsi
leaq -0x138(%rbp), %rdx
leaq -0x140(%rbp), %rcx
callq 0x295d80
movq %rax, -0x148(%rbp)
movq -0x140(%rbp), %rdx
movq -0x148(%rbp), %rcx
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
leaq -0x158(%rbp), %r8
callq 0x28cea0
movb $0x1, -0x159(%rbp)
movb -0x159(%rbp), %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x130(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x158(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x150(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x3294a2
movl -0x80(%rbp), %edi
movq -0x78(%rbp), %rsi
leaq -0x170(%rbp), %rdx
leaq -0x178(%rbp), %rcx
callq 0x295d10
movq %rax, -0x180(%rbp)
movq -0x178(%rbp), %rdx
movq -0x180(%rbp), %rcx
movl -0x70(%rbp), %edi
movq -0x68(%rbp), %rsi
leaq -0x190(%rbp), %r8
callq 0x28d100
movb $0x1, -0x191(%rbp)
movb -0x191(%rbp), %al
andb $0x1, %al
movb %al, -0xa9(%rbp)
movq -0x170(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x168(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x190(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x188(%rbp), %rax
movq %rax, -0x90(%rbp)
jmp 0x3294a2
leaq 0x2a9f1(%rip), %rdi     # 0x353e81
movl $0x20, %esi
callq 0xb6c0
movq %rax, %rdi
callq 0xc620
movb -0xa9(%rbp), %al
andb $0x1, %al
movb %al, -0x5a(%rbp)
movb -0xa9(%rbp), %al
andb $0x1, %al
movb %al, -0x59(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x3291a9
movl -0x58(%rbp), %edi
movq -0x50(%rbp), %rsi
callq 0x2a9ee0
movq 0x10(%rbp), %rax
movq -0x48(%rbp), %rcx
movq %rcx, (%rax)
movq -0x40(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
nopl (%rax)