// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0xd0, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x19785(%rip), %rsi     # 0x2410e
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5110
leaq 0x1bfa4(%rip), %rsi     # 0x26943
leaq 0x38(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq %r14, %rsi
callq 0x21179
leaq 0x38(%rsp), %rdi
callq 0x5150
leaq 0x10(%rsp), %rdi
callq 0x5150
movq 0x70(%rsp), %r15
cmpq $0x9, %r15
jne 0xabf4
leaq 0x1bc0f(%rip), %rsi     # 0x265fe
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
leaq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0xd26c
movzwl 0x38(%rsp), %eax
leaq 0x10(%rsp), %rdi
movw %ax, 0x24(%rbx)
callq 0x5150
leaq 0x188fa(%rip), %rsi     # 0x2332e
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
leaq 0xb0(%rsp), %rdi
movq %rax, %rsi
callq 0x5490
leaq 0x38(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0xd306
vmovups 0x38(%rsp), %xmm0
leaq 0xb0(%rsp), %rdi
vmovups %xmm0, 0x10(%rbx)
callq 0x5150
leaq 0x10(%rsp), %rdi
callq 0x5150
leaq 0x1b68d(%rip), %rsi     # 0x2612a
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
leaq 0x90(%rsp), %rdi
movq %rax, %rsi
callq 0x5490
leaq 0x38(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xd306
leaq 0x38(%rsp), %r14
leaq 0x90(%rsp), %rdi
vmovups (%r14), %xmm0
vmovups %xmm0, (%rbx)
callq 0x5150
leaq 0x10(%rsp), %rdi
callq 0x5150
leaq 0x18829(%rip), %rsi     # 0x23332
leaq 0x10(%rsp), %rdi
movq %r14, %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
movq %rax, %rdi
callq 0x94a7
leaq 0x10(%rsp), %rdi
movw %ax, 0x20(%rbx)
callq 0x5150
leaq 0x187f5(%rip), %rsi     # 0x23337
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
movq %rax, %rdi
callq 0x94a7
leaq 0x10(%rsp), %rdi
movb %al, 0x22(%rbx)
callq 0x5150
leaq 0x1b900(%rip), %rsi     # 0x2647c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
movq %rax, %rdi
callq 0x94a7
leaq 0x10(%rsp), %rdi
movb %al, 0x23(%rbx)
callq 0x5150
leaq 0x18789(%rip), %rsi     # 0x2333f
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5110
leaq 0x58(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xf636
leaq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0xd26c
movzwl 0x38(%rsp), %eax
leaq 0x10(%rsp), %rdi
movw %ax, 0x26(%rbx)
callq 0x5150
cmpq $0x9, %r15
leaq 0x58(%rsp), %rdi
sete %bl
callq 0xeb22
movl %ebx, %eax
addq $0xd0, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0xac3f
jmp 0xac3f
jmp 0xac3f
jmp 0xac3f
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0xac36
jmp 0xac3f
leaq 0xb0(%rsp), %rdi
movq %rax, %rbx
callq 0x5150
jmp 0xac53
jmp 0xac3f
movq %rax, %rbx
jmp 0xac5d
jmp 0xac50
jmp 0xac50
jmp 0xac50
jmp 0xac50
jmp 0xac50
jmp 0xac50
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x5150
leaq 0x58(%rsp), %rdi
callq 0xeb22
movq %rbx, %rdi
callq 0x5650
leaq 0x38(%rsp), %rdi
movq %rax, %rbx
callq 0x5150
jmp 0xac81
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x5150
jmp 0xac67
movq %rax, %rbx
jmp 0xac67