// File: /workspace/github_cpp_makefile_star2_O3/tewalds[P]morat/pentago/agentmcts.cpp
// Function: Morat::Pentago::AgentMCTS::Node::from_s(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool AgentMCTS::Node::from_s(std::string s) {
	auto dict = parse_dict(s, ", ", " ");

	if(dict.size() == 8){
		move = Move(dict["move"]);
		exp = ExpPair(dict["exp"]);
		know = from_str<int>(dict["know"]);
		outcome = Outcome(from_str<int>(dict["outcome"]));
		proofdepth = from_str<int>(dict["depth"]);
		bestmove = Move(dict["best"]);
		// ignore children
		return true;
	}
	return false;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x98, %rsp
leaq 0x10(%rsp), %r15
movq %rsi, %r14
movq %rdi, %rbx
movq %r15, -0x10(%r15)
leaq 0x1da2a(%rip), %rsi     # 0x2d17c
leaq 0x1da25(%rip), %rdx     # 0x2d17e
movq %rsp, %rdi
callq 0xb026
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x218c7(%rip), %rsi     # 0x31039
leaq 0x218c1(%rip), %rdx     # 0x3103a
leaq 0x20(%rsp), %rdi
callq 0xb026
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rcx
movq %rsp, %rdx
movq %r14, %rsi
callq 0x2a923
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xf7a7
callq 0x5310
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf7b5
callq 0x5310
movq 0x58(%rsp), %r14
cmpq $0x8, %r14
jne 0xf993
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x21530(%rip), %rsi     # 0x30d01
leaq 0x2152d(%rip), %rdx     # 0x30d05
callq 0xb026
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x153d6
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x12e4a
movzwl 0x20(%rsp), %eax
movw %ax, 0x14(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf80e
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1de8e(%rip), %rsi     # 0x2d6a9
leaq 0x1de8a(%rip), %rdx     # 0x2d6ac
callq 0xb026
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x153d6
leaq 0x88(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x78(%rsp), %rdi
callq 0x9f30
leaq 0x20(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x12f18
vmovups 0x20(%rsp), %xmm0
vmovups %xmm0, (%rbx)
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0xf87d
callq 0x5310
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf88b
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1de15(%rip), %rsi     # 0x2d6ad
leaq 0x1de12(%rip), %rdx     # 0x2d6b1
callq 0xb026
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x153d6
movq %rax, %rdi
callq 0x13012
movw %ax, 0x10(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf8cb
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1ddda(%rip), %rsi     # 0x2d6b2
leaq 0x1ddda(%rip), %rdx     # 0x2d6b9
callq 0xb026
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x153d6
movq %rax, %rdi
callq 0x13012
movb %al, 0x12(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf90a
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1dda3(%rip), %rsi     # 0x2d6ba
leaq 0x1dda1(%rip), %rdx     # 0x2d6bf
callq 0xb026
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x153d6
movq %rax, %rdi
callq 0x13012
movb %al, 0x13(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf949
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1dd6a(%rip), %rsi     # 0x2d6c0
leaq 0x1dd67(%rip), %rdx     # 0x2d6c4
callq 0xb026
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x153d6
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x12e4a
movzwl 0x20(%rsp), %eax
movw %ax, 0x16(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf993
callq 0x5310
cmpq $0x8, %r14
leaq 0x40(%rsp), %rdi
sete %bl
callq 0x14e04
movl %ebx, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xf9d3
jmp 0xf9d3
jmp 0xf9d3
jmp 0xf9d3
movq 0x78(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
je 0xf9e5
callq 0x5310
jmp 0xf9e5
jmp 0xf9d3
movq %rax, %rbx
jmp 0xf9f3
jmp 0xf9e2
jmp 0xf9e2
jmp 0xf9e2
jmp 0xf9e2
jmp 0xf9e2
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf9f3
callq 0x5310
leaq 0x40(%rsp), %rdi
callq 0x14e04
movq %rbx, %rdi
callq 0x56c0
movq 0x20(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
je 0xfa1c
callq 0x5310
jmp 0xfa1c
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf9fd
callq 0x5310
jmp 0xf9fd
movq %rax, %rbx
jmp 0xf9fd
nop