// File: /workspace/github_cpp_makefile_star2_O2/kobanium[P]Ray/src/common/Message.cpp
// Function: PrintBoard(game_info_t const*)
void
PrintBoard( const game_info_t *game )
{
  const char stone[S_MAX] = { '+', 'B', 'W', '#' };
  std::ostringstream oss;

  if (!debug_message) return;

  oss << "Prisoner(Black) : " << game->prisoner[S_BLACK] << "\n";
  oss << "Prisoner(White) : " << game->prisoner[S_WHITE] << "\n";
  oss << "Move : " << game->moves << "\n";

  oss << "    ";
  for (int i = 1, y = board_start; y <= board_end; y++, i++) {
    oss << " " << gogui_x[i];
  }
  oss << "\n";

  oss << "   +";
  for (int i = 0; i < pure_board_size * 2 + 1; i++) {
    oss << "-";
  }
  oss << "+" << "\n";

  for (int i = 1, y = board_start; y <= board_end; y++, i++) {
    oss << std::setw(2) << (pure_board_size + 1 - i) << ":|";
    for (int x = board_start; x <= board_end; x++) {
      oss << " " << stone[static_cast<int>(game->board[POS(x, y)])];
    }
    oss << " |" << "\n";
  }

  oss << "   +";
  for (int i = 1; i <= pure_board_size * 2 + 1; i++) {
    oss << "-";
  }
  oss << "+";

  std::cerr << oss.str() << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdi, 0x10(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x6530
cmpb $0x1, 0x520c5(%rip)     # 0x61430
jne 0xf648
leaq 0x34cd2(%rip), %rsi     # 0x4404a
leaq 0x40(%rsp), %rdi
callq 0x63c0
movq 0x10(%rsp), %rcx
movl 0x43b8(%rcx), %esi
movq %rax, %rdi
callq 0x6700
leaq 0x38239(%rip), %rsi     # 0x475d5
movq %rax, %rdi
callq 0x63c0
leaq 0x34cb2(%rip), %rsi     # 0x4405d
leaq 0x40(%rsp), %rdi
callq 0x63c0
movq 0x10(%rsp), %rcx
movl 0x43bc(%rcx), %esi
movq %rax, %rdi
callq 0x6700
leaq 0x38206(%rip), %rsi     # 0x475d5
movq %rax, %rdi
callq 0x63c0
leaq 0x34c92(%rip), %rsi     # 0x44070
leaq 0x40(%rsp), %rdi
callq 0x63c0
movq 0x10(%rsp), %rcx
movl 0x43b0(%rcx), %esi
movq %rax, %rdi
callq 0x6700
leaq 0x381d3(%rip), %rsi     # 0x475d5
movq %rax, %rdi
callq 0x63c0
leaq 0x3503a(%rip), %rsi     # 0x4444b
leaq 0x40(%rsp), %rdi
callq 0x63c0
leaq 0x5249e(%rip), %rax     # 0x618c0
movl (%rax), %ebp
leaq 0x34f76(%rip), %r13     # 0x443a1
leaq 0x3501c(%rip), %r14     # 0x4444e
leaq 0x40(%rsp), %r15
leaq 0x52486(%rip), %rax     # 0x618c4
cmpl (%rax), %ebp
jg 0xf461
movq %r15, %rdi
movq %r14, %rsi
callq 0x63c0
movsbl (%r13), %esi
movq %rax, %rdi
callq 0x6480
incl %ebp
incq %r13
jmp 0xf437
leaq 0x3816d(%rip), %rsi     # 0x475d5
leaq 0x40(%rsp), %rdi
callq 0x63c0
leaq 0x34bff(%rip), %rsi     # 0x44078
leaq 0x40(%rsp), %rdi
callq 0x63c0
xorl %ebx, %ebx
leaq 0x52428(%rip), %r12     # 0x618b4
leaq 0x34c68(%rip), %r14     # 0x440fb
leaq 0x40(%rsp), %r15
movl (%r12), %eax
addl %eax, %eax
cmpl %eax, %ebx
jg 0xf4b1
movq %r15, %rdi
movq %r14, %rsi
callq 0x63c0
incl %ebx
jmp 0xf498
leaq 0x34bc3(%rip), %rsi     # 0x4407b
leaq 0x40(%rsp), %rdi
callq 0x63c0
leaq 0x3810c(%rip), %rsi     # 0x475d5
movq %rax, %rdi
callq 0x63c0
leaq 0x523e8(%rip), %rax     # 0x618c0
movl (%rax), %ecx
pushq $0x1
popq %rdx
leaq 0x40(%rsp), %r14
leaq 0x34f65(%rip), %rbp     # 0x4444e
leaq 0x523cc(%rip), %r13     # 0x618bc
leaq 0x34b4d(%rip), %r15     # 0x44044
leaq 0x523c6(%rip), %rax     # 0x618c4
movl %ecx, 0xc(%rsp)
cmpl (%rax), %ecx
jg 0xf5c1
movq 0x40(%rsp), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x50(%rsp,%rax)
leaq 0x52391(%rip), %rax     # 0x618b4
movl (%rax), %esi
movl %edx, 0x1c(%rsp)
subl %edx, %esi
incl %esi
movq %r14, %rdi
callq 0x6700
movq %rax, %rdi
leaq 0x34b3e(%rip), %rsi     # 0x4407d
callq 0x63c0
leaq 0x52375(%rip), %rax     # 0x618c0
movslq (%rax), %r12
movslq 0xc(%rsp), %rbx
leaq 0x5236a(%rip), %rax     # 0x618c4
cmpl (%rax), %r12d
jg 0xf592
movq %r14, %rdi
movq %rbp, %rsi
callq 0x63c0
movslq (%r13), %rcx
imulq %rbx, %rcx
addq 0x10(%rsp), %rcx
movsbq 0x43f8(%r12,%rcx), %rcx
movsbl (%rcx,%r15), %esi
movq %rax, %rdi
callq 0x6480
incq %r12
jmp 0xf553
movq %r14, %rdi
leaq 0x34ae4(%rip), %rsi     # 0x44080
callq 0x63c0
movq %rax, %rdi
leaq 0x3802a(%rip), %rsi     # 0x475d5
callq 0x63c0
movl 0xc(%rsp), %ecx
incl %ecx
movl 0x1c(%rsp), %edx
incl %edx
jmp 0xf4f7
leaq 0x34ab0(%rip), %rsi     # 0x44078
leaq 0x40(%rsp), %rdi
callq 0x63c0
pushq $0x1
popq %rbp
leaq 0x34b1f(%rip), %rbx     # 0x440fb
leaq 0x40(%rsp), %r14
leaq 0x522cc(%rip), %r15     # 0x618b4
movl (%r15), %eax
leal 0x1(,%rax,2), %eax
cmpl %eax, %ebp
jg 0xf605
movq %r14, %rdi
movq %rbx, %rsi
callq 0x63c0
incl %ebp
jmp 0xf5e8
leaq 0x34a6f(%rip), %rsi     # 0x4407b
leaq 0x40(%rsp), %rdi
callq 0x63c0
leaq 0x48(%rsp), %rsi
leaq 0x20(%rsp), %rdi
callq 0x6640
movq 0x519c4(%rip), %rdi     # 0x60ff0
leaq 0x20(%rsp), %rsi
callq 0x6350
movq %rax, %rdi
callq 0x6190
leaq 0x20(%rsp), %rdi
callq 0x6838
leaq 0x40(%rsp), %rdi
callq 0x60a0
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xf67f
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x6838
jmp 0xf682
jmp 0xf67f
jmp 0xf67f
jmp 0xf67f
jmp 0xf67f
jmp 0xf67f
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x60a0
movq %rbx, %rdi
callq 0x6740