// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1d960(%rip), %rsi     # 0x2d17c
leaq 0x1d95b(%rip), %rdx     # 0x2d17e
movq %rsp, %rdi
callq 0xaffc
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x217fd(%rip), %rsi     # 0x31039
leaq 0x217f7(%rip), %rdx     # 0x3103a
leaq 0x20(%rsp), %rdi
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
leaq 0x20(%rsp), %rcx
movq %r14, %rsi
callq 0x2adaf
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xf871
callq 0x5310
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf87f
callq 0x5310
movq 0x58(%rsp), %r14
cmpq $0x8, %r14
jne 0xfa5d
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x21466(%rip), %rsi     # 0x30d01
leaq 0x21463(%rip), %rdx     # 0x30d05
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x15588
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x12f98
movzwl 0x20(%rsp), %eax
movw %ax, 0x14(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf8d8
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1ddc4(%rip), %rsi     # 0x2d6a9
leaq 0x1ddc0(%rip), %rdx     # 0x2d6ac
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x15588
leaq 0x88(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x78(%rsp), %rdi
callq 0x9ef8
leaq 0x20(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x13066
vmovups 0x20(%rsp), %xmm0
vmovups %xmm0, (%rbx)
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0xf947
callq 0x5310
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf955
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1dd4b(%rip), %rsi     # 0x2d6ad
leaq 0x1dd48(%rip), %rdx     # 0x2d6b1
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x15588
movq %rax, %rdi
callq 0x13160
movw %ax, 0x10(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf995
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1dd10(%rip), %rsi     # 0x2d6b2
leaq 0x1dd10(%rip), %rdx     # 0x2d6b9
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x15588
movq %rax, %rdi
callq 0x13160
movb %al, 0x12(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xf9d4
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1dcd9(%rip), %rsi     # 0x2d6ba
leaq 0x1dcd7(%rip), %rdx     # 0x2d6bf
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x15588
movq %rax, %rdi
callq 0x13160
movb %al, 0x13(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xfa13
callq 0x5310
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1dca0(%rip), %rsi     # 0x2d6c0
leaq 0x1dc9d(%rip), %rdx     # 0x2d6c4
callq 0xaffc
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x15588
leaq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x12f98
movzwl 0x20(%rsp), %eax
movw %ax, 0x16(%rbx)
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xfa5d
callq 0x5310
cmpq $0x8, %r14
sete %bl
leaq 0x40(%rsp), %rdi
callq 0x14fa6
movl %ebx, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0xfa9d
jmp 0xfa9d
jmp 0xfa9d
jmp 0xfa9d
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0xfaaf
callq 0x5310
jmp 0xfaaf
jmp 0xfa9d
movq %rax, %rbx
jmp 0xfabd
jmp 0xfaac
jmp 0xfaac
jmp 0xfaac
jmp 0xfaac
jmp 0xfaac
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xfabd
callq 0x5310
leaq 0x40(%rsp), %rdi
callq 0x14fa6
movq %rbx, %rdi
callq 0x56c0
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0xfae6
callq 0x5310
jmp 0xfae6
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xfac7
callq 0x5310
jmp 0xfac7
movq %rax, %rbx
jmp 0xfac7
nop