// File: nesro[P]NCursesGomoku/src/board.cpp
// Function: CBoard::show() const
void CBoard::show(void) const {

	int row = 0;
	int col = 0;

	mvprintw(row++, col, "/=====================================\\");
	mvprintw(row++, col, "|    a b c d e f g h i j k l m n o    |");
	mvprintw(row++, col,
			"|    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _    |\\=================\\");
	mvprintw(row++, col,
			"|00 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 00|                  |");
	mvprintw(row++, col,
			"|01 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 01| Controls:        |");
	mvprintw(row++, col,
			"|02 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 02|                  |");
	mvprintw(row++, col,
			"|03 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 03| w or ' ' = write |");
	mvprintw(row++, col,
			"|04 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 04| q = surrender    |");
	mvprintw(row++, col,
			"|05 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 05| arrows = move    |");
	mvprintw(row++, col,
			"|06 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 06|                  |");
	mvprintw(row++, col,
			"|07 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 07|/=================/");
	mvprintw(row++, col, "|08 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 08|");
	mvprintw(row++, col, "|09 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 09|");
	mvprintw(row++, col, "|10 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 10|");
	mvprintw(row++, col, "|11 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 11|");
	mvprintw(row++, col, "|12 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 12|");
	mvprintw(row++, col, "|13 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 13|");
	mvprintw(row++, col, "|14 |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 14|");
	mvprintw(row++, col, "|    a b c d e f g h i j k l m n o    |");
	mvprintw(row++, col, "|    0 0 0 0 0 0 0 0 0 0 1 1 1 1 1    |");
	mvprintw(row++, col, "|    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4    |");
	mvprintw(row++, col, "\\=====================================/");
	mvprintw(row++, col + 1, "\\=[                               ]=/");
	mvprintw(row++, col + 2, "\\=================================/");

	for (int i = 0; i < BOARD_WIDTH; i++) {
		for (int j = 0; j < BOARD_HEIGHT; j++) {
			if (m_Stones[i][j] == CGame::PLAYER_0_CHAR) {
				if (m_LastStone.m_X == i && m_LastStone.m_Y == j) {
					attron(COLOR_PAIR(4));

					mvprintw(CURSOR_MIN + i, CURSOR_START + j * 2, "%c",
							CGame::PLAYER_0_CHAR_BIG);

					attroff(COLOR_PAIR(4));
				} else {
					attron(COLOR_PAIR(2));

					mvprintw(CURSOR_MIN + i, CURSOR_START + j * 2, "%c",
							m_Stones[i][j]);

					attroff(COLOR_PAIR(2));
				}
			} else if (m_Stones[i][j] == CGame::PLAYER_1_CHAR) {
				if (m_LastStone.m_X == i && m_LastStone.m_Y == j) {
					attron(COLOR_PAIR(5));

					mvprintw(CURSOR_MIN + i, CURSOR_START + j * 2, "%c",
							CGame::PLAYER_1_CHAR_BIG);

					attroff(COLOR_PAIR(5));
				} else {
					attron(COLOR_PAIR(3));

					mvprintw(CURSOR_MIN + i, CURSOR_START + j * 2, "%c",
							m_Stones[i][j]);

					attroff(COLOR_PAIR(3));
				}
			}
		}
	}

	mvprintw(22, 4, "%s", m_Message);

	move(m_Cursor.m_Y, m_Cursor.m_Y * 2 - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x43a9(%rip), %rdx      # 0x8430
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x43b5(%rip), %rdx      # 0x8458
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x43c1(%rip), %rdx      # 0x8480
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x43e0(%rip), %rdx      # 0x84bb
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x43ff(%rip), %rdx      # 0x84f6
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x441e(%rip), %rdx      # 0x8531
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x443d(%rip), %rdx      # 0x856c
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x445c(%rip), %rdx      # 0x85a7
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x447b(%rip), %rdx      # 0x85e2
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x449a(%rip), %rdx      # 0x861d
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x44b9(%rip), %rdx      # 0x8658
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x44d8(%rip), %rdx      # 0x8693
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x44e4(%rip), %rdx      # 0x86bb
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x44f0(%rip), %rdx      # 0x86e3
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x44fc(%rip), %rdx      # 0x870b
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x4508(%rip), %rdx      # 0x8733
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x4514(%rip), %rdx      # 0x875b
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x4520(%rip), %rdx      # 0x8783
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x41d9(%rip), %rdx      # 0x8458
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x4510(%rip), %rdx      # 0x87ab
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x451c(%rip), %rdx      # 0x87d3
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
leaq 0x4528(%rip), %rdx      # 0x87fb
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
addl $0x1, %esi
leaq 0x4531(%rip), %rdx      # 0x8823
movb $0x0, %al
callq 0x3360
movl -0xc(%rbp), %edi
movl %edi, %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
movl -0x10(%rbp), %esi
addl $0x2, %esi
leaq 0x4538(%rip), %rdx      # 0x8849
movb $0x0, %al
callq 0x3360
movl $0x0, -0x14(%rbp)
cmpl $0xf, -0x14(%rbp)
jge 0x454f
movl $0x0, -0x18(%rbp)
cmpl $0xf, -0x18(%rbp)
jge 0x453f
movq -0x20(%rbp), %rax
addq $0x38, %rax
movslq -0x14(%rbp), %rcx
imulq $0xf, %rcx, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x78, %eax
jne 0x4435
movq -0x20(%rbp), %rax
movl 0x28(%rax), %eax
cmpl -0x14(%rbp), %eax
jne 0x43c9
movq -0x20(%rbp), %rax
movl 0x2c(%rax), %eax
cmpl -0x18(%rbp), %eax
jne 0x43c9
movq 0x7c4b(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %eax, %eax
movl %eax, %edx
callq 0x3150
movl -0x14(%rbp), %edi
addl $0x3, %edi
movl -0x18(%rbp), %esi
shll %esi
addl $0x5, %esi
leaq 0x44ca(%rip), %rdx      # 0x886d
movl $0x58, %ecx
movb $0x0, %al
callq 0x3360
movq 0x7c12(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
jmp 0x4430
movq 0x7bf8(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %eax, %eax
movl %eax, %edx
callq 0x3150
movq -0x20(%rbp), %rax
movl -0x14(%rbp), %edi
addl $0x3, %edi
movl -0x18(%rbp), %esi
shll %esi
addl $0x5, %esi
addq $0x38, %rax
movslq -0x14(%rbp), %rcx
imulq $0xf, %rcx, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
leaq 0x445c(%rip), %rdx      # 0x886d
movb $0x0, %al
callq 0x3360
movq 0x7ba9(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x200, %esi            # imm = 0x200
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
jmp 0x452f
movq -0x20(%rbp), %rax
addq $0x38, %rax
movslq -0x14(%rbp), %rcx
imulq $0xf, %rcx, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x6f, %eax
jne 0x452d
movq -0x20(%rbp), %rax
movl 0x28(%rax), %eax
cmpl -0x14(%rbp), %eax
jne 0x44c4
movq -0x20(%rbp), %rax
movl 0x2c(%rax), %eax
cmpl -0x18(%rbp), %eax
jne 0x44c4
movq 0x7b50(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x500, %esi            # imm = 0x500
xorl %eax, %eax
movl %eax, %edx
callq 0x3150
movl -0x14(%rbp), %edi
addl $0x3, %edi
movl -0x18(%rbp), %esi
shll %esi
addl $0x5, %esi
leaq 0x43cf(%rip), %rdx      # 0x886d
movl $0x30, %ecx
movb $0x0, %al
callq 0x3360
movq 0x7b17(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x500, %esi            # imm = 0x500
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
jmp 0x452b
movq 0x7afd(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x300, %esi            # imm = 0x300
xorl %eax, %eax
movl %eax, %edx
callq 0x3150
movq -0x20(%rbp), %rax
movl -0x14(%rbp), %edi
addl $0x3, %edi
movl -0x18(%rbp), %esi
shll %esi
addl $0x5, %esi
addq $0x38, %rax
movslq -0x14(%rbp), %rcx
imulq $0xf, %rcx, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
leaq 0x4361(%rip), %rdx      # 0x886d
movb $0x0, %al
callq 0x3360
movq 0x7aae(%rip), %rax      # 0xbfc8
movq (%rax), %rdi
movl $0x300, %esi            # imm = 0x300
xorl %eax, %eax
movl %eax, %edx
callq 0x3340
jmp 0x452d
jmp 0x452f
jmp 0x4531
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x4330
jmp 0x4541
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x431f
movq -0x20(%rbp), %rcx
movl $0x16, %edi
movl $0x4, %esi
leaq 0x3e1f(%rip), %rdx      # 0x8383
movb $0x0, %al
callq 0x3360
movq -0x20(%rbp), %rax
movl 0x34(%rax), %edi
movl 0x34(%rax), %esi
shll %esi
subl $0x1, %esi
callq 0x31b0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)