// File: /workspace/github_cpp_makefile_star2_O3/tewalds[P]pentagod/./gtp.h
// Function: GTPclient::GTPclient(_IO_FILE*, _IO_FILE*, _IO_FILE*)
GTPclient(FILE * i = stdin, FILE * o = stdout, FILE * l = NULL){
		in = i;
		out = o;
		logfile = l;
		longest_cmd = 0;
		running = false;

		newcallback("list_commands",    bind(&GTPclient::gtp_list_commands,    this, _1, false), "List the commands");
		newcallback("help",             bind(&GTPclient::gtp_list_commands,    this, _1, true),  "List the commands, with descriptions");
		newcallback("quit",             bind(&GTPclient::gtp_quit,             this, _1), "Quit the program");
		newcallback("exit",             bind(&GTPclient::gtp_quit,             this, _1), "Alias for quit");
		newcallback("protocol_version", bind(&GTPclient::gtp_protocol_version, this, _1), "Show the gtp protocol version");
		newcallback("logfile",          bind(&GTPclient::gtp_logfile,          this, _1), "Start logging the gtp commands to this file, disabled in server mode");
		newcallback("lognote",          bind(&GTPclient::gtp_lognote,          this, _1), "Add a comment to the logfile");
		newcallback("logend",           bind(&GTPclient::gtp_logend,           this, _1), "Stop logging");
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x228, %rsp            # imm = 0x228
vxorps %xmm0, %xmm0, %xmm0
leaq 0x218(%rsp), %r15
movq %rdi, %rbx
movq $0x0, 0x28(%rdi)
vmovups %xmm0, 0x18(%rdi)
movq %rsi, (%rdi)
movq %rdx, 0x8(%rdi)
movq %rcx, 0x10(%rdi)
movl $0x0, 0x30(%rdi)
movb $0x0, 0x34(%rdi)
movq %r15, -0x10(%r15)
leaq 0x20bbc(%rip), %rsi     # 0x2885e
leaq 0x20bc2(%rip), %rdx     # 0x2886b
leaq 0x208(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x20, %edi
callq 0x42e0
leaq 0xb2e(%rip), %r14       # 0x87fe
leaq 0x1f8(%rsp), %rbp
leaq 0x11e7(%rip), %r12      # 0x8ec6
leaq 0x11fc(%rip), %r13      # 0x8ee2
movq %rax, 0x8(%rsp)
movq %r14, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r12, 0x20(%rsp)
movq %rbx, 0x18(%rax)
movq %r13, 0x18(%rsp)
movq %rbp, -0x10(%rbp)
leaq 0x20b59(%rip), %rsi     # 0x2886c
leaq 0x20b63(%rip), %rdx     # 0x2887d
leaq 0x1e8(%rsp), %rdi
callq 0xa810
leaq 0x208(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x1e8(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0x1e8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7d56
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x7d6f
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0x7d81
callq 0x42b0
leaq 0x1d8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x205b4(%rip), %rsi     # 0x28348
leaq 0x205b1(%rip), %rdx     # 0x2834c
leaq 0x1c8(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x20, %edi
callq 0x42e0
movq %rax, 0x8(%rsp)
movq %r12, 0x20(%rsp)
leaq 0x1b8(%rsp), %r12
movq %r14, (%rax)
movq $0x0, 0x8(%rax)
movb $0x1, 0x10(%rax)
movq %rbx, 0x18(%rax)
movq %r13, 0x18(%rsp)
movq %r12, -0x10(%r12)
leaq 0x20a8d(%rip), %rsi     # 0x2887e
leaq 0x20aaa(%rip), %rdx     # 0x288a2
leaq 0x1a8(%rsp), %rdi
callq 0xa810
leaq 0x1c8(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x1a8(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x7e34
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x7e4d
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x1c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7e5f
callq 0x42b0
leaq 0x198(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x20a50(%rip), %rsi     # 0x288c3
leaq 0x20a4d(%rip), %rdx     # 0x288c7
leaq 0x188(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x18, %edi
callq 0x42e0
leaq 0xb2d(%rip), %r13       # 0x89ce
leaq 0x178(%rsp), %rbp
leaq 0x1174(%rip), %r14      # 0x9024
leaq 0x1185(%rip), %r15      # 0x903c
movq %rax, 0x8(%rsp)
movq %r13, (%rax)
movq $0x0, 0x8(%rax)
movq %r14, 0x20(%rsp)
movq %rbx, 0x10(%rax)
movq %r15, 0x18(%rsp)
movq %rbp, -0x10(%rbp)
leaq 0x209c3(%rip), %rsi     # 0x288a3
leaq 0x209cc(%rip), %rdx     # 0x288b3
leaq 0x168(%rsp), %rdi
callq 0xa810
leaq 0x188(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x168(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0x168(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7f23
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x7f3c
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x7f4e
callq 0x42b0
leaq 0x158(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x20952(%rip), %rsi     # 0x288b4
leaq 0x2094f(%rip), %rdx     # 0x288b8
leaq 0x148(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x18, %edi
callq 0x42e0
movq %r13, (%rax)
leaq 0x138(%rsp), %r13
movq $0x0, 0x8(%rax)
movq %rax, 0x8(%rsp)
movq %r14, 0x20(%rsp)
movq %rbx, 0x10(%rax)
movq %r15, 0x18(%rsp)
movq %r13, -0x10(%r13)
leaq 0x208ff(%rip), %rsi     # 0x288b9
leaq 0x20906(%rip), %rdx     # 0x288c7
leaq 0x128(%rsp), %rdi
callq 0xa810
leaq 0x148(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x128(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0x128(%rsp), %rdi
cmpq %r13, %rdi
je 0x7ffd
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x8016
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x148(%rsp), %rdi
cmpq %r12, %rdi
je 0x8028
callq 0x42b0
leaq 0x118(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2088c(%rip), %rsi     # 0x288c8
leaq 0x20895(%rip), %rdx     # 0x288d8
leaq 0x108(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x18, %edi
callq 0x42e0
leaq 0xf8(%rsp), %r13
leaq 0x9ce(%rip), %rcx       # 0x8a40
movq %rax, 0x8(%rsp)
movq %r14, 0x20(%rsp)
movq %r15, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movq %rbx, 0x10(%rax)
movq %r13, -0x10(%r13)
leaq 0x2083e(%rip), %rsi     # 0x288d9
leaq 0x20854(%rip), %rdx     # 0x288f6
leaq 0xe8(%rsp), %rdi
callq 0xa810
leaq 0x108(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0xe8(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0xe8(%rsp), %rdi
cmpq %r13, %rdi
je 0x80de
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x80f7
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x108(%rsp), %rdi
cmpq %r12, %rdi
je 0x8109
callq 0x42b0
leaq 0xd8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2083c(%rip), %rsi     # 0x28959
leaq 0x2083c(%rip), %rdx     # 0x28960
leaq 0xc8(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x18, %edi
callq 0x42e0
leaq 0xb8(%rsp), %r13
leaq 0x95f(%rip), %rcx       # 0x8ab2
movq %rax, 0x8(%rsp)
movq %r14, 0x20(%rsp)
movq %r15, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movq %rbx, 0x10(%rax)
movq %r13, -0x10(%r13)
leaq 0x2077b(%rip), %rsi     # 0x288f7
leaq 0x207b8(%rip), %rdx     # 0x2893b
leaq 0xa8(%rsp), %rdi
callq 0xa810
leaq 0xc8(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0xa8(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x81bf
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x81d8
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x81ea
callq 0x42b0
leaq 0x98(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2073e(%rip), %rsi     # 0x2893c
leaq 0x2073e(%rip), %rdx     # 0x28943
leaq 0x88(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x18, %edi
callq 0x42e0
leaq 0x78(%rsp), %r13
leaq 0x9c1(%rip), %rcx       # 0x8bf2
movq %rax, 0x8(%rsp)
movq %r14, 0x20(%rsp)
movq %r15, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movq %rbx, 0x10(%rax)
movq %r13, -0x10(%r13)
leaq 0x206ea(%rip), %rsi     # 0x28944
leaq 0x206ff(%rip), %rdx     # 0x28960
leaq 0x68(%rsp), %rdi
callq 0xa810
leaq 0x88(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x68(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x8294
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x82ad
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x88(%rsp), %rdi
cmpq %r12, %rdi
je 0x82bf
callq 0x42b0
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x20691(%rip), %rsi     # 0x28961
leaq 0x20690(%rip), %rdx     # 0x28967
leaq 0x48(%rsp), %rdi
callq 0xa810
movq $0x0, 0x10(%rsp)
movl $0x18, %edi
callq 0x42e0
leaq 0xa03(%rip), %rcx       # 0x8cfe
movq %rax, 0x8(%rsp)
movq %r14, 0x20(%rsp)
movq %r15, 0x18(%rsp)
leaq 0x38(%rsp), %r15
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movq %rbx, 0x10(%rax)
movq %r15, -0x10(%r15)
leaq 0x2063f(%rip), %rsi     # 0x28968
leaq 0x20644(%rip), %rdx     # 0x28974
leaq 0x28(%rsp), %rdi
callq 0xa810
leaq 0x48(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %rbx, %rdi
callq 0x866a
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x8360
callq 0x42b0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x8379
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x8388
callq 0x42b0
addq $0x228, %rsp            # imm = 0x228
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8614
jmp 0x8614
jmp 0x8614
jmp 0x8614
jmp 0x8614
jmp 0x8614
jmp 0x8614
jmp 0x8614
movq 0x28(%rsp), %rdi
movq %rax, %r14
cmpq %r15, %rdi
je 0x83d9
callq 0x42b0
jmp 0x83d9
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x83fc
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x83fc
jmp 0x8614
movq %rax, %r14
movq 0x48(%rsp), %rdi
jmp 0x8586
jmp 0x8633
movq 0x68(%rsp), %rdi
movq %rax, %r14
cmpq %r13, %rdi
je 0x8422
callq 0x42b0
jmp 0x8422
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x8445
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x8445
jmp 0x8614
movq %rax, %r14
movq 0x88(%rsp), %rdi
jmp 0x8586
jmp 0x8633
movq 0xa8(%rsp), %rdi
movq %rax, %r14
cmpq %r13, %rdi
je 0x8471
callq 0x42b0
jmp 0x8471
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x8494
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x8494
jmp 0x8614
movq %rax, %r14
movq 0xc8(%rsp), %rdi
jmp 0x8586
jmp 0x8633
movq 0xe8(%rsp), %rdi
movq %rax, %r14
cmpq %r13, %rdi
je 0x84c0
callq 0x42b0
jmp 0x84c0
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x84e3
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x84e3
jmp 0x8614
movq %rax, %r14
movq 0x108(%rsp), %rdi
jmp 0x8586
jmp 0x8633
movq 0x128(%rsp), %rdi
movq %rax, %r14
cmpq %r13, %rdi
je 0x850f
callq 0x42b0
jmp 0x850f
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x8532
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x8532
jmp 0x8614
movq %rax, %r14
movq 0x148(%rsp), %rdi
jmp 0x8586
jmp 0x8633
movq 0x168(%rsp), %rdi
movq %rax, %r14
cmpq %rbp, %rdi
je 0x855b
callq 0x42b0
jmp 0x855b
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x857e
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x857e
jmp 0x8614
movq %rax, %r14
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
jne 0x862c
jmp 0x8636
jmp 0x8633
movq 0x1a8(%rsp), %rdi
movq %rax, %r14
cmpq %r12, %rdi
je 0x85b3
callq 0x42b0
jmp 0x85b3
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x85d3
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x85d3
jmp 0x8614
movq %rax, %r14
movq 0x1c8(%rsp), %rdi
jmp 0x8627
jmp 0x8633
movq 0x1e8(%rsp), %rdi
movq %rax, %r14
cmpq %rbp, %rdi
je 0x85f9
callq 0x42b0
jmp 0x85f9
movq %rax, %r14
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x861f
leaq 0x8(%rsp), %rdi
movl $0x3, %edx
movq %rdi, %rsi
callq *%rax
jmp 0x861f
movq %rax, %rdi
callq 0x8dae
movq %rax, %r14
movq 0x208(%rsp), %rdi
cmpq %r15, %rdi
je 0x8636
callq 0x42b0
jmp 0x8636
movq %rax, %r14
addq $0x18, %rbx
movq %rbx, %rdi
callq 0x8d86
movq %r14, %rdi
callq 0x45b0