// File: /workspace/github_cpp_makefile_star2_O3/tewalds[P]morat/pentago/agentmcts.cpp
// Function: Morat::Pentago::AgentMCTS::search(double, unsigned long, int)
void AgentMCTS::search(double time, uint64_t max_runs, int verbose){
	Side to_play = rootboard.to_play();

	if(rootboard.outcome() >= Outcome::DRAW || (time <= 0 && max_runs == 0))
		return;

	Time starttime;

	pool.pause();

	if(runs)
		logerr("Pondered " + to_str(runs) + " runs\n");

	runs = 0;
	maxruns = max_runs;
	pool.reset();

	//let them run!
	pool.resume();

	pool.wait_pause(time);

	double time_used = Time() - starttime;


	if(verbose){
		DepthStats gamelen, treelen;
		double times[4] = {0,0,0,0};
		for(auto & t : pool){
			gamelen += t->gamelen;
			treelen += t->treelen;

			for(int a = 0; a < 4; a++)
				times[a] += t->times[a];
		}

		logerr("Finished:    " + to_str(runs) + " runs in " + to_str(time_used*1000, 0) + " msec: " + to_str(runs/time_used, 0) + " Games/s\n");
		if(runs > 0){
			logerr("Game length: " + gamelen.to_s() + "\n");
			logerr("Tree depth:  " + treelen.to_s() + "\n");
			if(profile)
				logerr("Times:       " + to_str(times[0], 3) + ", " + to_str(times[1], 3) + ", " + to_str(times[2], 3) + ", " + to_str(times[3], 3) + "\n");
		}

		if(root.outcome != Outcome::UNKNOWN)
			logerr("Solved as a " + root.outcome.to_s_rel(to_play) + "\n");

		std::string pvstr;
		for(auto m : get_pv())
			pvstr += " " + m.to_s();
		logerr("PV:         " + pvstr + "\n");

		if(verbose >= 3 && !root.children.empty())
			logerr("Move stats:\n" + move_stats(vecmove()));
	}

	pool.reset();
	runs = 0;


	if(ponder && root.outcome < Outcome::DRAW)
		pool.resume();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movb 0x99(%rdi), %bpl
movb 0x9a(%rdi), %al
leaq 0x2234e(%rip), %rcx     # 0x31da5
movl %edx, %ebx
movq %rsi, %r15
movq %rdi, %r13
cmpb (%rcx), %al
jne 0xfa82
leaq 0x80(%r13), %rdi
vmovsd %xmm0, 0x48(%rsp)
callq 0xe2a8
vmovsd 0x48(%rsp), %xmm0
movb %al, 0x9a(%r13)
leaq 0x22320(%rip), %r12     # 0x31da9
cmpb (%r12), %al
jge 0xfb85
vxorpd %xmm1, %xmm1, %xmm1
vucomisd %xmm0, %xmm1
setae %al
testq %r15, %r15
sete %cl
testb %cl, %al
jne 0xfb85
leaq 0xc0(%rsp), %r14
vmovsd %xmm0, 0x48(%rsp)
movl %ebx, 0xbc(%rsp)
xorl %esi, %esi
movq %r14, %rdi
callq 0x5600
vcvtsi2sdq (%r14), %xmm2, %xmm0
vmovsd %xmm0, 0x160(%rsp)
vcvtsi2sdq 0x8(%r14), %xmm2, %xmm0
leaq 0x14a8(%r13), %r14
movq %r14, %rdi
vmovsd %xmm0, 0x178(%rsp)
callq 0x13092
movq 0xd8(%r13), %rsi
testq %rsi, %rsi
jne 0xfb97
movq $0x0, 0xd8(%r13)
movq %r14, %rdi
movq %r15, 0xe0(%r13)
callq 0x13106
movq %r14, %rdi
callq 0x1317c
vmovsd 0x48(%rsp), %xmm0
movq %r14, %rdi
callq 0x131c0
leaq 0xc0(%rsp), %rdi
xorl %esi, %esi
xorl %ebx, %ebx
callq 0x5600
cmpl $0x0, 0xbc(%rsp)
jne 0xfbf2
movq %r14, %rdi
callq 0x13106
movq $0x0, 0xd8(%r13)
cmpb $0x1, 0x38(%r13)
jne 0xfb85
movb 0xba(%r13), %al
cmpb (%r12), %al
jge 0xfb85
movq %r14, %rdi
callq 0x1317c
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, 0x50(%rsp)
leaq 0x140(%rsp), %r14
movq %r14, %rdi
callq 0xd33e
leaq 0x1db12(%rip), %rcx     # 0x2d6c5
movl $0x9, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0xd0(%rsp), %r14
movq %rax, %rcx
addq $0x10, %rcx
movq %r14, -0x10(%r14)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xfd97
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r14)
jmp 0xfdaa
vcvtsi2sdq 0xc0(%rsp), %xmm2, %xmm0
movl $0x3b9aca00, %eax       # imm = 0x3B9ACA00
movl %ebx, 0x148(%rsp)
vxorpd %xmm2, %xmm2, %xmm2
movq %rax, 0x140(%rsp)
vmovsd %xmm0, 0x48(%rsp)
vcvtsi2sdq 0xc8(%rsp), %xmm3, %xmm0
movl %ebx, 0xc8(%rsp)
movq %rax, 0xc0(%rsp)
vmovsd %xmm0, 0x170(%rsp)
vxorpd %xmm0, %xmm0, %xmm0
vmovupd %xmm0, 0xd0(%rsp)
vmovupd %xmm0, 0x150(%rsp)
movq 0x14b0(%r13), %rax
movq 0x14b8(%r13), %rcx
cmpq %rcx, %rax
je 0xfd31
movl $0x3b9aca00, %esi       # imm = 0x3B9ACA00
movl $0x3b9aca00, %r9d       # imm = 0x3B9ACA00
vxorpd %xmm1, %xmm1, %xmm1
xorl %edx, %edx
xorl %r8d, %r8d
xorl %edi, %edi
xorl %r10d, %r10d
movq (%rax), %r11
movl 0xa0(%r11), %ebx
cmpl %ebx, %esi
jbe 0xfc99
movl %ebx, %esi
movl %ebx, 0xc0(%rsp)
movl 0xa4(%r11), %ebx
cmpl %ebx, %r8d
jae 0xfcaf
movl %ebx, %r8d
movl %ebx, 0xc4(%rsp)
movl 0x80(%r11), %ebx
cmpl %ebx, %r9d
jbe 0xfcc5
movl %ebx, %r9d
movl %ebx, 0x140(%rsp)
movl 0x84(%r11), %ebx
cmpl %ebx, %r10d
jae 0xfcdb
movl %ebx, %r10d
movl %ebx, 0x144(%rsp)
vaddpd 0xc0(%r11), %ymm2, %ymm2
vpaddq 0xb0(%r11), %xmm0, %xmm0
vpaddq 0x90(%r11), %xmm1, %xmm1
addl 0xa8(%r11), %edx
addl 0x88(%r11), %edi
addq $0x8, %rax
cmpq %rcx, %rax
jne 0xfc82
movl %edx, 0xc8(%rsp)
movl %edi, 0x148(%rsp)
vmovdqu %xmm0, 0xd0(%rsp)
vmovdqu %xmm1, 0x150(%rsp)
movq 0xd8(%r13), %rsi
movq %r14, 0x50(%rsp)
leaq 0x120(%rsp), %r14
vmovupd %ymm2, 0x2c0(%rsp)
movq %r14, %rdi
vzeroupper
callq 0xd33e
leaq 0x1d42e(%rip), %rcx     # 0x2d18e
movl $0xd, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x88(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xfe01
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xfe11
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
movq 0x8(%rax), %rdx
leaq 0xc0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1d8ff(%rip), %rsi     # 0x2d6cf
callq 0x5720
leaq 0x2b0(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xfea2
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xfeb5
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
movq 0x50(%rsp), %r14
movq 0x8(%rax), %rdx
leaq 0x78(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1d89d(%rip), %rsi     # 0x2d6d6
callq 0x5720
vmovsd 0x178(%rsp), %xmm0
vmovsd 0x170(%rsp), %xmm1
leaq 0xa8(%rsp), %r12
movq %rax, %rcx
addq $0x10, %rcx
vdivsd 0x1c1a1(%rip), %xmm0, %xmm0 # 0x2c008
vdivsd 0x1c199(%rip), %xmm1, %xmm1 # 0x2c008
movq %r12, -0x10(%r12)
movq (%rax), %rdx
vaddsd 0x160(%rsp), %xmm0, %xmm0
vaddsd 0x48(%rsp), %xmm1, %xmm1
vsubsd %xmm0, %xmm1, %xmm1
cmpq %rcx, %rdx
jne 0xff2f
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r12)
jmp 0xff42
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2a8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2d101(%rip), %rax     # 0x3cfd8
movq 0x2a0(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x2a0(%rsp), %rdi
cmpq %rbx, %rdi
je 0xfef9
callq 0x5310
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
je 0xff0b
callq 0x5310
leaq 0x150(%rsp), %rax
movq 0x50(%rsp), %r14
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfb07
callq 0x5310
jmp 0xfb07
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
vmulsd 0x1d1f6(%rip), %xmm1, %xmm0 # 0x2d140
movq 0x8(%rax), %rdx
vmovsd %xmm1, 0x48(%rsp)
movq %rdx, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
callq 0x2a510
movq 0xa0(%rsp), %r8
movq 0xe8(%rsp), %rdx
movq 0x98(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r12, %rcx
je 0xffa8
movq 0xa8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xffd4
leaq 0xf0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xffcf
movq 0xf0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xffe3
leaq 0x98(%rsp), %rdi
callq 0x50e0
jmp 0xfff4
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x68(%rsp), %rdx
leaq 0x10(%rax), %rcx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
cmpq %rcx, %rsi
jne 0x10013
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rdx)
jmp 0x10020
movq %rsi, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1d163(%rip), %rsi     # 0x2d1a7
leaq 0x58(%rsp), %rdi
callq 0x5720
vmovsd 0x48(%rsp), %xmm1
leaq 0x38(%rsp), %r15
movq %rax, %rcx
addq $0x10, %rcx
movq %r15, -0x10(%r15)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10077
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r15)
jmp 0x10084
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
vcvtusi2sdq 0xd8(%r13), %xmm3, %xmm0
vdivsd %xmm1, %xmm0, %xmm0
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
callq 0x2a510
movq 0x30(%rsp), %r8
movq 0x108(%rsp), %rdx
movq 0x28(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r15, %rcx
je 0x100db
movq 0x38(%rsp), %rdi
movq 0x100(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x10107
leaq 0x110(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x10102
movq 0x110(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x10113
leaq 0x28(%rsp), %rdi
callq 0x50e0
jmp 0x10124
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x18(%rsp), %rdx
leaq 0x10(%rax), %rcx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
cmpq %rcx, %rsi
jne 0x10143
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rdx)
jmp 0x10150
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1d56c(%rip), %rsi     # 0x2d6e0
leaq 0x8(%rsp), %rdi
callq 0x5720
leaq 0x290(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x101a3
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0x101b6
movq %rdx, 0x280(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x290(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x288(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2ce00(%rip), %rax     # 0x3cfd8
movq 0x280(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x280(%rsp), %rdi
cmpq %rbx, %rdi
je 0x101fa
callq 0x5310
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1020d
callq 0x5310
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10223
callq 0x5310
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x10232
callq 0x5310
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10245
callq 0x5310
leaq 0xf0(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x1025b
callq 0x5310
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
je 0x1026d
callq 0x5310
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %r13, 0x48(%rsp)
cmpq %rax, %rdi
je 0x10289
callq 0x5310
leaq 0x130(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x1029f
callq 0x5310
movq 0x48(%rsp), %rdx
cmpq $0x0, 0xd8(%rdx)
je 0x10afa
leaq 0x28(%rsp), %r14
leaq 0xc0(%rsp), %rsi
movq %r14, %rdi
callq 0x132e0
leaq 0x1d41c(%rip), %rcx     # 0x2d6ea
movl $0xd, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x18(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10303
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0x10310
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1c50f(%rip), %rsi     # 0x2c842
callq 0x5720
leaq 0x270(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x1035d
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0x10370
movq %rdx, 0x260(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x270(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x268(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2cc46(%rip), %rax     # 0x3cfd8
movq 0x260(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x260(%rsp), %rdi
cmpq %rbx, %rdi
je 0x103b4
callq 0x5310
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x103c8
callq 0x5310
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x103dc
callq 0x5310
leaq 0x28(%rsp), %r14
leaq 0x140(%rsp), %rsi
movq %r14, %rdi
callq 0x132e0
leaq 0x1d300(%rip), %rcx     # 0x2d6f8
movl $0xd, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x18(%rsp), %rsi
movq 0x50(%rsp), %r14
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10432
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0x1043f
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1c3e0(%rip), %rsi     # 0x2c842
callq 0x5720
leaq 0x250(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x1048c
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0x1049f
movq %rdx, 0x240(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x250(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x248(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2cb17(%rip), %rax     # 0x3cfd8
movq 0x240(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x240(%rsp), %rdi
cmpq %rbx, %rdi
je 0x104e3
callq 0x5310
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x104f7
callq 0x5310
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1050b
callq 0x5310
movq 0x48(%rsp), %rdx
cmpb $0x1, 0x48(%rdx)
jne 0x10afa
leaq 0x100(%rsp), %r14
movl $0x3, %esi
vmovups 0x2c0(%rsp), %ymm0
movq %r14, %rdi
vzeroupper
callq 0x2a510
leaq 0x1d1c4(%rip), %rcx     # 0x2d706
movl $0xd, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
movq %r15, 0xe0(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10576
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r15)
jmp 0x10589
movq %rdx, 0xe0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xf0(%rsp)
movq 0x50(%rsp), %r14
movq 0x8(%rax), %rdx
leaq 0xe0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1cbc8(%rip), %rsi     # 0x2d17c
callq 0x5720
vmovupd 0x2c0(%rsp), %ymm1
movq %r13, 0x120(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x105e5
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r13)
jmp 0x105f8
movq %rdx, 0x120(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x130(%rsp)
movq 0x8(%rax), %rdx
vshufpd $0x1, %xmm1, %xmm1, %xmm0 # xmm0 = xmm1[1,0]
movq %rdx, 0x128(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1c0(%rsp), %rdi
movl $0x3, %esi
vzeroupper
callq 0x2a510
movq 0x128(%rsp), %r8
movq 0x1c8(%rsp), %rdx
movq 0x120(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r13, %rcx
je 0x1065b
movq 0x130(%rsp), %rdi
movq 0x1c0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x10687
leaq 0x1d0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x10682
movq 0x1d0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x10696
leaq 0x120(%rsp), %rdi
callq 0x50e0
jmp 0x106a7
leaq 0x1c0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x88(%rsp), %rsi
leaq 0x10(%rax), %rcx
movq %rsi, 0x78(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x106ca
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0x106da
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x80(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1ca7b(%rip), %rsi     # 0x2d17c
leaq 0x78(%rsp), %rdi
callq 0x5720
vmovupd 0x2c0(%rsp), %ymm1
movq %r12, 0x98(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10737
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r12)
jmp 0x1074a
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
movq 0x8(%rax), %rdx
vextractf128 $0x1, %ymm1, %xmm0
movq %rdx, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1a0(%rsp), %rdi
movl $0x3, %esi
vmovapd %xmm0, 0x160(%rsp)
vzeroupper
callq 0x2a510
movq 0xa0(%rsp), %r8
movq 0x1a8(%rsp), %rdx
movq 0x98(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r12, %rcx
je 0x107b7
movq 0xa8(%rsp), %rdi
movq 0x1a0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x107e3
leaq 0x1b0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x107de
movq 0x1b0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x107f2
leaq 0x98(%rsp), %rdi
callq 0x50e0
jmp 0x10803
leaq 0x1a0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x68(%rsp), %rsi
leaq 0x10(%rax), %rcx
movq %rsi, 0x58(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10823
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0x10830
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1c928(%rip), %rsi     # 0x2d17c
leaq 0x58(%rsp), %rdi
callq 0x5720
leaq 0x38(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10881
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0x1088e
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
vmovapd 0x160(%rsp), %xmm0
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
vshufpd $0x1, %xmm0, %xmm0, %xmm0 # xmm0 = xmm0[1,0]
leaq 0x180(%rsp), %rdi
movl $0x3, %esi
callq 0x2a510
movq 0x30(%rsp), %r8
movq 0x188(%rsp), %rdx
movq 0x28(%rsp), %rcx
movl $0xf, %edi
leaq 0x38(%rsp), %rsi
leaq (%rdx,%r8), %rax
cmpq %rsi, %rcx
je 0x108f0
movq 0x38(%rsp), %rdi
movq 0x180(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x1091c
leaq 0x190(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x10917
movq 0x190(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x10928
leaq 0x28(%rsp), %rdi
callq 0x50e0
jmp 0x10939
leaq 0x180(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x18(%rsp), %rsi
leaq 0x10(%rax), %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10959
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0x10966
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x1beb8(%rip), %rsi     # 0x2c842
leaq 0x8(%rsp), %rdi
callq 0x5720
leaq 0x230(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x109b9
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0x109cc
movq %rdx, 0x220(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x230(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x228(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2c5ea(%rip), %rax     # 0x3cfd8
movq 0x220(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x220(%rsp), %rdi
cmpq %rbx, %rdi
je 0x10a10
callq 0x5310
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x10a24
callq 0x5310
leaq 0x190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10a3a
callq 0x5310
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x10a4e
callq 0x5310
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x10a62
callq 0x5310
leaq 0x1b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10a78
callq 0x5310
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
je 0x10a8a
callq 0x5310
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x10aa1
callq 0x5310
leaq 0x1d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10ab7
callq 0x5310
movq 0x120(%rsp), %rdi
cmpq %r13, %rdi
je 0x10ac9
callq 0x5310
movq 0xe0(%rsp), %rdi
cmpq %r15, %rdi
je 0x10adb
callq 0x5310
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x10af5
callq 0x5310
movq 0x48(%rsp), %rdx
leaq 0x212a5(%rip), %rcx     # 0x31da6
leaq 0x212a1(%rip), %r12     # 0x31da9
movb 0xba(%rdx), %al
movq %rdx, %r13
cmpb (%rcx), %al
je 0x10c47
leaq 0x28(%rsp), %r14
leaq 0xba(%r13), %rsi
movzbl %bpl, %edx
movq %r14, %rdi
callq 0x2a442
leaq 0x1cbdc(%rip), %rcx     # 0x2d714
movl $0xc, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x38(%rsp), %r15
callq 0x53c0
leaq 0x18(%rsp), %rbp
movq %rax, %rcx
addq $0x10, %rcx
movq %rbp, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10b73
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbp)
jmp 0x10b80
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x50(%rsp), %r14
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1bc9a(%rip), %rsi     # 0x2c842
callq 0x5720
leaq 0x210(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10bd2
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0x10be5
movq %rdx, 0x200(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x210(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x208(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2c3d1(%rip), %rax     # 0x3cfd8
movq 0x200(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x200(%rsp), %rdi
cmpq %rbx, %rdi
je 0x10c29
callq 0x5310
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x10c38
callq 0x5310
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x10c47
callq 0x5310
leaq 0x18(%rsp), %rbp
movq %rbp, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
movq (%r13), %rax
leaq 0x98(%rsp), %rdi
movq %r13, %rsi
callq *0x40(%rax)
movq 0x98(%rsp), %r15
movq 0xa0(%rsp), %rbx
cmpq %rbx, %r15
je 0x10d76
leaq 0x58(%rsp), %r12
leaq 0x78(%rsp), %r13
leaq 0x2039e(%rip), %rbp     # 0x31039
leaq 0x8(%rsp), %r14
movzwl (%r15), %eax
movw %ax, 0x78(%rsp)
movq %r12, %rdi
movq %r13, %rsi
callq 0xd3c2
movl $0x1, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movq %rbp, %rcx
callq 0x53c0
leaq 0x38(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
je 0x10cf1
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x10cf9
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x30(%rsp), %rdx
movq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x50e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x10d37
callq 0x5310
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x10d4b
callq 0x5310
addq $0x2, %r15
cmpq %rbx, %r15
jne 0x10ca0
movq 0x98(%rsp), %r15
movq 0x48(%rsp), %r13
leaq 0x2103d(%rip), %r12     # 0x31da9
movq 0x50(%rsp), %r14
leaq 0x18(%rsp), %rbp
testq %r15, %r15
je 0x10d83
movq %r15, %rdi
callq 0x5310
leaq 0x1c42f(%rip), %rsi     # 0x2d1b9
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x908f
leaq 0x1baa2(%rip), %rsi     # 0x2c842
leaq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %r15
callq 0x5720
leaq 0x1f0(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0x10dd4
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0x10de7
movq %rdx, 0x1e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1f0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x1e8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x2c1cf(%rip), %rax     # 0x3cfd8
movq 0x1e0(%rsp), %rdi
movq (%rax), %rsi
callq 0x53b0
movq 0x1e0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x10e2b
callq 0x5310
movq 0x28(%rsp), %rdi
movl 0xbc(%rsp), %ebx
cmpq %r15, %rdi
je 0x10e41
callq 0x5310
cmpl $0x3, %ebx
jl 0x10e5a
movq 0xc0(%r13), %rax
cmpq $0x2, %rax
jb 0x10e5a
cmpw $0x0, 0x6(%rax)
jne 0x10e72
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfb56
callq 0x5310
jmp 0xfb56
leaq 0x2e0(%rsp), %rdx
vxorpd %xmm0, %xmm0, %xmm0
vmovapd %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
movq (%r13), %rax
leaq 0x28(%rsp), %rdi
movq %r13, %rsi
callq *0x48(%rax)
leaq 0x1c326(%rip), %rcx     # 0x2d1c6
leaq 0x28(%rsp), %rdi
movl $0xc, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x53c0
leaq 0x2f8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
leaq 0x2e0(%rsp), %rcx
movq %rax, %rsi
callq 0x58fa
jmp 0x10e5a
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %r15, %rdi
je 0x10eea
callq 0x5310
jmp 0x10eea
movq %rax, %rbx
movq 0x2e0(%rsp), %rdi
jmp 0x11190
movq 0x8(%rsp), %rdi
movq %rax, %rbx
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x10f13
callq 0x5310
jmp 0x10f13
movq %rax, %rbx
leaq 0x190(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f2e
callq 0x5310
jmp 0x10f2e
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x10f47
callq 0x5310
jmp 0x10f47
movq %rax, %rbx
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x10f60
callq 0x5310
jmp 0x10f60
movq %rax, %rbx
leaq 0x1b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f7b
callq 0x5310
jmp 0x10f7b
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
je 0x10f92
callq 0x5310
jmp 0x10f92
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x10fae
callq 0x5310
jmp 0x10fae
movq %rax, %rbx
leaq 0x1d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10fc9
callq 0x5310
jmp 0x10fc9
movq %rax, %rbx
movq 0x120(%rsp), %rdi
cmpq %r13, %rdi
je 0x10fdb
callq 0x5310
movq 0xe0(%rsp), %rdi
cmpq %r15, %rdi
je 0x10fed
callq 0x5310
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
jmp 0x111a4
movq %rax, %rbx
jmp 0x10fdb
movq %rax, %rbx
jmp 0x10fed
movq 0x8(%rsp), %rdi
movq %rax, %rbx
cmpq %rbp, %rdi
jne 0x11033
jmp 0x1103d
jmp 0x1103a
jmp 0x11021
jmp 0x1103a
movq 0x8(%rsp), %rdi
movq %rax, %rbx
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x1103d
callq 0x5310
jmp 0x1103d
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
jmp 0x111a4
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %r15, %rdi
jne 0x11195
jmp 0x1119a
jmp 0x11064
movq %rax, %rbx
jmp 0x1119a
leaq 0x18(%rsp), %rcx
movq %rax, %rbx
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0x11087
callq 0x5310
jmp 0x11087
movq %rax, %rbx
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x110a2
callq 0x5310
jmp 0x110a2
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x110bb
callq 0x5310
jmp 0x110bb
movq %rax, %rbx
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x110d3
callq 0x5310
jmp 0x110d3
movq %rax, %rbx
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x110ee
callq 0x5310
jmp 0x110ee
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
je 0x11105
callq 0x5310
jmp 0x11105
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x11138
callq 0x5310
jmp 0x11138
movq 0xc0(%rsp), %rdi
movq %rax, %rbx
cmpq %r14, %rdi
je 0x11145
callq 0x5310
jmp 0x11145
movq %rax, %rbx
leaq 0x130(%rsp), %rax
jmp 0x1114d
movq %rax, %rbx
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x111a4
movq 0x28(%rsp), %rdi
movq %rax, %rbx
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x1116f
callq 0x5310
jmp 0x1116f
movq %rax, %rbx
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x11188
callq 0x5310
jmp 0x11188
movq %rax, %rbx
movq 0x98(%rsp), %rdi
testq %rdi, %rdi
je 0x1119a
callq 0x5310
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x111ae
callq 0x5310
movq %rbx, %rdi
callq 0x56c0