// File: MarkCBell[P]twister/./twister/kernel/twister.h
// Function: cube::get_tetra(Position, Side)
tetra *get_tetra(Position p, Side s)  // This is for requesting by name
	{
		if (s == left)
		{
			if (p == top)
				return topleft;
			else if (p == mid)
				return midleft;
			else if (p == low)
				return lowleft;
			else
				output_error("Invalid position requested.");
		}
		else if (s == right)
		{
			if (p == top)
				return topright;
			else if (p == mid)
				return midright;
			else if (p == low)
				return lowright;
			else
				output_error("Invalid position requested.");
		}
		else
			output_error("Invalid side requested.");
		
		return NULL;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa8(%rbp)
cmpl $0x0, -0x18(%rbp)
jne 0x20cb9
cmpl $0x0, -0x14(%rbp)
jne 0x20c03
movq -0xa8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x20e28
cmpl $0x1, -0x14(%rbp)
jne 0x20c1d
movq -0xa8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x20e28
cmpl $0x2, -0x14(%rbp)
jne 0x20c37
movq -0xa8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x20e28
leaq -0x39(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x3560
movq -0xb0(%rbp), %rdx
leaq 0x6c85(%rip), %rsi      # 0x278da
leaq -0x38(%rbp), %rdi
callq 0x4e10
jmp 0x20c60
leaq -0x38(%rbp), %rdi
callq 0x4d40
jmp 0x20c6b
leaq -0x38(%rbp), %rdi
callq 0x35f8
leaq -0x39(%rbp), %rdi
callq 0x3360
jmp 0x20cb0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x20ca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x35f8
leaq -0x39(%rbp), %rdi
callq 0x3360
jmp 0x20e35
jmp 0x20cb2
jmp 0x20cb4
jmp 0x20e20
cmpl $0x1, -0x18(%rbp)
jne 0x20d93
cmpl $0x0, -0x14(%rbp)
jne 0x20cdd
movq -0xa8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x20e28
cmpl $0x1, -0x14(%rbp)
jne 0x20cf7
movq -0xa8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x20e28
cmpl $0x2, -0x14(%rbp)
jne 0x20d11
movq -0xa8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x20e28
leaq -0x71(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x3560
movq -0xb8(%rbp), %rdx
leaq 0x6bab(%rip), %rsi      # 0x278da
leaq -0x70(%rbp), %rdi
callq 0x4e10
jmp 0x20d3a
leaq -0x70(%rbp), %rdi
callq 0x4d40
jmp 0x20d45
leaq -0x70(%rbp), %rdi
callq 0x35f8
leaq -0x71(%rbp), %rdi
callq 0x3360
jmp 0x20d8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x20d7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x35f8
leaq -0x71(%rbp), %rdi
callq 0x3360
jmp 0x20e35
jmp 0x20d8c
jmp 0x20d8e
jmp 0x20e1e
leaq -0x99(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x3560
movq -0xc0(%rbp), %rdx
leaq 0x6b42(%rip), %rsi      # 0x278f6
leaq -0x98(%rbp), %rdi
callq 0x4e10
jmp 0x20dc2
leaq -0x98(%rbp), %rdi
callq 0x4d40
jmp 0x20dd0
leaq -0x98(%rbp), %rdi
callq 0x35f8
leaq -0x99(%rbp), %rdi
callq 0x3360
jmp 0x20e1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x20e10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x35f8
leaq -0x99(%rbp), %rdi
callq 0x3360
jmp 0x20e35
jmp 0x20e20
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x3550
nop