// File: /workspace/github_c_makefile_star2_O2/mirth-lang[P]mirth/bin/mirth1.c
// Function: mw_mirth_arrow_Block_similar
static bool mw_mirth_arrow_Block_similar (struct mirth_mirth_zaMirth* in_zaMirth_1, uint64_t in_Block_2, uint64_t in_Block_3, struct mirth_mirth_zaMirth* *out_zaMirth_4) {
	uint64_t v6 = in_Block_3;
	uint64_t v7 = in_Block_2;
	bool v8 = (v6 == v7);
	struct mirth_mirth_zaMirth* branch_zaMirth_9;
	uint64_t branch_Block_10;
	uint64_t branch_Block_11;
	bool branch_Bool_12;
	if (v8) {
		bool v13 = true;
		branch_Bool_12 = v13;
		branch_Block_11 = in_Block_3;
		branch_Block_10 = in_Block_2;
		branch_zaMirth_9 = in_zaMirth_1;
	} else {
		struct mirth_mirth_zaMirth* v14;
		struct mirth_arrow_Arrow* v15 = mw_mirth_arrow_Block_arrow(in_zaMirth_1, in_Block_2, &v14);
		struct mirth_mirth_zaMirth* v16;
		struct mirth_arrow_Arrow* v17 = mw_mirth_arrow_Block_arrow(v14, in_Block_3, &v16);
		struct mirth_mirth_zaMirth* v18;
		bool v19 = mw_mirth_arrow_Arrow_similar(v16, v15, v17, &v18);
		branch_Bool_12 = v19;
		branch_Block_11 = in_Block_3;
		branch_Block_10 = in_Block_2;
		branch_zaMirth_9 = v18;
	}
	*out_zaMirth_4 = branch_zaMirth_9;
	return branch_Bool_12;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movb $0x1, %r13b
cmpq %rsi, %rdx
je 0x86b03
movq %rdx, %rbx
movq %rcx, -0x48(%rbp)
leaq -0xa0(%rbp), %r14
movq %r14, %rdx
callq 0x37ae3
movq %rax, %r13
movq %rax, %r12
movq (%r14), %rdi
leaq -0x50(%rbp), %rdx
movq %rbx, %rsi
callq 0x37ae3
movq %rax, %r15
movl 0x58(%r13), %ebx
movq 0x60(%r13), %r14
movq %r14, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0x866ff
incl (%rax)
movq -0x50(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x82c93(%rip), %rsi     # 0x1093a1
movabsq $0xfffffffffffc, %rax   # imm = 0xFFFFFFFFFFFC
andq %rax, %r13
sete %al
testb $0x3, %r12b
setne %cl
orb %al, %cl
jne 0x8673d
decl (%r13)
jne 0x8673d
movq %r12, %rdi
movq %rsi, %r12
callq 0xce94
movq %r12, %rsi
movl 0x58(%r15), %r13d
movq 0x60(%r15), %r12
movq %r12, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r12b
setne %dl
orb %cl, %dl
jne 0x86765
incl (%rax)
movq %r15, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %r15b
setne %dl
orb %cl, %dl
jne 0x8678f
decl (%rax)
jne 0x8678f
movq %r15, %rdi
callq 0xce94
leaq -0x98(%rbp), %rdx
movl %ebx, %edi
movq %r14, %rsi
callq 0x1075d
movl %eax, %r15d
movq %rdx, %rbx
leaq -0x88(%rbp), %rdx
movl %r13d, %edi
movq %r12, %rsi
callq 0x1075d
cmpl $0x1, %eax
je 0x8681a
testl %eax, %eax
jne 0x86b1c
movl %r15d, %r14d
movq %rbx, %rax
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
andq %r15, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0x867ff
decl (%rax)
jne 0x867ff
movq %r14, %rdi
shlq $0x30, %rdi
orq %rbx, %rdi
leaq 0x81ac7(%rip), %rsi     # 0x1082c1
callq 0xce94
movq %r14, %rdi
callq 0xd86d
pushq $0x1
popq %rsi
movq %rax, %rdi
callq 0xd759
movl %eax, %r13d
jmp 0x868a4
movq %rdx, %rdi
callq 0xd491
movq %rax, %r14
testl %r15d, %r15d
je 0x8685e
cmpl $0x1, %r15d
jne 0x86b1c
movq %rbx, %rdi
callq 0xd491
leaq -0x68(%rbp), %rbx
movq -0x30(%rbp), %rdi
movq %rax, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x86b33
movl %eax, %r13d
movq (%rbx), %rax
movq %rax, -0x30(%rbp)
jmp 0x86866
testb $0x1, %dl
jne 0x86872
xorl %r13d, %r13d
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
jmp 0x868a4
movq %r14, %rax
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
andq %r15, %rax
sete %cl
testb $0x3, %r14b
setne %sil
orb %cl, %sil
jne 0x868a1
decl (%rax)
jne 0x868a1
movq %r14, %rdi
movq %rdx, %rsi
callq 0xce94
xorl %r13d, %r13d
movl -0x98(%rbp), %edi
movq -0x90(%rbp), %r14
movq %r14, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0x868c7
incl (%rax)
movq %rdi, -0x38(%rbp)
movq %r14, %rsi
callq 0xeb14
movl %eax, %r15d
movl -0x88(%rbp), %r12d
movq -0x80(%rbp), %rbx
movq %rbx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0x86a78
incl (%rax)
jmp 0x86a78
movq -0x38(%rbp), %rdi
movq %r14, %rsi
leaq -0x68(%rbp), %rdx
callq 0x1075d
movl %eax, %r15d
movq %rdx, %r14
movl %r12d, %edi
movq %rbx, %rsi
leaq -0x78(%rbp), %rdx
callq 0x1075d
cmpl $0x1, %eax
movl %r13d, -0x3c(%rbp)
je 0x86995
testl %eax, %eax
jne 0x86b1c
movl %r15d, %ebx
movq %r14, %rax
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
andq %r15, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0x8697a
decl (%rax)
jne 0x8697a
movq %rbx, %rdi
shlq $0x30, %rdi
orq %r14, %rdi
leaq 0x8194c(%rip), %rsi     # 0x1082c1
callq 0xce94
movq %rbx, %rdi
callq 0xd86d
movq %rax, %rdi
pushq $0x1
popq %rsi
callq 0xd759
movl %eax, %r13d
jmp 0x86a1c
movq %rdx, %rdi
callq 0xd491
movq %rax, %rbx
testl %r15d, %r15d
je 0x869d7
cmpl $0x1, %r15d
jne 0x86b1c
movq %r14, %rdi
callq 0xd491
movq -0x30(%rbp), %rdi
movq %rax, %rsi
movq %rbx, %rdx
leaq -0x58(%rbp), %rcx
callq 0x86b33
movl %eax, %r13d
movq -0x58(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x869df
testb $0x1, %dl
jne 0x869eb
xorl %r13d, %r13d
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
jmp 0x86a1c
movq %rbx, %rax
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
andq %r15, %rax
sete %cl
testb $0x3, %bl
setne %sil
orb %cl, %sil
jne 0x86a19
decl (%rax)
jne 0x86a19
movq %rbx, %rdi
movq %rdx, %rsi
callq 0xce94
xorl %r13d, %r13d
movl -0x68(%rbp), %edi
movq -0x60(%rbp), %r14
movq %r14, %rax
andq %r15, %rax
sete %cl
testb $0x3, %r14b
setne %dl
orb %cl, %dl
jne 0x86a39
incl (%rax)
movq %rdi, -0x38(%rbp)
movq %r14, %rsi
callq 0xeb14
movl %eax, %r15d
movl -0x78(%rbp), %r12d
movq -0x70(%rbp), %rbx
movq %rbx, %rax
movabsq $0xfffffffffffc, %rcx   # imm = 0xFFFFFFFFFFFC
andq %rcx, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0x86a6f
incl (%rax)
movl -0x3c(%rbp), %eax
andb %r13b, %al
movl %eax, %r13d
movl %r12d, %edi
movq %rbx, %rsi
callq 0xeb14
andb %al, %r15b
xorb $0x1, %r15b
andb %r13b, %r15b
testb $0x1, %r15b
jne 0x86909
movq %rbx, %rax
movabsq $0xfffffffffffc, %r15   # imm = 0xFFFFFFFFFFFC
andq %r15, %rax
sete %cl
testb $0x3, %bl
setne %dl
orb %cl, %dl
jne 0x86ace
decl (%rax)
jne 0x86ace
shlq $0x30, %r12
orq %rbx, %r12
movq %r12, %rdi
leaq 0x817b0(%rip), %rsi     # 0x108279
callq 0xce94
andq %r14, %r15
sete %al
testb $0x3, %r14b
setne %cl
orb %al, %cl
jne 0x86afb
decl (%r15)
jne 0x86afb
movq -0x38(%rbp), %rdi
shlq $0x30, %rdi
orq %r14, %rdi
leaq 0x81783(%rip), %rsi     # 0x108279
callq 0xce94
movq -0x48(%rbp), %rcx
movq -0x30(%rbp), %rdi
movq %rdi, (%rcx)
andb $0x1, %r13b
movl %r13d, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4dcea(%rip), %rdi     # 0xd480d
pushq $0x20
popq %rsi
callq 0x8a21
movq %rax, %rdi
callq 0x8cc6