// File: /workspace/github_c_makefile_star2_O0/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_mirth_zaMirth_parsezeowner
static uint64_t mw_mirth_mirth_zaMirth_parsezeowner (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Token_2, struct mirth_mirth_zaMirth* *out_zaMirth_3, struct std_maybe_Maybe_1 *out_Maybe_5) {
	struct mirth_mirth_zaMirth* v6;
	struct std_maybe_Maybe_1 v7 = mw_mirth_token_Token_namezfdnamezy(in_zaMirth_1, in_Token_2, &v6);
	int64_t v8 = (v7).tag;
	decref(MK_std_maybe_Maybe_1(v7));
	INT v9 = WRAP_I63(0LL);
	INT v10 = v9;
	INT v11 = i64_to_int(v8);
	bool v12 = int_eq(v11, v10);
	bool v13 = !v12;
	uint64_t branch_Token_14;
	struct mirth_mirth_zaMirth* branch_zaMirth_15;
	bool branch_Bool_16;
	if (v13) {
		struct mirth_mirth_zaMirth* v17;
		uint64_t v18 = mw_mirth_token_Token_next(v6, in_Token_2, &v17);
		struct mirth_mirth_zaMirth* v19;
		bool v20 = mw_mirth_token_Token_vdashzy(v17, v18, &v19);
		branch_Bool_16 = v20;
		branch_zaMirth_15 = v19;
		branch_Token_14 = in_Token_2;
	} else {
		bool v21 = false;
		branch_Bool_16 = v21;
		branch_zaMirth_15 = v6;
		branch_Token_14 = in_Token_2;
	}
	struct mirth_mirth_zaMirth* branch_zaMirth_22;
	uint64_t branch_Token_23;
	struct std_maybe_Maybe_1 branch_Maybe_24;
	if (branch_Bool_16) {
		struct mirth_mirth_zaMirth* v25;
		uint64_t v26 = mw_mirth_token_Token_next(branch_zaMirth_15, branch_Token_14, &v25);
		struct mirth_mirth_zaMirth* v27;
		uint64_t v28 = mw_mirth_token_Token_succ(v25, v26, &v27);
		struct std_maybe_Maybe_1 v29 = mtw_std_maybe_Maybe_1_Some(MK_mirth_token_Token(branch_Token_14));
		branch_Maybe_24 = v29;
		branch_Token_23 = v28;
		branch_zaMirth_22 = v27;
	} else {
		struct std_maybe_Maybe_1 v30 = { .tag=std_maybe_Maybe_1_None };
		branch_Maybe_24 = v30;
		branch_Token_23 = branch_Token_14;
		branch_zaMirth_22 = branch_zaMirth_15;
	}
	*out_Maybe_5 = branch_Maybe_24;
	*out_zaMirth_3 = branch_zaMirth_22;
	return branch_Token_23;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x78530
movl %eax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
movl -0x38(%rbp), %eax
movq %rax, -0x40(%rbp)
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x50(%rbp)
movq %rdx, -0x48(%rbp)
movq -0x48(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x179447
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x60(%rbp)
movq %rdx, -0x58(%rbp)
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq -0x60(%rbp), %rax
cmpq $0x0, %rax
je 0x179447
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x70(%rbp)
movq %rdx, -0x68(%rbp)
movq -0x70(%rbp), %rax
andq $0x3, %rax
cmpq $0x0, %rax
jne 0x179447
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq -0x80(%rbp), %rcx
movl (%rcx), %eax
addl $-0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jne 0x179445
movl -0x38(%rbp), %edi
movq -0x30(%rbp), %rsi
callq 0x133a0
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
movq -0x90(%rbp), %rdi
movq -0x88(%rbp), %rsi
callq 0x127c0
jmp 0x179447
jmp 0x179449
movq 0x1f5600(%rip), %rax    # 0x36ea50
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x40(%rbp), %rdi
callq 0x1a290
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
callq 0x194b0
andb $0x1, %al
movb %al, -0xa9(%rbp)
movb -0xa9(%rbp), %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0xaa(%rbp)
testb $0x1, -0xaa(%rbp)
je 0x17950f
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0xd0(%rbp), %rdx
callq 0x7b380
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rdi
movq -0xd8(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0xaf2c0
andb $0x1, %al
movb %al, -0xe1(%rbp)
movb -0xe1(%rbp), %al
andb $0x1, %al
movb %al, -0xc1(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xb8(%rbp)
jmp 0x17953a
movb $0x0, -0xe2(%rbp)
movb -0xe2(%rbp), %al
andb $0x1, %al
movb %al, -0xc1(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xb8(%rbp)
testb $0x1, -0xc1(%rbp)
je 0x1795ff
movq -0xc0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0x7b380
movq %rax, -0x118(%rbp)
movq -0x110(%rbp), %rdi
movq -0x118(%rbp), %rsi
leaq -0x120(%rbp), %rdx
callq 0x78490
movq %rax, -0x128(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq 0x2188aa(%rip), %rax    # 0x391e48
movq %rax, -0x140(%rbp)
movq -0x148(%rbp), %rdi
movq -0x140(%rbp), %rsi
callq 0xca10
movl %eax, -0x138(%rbp)
movq %rdx, -0x130(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x130(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x128(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x120(%rbp), %rax
movq %rax, -0xf0(%rbp)
jmp 0x17964a
leaq -0x158(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x5080
movq -0x158(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x150(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x20(%rbp), %rax
movq -0x108(%rbp), %rcx
movq %rcx, (%rax)
movq -0x100(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0xf0(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0xf8(%rbp), %rax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
nopw %cs:(%rax,%rax)