// File: /workspace/github_cpp_makefile_star2_O3/Doug0855[P]TigerZone/Board.cpp
// Function: Board::checkPlacement(Tile, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::vector< std::pair<int, int> > Board::checkPlacement(Tile tile, int i, int j, std::string openFaces)
{
	std::vector< std::pair<int, int> > places;
	if (openFaces == "up"){
		for (int ii = 0; ii < 4; ii++)
		{
			// if the bottom face of the tile we're trying to place equals the top face of the tile on the board
			// and it equals the faces of all the other surrounding tiles
			if (m_board[i][j]->getUpFace()->faceEquals(*tile.getDownFace()) &&
				 (m_board[i - 1][j - 1] == NULL || m_board[i - 1][j - 1]->getRightFace()->faceEquals(*tile.getLeftFace())) &&
				 (m_board[i - 1][j + 1] == NULL || m_board[i - 1][j + 1]->getLeftFace()->faceEquals(*tile.getRightFace())) &&
				 (m_board[i - 2][j] == NULL || m_board[i - 2][j]->getDownFace()->faceEquals(*tile.getUpFace())))
			{
				places.push_back(std::pair<int, int>(i - 1, j));
				break;
			}
			tile.rotate();
		}
	}
	else if (openFaces == "down")
	{
		for (int ii = 0; ii < 4; ii++)
		{
			// same thing as above but with down
			if ((m_board[i + 2][j] == NULL || m_board[i + 2][j]->getUpFace()->faceEquals(*tile.getDownFace())) &&
				 (m_board[i + 1][j - 1] == NULL || m_board[i + 1][j - 1]->getRightFace()->faceEquals(*tile.getLeftFace())) &&
				 (m_board[i + 1][j + 1] == NULL || m_board[i + 1][j + 1]->getLeftFace()->faceEquals(*tile.getRightFace())) &&
				 (m_board[i][j]->getDownFace()->faceEquals(*tile.getUpFace())))
			{
				//debugging std::cout<<"Checking down face equals"<<m_board[i][j]->getDownFace()->faceEquals(*tile.getUpFace())<<std::endl;
				//debugging std::cout<<"Down face type: "<<m_board[i][j]->getDownFaceType()<<std::endl;
				//debugging std::cout<<"Tile up face type: "<<tile.getUpFaceType()<<std::endl;
				places.push_back(std::pair<int, int>(i + 1, j));
				break;
			}
			tile.rotate();
		}
	}
	else if (openFaces == "left")
	{
		for (int ii = 0; ii < 4; ii++)
		{
			// same thing as above but with left
			if ((m_board[i + 1][j - 1] == NULL || m_board[i + 1][j - 1]->getUpFace()->faceEquals(*tile.getDownFace())) &&
				 (m_board[i][j - 2] == NULL || m_board[i][j - 2]->getRightFace()->faceEquals(*tile.getLeftFace())) &&
				 (m_board[i][j]->getLeftFace()->faceEquals(*tile.getRightFace())) &&
				 (m_board[i - 1][j - 1] == NULL || m_board[i - 1][j - 1]->getDownFace()->faceEquals(*tile.getUpFace())))
			{
				// std::cout<<"Can connect to left face at i,j"<<std::endl;
				places.push_back(std::pair<int, int>(i, j - 1));
				break;
			}
			tile.rotate();
		}
	}
	else if (openFaces == "right")
	{
		for (int ii = 0; ii < 4; ii++)
		{
			// same thing as above but with right
			if ((m_board[i + 1][j + 1] == NULL || m_board[i + 1][j + 1]->getUpFace()->faceEquals(*tile.getDownFace())) &&
				 (m_board[i][j]->getRightFace()->faceEquals(*tile.getLeftFace())) &&
				 (m_board[i][j + 2] == NULL || m_board[i][j + 2]->getLeftFace()->faceEquals(*tile.getRightFace())) &&
				 (m_board[i - 1][j + 1] == NULL || m_board[i - 1][j + 1]->getDownFace()->faceEquals(*tile.getUpFace())))
			{
				// std::cout<<"Can connect to right face at i,j"<<std::endl;
				places.push_back(std::pair<int, int>(i, j + 1));
				break;
			}
			tile.rotate();
		}
	}
	return places;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2d8, %rsp            # imm = 0x2D8
movq %r9, %rbx
movl %r8d, %r12d
movl %ecx, %r14d
movq %rdx, %r15
movq %rsi, -0x38(%rbp)
movq %rdi, -0x70(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq 0x90fa(%rip), %rsi      # 0x1887d
movq %r9, %rdi
callq 0x30b0
testl %eax, %eax
je 0xfa53
leaq 0x90e6(%rip), %rsi      # 0x18880
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xfcc5
leaq 0x90d4(%rip), %rsi      # 0x18885
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
movl %r14d, -0x54(%rbp)
je 0xff35
leaq 0x90be(%rip), %rsi      # 0x1888a
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
movq -0x38(%rbp), %r14
jne 0x10238
movslq -0x54(%rbp), %rax
leal 0x1(%r12), %ecx
movl %ecx, -0x68(%rbp)
movslq %ecx, %rcx
movq %rcx, -0x48(%rbp)
movslq %r12d, %rcx
movq %rcx, -0x60(%rbp)
movl $0x4, %ebx
leaq (%rax,%rax,2), %r12
movq (%r14), %rax
movq 0x18(%rax,%r12,8), %rcx
movq -0x48(%rbp), %rdx
movq (%rcx,%rdx,8), %r13
testq %r13, %r13
je 0xf863
leaq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
leaq -0xc8(%rbp), %rdi
callq 0x9cc4
leaq 0x10(%r13), %rdi
movq 0x58(%r15), %rax
movq %rax, -0xa8(%rbp)
leaq -0xc8(%rbp), %rsi
callq 0x173e0
testb %al, %al
je 0xf969
movq (%r14), %rax
movq %r13, -0x30(%rbp)
movq %r12, %r13
movq (%rax,%r12,8), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %r14
leaq -0x90(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
leaq -0xa0(%rbp), %r12
movq %r12, %rdi
callq 0x9cc4
addq $0x88, %r14
movq 0x80(%r15), %rax
movq %rax, -0x80(%rbp)
movq %r14, %rdi
movq %r12, %rsi
callq 0x173e0
movq -0x38(%rbp), %r14
testb %al, %al
je 0xf94f
movq (%r14), %rax
movq (%rax,%r13,8), %rcx
movq -0x60(%rbp), %rdx
movq 0x10(%rcx,%rdx,8), %r12
testq %r12, %r12
je 0xf97a
leaq -0x158(%rbp), %rax
movq %rax, -0x168(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
leaq -0x168(%rbp), %rdi
callq 0x9cc4
leaq 0x60(%r12), %rdi
movq 0xa8(%r15), %rax
movq %rax, -0x148(%rbp)
leaq -0x168(%rbp), %rsi
callq 0x173e0
testb %al, %al
je 0xfa00
movq (%r14), %rax
movq -0x18(%rax,%r13,8), %rax
movq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %r14
testq %r14, %r14
jne 0xf990
movb $0x1, %r14b
jmp 0xfa03
leaq -0xa0(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x30(%rbp)
movq %r13, %r12
je 0xfa3e
leaq -0xc8(%rbp), %rdi
callq 0x173b0
jmp 0xfa3e
movq -0x18(%rax,%r13,8), %rax
movq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %r14
testq %r14, %r14
je 0x101f3
movq %r12, -0x40(%rbp)
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq -0x2a8(%rbp), %r12
movq %r12, %rdi
callq 0x9cc4
addq $0x38, %r14
movq 0x30(%r15), %rax
movq %rax, -0x288(%rbp)
movq %r14, %rdi
movq %r12, %rsi
callq 0x173e0
movl %eax, %r14d
movq %r12, %rdi
callq 0x173b0
cmpq $0x0, -0x40(%rbp)
jne 0xfa03
leaq -0xa0(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x30(%rbp)
movq %r13, %r12
jne 0xfa25
jmp 0xfa31
xorl %r14d, %r14d
movq %r13, %r12
leaq -0x168(%rbp), %rdi
callq 0x173b0
leaq -0xa0(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x30(%rbp)
je 0xfa31
leaq -0xc8(%rbp), %rdi
callq 0x173b0
testb %r14b, %r14b
movq -0x38(%rbp), %r14
jne 0x10212
movq %r15, %rdi
callq 0x1679e
decl %ebx
jne 0xf803
jmp 0x10238
movslq %r14d, %rax
movq %r12, -0x78(%rbp)
movslq %r12d, %rdx
decl %r14d
movl %r14d, -0x54(%rbp)
movslq %r14d, %rcx
movl $0x4, %r12d
leaq (%rax,%rax,2), %rax
movq %rax, -0x30(%rbp)
leaq (%rcx,%rcx,2), %rax
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %r14
movq (%r14), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rdx, %rbx
movq (%rax,%rdx,8), %r13
leaq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
leaq -0xf0(%rbp), %rdi
callq 0x9cc4
addq $0x10, %r13
movq 0x58(%r15), %rax
movq %rax, -0xd0(%rbp)
movq %r13, %rdi
leaq -0xf0(%rbp), %rsi
callq 0x173e0
testb %al, %al
je 0xfc6f
movq (%r14), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
movq %rbx, %rdx
movq -0x8(%rcx,%rbx,8), %r13
testq %r13, %r13
je 0xfb52
leaq -0x130(%rbp), %rax
movq %rax, -0x140(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
leaq -0x140(%rbp), %rdi
callq 0x9cc4
leaq 0x88(%r13), %rdi
movq 0x80(%r15), %rax
movq %rax, -0x120(%rbp)
leaq -0x140(%rbp), %rsi
callq 0x173e0
testb %al, %al
je 0xfc63
movq (%r14), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
movq %rbx, %rdx
movq 0x8(%rcx,%rdx,8), %rcx
movq %rcx, -0x48(%rbp)
testq %rcx, %rcx
je 0xfbd6
leaq -0x270(%rbp), %rax
movq %rax, -0x280(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
leaq -0x280(%rbp), %r14
movq %r14, %rdi
callq 0x9cc4
movq -0x48(%rbp), %rax
leaq 0x60(%rax), %rdi
movq 0xa8(%r15), %rax
movq %rax, -0x260(%rbp)
movq %r14, %rsi
callq 0x173e0
testb %al, %al
je 0xfc52
movq %r13, -0x40(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq -0x30(%rax,%rcx,8), %rax
movq (%rax,%rbx,8), %r13
testq %r13, %r13
jne 0xfbf0
movb $0x1, %r13b
jmp 0xfc44
movq %r13, -0x40(%rbp)
movq -0x30(%rbp), %rcx
movq -0x30(%rax,%rcx,8), %rax
movq (%rax,%rdx,8), %r13
testq %r13, %r13
je 0xfc7d
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq -0x2f8(%rbp), %r14
movq %r14, %rdi
callq 0x9cc4
addq $0x38, %r13
movq 0x30(%r15), %rax
movq %rax, -0x2d8(%rbp)
movq %r13, %rdi
movq %r14, %rsi
callq 0x173e0
movl %eax, %r13d
movq %r14, %rdi
callq 0x173b0
cmpq $0x0, -0x48(%rbp)
je 0xfc80
leaq -0x280(%rbp), %rdi
callq 0x173b0
jmp 0xfc80
movq %r14, %rdi
callq 0x173b0
testq %r13, %r13
movq -0x38(%rbp), %r14
je 0xfc6f
leaq -0x140(%rbp), %rdi
callq 0x173b0
leaq -0xf0(%rbp), %rdi
callq 0x173b0
jmp 0xfcac
movb $0x1, %r13b
cmpq $0x0, -0x40(%rbp)
movq -0x38(%rbp), %r14
je 0xfc97
leaq -0x140(%rbp), %rdi
callq 0x173b0
leaq -0xf0(%rbp), %rdi
callq 0x173b0
testb %r13b, %r13b
jne 0x1019a
movq %r15, %rdi
callq 0x1679e
decl %r12d
movq %rbx, %rdx
jne 0xfa81
jmp 0x10238
movslq %r14d, %rax
movq %r12, -0x78(%rbp)
movslq %r12d, %rcx
movq %rcx, -0x30(%rbp)
incl %r14d
movl %r14d, -0x54(%rbp)
movslq %r14d, %rcx
movl $0x4, %r12d
leaq (%rax,%rax,2), %rax
movq %rax, -0x48(%rbp)
leaq (%rcx,%rcx,2), %rax
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %r14
movq (%r14), %rax
movq -0x48(%rbp), %rcx
movq 0x30(%rax,%rcx,8), %rcx
movq -0x30(%rbp), %rdx
movq (%rcx,%rdx,8), %rbx
testq %rbx, %rbx
je 0xfd5b
leaq -0x108(%rbp), %rax
movq %rax, -0x118(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
leaq -0x118(%rbp), %rdi
callq 0x9cc4
leaq 0x10(%rbx), %rdi
movq 0x58(%r15), %rax
movq %rax, -0xf8(%rbp)
leaq -0x118(%rbp), %rsi
callq 0x173e0
testb %al, %al
je 0xfebd
movq (%r14), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
movq -0x30(%rbp), %rdx
movq -0x8(%rcx,%rdx,8), %r13
testq %r13, %r13
leaq -0x1e0(%rbp), %r14
je 0xfdcd
leaq -0x1d0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x9cc4
leaq 0x88(%r13), %rdi
movq 0x80(%r15), %rax
movq %rax, -0x1c0(%rbp)
movq %r14, %rsi
callq 0x173e0
testb %al, %al
je 0xfeac
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
movq %r13, -0x68(%rbp)
movq %rbx, -0x40(%rbp)
movq -0x30(%rbp), %rdx
movq 0x8(%rcx,%rdx,8), %r13
testq %r13, %r13
je 0xfe3a
leaq -0x248(%rbp), %rax
movq %rax, -0x258(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
leaq -0x258(%rbp), %rbx
movq %rbx, %rdi
callq 0x9cc4
leaq 0x60(%r13), %rdi
movq 0xa8(%r15), %rax
movq %rax, -0x238(%rbp)
movq %rbx, %rsi
callq 0x173e0
testb %al, %al
je 0xfecb
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rbx
leaq -0x2c0(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq -0x2d0(%rbp), %r14
movq %r14, %rdi
callq 0x9cc4
addq $0x38, %rbx
movq 0x30(%r15), %rax
movq %rax, -0x2b0(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x173e0
movl %eax, %ebx
movq %r14, %rdi
callq 0x173b0
testq %r13, %r13
je 0xff21
movq -0x70(%rbp), %r13
leaq -0x1e0(%rbp), %r14
jmp 0xfed1
movq %r14, %rdi
callq 0x173b0
testq %rbx, %rbx
movq -0x38(%rbp), %r14
je 0xff0b
leaq -0x118(%rbp), %rdi
callq 0x173b0
jmp 0xff0b
xorl %ebx, %ebx
movq -0x70(%rbp), %r13
leaq -0x258(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x68(%rbp)
je 0xfeec
movq %r14, %rdi
callq 0x173b0
cmpq $0x0, -0x40(%rbp)
movq -0x38(%rbp), %r14
je 0xff03
leaq -0x118(%rbp), %rdi
callq 0x173b0
testb %bl, %bl
jne 0x10172
movq %r15, %rdi
callq 0x1679e
decl %r12d
jne 0xfcf7
jmp 0x10238
cmpq $0x0, -0x68(%rbp)
movq -0x70(%rbp), %r13
leaq -0x1e0(%rbp), %r14
jne 0xfee4
jmp 0xfeec
movslq %r14d, %rax
leal -0x1(%r12), %ecx
movl %ecx, -0x68(%rbp)
movslq %ecx, %rcx
movq %rcx, -0x60(%rbp)
movslq %r12d, %rcx
movq %rcx, -0x40(%rbp)
movl $0x4, %r12d
leaq (%rax,%rax,2), %rax
movq %rax, -0x30(%rbp)
leaq -0x1b8(%rbp), %r13
movq -0x38(%rbp), %rbx
movq (%rbx), %rax
movq -0x30(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %r14
testq %r14, %r14
je 0xffc3
leaq -0x1a8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x9cc4
leaq 0x10(%r14), %rdi
movq 0x58(%r15), %rax
movq %rax, -0x198(%rbp)
movq %r13, %rsi
callq 0x173e0
testb %al, %al
je 0x10121
movq (%rbx), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x40(%rbp), %rcx
movq -0x10(%rax,%rcx,8), %r13
testq %r13, %r13
movq %r14, -0x48(%rbp)
je 0x10046
movl %r12d, %ebx
movq %r13, %r12
leaq -0x220(%rbp), %rax
movq %rax, -0x230(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
leaq -0x230(%rbp), %r13
movq %r13, %rdi
callq 0x9cc4
leaq 0x88(%r12), %rdi
movq 0x80(%r15), %rax
movq %rax, -0x210(%rbp)
movq %r13, %rsi
callq 0x173e0
testb %al, %al
je 0x1012b
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %r12, %r13
movl %ebx, %r12d
movq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rbx
leaq -0x180(%rbp), %rax
movq %rax, -0x190(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
leaq -0x190(%rbp), %r14
movq %r14, %rdi
callq 0x9cc4
addq $0x60, %rbx
movq 0xa8(%r15), %rax
movq %rax, -0x170(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x173e0
movl %eax, %r14d
testb %al, %al
je 0x1010e
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq -0x18(%rax,%rcx,8), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rbx
testq %rbx, %rbx
je 0x1010e
leaq -0x1f8(%rbp), %rax
movq %rax, -0x208(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq -0x208(%rbp), %rdi
callq 0x9cc4
addq $0x38, %rbx
movq 0x30(%r15), %rax
movq %rax, -0x1e8(%rbp)
movq %rbx, %rdi
leaq -0x208(%rbp), %rbx
movq %rbx, %rsi
callq 0x173e0
movl %eax, %r14d
movq %rbx, %rdi
callq 0x173b0
leaq -0x190(%rbp), %rdi
callq 0x173b0
testq %r13, %r13
jne 0x10131
jmp 0x1013d
movq %r13, %rdi
callq 0x173b0
jmp 0x1015c
xorl %r14d, %r14d
movl %ebx, %r12d
leaq -0x230(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x48(%rbp)
leaq -0x1b8(%rbp), %r13
je 0x10153
movq %r13, %rdi
callq 0x173b0
testb %r14b, %r14b
movq -0x38(%rbp), %rbx
jne 0x101c0
movq %r15, %rdi
callq 0x1679e
decl %r12d
jne 0xff67
jmp 0x10238
movl -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
movq -0x78(%rbp), %rax
movl %eax, -0x4c(%rbp)
movq 0x8(%r13), %rsi
cmpq 0x10(%r13), %rsi
je 0x101e5
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, 0x8(%r13)
jmp 0x10238
movl -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
movq -0x78(%rbp), %rax
movl %eax, -0x4c(%rbp)
movq -0x70(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
jne 0x1022c
leaq -0x50(%rbp), %rdx
callq 0x14350
jmp 0x10238
movl -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x70(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
jne 0x1022c
leaq -0x50(%rbp), %rdx
callq 0x14350
jmp 0x10238
leaq -0x50(%rbp), %rdx
movq %r13, %rdi
callq 0x14350
jmp 0x10238
leaq -0xa0(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x30(%rbp)
je 0x10212
leaq -0xc8(%rbp), %rdi
callq 0x173b0
movl -0x54(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x70(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x1024e
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, 0x8(%rdi)
movq -0x70(%rbp), %rax
addq $0x2d8, %rsp            # imm = 0x2D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x50(%rbp), %rdx
callq 0x14350
jmp 0x10238
jmp 0x10424
jmp 0x10424
jmp 0x10424
jmp 0x10424
movq %rax, %r15
leaq -0x2a8(%rbp), %rdi
callq 0x173b0
jmp 0x10281
movq %rax, %r15
cmpq $0x0, -0x40(%rbp)
jne 0x102a4
jmp 0x10384
movq %rax, %r15
leaq -0x208(%rbp), %rdi
callq 0x173b0
jmp 0x10349
movq %rax, %r15
leaq -0x168(%rbp), %rdi
callq 0x173b0
jmp 0x10384
movq %rax, %r15
jmp 0x1035a
movq %rax, %r15
testq %r14, %r14
jne 0x10375
jmp 0x10427
movq %rax, %r15
jmp 0x1039b
movq %rax, %r15
jmp 0x10355
movq %rax, %r15
jmp 0x10390
movq %rax, %r15
leaq -0x2f8(%rbp), %rdi
callq 0x173b0
jmp 0x102f7
movq %rax, %r15
cmpq $0x0, -0x48(%rbp)
jne 0x103ab
jmp 0x103b7
movq %rax, %r15
jmp 0x1032a
movq %rax, %r15
jmp 0x10336
movq %rax, %r15
leaq -0x2d0(%rbp), %rdi
callq 0x173b0
jmp 0x10325
movq %rax, %r15
testq %r13, %r13
je 0x10336
leaq -0x258(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x68(%rbp)
jne 0x103d1
jmp 0x103dd
movq %rax, %r15
leaq -0x190(%rbp), %rdi
callq 0x173b0
testq %r13, %r13
je 0x10366
leaq -0x230(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x48(%rbp)
jne 0x10375
jmp 0x10427
movq %rax, %r15
leaq -0x1b8(%rbp), %rdi
jmp 0x1041d
movq %rax, %r15
leaq -0xa0(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x30(%rbp)
je 0x10427
leaq -0xc8(%rbp), %rdi
jmp 0x1041d
movq %r13, -0x40(%rbp)
movq %rax, %r15
leaq -0x280(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x40(%rbp)
jne 0x103f3
jmp 0x10416
movq %rax, %r15
testq %r13, %r13
jne 0x103f3
jmp 0x10416
movq %rbx, -0x40(%rbp)
movq %rax, %r15
leaq -0x1e0(%rbp), %rdi
callq 0x173b0
cmpq $0x0, -0x40(%rbp)
jne 0x10404
jmp 0x10427
movq %rax, %r15
testq %rbx, %rbx
jne 0x10404
jmp 0x10427
movq %rax, %r15
leaq -0x140(%rbp), %rdi
callq 0x173b0
jmp 0x10416
movq %rax, %r15
leaq -0x118(%rbp), %rdi
jmp 0x1041d
jmp 0x10424
jmp 0x10424
jmp 0x10424
movq %rax, %r15
leaq -0xf0(%rbp), %rdi
callq 0x173b0
jmp 0x10427
movq %rax, %r15
movq -0x70(%rbp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x10438
callq 0x3200
movq %r15, %rdi
callq 0x33f0