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

	if(moves.size()){
		s += "path:\n";
		for(auto m : moves){
			if(node){
				node = find_child(node, m);
				s += node->to_s() + "\n";
			}
		}
	}

	if(node){
		s += "children:\n";
		for(auto & n : node->children)
			s += n.to_s() + "\n";
	}
	return s;
}

// Assembly:
subq $0x138, %rsp            # imm = 0x138
movq %rdx, 0x18(%rsp)
movq %rdi, 0x30(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0x130(%rsp)
movq %rsi, 0x128(%rsp)
movq %rdx, 0x120(%rsp)
movq 0x128(%rsp), %rax
movq %rax, 0x28(%rsp)
movb $0x0, 0x11f(%rsp)
leaq 0x11e(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x57b0
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rdx
leaq 0x2893c(%rip), %rsi     # 0x43825
callq 0x55d0
jmp 0x1aef0
leaq 0x11e(%rsp), %rdi
callq 0x5480
movq 0x28(%rsp), %rax
movq 0x18(%rsp), %rdi
addq $0xa8, %rax
movq %rax, 0x100(%rsp)
callq 0x15a00
cmpq $0x0, %rax
je 0x1b0e7
movq 0x30(%rsp), %rdi
leaq 0x297c5(%rip), %rsi     # 0x446f5
callq 0x53f0
jmp 0x1af37
movq 0x18(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0xf8(%rsp), %rdi
callq 0x14690
movq %rax, 0xf0(%rsp)
movq 0xf8(%rsp), %rdi
callq 0x14700
movq %rax, 0xe8(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x146c0
testb $0x1, %al
jne 0x1af8c
jmp 0x1b0e5
leaq 0xf0(%rsp), %rdi
callq 0x15660
movw (%rax), %ax
movw %ax, 0xe6(%rsp)
cmpq $0x0, 0x100(%rsp)
je 0x1b0d1
movq 0x28(%rsp), %rdi
movq 0x100(%rsp), %rsi
leaq 0xe6(%rsp), %rdx
callq 0x1ade0
movq %rax, 0x10(%rsp)
jmp 0x1afd4
movq 0x10(%rsp), %rax
movq %rax, 0x100(%rsp)
movq 0x100(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x17d60
jmp 0x1aff8
leaq 0x28825(%rip), %rdx     # 0x43824
leaq 0xc0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xaa40
jmp 0x1b016
movq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x5560
jmp 0x1b02a
leaq 0xc0(%rsp), %rdi
callq 0x5290
leaq 0xa0(%rsp), %rdi
callq 0x5290
jmp 0x1b0d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x11e(%rsp), %rdi
callq 0x5480
jmp 0x1b262
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x1b258
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x1b0bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x5290
leaq 0xa0(%rsp), %rdi
callq 0x5290
jmp 0x1b258
jmp 0x1b0d3
leaq 0xf0(%rsp), %rdi
callq 0x14aa0
jmp 0x1af6e
jmp 0x1b0e7
cmpq $0x0, 0x100(%rsp)
je 0x1b22f
movq 0x30(%rsp), %rdi
leaq 0x295fa(%rip), %rsi     # 0x446fc
callq 0x53f0
jmp 0x1b109
movq 0x100(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
callq 0x1d7b0
movq %rax, 0x8(%rsp)
jmp 0x1b131
movq 0x8(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x98(%rsp), %rdi
callq 0x1d800
movq %rax, (%rsp)
jmp 0x1b151
movq (%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x90(%rsp), %rax
cmpq 0x88(%rsp), %rax
je 0x1b22d
movq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rsi
leaq 0x40(%rsp), %rdi
callq 0x17d60
jmp 0x1b197
leaq 0x28686(%rip), %rdx     # 0x43824
leaq 0x60(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0xaa40
jmp 0x1b1af
movq 0x30(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x5560
jmp 0x1b1c0
leaq 0x60(%rsp), %rdi
callq 0x5290
leaq 0x40(%rsp), %rdi
callq 0x5290
movq 0x90(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x90(%rsp)
jmp 0x1b15d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
jmp 0x1b221
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x110(%rsp)
movl %eax, 0x10c(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x5290
leaq 0x40(%rsp), %rdi
callq 0x5290
jmp 0x1b258
jmp 0x1b22f
movb $0x1, 0x11f(%rsp)
testb $0x1, 0x11f(%rsp)
jne 0x1b24b
movq 0x30(%rsp), %rdi
callq 0x5290
movq 0x20(%rsp), %rax
addq $0x138, %rsp            # imm = 0x138
retq
movq 0x30(%rsp), %rdi
callq 0x5290
movq 0x110(%rsp), %rdi
callq 0x57a0
nop