// File: 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:
subq $0x2d8, %rsp            # imm = 0x2D8
movq %rsi, 0x98(%rsp)
movq %rdi, 0x2c8(%rsp)
movq %rsi, 0x2c0(%rsp)
movq 0x2c8(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0x267(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x5770
movq 0xa8(%rsp), %rdx
leaq 0x38a92(%rip), %rsi     # 0x4e0d5
leaq 0x268(%rsp), %rdi
callq 0x5590
jmp 0x15652
leaq 0x22f(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x5770
movq 0x90(%rsp), %rdx
leaq 0x3b261(%rip), %rsi     # 0x508d7
leaq 0x230(%rsp), %rdi
callq 0x5590
jmp 0x15685
movq 0x98(%rsp), %rsi
leaq 0x288(%rsp), %rdi
leaq 0x268(%rsp), %rdx
leaq 0x230(%rsp), %rcx
callq 0x48db0
jmp 0x156ac
leaq 0x230(%rsp), %rdi
callq 0x5260
leaq 0x22f(%rsp), %rdi
callq 0x5450
leaq 0x268(%rsp), %rdi
callq 0x5260
leaq 0x267(%rsp), %rdi
callq 0x5450
leaq 0x288(%rsp), %rdi
callq 0x1a5a0
cmpq $0x9, %rax
jne 0x15df6
leaq 0x207(%rsp), %rdi
movq %rdi, 0x88(%rsp)
callq 0x5770
movq 0x88(%rsp), %rdx
leaq 0x3ae77(%rip), %rsi     # 0x50592
leaq 0x208(%rsp), %rdi
callq 0x5590
jmp 0x1572a
leaq 0x288(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x80(%rsp)
jmp 0x15749
movq 0x80(%rsp), %rsi
leaq 0x22d(%rsp), %rdi
callq 0x1a5e0
jmp 0x15760
movq 0xa0(%rsp), %rax
movw 0x22d(%rsp), %cx
movw %cx, 0x24(%rax)
leaq 0x208(%rsp), %rdi
callq 0x5260
leaq 0x207(%rsp), %rdi
callq 0x5450
leaq 0x1af(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x5770
movq 0x78(%rsp), %rdx
leaq 0x37b46(%rip), %rsi     # 0x4d2f2
leaq 0x1b0(%rsp), %rdi
callq 0x5590
jmp 0x157bb
leaq 0x288(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x70(%rsp)
jmp 0x157d7
movq 0x70(%rsp), %rsi
leaq 0x1d0(%rsp), %rdi
callq 0x51b0
jmp 0x157eb
leaq 0x1f0(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
callq 0x1a6e0
jmp 0x15802
movq 0xa0(%rsp), %rax
vmovdqu 0x1f0(%rsp), %xmm0
vmovdqu %xmm0, 0x10(%rax)
leaq 0x1d0(%rsp), %rdi
callq 0x5260
leaq 0x1b0(%rsp), %rdi
callq 0x5260
leaq 0x1af(%rsp), %rdi
callq 0x5450
leaq 0x157(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x5770
movq 0x68(%rsp), %rdx
leaq 0x3a95c(%rip), %rsi     # 0x501b9
leaq 0x158(%rsp), %rdi
callq 0x5590
jmp 0x1586c
leaq 0x288(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x60(%rsp)
jmp 0x15888
movq 0x60(%rsp), %rsi
leaq 0x178(%rsp), %rdi
callq 0x51b0
jmp 0x1589c
leaq 0x198(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x1a6e0
jmp 0x158b3
movq 0xa0(%rsp), %rax
vmovdqu 0x198(%rsp), %xmm0
vmovdqu %xmm0, (%rax)
leaq 0x178(%rsp), %rdi
callq 0x5260
leaq 0x158(%rsp), %rdi
callq 0x5260
leaq 0x157(%rsp), %rdi
callq 0x5450
leaq 0x12f(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x5770
movq 0x58(%rsp), %rdx
leaq 0x379e9(%rip), %rsi     # 0x4d2f6
leaq 0x130(%rsp), %rdi
callq 0x5590
jmp 0x1591c
leaq 0x288(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x50(%rsp)
jmp 0x15938
movq 0x50(%rsp), %rdi
callq 0x10220
movl %eax, 0x4c(%rsp)
jmp 0x15948
movq 0xa0(%rsp), %rax
movl 0x4c(%rsp), %ecx
movw %cx, 0x20(%rax)
leaq 0x130(%rsp), %rdi
callq 0x5260
leaq 0x12f(%rsp), %rdi
callq 0x5450
leaq 0x107(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x5770
movq 0x40(%rsp), %rdx
leaq 0x3796b(%rip), %rsi     # 0x4d2fb
leaq 0x108(%rsp), %rdi
callq 0x5590
jmp 0x1599f
leaq 0x288(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x38(%rsp)
jmp 0x159bb
movq 0x38(%rsp), %rdi
callq 0x10220
movl %eax, 0x34(%rsp)
jmp 0x159cb
movl 0x34(%rsp), %eax
movb %al, 0x12d(%rsp)
leaq 0x12e(%rsp), %rdi
leaq 0x12d(%rsp), %rsi
callq 0x1a870
jmp 0x159ed
movq 0xa0(%rsp), %rax
movb 0x12e(%rsp), %cl
movb %cl, 0x22(%rax)
leaq 0x108(%rsp), %rdi
callq 0x5260
leaq 0x107(%rsp), %rdi
callq 0x5450
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x5770
movq 0x28(%rsp), %rdx
leaq 0x3aad4(%rip), %rsi     # 0x5050b
leaq 0xe0(%rsp), %rdi
callq 0x5590
jmp 0x15a46
leaq 0x288(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x20(%rsp)
jmp 0x15a62
movq 0x20(%rsp), %rdi
callq 0x10220
movl %eax, 0x1c(%rsp)
jmp 0x15a72
movq 0xa0(%rsp), %rax
movl 0x1c(%rsp), %ecx
movb %cl, 0x23(%rax)
leaq 0xe0(%rsp), %rdi
callq 0x5260
leaq 0xdf(%rsp), %rdi
callq 0x5450
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x5770
movq 0x10(%rsp), %rdx
leaq 0x3784a(%rip), %rsi     # 0x4d303
leaq 0xb8(%rsp), %rdi
callq 0x5590
jmp 0x15ac8
leaq 0x288(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x1a5b0
movq %rax, 0x8(%rsp)
jmp 0x15ae4
movq 0x8(%rsp), %rsi
leaq 0xdd(%rsp), %rdi
callq 0x1a5e0
jmp 0x15af8
movq 0xa0(%rsp), %rax
movw 0xdd(%rsp), %cx
movw %cx, 0x26(%rax)
leaq 0xb8(%rsp), %rdi
callq 0x5260
leaq 0xb7(%rsp), %rdi
callq 0x5450
movb $0x1, 0x2d7(%rsp)
movl $0x1, 0xb0(%rsp)
jmp 0x15e09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15ba5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15b8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x230(%rsp), %rdi
callq 0x5260
leaq 0x22f(%rsp), %rdi
callq 0x5450
leaq 0x268(%rsp), %rdi
callq 0x5260
leaq 0x267(%rsp), %rdi
callq 0x5450
jmp 0x15e34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15bee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x5260
leaq 0x207(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15c5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15c4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x1d0(%rsp), %rdi
callq 0x5260
leaq 0x1b0(%rsp), %rdi
callq 0x5260
leaq 0x1af(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15cc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x5260
leaq 0x158(%rsp), %rdi
callq 0x5260
leaq 0x157(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15d0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x130(%rsp), %rdi
callq 0x5260
leaq 0x12f(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15d58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x5260
leaq 0x107(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15da1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x5260
leaq 0xdf(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x15de7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x5260
leaq 0xb7(%rsp), %rdi
callq 0x5450
jmp 0x15e27
movb $0x0, 0x2d7(%rsp)
movl $0x1, 0xb0(%rsp)
leaq 0x288(%rsp), %rdi
callq 0x1a890
movb 0x2d7(%rsp), %al
andb $0x1, %al
addq $0x2d8, %rsp            # imm = 0x2D8
retq
leaq 0x288(%rsp), %rdi
callq 0x1a890
movq 0x258(%rsp), %rdi
callq 0x5760
nopw %cs:(%rax,%rax)