// File: /workspace/github_cpp_makefile_star2_O1/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, -0x48(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq %rdi, -0x68(%rbp)
movq $0x0, 0x10(%rdi)
leaq 0x8ffa(%rip), %rsi      # 0x1887d
movq %r9, %rdi
callq 0x30b0
testl %eax, %eax
je 0xfb51
movl %r14d, -0x3c(%rbp)
leaq 0x8fe2(%rip), %rsi      # 0x18880
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0xfdbf
leaq 0x8fd0(%rip), %rsi      # 0x18885
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0x10072
leaq 0x8fbe(%rip), %rsi      # 0x1888a
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
jne 0x10346
movslq -0x3c(%rbp), %rax
leal 0x1(%r12), %ecx
movl %ecx, -0x70(%rbp)
movslq %ecx, %rcx
movq %rcx, -0x58(%rbp)
movslq %r12d, %rcx
movq %rcx, -0x60(%rbp)
movl $0x4, %ebx
leaq (%rax,%rax,2), %rax
movq %rax, -0x30(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %r14
testq %r14, %r14
setne %r13b
je 0xf972
leaq -0x108(%rbp), %rax
movq %rax, -0x118(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
leaq -0x118(%rbp), %rdi
callq 0x9da8
addq $0x10, %r14
movq 0x58(%r15), %rax
movq %rax, -0xf8(%rbp)
movb $0x1, %r12b
movq %r14, %rdi
leaq -0x118(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0xfacc
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %r14
leaq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
movl %r13d, %r12d
leaq -0xf0(%rbp), %rdi
callq 0x9da8
addq $0x88, %r14
movq 0x80(%r15), %rax
movq %rax, -0xd0(%rbp)
movq %r14, %rdi
leaq -0xf0(%rbp), %rsi
movb %r13b, -0x38(%rbp)
callq 0x17728
testb %al, %al
je 0xfac7
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x60(%rbp), %rcx
movq 0x10(%rax,%rcx,8), %r14
testq %r14, %r14
setne %r12b
je 0xfa59
leaq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
leaq -0xc8(%rbp), %rdi
callq 0x9da8
addq $0x60, %r14
movq 0xa8(%r15), %rax
movq %rax, -0xa8(%rbp)
movb $0x1, %r13b
movq %r14, %rdi
leaq -0xc8(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0xfb3d
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rcx
movq -0x18(%rax,%rcx,8), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %r14
testq %r14, %r14
je 0xfb47
leaq -0x90(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
movl %r12d, %r13d
leaq -0xa0(%rbp), %rdi
callq 0x9da8
addq $0x38, %r14
movq 0x30(%r15), %rax
movq %rax, -0x80(%rbp)
movq %r14, %rdi
leaq -0xa0(%rbp), %rsi
callq 0x17728
movl %eax, %r14d
movb $0x1, %r13b
movb $0x1, %al
jmp 0xfadb
movb $0x1, %r13b
jmp 0xfad3
movb $0x1, -0x38(%rbp)
xorl %r13d, %r13d
xorl %r12d, %r12d
xorl %eax, %eax
xorl %r14d, %r14d
testb %al, %al
je 0xfaeb
leaq -0xa0(%rbp), %rdi
callq 0x176f8
testb %r12b, %r12b
je 0xfafc
leaq -0xc8(%rbp), %rdi
callq 0x176f8
testb %r13b, %r13b
je 0xfb0d
leaq -0xf0(%rbp), %rdi
callq 0x176f8
cmpb $0x0, -0x38(%rbp)
je 0xfb1f
leaq -0x118(%rbp), %rdi
callq 0x176f8
testb %r14b, %r14b
jne 0x10320
movq %r15, %rdi
callq 0x16ae6
decl %ebx
jne 0xf903
jmp 0x10346
movb $0x1, %r13b
xorl %eax, %eax
movb $0x1, %r12b
jmp 0xfad8
movb $0x1, %r13b
xorl %eax, %eax
movb $0x1, %r14b
jmp 0xfadb
movslq %r14d, %rax
movq %r12, -0x78(%rbp)
movslq %r12d, %rbx
decl %r14d
movl %r14d, -0x3c(%rbp)
movslq %r14d, %rcx
movl $0x4, %r14d
leaq (%rax,%rax,2), %rax
movq %rax, -0x38(%rbp)
leaq -0x2f8(%rbp), %r12
leaq (%rcx,%rcx,2), %rax
movq %rax, -0x58(%rbp)
movq %rbx, -0x60(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax,%rbx,8), %r13
leaq -0x2e8(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x9da8
addq $0x10, %r13
movq 0x58(%r15), %rax
movq %rax, -0x2d8(%rbp)
movq %r13, %rdi
movq %r12, %rsi
callq 0x17728
testb %al, %al
je 0xfd3c
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x8(%rax,%rbx,8), %r13
testq %r13, %r13
setne %al
movl %eax, -0x30(%rbp)
je 0xfc52
leaq -0x2c0(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
leaq -0x2d0(%rbp), %rdi
callq 0x9da8
addq $0x88, %r13
movq 0x80(%r15), %rax
movq %rax, -0x2b0(%rbp)
movb $0x1, %bl
movq %r13, %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x17728
testb %al, %al
movq -0x60(%rbp), %rbx
je 0xfd45
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax,%rbx,8), %r13
testq %r13, %r13
setne %r12b
je 0xfcce
leaq -0x298(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
movl -0x30(%rbp), %eax
movl %eax, %ebx
leaq -0x2a8(%rbp), %rdi
callq 0x9da8
addq $0x60, %r13
movq 0xa8(%r15), %rax
movq %rax, -0x288(%rbp)
movb $0x1, %bl
movq %r13, %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x17728
testb %al, %al
movq -0x60(%rbp), %rbx
je 0xfdb3
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq -0x30(%rax,%rcx,8), %rax
movq (%rax,%rbx,8), %r13
testq %r13, %r13
je 0xfdb8
leaq -0x270(%rbp), %rax
movq %rax, -0x280(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
movl %r12d, %ebx
leaq -0x280(%rbp), %rdi
callq 0x9da8
addq $0x38, %r13
movq 0x30(%r15), %rax
movq %rax, -0x260(%rbp)
movq %r13, %rdi
leaq -0x280(%rbp), %rsi
callq 0x17728
movl %eax, %r13d
movb $0x1, %al
movq -0x60(%rbp), %rbx
jmp 0xfd52
movl $0x0, -0x30(%rbp)
jmp 0xfd4a
movb $0x1, %al
movl %eax, -0x30(%rbp)
xorl %r12d, %r12d
xorl %eax, %eax
xorl %r13d, %r13d
testb %al, %al
je 0xfd62
leaq -0x280(%rbp), %rdi
callq 0x176f8
testb %r12b, %r12b
je 0xfd73
leaq -0x2a8(%rbp), %rdi
callq 0x176f8
cmpb $0x0, -0x30(%rbp)
leaq -0x2f8(%rbp), %r12
je 0xfd8c
leaq -0x2d0(%rbp), %rdi
callq 0x176f8
movq %r12, %rdi
callq 0x176f8
testb %r13b, %r13b
jne 0x10045
movq %r15, %rdi
callq 0x16ae6
decl %r14d
jne 0xfb86
jmp 0x10346
movb $0x1, %r12b
jmp 0xfd4d
movb $0x1, %r13b
xorl %eax, %eax
jmp 0xfd52
movl -0x3c(%rbp), %ecx
movslq %ecx, %rax
movq %r12, -0x78(%rbp)
movslq %r12d, %rdx
movq %rdx, -0x30(%rbp)
incl %ecx
movl %ecx, -0x3c(%rbp)
movslq %ecx, %rcx
movl $0x4, %r12d
leaq (%rax,%rax,2), %rax
movq %rax, -0x60(%rbp)
leaq (%rcx,%rcx,2), %rax
movq %rax, -0x70(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x60(%rbp), %rcx
movq 0x30(%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %r13
testq %r13, %r13
setne %bl
je 0xfe5c
leaq -0x248(%rbp), %rax
movq %rax, -0x258(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
leaq -0x258(%rbp), %rdi
callq 0x9da8
addq $0x10, %r13
movq 0x58(%r15), %rax
movq %rax, -0x238(%rbp)
movb $0x1, %r14b
movq %r13, %rdi
leaq -0x258(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0xffbe
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq -0x8(%rax,%rcx,8), %r13
testq %r13, %r13
setne %al
movl %eax, -0x38(%rbp)
movb %bl, -0x58(%rbp)
je 0xfedb
leaq -0x220(%rbp), %rax
movq %rax, -0x230(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
movl %ebx, %r14d
leaq -0x230(%rbp), %rdi
callq 0x9da8
addq $0x88, %r13
movq 0x80(%r15), %rax
movq %rax, -0x210(%rbp)
movb $0x1, %bl
movq %r13, %rdi
leaq -0x230(%rbp), %rsi
callq 0x17728
testb %al, %al
movb -0x58(%rbp), %bl
je 0xffc9
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x70(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %r13
testq %r13, %r13
setne %r14b
je 0xff57
leaq -0x1f8(%rbp), %rax
movq %rax, -0x208(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
movl -0x38(%rbp), %eax
movl %eax, %ebx
leaq -0x208(%rbp), %rdi
callq 0x9da8
addq $0x60, %r13
movq 0xa8(%r15), %rax
movq %rax, -0x1e8(%rbp)
movb $0x1, %bl
movq %r13, %rdi
leaq -0x208(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0xffd8
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %r13
leaq -0x1d0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
movl %r14d, %ebx
leaq -0x1e0(%rbp), %rdi
callq 0x9da8
addq $0x38, %r13
movq 0x30(%r15), %rax
movq %rax, -0x1c0(%rbp)
movq %r13, %rdi
leaq -0x1e0(%rbp), %rsi
movb -0x58(%rbp), %bl
callq 0x17728
movl %eax, %r13d
movb $0x1, %al
jmp 0xffe3
movb $0x1, %bl
movl $0x0, -0x38(%rbp)
jmp 0xffce
movb $0x1, %al
movl %eax, -0x38(%rbp)
xorl %r14d, %r14d
xorl %eax, %eax
xorl %r13d, %r13d
jmp 0xffe3
movb $0x1, %r14b
xorl %eax, %eax
xorl %r13d, %r13d
movb -0x58(%rbp), %bl
testb %al, %al
je 0xfff3
leaq -0x1e0(%rbp), %rdi
callq 0x176f8
testb %r14b, %r14b
je 0x10004
leaq -0x208(%rbp), %rdi
callq 0x176f8
cmpb $0x0, -0x38(%rbp)
je 0x10016
leaq -0x230(%rbp), %rdi
callq 0x176f8
testb %bl, %bl
je 0x10026
leaq -0x258(%rbp), %rdi
callq 0x176f8
testb %r13b, %r13b
jne 0x102d5
movq %r15, %rdi
callq 0x16ae6
decl %r12d
jne 0xfdee
jmp 0x10346
movl -0x3c(%rbp), %eax
movl %eax, -0x50(%rbp)
movq -0x78(%rbp), %rax
movl %eax, -0x4c(%rbp)
movq -0x68(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
jne 0x1033a
leaq -0x50(%rbp), %rdx
callq 0x14700
jmp 0x10346
movslq -0x3c(%rbp), %rax
leal -0x1(%r12), %ecx
movl %ecx, -0x70(%rbp)
movslq %ecx, %rcx
movq %rcx, -0x58(%rbp)
movslq %r12d, %rcx
movq %rcx, -0x60(%rbp)
movl $0x4, %r13d
leaq (%rax,%rax,2), %rax
movq %rax, -0x38(%rbp)
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rbx
testq %rbx, %rbx
setne -0x30(%rbp)
je 0x10109
leaq -0x1a8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
addq %rsi, %rdx
leaq -0x1b8(%rbp), %rdi
callq 0x9da8
addq $0x10, %rbx
movq 0x58(%r15), %rax
movq %rax, -0x198(%rbp)
movb $0x1, %r14b
movq %rbx, %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0x10259
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x60(%rbp), %rcx
movq -0x10(%rax,%rcx,8), %rbx
testq %rbx, %rbx
setne %r12b
je 0x10182
leaq -0x180(%rbp), %rax
movq %rax, -0x190(%rbp)
movq 0x60(%r15), %rsi
movq 0x68(%r15), %rdx
addq %rsi, %rdx
movb -0x30(%rbp), %r14b
leaq -0x190(%rbp), %rdi
callq 0x9da8
addq $0x88, %rbx
movq 0x80(%r15), %rax
movq %rax, -0x170(%rbp)
movb $0x1, %r14b
movq %rbx, %rdi
leaq -0x190(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0x10267
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rbx
leaq -0x158(%rbp), %rax
movq %rax, -0x168(%rbp)
movq 0x88(%r15), %rsi
movq 0x90(%r15), %rdx
addq %rsi, %rdx
movl %r12d, %r14d
leaq -0x168(%rbp), %rdi
callq 0x9da8
addq $0x60, %rbx
movq 0xa8(%r15), %rax
movq %rax, -0x148(%rbp)
movq %rbx, %rdi
leaq -0x168(%rbp), %rsi
callq 0x17728
testb %al, %al
je 0x10262
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq -0x38(%rbp), %rcx
movq -0x18(%rax,%rcx,8), %rax
movq -0x58(%rbp), %rcx
movq (%rax,%rcx,8), %rbx
testq %rbx, %rbx
je 0x102cc
leaq -0x130(%rbp), %rax
movq %rax, -0x140(%rbp)
movq 0x10(%r15), %rsi
movq 0x18(%r15), %rdx
addq %rsi, %rdx
leaq -0x140(%rbp), %rdi
callq 0x9da8
addq $0x38, %rbx
movq 0x30(%r15), %rax
movq %rax, -0x120(%rbp)
movq %rbx, %rdi
leaq -0x140(%rbp), %rsi
callq 0x17728
movl %eax, %ebx
movb $0x1, %r14b
movb $0x1, %al
jmp 0x10271
movb $0x1, -0x30(%rbp)
xorl %r12d, %r12d
jmp 0x1026a
movb $0x1, %r14b
jmp 0x1026d
movb $0x1, %r12b
xorl %r14d, %r14d
xorl %eax, %eax
xorl %ebx, %ebx
testb %al, %al
je 0x10281
leaq -0x140(%rbp), %rdi
callq 0x176f8
testb %r14b, %r14b
je 0x10292
leaq -0x168(%rbp), %rdi
callq 0x176f8
testb %r12b, %r12b
je 0x102a3
leaq -0x190(%rbp), %rdi
callq 0x176f8
cmpb $0x0, -0x30(%rbp)
je 0x102b5
leaq -0x1b8(%rbp), %rdi
callq 0x176f8
testb %bl, %bl
jne 0x102fb
movq %r15, %rdi
callq 0x16ae6
decl %r13d
jne 0x1009a
jmp 0x10346
movb $0x1, %r14b
xorl %eax, %eax
movb $0x1, %bl
jmp 0x10271
movl -0x3c(%rbp), %eax
movl %eax, -0x50(%rbp)
movq -0x78(%rbp), %rax
movl %eax, -0x4c(%rbp)
movq -0x68(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
jne 0x1033a
leaq -0x50(%rbp), %rdx
callq 0x14700
jmp 0x10346
movl -0x3c(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x70(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x68(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
jne 0x1033a
leaq -0x50(%rbp), %rdx
callq 0x14700
jmp 0x10346
movl -0x3c(%rbp), %eax
movl %eax, -0x50(%rbp)
movl -0x70(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x68(%rbp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x1035c
movq -0x50(%rbp), %rax
movq %rax, (%rsi)
addq $0x8, 0x8(%rdi)
movq -0x68(%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 0x14700
jmp 0x10346
jmp 0x104dd
jmp 0x104dd
jmp 0x104dd
jmp 0x104dd
movq %rax, %r15
leaq -0xa0(%rbp), %rdi
callq 0x176f8
jmp 0x103a3
movq %rax, %r15
leaq -0x140(%rbp), %rdi
callq 0x176f8
jmp 0x103ec
movq %rax, %r15
movl %r13d, %r12d
testb %r12b, %r12b
je 0x103db
leaq -0xc8(%rbp), %rdi
callq 0x176f8
jmp 0x103db
movq %rax, %r15
leaq -0x280(%rbp), %rdi
callq 0x176f8
jmp 0x10436
movq %rax, %r15
leaq -0x1e0(%rbp), %rdi
callq 0x176f8
jmp 0x1044f
movq %rax, %r15
leaq -0xf0(%rbp), %rdi
callq 0x176f8
jmp 0x10401
movq %rax, %r15
leaq -0x168(%rbp), %rdi
callq 0x176f8
jmp 0x1041d
movq %rax, %r15
movb %r12b, -0x38(%rbp)
cmpb $0x0, -0x38(%rbp)
je 0x104e0
leaq -0x118(%rbp), %rdi
jmp 0x104d6
movq %rax, %r15
movl %r14d, %r12d
testb %r12b, %r12b
je 0x1046b
leaq -0x190(%rbp), %rdi
callq 0x176f8
jmp 0x1046b
movq %rax, %r15
movl %ebx, %r12d
testb %r12b, %r12b
je 0x1049e
leaq -0x2a8(%rbp), %rdi
callq 0x176f8
jmp 0x1049e
movq %rax, %r15
movl %ebx, %r14d
testb %r14b, %r14b
je 0x10482
leaq -0x208(%rbp), %rdi
callq 0x176f8
jmp 0x10482
jmp 0x104dd
movq %rax, %r15
movb %r14b, -0x30(%rbp)
cmpb $0x0, -0x30(%rbp)
je 0x104e0
leaq -0x1b8(%rbp), %rdi
jmp 0x104d6
movq %rax, %r15
movl %ebx, %eax
movl %eax, -0x38(%rbp)
cmpb $0x0, -0x38(%rbp)
je 0x104bb
leaq -0x230(%rbp), %rdi
callq 0x176f8
jmp 0x104bb
movq %rax, %r15
movl %ebx, %eax
movl %eax, -0x30(%rbp)
cmpb $0x0, -0x30(%rbp)
je 0x104cf
leaq -0x2d0(%rbp), %rdi
callq 0x176f8
jmp 0x104cf
jmp 0x104dd
movq %rax, %r15
movb %r14b, -0x58(%rbp)
cmpb $0x0, -0x58(%rbp)
je 0x104e0
leaq -0x258(%rbp), %rdi
jmp 0x104d6
jmp 0x104dd
movq %rax, %r15
leaq -0x2f8(%rbp), %rdi
callq 0x176f8
jmp 0x104e0
movq %rax, %r15
movq -0x68(%rbp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x104f1
callq 0x3200
movq %r15, %rdi
callq 0x33f0
nop