// File: tewalds[P]pentagod/agentmcts.cpp
// Function: AgentMCTS::move_stats[abi:cxx11](std::vector<Move, std::allocator<Move>>) const
string AgentMCTS::move_stats(vector<Move> moves) const {
	string s = "";
	const Node * node = & root;

	for(vector<Move>::iterator m = moves.begin(); node && m != moves.end(); ++m)
		node = find_child(node, *m);

	if(node){
		Node * child = node->children.begin(),
		     * childend = node->children.end();
		for( ; child != childend; child++)
			if(child->move != M_NONE)
				s += child->to_s() + "\n";
	}
	return s;
}

// Assembly:
subq $0xf8, %rsp
movq %rdx, 0x30(%rsp)
movq %rdi, 0x48(%rsp)
movq %rdi, %rax
movq %rax, 0x38(%rsp)
movq %rdi, 0xf0(%rsp)
movq %rsi, 0xe8(%rsp)
movq %rdx, 0xe0(%rsp)
movq 0xe8(%rsp), %rax
movq %rax, 0x40(%rsp)
movb $0x0, 0xdf(%rsp)
leaq 0xde(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x4670
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rdx
leaq 0x11798(%rip), %rsi     # 0x3dab1
callq 0x44d0
jmp 0x2c320
leaq 0xde(%rsp), %rdi
callq 0x43f0
movq 0x40(%rsp), %rax
movq 0x30(%rsp), %rdi
addq $0xa8, %rax
movq %rax, 0xc0(%rsp)
callq 0x176e0
movq %rax, 0xb8(%rsp)
xorl %eax, %eax
cmpq $0x0, 0xc0(%rsp)
movb %al, 0x2f(%rsp)
je 0x2c38e
movq 0x30(%rsp), %rdi
callq 0x17560
movq %rax, 0xb0(%rsp)
leaq 0xb8(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x2d4b0
movb %al, 0x2f(%rsp)
movb 0x2f(%rsp), %al
testb $0x1, %al
jne 0x2c39b
jmp 0x2c42c
movq 0xc0(%rsp), %rax
movq %rax, 0x18(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x2de50
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rax, %rdx
callq 0x2c210
movq %rax, 0x20(%rsp)
jmp 0x2c3ce
movq 0x20(%rsp), %rax
movq %rax, 0xc0(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x2d500
jmp 0x2c352
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
leaq 0xde(%rsp), %rdi
callq 0x43f0
jmp 0x2c5b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x2c5ab
cmpq $0x0, 0xc0(%rsp)
je 0x2c582
movq 0xc0(%rsp), %rdi
addq $0x20, %rdi
callq 0x2dc40
movq %rax, 0x10(%rsp)
jmp 0x2c453
movq 0x10(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0xc0(%rsp), %rdi
addq $0x20, %rdi
callq 0x2dc90
movq %rax, 0x8(%rsp)
jmp 0x2c478
movq 0x8(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0xa8(%rsp), %rax
cmpq 0xa0(%rsp), %rax
je 0x2c580
movq 0xa8(%rsp), %rdi
addq $0x14, %rdi
movl $0xfffffffd, 0x9c(%rsp) # imm = 0xFFFFFFFD
leaq 0x9c(%rsp), %rsi
callq 0x2de60
movb %al, 0x7(%rsp)
jmp 0x2c4c5
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x2c4d2
jmp 0x2c565
movq 0xa8(%rsp), %rsi
leaq 0x58(%rsp), %rdi
callq 0x2de90
jmp 0x2c4e6
leaq 0x115c3(%rip), %rdx     # 0x3dab0
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x93b0
jmp 0x2c4fe
movq 0x48(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x4490
jmp 0x2c50f
leaq 0x78(%rsp), %rdi
callq 0x4210
leaq 0x58(%rsp), %rdi
callq 0x4210
jmp 0x2c565
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x2c559
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x4210
leaq 0x58(%rsp), %rdi
callq 0x4210
jmp 0x2c5ab
jmp 0x2c567
movq 0xa8(%rsp), %rax
addq $0x28, %rax
movq %rax, 0xa8(%rsp)
jmp 0x2c485
jmp 0x2c582
movb $0x1, 0xdf(%rsp)
testb $0x1, 0xdf(%rsp)
jne 0x2c59e
movq 0x48(%rsp), %rdi
callq 0x4210
movq 0x38(%rsp), %rax
addq $0xf8, %rsp
retq
movq 0x48(%rsp), %rdi
callq 0x4210
movq 0xd0(%rsp), %rdi
callq 0x4660
nopw %cs:(%rax,%rax)
nopl (%rax)