// File: /workspace/github_cpp_makefile_star2_O3/tewalds[P]morat/hex/agentmcts.cpp
// Function: Morat::Hex::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() == 9){
		move = Move(dict["move"]);
		exp = ExpPair(dict["exp"]);
		rave = ExpPair(dict["rave"]);
		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 $0xb8, %rsp
leaq 0x10(%rsp), %r15
movq %rsi, %r14
movq %rdi, %rbx
movq %r15, -0x10(%r15)
leaq 0x264fa(%rip), %rsi     # 0x332b2
leaq 0x264f5(%rip), %rdx     # 0x332b4
movq %rsp, %rdi
callq 0xb1dc
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2906b(%rip), %rsi     # 0x35e43
leaq 0x29065(%rip), %rdx     # 0x35e44
leaq 0x20(%rsp), %rdi
callq 0xb1dc
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rcx
movq %rsp, %rdx
movq %r14, %rsi
callq 0x2fafb
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xce0d
callq 0x52e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xce1b
callq 0x52e0
movq 0x58(%rsp), %r14
cmpq $0x9, %r14
jne 0xd080
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x28cc7(%rip), %rsi     # 0x35afe
leaq 0x28cc4(%rip), %rdx     # 0x35b02
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x11418
movzwl 0x20(%rsp), %eax
movw %ax, 0x24(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xce74
callq 0x52e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x25651(%rip), %rsi     # 0x324d2
leaq 0x2564d(%rip), %rdx     # 0x324d5
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
leaq 0xa8(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x98(%rsp), %rdi
callq 0xa930
leaq 0x20(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x114b2
vmovups 0x20(%rsp), %xmm0
vmovups %xmm0, 0x10(%rbx)
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
je 0xceed
callq 0x52e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xcefb
callq 0x52e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x286d1(%rip), %rsi     # 0x355d9
leaq 0x286ce(%rip), %rdx     # 0x355dd
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
leaq 0x88(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x78(%rsp), %rdi
callq 0xa930
leaq 0x20(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x114b2
vmovups 0x20(%rsp), %xmm0
vmovups %xmm0, (%rbx)
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0xcf6a
callq 0x52e0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xcf78
callq 0x52e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x25551(%rip), %rsi     # 0x324d6
leaq 0x2554e(%rip), %rdx     # 0x324da
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
movq %rax, %rdi
callq 0xaf9d
movw %ax, 0x20(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xcfb8
callq 0x52e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x25516(%rip), %rsi     # 0x324db
leaq 0x25516(%rip), %rdx     # 0x324e2
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
movq %rax, %rdi
callq 0xaf9d
movb %al, 0x22(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xcff7
callq 0x52e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x28927(%rip), %rsi     # 0x3592b
leaq 0x28925(%rip), %rdx     # 0x35930
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
movq %rax, %rdi
callq 0xaf9d
movb %al, 0x23(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd036
callq 0x52e0
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x254a0(%rip), %rsi     # 0x324e3
leaq 0x2549d(%rip), %rdx     # 0x324e7
callq 0xb1dc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x13f5e
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x11418
movzwl 0x20(%rsp), %eax
movw %ax, 0x26(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd080
callq 0x52e0
cmpq $0x9, %r14
leaq 0x40(%rsp), %rdi
sete %bl
callq 0x13554
movl %ebx, %eax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xd0cc
jmp 0xd0cc
jmp 0xd0cc
jmp 0xd0cc
movq 0x78(%rsp), %rdi
jmp 0xd0bb
jmp 0xd0cc
movq 0x98(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
je 0xd0e0
callq 0x52e0
jmp 0xd0e0
jmp 0xd0cc
movq %rax, %rbx
jmp 0xd0ee
jmp 0xd0dd
jmp 0xd0dd
jmp 0xd0dd
jmp 0xd0dd
jmp 0xd0dd
jmp 0xd0dd
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd0ee
callq 0x52e0
leaq 0x40(%rsp), %rdi
callq 0x13554
movq %rbx, %rdi
callq 0x5670
movq 0x20(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
je 0xd117
callq 0x52e0
jmp 0xd117
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xd0f8
callq 0x52e0
jmp 0xd0f8
movq %rax, %rbx
jmp 0xd0f8