// File: 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:
subq $0x268, %rsp            # imm = 0x268
movq %rsi, 0x80(%rsp)
movq %rdi, 0x258(%rsp)
movq %rsi, 0x250(%rsp)
movq 0x258(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x1f7(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x57b0
movq 0x90(%rsp), %rdx
leaq 0x2bd61(%rip), %rsi     # 0x44144
leaq 0x1f8(%rsp), %rdi
callq 0x55d0
jmp 0x183f2
leaq 0x1bf(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x57b0
movq 0x78(%rsp), %rdx
leaq 0x2fa79(%rip), %rsi     # 0x47e89
leaq 0x1c0(%rsp), %rdi
callq 0x55d0
jmp 0x1841f
movq 0x80(%rsp), %rsi
leaq 0x218(%rsp), %rdi
leaq 0x1f8(%rsp), %rdx
leaq 0x1c0(%rsp), %rcx
callq 0x40500
jmp 0x18446
leaq 0x1c0(%rsp), %rdi
callq 0x5290
leaq 0x1bf(%rsp), %rdi
callq 0x5480
leaq 0x1f8(%rsp), %rdi
callq 0x5290
leaq 0x1f7(%rsp), %rdi
callq 0x5480
leaq 0x218(%rsp), %rdi
callq 0x1bcd0
cmpq $0x8, %rax
jne 0x18a65
leaq 0x197(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x57b0
movq 0x70(%rsp), %rdx
leaq 0x2f6a2(%rip), %rsi     # 0x47b51
leaq 0x198(%rsp), %rdi
callq 0x55d0
jmp 0x184be
leaq 0x218(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x1bce0
movq %rax, 0x68(%rsp)
jmp 0x184da
movq 0x68(%rsp), %rsi
leaq 0x1bd(%rsp), %rdi
callq 0x1bd10
jmp 0x184ee
movq 0x88(%rsp), %rax
movw 0x1bd(%rsp), %cx
movw %cx, 0x14(%rax)
leaq 0x198(%rsp), %rdi
callq 0x5290
leaq 0x197(%rsp), %rdi
callq 0x5480
leaq 0x13f(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x57b0
movq 0x60(%rsp), %rdx
leaq 0x2c0bb(%rip), %rsi     # 0x445f5
leaq 0x140(%rsp), %rdi
callq 0x55d0
jmp 0x18549
leaq 0x218(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x1bce0
movq %rax, 0x58(%rsp)
jmp 0x18565
movq 0x58(%rsp), %rsi
leaq 0x160(%rsp), %rdi
callq 0x51d0
jmp 0x18579
leaq 0x180(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x1bed0
jmp 0x18590
movq 0x88(%rsp), %rax
vmovdqu 0x180(%rsp), %xmm0
vmovdqu %xmm0, (%rax)
leaq 0x160(%rsp), %rdi
callq 0x5290
leaq 0x140(%rsp), %rdi
callq 0x5290
leaq 0x13f(%rsp), %rdi
callq 0x5480
leaq 0x117(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x57b0
movq 0x50(%rsp), %rdx
leaq 0x2c00f(%rip), %rsi     # 0x445f9
leaq 0x118(%rsp), %rdi
callq 0x55d0
jmp 0x185f9
leaq 0x218(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x1bce0
movq %rax, 0x48(%rsp)
jmp 0x18615
movq 0x48(%rsp), %rdi
callq 0x1c060
movl %eax, 0x44(%rsp)
jmp 0x18625
movq 0x88(%rsp), %rax
movl 0x44(%rsp), %ecx
movw %cx, 0x10(%rax)
leaq 0x118(%rsp), %rdi
callq 0x5290
leaq 0x117(%rsp), %rdi
callq 0x5480
leaq 0xef(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x57b0
movq 0x38(%rsp), %rdx
leaq 0x2bf91(%rip), %rsi     # 0x445fe
leaq 0xf0(%rsp), %rdi
callq 0x55d0
jmp 0x1867c
leaq 0x218(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x1bce0
movq %rax, 0x30(%rsp)
jmp 0x18698
movq 0x30(%rsp), %rdi
callq 0x1c060
movl %eax, 0x2c(%rsp)
jmp 0x186a8
movl 0x2c(%rsp), %eax
movb %al, 0x115(%rsp)
leaq 0x116(%rsp), %rdi
leaq 0x115(%rsp), %rsi
callq 0x14160
jmp 0x186ca
movq 0x88(%rsp), %rax
movb 0x116(%rsp), %cl
movb %cl, 0x12(%rax)
leaq 0xf0(%rsp), %rdi
callq 0x5290
leaq 0xef(%rsp), %rdi
callq 0x5480
leaq 0xc7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x57b0
movq 0x20(%rsp), %rdx
leaq 0x2bef2(%rip), %rsi     # 0x44606
leaq 0xc8(%rsp), %rdi
callq 0x55d0
jmp 0x18723
leaq 0x218(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1bce0
movq %rax, 0x18(%rsp)
jmp 0x1873f
movq 0x18(%rsp), %rdi
callq 0x1c060
movl %eax, 0x14(%rsp)
jmp 0x1874f
movq 0x88(%rsp), %rax
movl 0x14(%rsp), %ecx
movb %cl, 0x13(%rax)
leaq 0xc8(%rsp), %rdi
callq 0x5290
leaq 0xc7(%rsp), %rdi
callq 0x5480
leaq 0x9f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x57b0
movq 0x8(%rsp), %rdx
leaq 0x2be76(%rip), %rsi     # 0x4460c
leaq 0xa0(%rsp), %rdi
callq 0x55d0
jmp 0x187a5
leaq 0x218(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x1bce0
movq %rax, (%rsp)
jmp 0x187c0
movq (%rsp), %rsi
leaq 0xc5(%rsp), %rdi
callq 0x1bd10
jmp 0x187d3
movq 0x88(%rsp), %rax
movw 0xc5(%rsp), %cx
movw %cx, 0x16(%rax)
leaq 0xa0(%rsp), %rdi
callq 0x5290
leaq 0x9f(%rsp), %rdi
callq 0x5480
movb $0x1, 0x267(%rsp)
movl $0x1, 0x98(%rsp)
jmp 0x18a78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x18880
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x18866
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0x1c0(%rsp), %rdi
callq 0x5290
leaq 0x1bf(%rsp), %rdi
callq 0x5480
leaq 0x1f8(%rsp), %rdi
callq 0x5290
leaq 0x1f7(%rsp), %rdi
callq 0x5480
jmp 0x18aa3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x188c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x5290
leaq 0x197(%rsp), %rdi
callq 0x5480
jmp 0x18a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x18935
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x18928
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0x160(%rsp), %rdi
callq 0x5290
leaq 0x140(%rsp), %rdi
callq 0x5290
leaq 0x13f(%rsp), %rdi
callq 0x5480
jmp 0x18a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x1897e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x5290
leaq 0x117(%rsp), %rdi
callq 0x5480
jmp 0x18a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x189c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x5290
leaq 0xef(%rsp), %rdi
callq 0x5480
jmp 0x18a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x18a10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0xc8(%rsp), %rdi
callq 0x5290
leaq 0xc7(%rsp), %rdi
callq 0x5480
jmp 0x18a96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
jmp 0x18a56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1e8(%rsp)
movl %eax, 0x1e4(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x5290
leaq 0x9f(%rsp), %rdi
callq 0x5480
jmp 0x18a96
movb $0x0, 0x267(%rsp)
movl $0x1, 0x98(%rsp)
leaq 0x218(%rsp), %rdi
callq 0x1c0e0
movb 0x267(%rsp), %al
andb $0x1, %al
addq $0x268, %rsp            # imm = 0x268
retq
leaq 0x218(%rsp), %rdi
callq 0x1c0e0
movq 0x1e8(%rsp), %rdi
callq 0x57a0