// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r12
leaq 0x2925(%rip), %rdx      # 0x5440
xorl %edi, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x293b(%rip), %r14      # 0x5468
movl $0x1, %edi
xorl %esi, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x22b0
leaq 0x294b(%rip), %rdx      # 0x5490
movl $0x2, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2971(%rip), %rdx      # 0x54cb
movl $0x3, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2997(%rip), %rdx      # 0x5506
movl $0x4, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x29bd(%rip), %rdx      # 0x5541
movl $0x5, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x29e3(%rip), %rdx      # 0x557c
movl $0x6, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2a09(%rip), %rdx      # 0x55b7
movl $0x7, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2a2f(%rip), %rdx      # 0x55f2
movl $0x8, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2a55(%rip), %rdx      # 0x562d
movl $0x9, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2a7b(%rip), %rdx      # 0x5668
movl $0xa, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2aa1(%rip), %rdx      # 0x56a3
movl $0xb, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2ab4(%rip), %rdx      # 0x56cb
movl $0xc, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2ac7(%rip), %rdx      # 0x56f3
movl $0xd, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2ada(%rip), %rdx      # 0x571b
movl $0xe, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2aed(%rip), %rdx      # 0x5743
movl $0xf, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2b00(%rip), %rdx      # 0x576b
movl $0x10, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2b13(%rip), %rdx      # 0x5793
movl $0x11, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
movl $0x12, %edi
xorl %esi, %esi
movq %r14, %rdx
xorl %eax, %eax
callq 0x22b0
leaq 0x2b15(%rip), %rdx      # 0x57bb
movl $0x13, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2b28(%rip), %rdx      # 0x57e3
movl $0x14, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2b3b(%rip), %rdx      # 0x580b
movl $0x15, %edi
xorl %esi, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2b4e(%rip), %rdx      # 0x5833
movl $0x16, %edi
movl $0x1, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x2b5c(%rip), %rdx      # 0x5859
movl $0x17, %edi
movl $0x2, %esi
xorl %eax, %eax
callq 0x22b0
leaq 0x38(%r12), %r13
xorl %ebx, %ebx
movq %r12, (%rsp)
leal 0x3(%rbx), %ebp
movl $0x5, %r15d
xorl %r14d, %r14d
movzbl (%r13,%r14), %eax
cmpl $0x6f, %eax
je 0x2d7c
cmpl $0x78, %eax
jne 0x2e0f
movl 0x28(%r12), %eax
movq 0x628b(%rip), %rcx      # 0x8fd0
movq (%rcx), %rdi
cmpq %rax, %rbx
jne 0x2dbf
movl 0x2c(%r12), %eax
cmpq %rax, %r14
jne 0x2dbf
movl $0x400, %r12d           # imm = 0x400
movl $0x400, %esi            # imm = 0x400
xorl %edx, %edx
callq 0x2120
movl %ebp, %edi
movl %r15d, %esi
leaq 0x2b08(%rip), %rdx      # 0x587d
movl $0x58, %ecx
jmp 0x2df0
movl 0x28(%r12), %eax
movq 0x6248(%rip), %rcx      # 0x8fd0
movq (%rcx), %rdi
cmpq %rax, %rbx
jne 0x2dcc
movl 0x2c(%r12), %eax
cmpq %rax, %r14
jne 0x2dcc
movl $0x500, %r12d           # imm = 0x500
movl $0x500, %esi            # imm = 0x500
xorl %edx, %edx
callq 0x2120
movl %ebp, %edi
movl %r15d, %esi
leaq 0x2ac5(%rip), %rdx      # 0x587d
movl $0x30, %ecx
jmp 0x2df0
movl $0x200, %r12d           # imm = 0x200
movl $0x200, %esi            # imm = 0x200
jmp 0x2dd7
movl $0x300, %r12d           # imm = 0x300
movl $0x300, %esi            # imm = 0x300
xorl %edx, %edx
callq 0x2120
movsbl (%r13,%r14), %ecx
movl %ebp, %edi
movl %r15d, %esi
leaq 0x2a8d(%rip), %rdx      # 0x587d
xorl %eax, %eax
callq 0x22b0
movq 0x61d2(%rip), %rax      # 0x8fd0
movq (%rax), %rdi
movl %r12d, %esi
xorl %edx, %edx
callq 0x2290
movq (%rsp), %r12
incq %r14
addl $0x2, %r15d
cmpq $0xf, %r14
jne 0x2d25
incq %rbx
addq $0xf, %r13
cmpq $0xf, %rbx
jne 0x2d19
leaq 0x254b(%rip), %rdx      # 0x5383
movl $0x16, %edi
movl $0x4, %esi
movq %r12, %rcx
xorl %eax, %eax
callq 0x22b0
movl 0x34(%r12), %edi
leal -0x1(,%rdi,2), %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2170
nop