// File: tewalds[P]pentagod/agentab.cpp
// Function: AgentAB::move_stats[abi:cxx11](std::vector<Move, std::allocator<Move>>) const
string AgentAB::move_stats(vector<Move> moves) const {
	string s = "";

	Board b = rootboard;
	for(vector<Move>::iterator m = moves.begin(); m != moves.end(); ++m)
		b.move(*m);

	for(MoveIterator move(b); !move.done(); ++move){
		s += "move: " + move->to_s() + ", ";
		if(const Node * n = tt_get(move.board())) {
			s += n->to_s() + "\n";
		} else {
			s += "unknown\n";
		}
	}
	return s;
}

// Assembly:
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdx, 0x28(%rsp)
movq %rdi, 0x40(%rsp)
movq %rdi, %rax
movq %rax, 0x30(%rsp)
movq %rdi, 0x1b0(%rsp)
movq %rsi, 0x1a8(%rsp)
movq %rdx, 0x1a0(%rsp)
movq 0x1a8(%rsp), %rax
movq %rax, 0x38(%rsp)
movb $0x0, 0x19f(%rsp)
leaq 0x19e(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x4670
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rdx
leaq 0x2ad8(%rip), %rsi      # 0x3dab1
callq 0x44d0
jmp 0x3afe0
leaq 0x19e(%rsp), %rdi
callq 0x43f0
movq 0x38(%rsp), %rsi
addq $0x10, %rsi
leaq 0x160(%rsp), %rdi
movl $0x28, %edx
callq 0x4300
movq 0x28(%rsp), %rdi
callq 0x176e0
movq %rax, 0x158(%rsp)
movq 0x28(%rsp), %rdi
callq 0x17560
movq %rax, 0x150(%rsp)
leaq 0x158(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0x2d4b0
testb $0x1, %al
jne 0x3b047
jmp 0x3b0c3
leaq 0x158(%rsp), %rdi
callq 0x2de50
movl (%rax), %eax
movl %eax, 0x14c(%rsp)
movl 0x14c(%rsp), %esi
leaq 0x160(%rsp), %rdi
callq 0xd040
jmp 0x3b073
jmp 0x3b075
leaq 0x158(%rsp), %rdi
callq 0x2d500
jmp 0x3b01a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
leaq 0x19e(%rsp), %rdi
callq 0x43f0
jmp 0x3b381
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0x3b377
leaq 0xf8(%rsp), %rdi
leaq 0x160(%rsp), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x15b10
jmp 0x3b0df
jmp 0x3b0e1
leaq 0xf8(%rsp), %rdi
callq 0x15c80
movb %al, 0x27(%rsp)
jmp 0x3b0f4
movb 0x27(%rsp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3b129
leaq 0xf8(%rsp), %rdi
callq 0x15e30
jmp 0x3b34e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0x3b33f
leaq 0xf8(%rsp), %rdi
callq 0x15ca0
movq %rax, 0x18(%rsp)
jmp 0x3b13d
movq 0x18(%rsp), %rsi
leaq 0x98(%rsp), %rdi
xorl %edx, %edx
callq 0xdec0
jmp 0x3b153
leaq 0x6895(%rip), %rsi      # 0x419ef
leaq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rdx
callq 0xe5f0
jmp 0x3b171
leaq 0x67ec(%rip), %rdx      # 0x41964
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x93b0
jmp 0x3b18f
movq 0x40(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x4490
jmp 0x3b1a3
leaq 0xd8(%rsp), %rdi
callq 0x4210
leaq 0xb8(%rsp), %rdi
callq 0x4210
leaq 0x98(%rsp), %rdi
callq 0x4210
leaq 0xf8(%rsp), %rdi
callq 0x32d50
movq %rax, 0x10(%rsp)
jmp 0x3b1de
movq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdi
callq 0x3aee0
movq %rax, 0x8(%rsp)
jmp 0x3b1f4
movq 0x8(%rsp), %rax
movq %rax, 0x90(%rsp)
cmpq $0x0, 0x90(%rsp)
je 0x3b314
movq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdi
movl $0x8, %edx
callq 0x3bad0
jmp 0x3b229
leaq 0x2880(%rip), %rdx      # 0x3dab0
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x93b0
jmp 0x3b241
movq 0x40(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x4490
jmp 0x3b252
leaq 0x70(%rsp), %rdi
callq 0x4210
leaq 0x50(%rsp), %rdi
callq 0x4210
jmp 0x3b329
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0x3b2c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0x3b2b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
leaq 0xd8(%rsp), %rdi
callq 0x4210
leaq 0xb8(%rsp), %rdi
callq 0x4210
leaq 0x98(%rsp), %rdi
callq 0x4210
jmp 0x3b33f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
jmp 0x3b308
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x190(%rsp)
movl %eax, 0x18c(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x4210
leaq 0x50(%rsp), %rdi
callq 0x4210
jmp 0x3b33f
movq 0x40(%rsp), %rdi
leaq 0x66d6(%rip), %rsi      # 0x419f6
callq 0x4370
jmp 0x3b327
jmp 0x3b329
jmp 0x3b32b
leaq 0xf8(%rsp), %rdi
callq 0x15cb0
jmp 0x3b33a
jmp 0x3b0e1
leaq 0xf8(%rsp), %rdi
callq 0x15e30
jmp 0x3b377
movb $0x1, 0x19f(%rsp)
testb $0x1, 0x19f(%rsp)
jne 0x3b36a
movq 0x40(%rsp), %rdi
callq 0x4210
movq 0x30(%rsp), %rax
addq $0x1b8, %rsp            # imm = 0x1B8
retq
movq 0x40(%rsp), %rdi
callq 0x4210
movq 0x190(%rsp), %rdi
callq 0x4660
nop