// File: /workspace/github_c_makefile_star2_O3/mist64[P]cbm6502asm/src/symbol.c
// Function: move
void move() {
	if (direction[level] == direction[level + 1]) {
		head(level + 1);
		xchg(level, level + 1);
		path[level]->weight = path[level + 1]->weight = BALANCED;
	} else {
		head(level + 2);
		xchg(level, level + 2);
		xchg(level + 1, level + 2);
		path[level + 2]->weight = BALANCED;
		if (direction[level + 1] == direction[level + 2]) {
			path[level]->weight = BALANCED;
			path[level + 1]->weight = !direction[level + 1];
		} else if (direction[level + 2] != BALANCED) {
			path[level]->weight = !direction[level];
			path[level + 1]->weight = BALANCED;
		} else
			path[level]->weight = path[level + 1]->weight =
			        BALANCED;
	}
}

// Assembly:
movslq 0x5c46(%rip), %rax      # 0xe4d0
leaq 0x5d3f(%rip), %rdx      # 0xe5d0
movl (%rdx,%rax,4), %ecx
cmpl 0x4(%rdx,%rax,4), %ecx
jne 0x88ba
leaq 0x5c3f(%rip), %rcx      # 0xe4e0
movq 0x8(%rcx,%rax,8), %rsi
testl %eax, %eax
je 0x88da
movslq -0x4(%rdx,%rax,4), %rdx
shlq $0x3, %rdx
addq -0x8(%rcx,%rax,8), %rdx
jmp 0x88e1
leaq 0x5c1f(%rip), %rcx      # 0xe4e0
movq 0x10(%rcx,%rax,8), %rsi
testl %eax, %eax
je 0x8944
movslq -0x4(%rdx,%rax,4), %rdi
shlq $0x3, %rdi
addq -0x8(%rcx,%rax,8), %rdi
jmp 0x894b
leaq 0x51cf(%rip), %rdx      # 0xdab0
movq %rsi, (%rdx)
movq 0x8(%rcx,%rax,8), %rdx
movq (%rcx,%rax,8), %rsi
movzwl 0x20(%rsi), %edi
xorl %r8d, %r8d
andl $0x3, %edi
sete %r8b
movq (%rdx,%r8,8), %rdx
movl %edi, %edi
movq %rdx, (%rsi,%rdi,8)
movq (%rcx,%rax,8), %rdx
movq 0x8(%rcx,%rax,8), %rsi
movzwl 0x20(%rdx), %edi
xorl %r8d, %r8d
testb $0x3, %dil
sete %r8b
movq %rdx, (%rsi,%r8,8)
movq 0x8(%rcx,%rax,8), %rdx
movl 0x20(%rdx), %esi
andl $-0x4, %esi
orl $0x2, %esi
movw %si, 0x20(%rdx)
movq (%rcx,%rax,8), %rax
addq $0x20, %rax
movw $0x2, %si
jmp 0x8a13
leaq 0x5165(%rip), %rdi      # 0xdab0
movq %rsi, (%rdi)
movq 0x10(%rcx,%rax,8), %rsi
movq (%rcx,%rax,8), %rdi
movzwl 0x20(%rdi), %r8d
xorl %r9d, %r9d
andl $0x3, %r8d
sete %r9b
movq (%rsi,%r9,8), %rsi
movl %r8d, %r8d
movq %rsi, (%rdi,%r8,8)
movq (%rcx,%rax,8), %rsi
movq 0x10(%rcx,%rax,8), %rdi
movzwl 0x20(%rsi), %r8d
xorl %r9d, %r9d
testb $0x3, %r8b
sete %r9b
movq %rsi, (%rdi,%r9,8)
movq 0x10(%rcx,%rax,8), %rsi
movq 0x8(%rcx,%rax,8), %rdi
movzwl 0x20(%rdi), %r8d
xorl %r9d, %r9d
andl $0x3, %r8d
sete %r9b
movq (%rsi,%r9,8), %rsi
movl %r8d, %r8d
movq %rsi, (%rdi,%r8,8)
movq 0x8(%rcx,%rax,8), %rsi
movq 0x10(%rcx,%rax,8), %rdi
movzwl 0x20(%rsi), %r8d
xorl %r9d, %r9d
testb $0x3, %r8b
sete %r9b
movq %rsi, (%rdi,%r9,8)
movq 0x10(%rcx,%rax,8), %rsi
movl 0x20(%rsi), %edi
andl $-0x4, %edi
orl $0x2, %edi
movw %di, 0x20(%rsi)
movl 0x8(%rdx,%rax,4), %esi
cmpl %esi, 0x4(%rdx,%rax,4)
jne 0x8a21
movq (%rcx,%rax,8), %rsi
movl 0x20(%rsi), %edi
andl $-0x4, %edi
orl $0x2, %edi
movw %di, 0x20(%rsi)
xorl %esi, %esi
cmpl $0x0, 0x4(%rdx,%rax,4)
sete %sil
movq 0x8(%rcx,%rax,8), %rax
addq $0x20, %rax
movl (%rax), %ecx
andl $-0x4, %ecx
movzwl %si, %edx
orl %ecx, %edx
movw %dx, (%rax)
retq
cmpl $0x2, %esi
je 0x8921
xorl %esi, %esi
cmpl $0x0, (%rdx,%rax,4)
sete %sil
movq (%rcx,%rax,8), %rdx
movl 0x20(%rdx), %edi
andl $-0x4, %edi
orl %esi, %edi
movw %di, 0x20(%rdx)
movq 0x8(%rcx,%rax,8), %rax
jmp 0x8937