// File: kobanium[P]Ray/src/common/Message.cpp
// Function: PrintStringNext(game_info_t const*)
void
PrintStringNext( const game_info_t *game )
{
  if (!debug_message) return;

  std::cerr << "    ";
  for (int i = 1, y = board_start; y <= board_end; y++, i++) {
    std::cerr << "   " << gogui_x[i];
  }
  std::cerr << std::endl;

  for (int i = 1, y = board_start; y <= board_end; y++, i++) {
    std::cerr << std::setw(3) << (pure_board_size + 1 - i);
    for (int x = board_start; x <= board_end; x++) {
      const int pos = x + y * board_size;
      if (game->string[game->string_id[pos]].flag) {
        if (game->string_next[pos] != STRING_END) {
          std::cerr << std::setw(3) << game->string_next[pos];
        } else {
          std::cerr << " END";
        }
      } else {
        std::cerr << "   -";
      }
    }
    std::cerr << std::endl;
  }
  std::cerr << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
testb $0x1, 0xc659d(%rip)     # 0xe7580
jne 0x20fea
jmp 0x211e6
movq 0xc5fff(%rip), %rdi     # 0xe6ff0
leaq 0x8b44b(%rip), %rsi     # 0xac443
callq 0x7530
movl $0x1, -0xc(%rbp)
leaq 0xc6a45(%rip), %rax     # 0xe7a50
movl (%rax), %eax
movl %eax, -0x10(%rbp)
movl -0x10(%rbp), %eax
leaq 0xc6a3a(%rip), %rcx     # 0xe7a54
cmpl (%rcx), %eax
jg 0x2105c
movq 0xc5fcb(%rip), %rdi     # 0xe6ff0
leaq 0x8b418(%rip), %rsi     # 0xac444
callq 0x7530
movq %rax, %rdi
movslq -0xc(%rbp), %rcx
leaq 0x8b361(%rip), %rax     # 0xac3a0
movsbl (%rax,%rcx), %esi
callq 0x7660
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x21010
movq 0xc5f8d(%rip), %rdi     # 0xe6ff0
movq 0xc5efe(%rip), %rsi     # 0xe6f68
callq 0x75b0
movl $0x1, -0x14(%rbp)
leaq 0xc69d3(%rip), %rax     # 0xe7a50
movl (%rax), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
leaq 0xc69c8(%rip), %rcx     # 0xe7a54
cmpl (%rcx), %eax
jg 0x211d3
movl $0x3, %edi
callq 0x25760
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %esi
movq 0xc5f45(%rip), %rdi     # 0xe6ff0
callq 0x7640
movq %rax, %rdi
leaq 0xc698a(%rip), %rax     # 0xe7a44
movl (%rax), %esi
addl $0x1, %esi
subl -0x14(%rbp), %esi
callq 0x7980
leaq 0xc6982(%rip), %rax     # 0xe7a50
movl (%rax), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
leaq 0xc6977(%rip), %rcx     # 0xe7a54
cmpl (%rcx), %eax
jg 0x211a9
movl -0x20(%rbp), %eax
movl -0x18(%rbp), %ecx
leaq 0xc695a(%rip), %rdx     # 0xe7a4c
imull (%rdx), %ecx
addl %ecx, %eax
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rax
addq $0x9620, %rax           # imm = 0x9620
movq -0x8(%rbp), %rcx
movslq -0x24(%rbp), %rdx
movslq 0x95720(%rcx,%rdx,4), %rcx
imulq $0x7c8, %rcx, %rcx      # imm = 0x7C8
addq %rcx, %rax
testb $0x1, 0x7c4(%rax)
je 0x21186
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
cmpl $0x2b7, 0x96200(%rax,%rcx,4) # imm = 0x2B7
je 0x21171
movl $0x3, %edi
callq 0x25760
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %esi
movq 0xc5e9d(%rip), %rdi     # 0xe6ff0
callq 0x7640
movq %rax, %rdi
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
movl 0x96200(%rax,%rcx,4), %esi
callq 0x7980
jmp 0x21184
movq 0xc5e78(%rip), %rdi     # 0xe6ff0
leaq 0x8af7e(%rip), %rsi     # 0xac0fd
callq 0x7530
jmp 0x21199
movq 0xc5e63(%rip), %rdi     # 0xe6ff0
leaq 0x8af64(%rip), %rsi     # 0xac0f8
callq 0x7530
jmp 0x2119b
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x210d3
movq 0xc5e40(%rip), %rdi     # 0xe6ff0
movq 0xc5db1(%rip), %rsi     # 0xe6f68
callq 0x75b0
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x21082
movq 0xc5e16(%rip), %rdi     # 0xe6ff0
movq 0xc5d87(%rip), %rsi     # 0xe6f68
callq 0x75b0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)