// File: 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:
subq $0x688, %rsp            # imm = 0x688
movq %rdi, 0x680(%rsp)
vmovsd %xmm0, 0x678(%rsp)
movq %rsi, 0x670(%rsp)
movl %edx, 0x66c(%rsp)
movq 0x680(%rsp), %rdi
movq %rdi, 0x50(%rsp)
addq $0x80, %rdi
callq 0x14b50
movq 0x50(%rsp), %rdi
movb %al, 0x66b(%rsp)
addq $0x80, %rdi
callq 0x14100
movb %al, 0x66a(%rsp)
leaq 0x66a(%rsp), %rdi
leaq 0x42cfd(%rip), %rsi     # 0x5b81b
callq 0x140c0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x5f(%rsp)
jne 0x18b5d
xorl %eax, %eax
vpxor %xmm0, %xmm0, %xmm0
vucomisd 0x678(%rsp), %xmm0
movb %al, 0x4f(%rsp)
jb 0x18b55
cmpq $0x0, 0x670(%rsp)
sete %al
movb %al, 0x4f(%rsp)
movb 0x4f(%rsp), %al
movb %al, 0x5f(%rsp)
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0x18b67
jmp 0x18b6c
jmp 0x19c65
leaq 0x660(%rsp), %rdi
callq 0x67a0
movq 0x50(%rsp), %rdi
addq $0x14a8, %rdi           # imm = 0x14A8
callq 0x1c0f0
movq 0x50(%rsp), %rax
cmpq $0x0, 0xd8(%rax)
je 0x18c98
movq 0x50(%rsp), %rax
movq 0xd8(%rax), %rsi
leaq 0x600(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x14600
movq 0x40(%rsp), %rdx
leaq 0x2ba4a(%rip), %rsi     # 0x44611
leaq 0x620(%rsp), %rdi
callq 0x14410
jmp 0x18bd6
leaq 0x2ba3e(%rip), %rdx     # 0x4461b
leaq 0x640(%rsp), %rdi
leaq 0x620(%rsp), %rsi
callq 0xaa40
jmp 0x18bf4
leaq 0x640(%rsp), %rdi
callq 0x143d0
jmp 0x18c03
leaq 0x640(%rsp), %rdi
callq 0x5290
leaq 0x620(%rsp), %rdi
callq 0x5290
leaq 0x600(%rsp), %rdi
callq 0x5290
jmp 0x18c98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x18c86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x18c79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x640(%rsp), %rdi
callq 0x5290
leaq 0x620(%rsp), %rdi
callq 0x5290
leaq 0x600(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
movq 0x50(%rsp), %rdi
movq $0x0, 0xd8(%rdi)
movq 0x670(%rsp), %rax
movq %rax, 0xe0(%rdi)
addq $0x14a8, %rdi           # imm = 0x14A8
callq 0x1c180
movq 0x50(%rsp), %rdi
addq $0x14a8, %rdi           # imm = 0x14A8
callq 0x1c260
movq 0x50(%rsp), %rdi
addq $0x14a8, %rdi           # imm = 0x14A8
vmovsd 0x678(%rsp), %xmm0
callq 0x1c2d0
leaq 0x5e0(%rsp), %rdi
callq 0x67a0
leaq 0x5e0(%rsp), %rdi
leaq 0x660(%rsp), %rsi
callq 0x144f0
vmovsd %xmm0, 0x5e8(%rsp)
cmpl $0x0, 0x66c(%rsp)
je 0x19c0b
leaq 0x5c0(%rsp), %rdi
callq 0x1c450
leaq 0x5a0(%rsp), %rdi
callq 0x1c450
leaq 0x580(%rsp), %rdi
xorl %esi, %esi
movl $0x20, %edx
callq 0x5230
movq 0x50(%rsp), %rax
addq $0x14a8, %rax           # imm = 0x14A8
movq %rax, 0x578(%rsp)
movq 0x578(%rsp), %rdi
callq 0x1c460
movq %rax, 0x570(%rsp)
movq 0x578(%rsp), %rdi
callq 0x1c490
movq %rax, 0x568(%rsp)
leaq 0x570(%rsp), %rdi
leaq 0x568(%rsp), %rsi
callq 0x1c4c0
testb $0x1, %al
jne 0x18db0
jmp 0x18e75
leaq 0x570(%rsp), %rdi
callq 0x1c500
movq %rax, 0x560(%rsp)
movq 0x560(%rsp), %rax
movq (%rax), %rsi
addq $0xa0, %rsi
leaq 0x5c0(%rsp), %rdi
callq 0x1c510
movq 0x560(%rsp), %rax
movq (%rax), %rsi
addq $0x80, %rsi
leaq 0x5a0(%rsp), %rdi
callq 0x1c510
movl $0x0, 0x55c(%rsp)
cmpl $0x4, 0x55c(%rsp)
jge 0x18e61
movq 0x560(%rsp), %rax
movq (%rax), %rax
movslq 0x55c(%rsp), %rcx
vmovsd 0xc0(%rax,%rcx,8), %xmm0
movslq 0x55c(%rsp), %rax
vaddsd 0x580(%rsp,%rax,8), %xmm0, %xmm0
vmovsd %xmm0, 0x580(%rsp,%rax,8)
movl 0x55c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x55c(%rsp)
jmp 0x18e0e
jmp 0x18e63
leaq 0x570(%rsp), %rdi
callq 0x1c5a0
jmp 0x18d92
movq 0x50(%rsp), %rax
movq 0xd8(%rax), %rsi
leaq 0x478(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x14600
movq 0x38(%rsp), %rdx
leaq 0x2b2b7(%rip), %rsi     # 0x44156
leaq 0x498(%rsp), %rdi
callq 0x14410
jmp 0x18eae
leaq 0x2b76d(%rip), %rdx     # 0x44622
leaq 0x4b8(%rsp), %rdi
leaq 0x498(%rsp), %rsi
callq 0xaa40
jmp 0x18ecc
vmovsd 0x5e8(%rsp), %xmm0
vmovsd 0x2b243(%rip), %xmm1    # 0x44120
vmulsd %xmm1, %xmm0, %xmm0
leaq 0x458(%rsp), %rdi
xorl %esi, %esi
callq 0x3fed0
jmp 0x18ef2
leaq 0x4d8(%rsp), %rdi
leaq 0x4b8(%rsp), %rsi
leaq 0x458(%rsp), %rdx
callq 0x14510
jmp 0x18f11
leaq 0x2b257(%rip), %rdx     # 0x4416f
leaq 0x4f8(%rsp), %rdi
leaq 0x4d8(%rsp), %rsi
callq 0xaa40
jmp 0x18f2f
movq 0x50(%rsp), %rax
vcvtusi2sdq 0xd8(%rax), %xmm0, %xmm0
vmovsd 0x5e8(%rsp), %xmm1
vdivsd %xmm1, %xmm0, %xmm0
leaq 0x438(%rsp), %rdi
xorl %esi, %esi
callq 0x3fed0
jmp 0x18f59
leaq 0x518(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
leaq 0x438(%rsp), %rdx
callq 0x14510
jmp 0x18f78
leaq 0x2b6ad(%rip), %rdx     # 0x4462c
leaq 0x538(%rsp), %rdi
leaq 0x518(%rsp), %rsi
callq 0xaa40
jmp 0x18f96
leaq 0x538(%rsp), %rdi
callq 0x143d0
jmp 0x18fa5
leaq 0x538(%rsp), %rdi
callq 0x5290
leaq 0x518(%rsp), %rdi
callq 0x5290
leaq 0x438(%rsp), %rdi
callq 0x5290
leaq 0x4f8(%rsp), %rdi
callq 0x5290
leaq 0x4d8(%rsp), %rdi
callq 0x5290
leaq 0x458(%rsp), %rdi
callq 0x5290
leaq 0x4b8(%rsp), %rdi
callq 0x5290
leaq 0x498(%rsp), %rdi
callq 0x5290
leaq 0x478(%rsp), %rdi
callq 0x5290
movq 0x50(%rsp), %rax
cmpq $0x0, 0xd8(%rax)
jbe 0x1974b
leaq 0x3d8(%rsp), %rdi
movq %rdi, 0x30(%rsp)
leaq 0x5c0(%rsp), %rsi
callq 0x1c5c0
movq 0x30(%rsp), %rdx
leaq 0x2b5e3(%rip), %rsi     # 0x44636
leaq 0x3f8(%rsp), %rdi
callq 0x14410
jmp 0x19062
leaq 0x2a7bb(%rip), %rdx     # 0x43824
leaq 0x418(%rsp), %rdi
leaq 0x3f8(%rsp), %rsi
callq 0xaa40
jmp 0x19080
leaq 0x418(%rsp), %rdi
callq 0x143d0
jmp 0x1908f
leaq 0x418(%rsp), %rdi
callq 0x5290
leaq 0x3f8(%rsp), %rdi
callq 0x5290
leaq 0x3d8(%rsp), %rdi
callq 0x5290
leaq 0x378(%rsp), %rdi
movq %rdi, 0x28(%rsp)
leaq 0x5a0(%rsp), %rsi
callq 0x1c5c0
movq 0x28(%rsp), %rdx
leaq 0x2b568(%rip), %rsi     # 0x44644
leaq 0x398(%rsp), %rdi
callq 0x14410
jmp 0x190eb
leaq 0x2a732(%rip), %rdx     # 0x43824
leaq 0x3b8(%rsp), %rdi
leaq 0x398(%rsp), %rsi
callq 0xaa40
jmp 0x19109
leaq 0x3b8(%rsp), %rdi
callq 0x143d0
jmp 0x19118
leaq 0x3b8(%rsp), %rdi
callq 0x5290
leaq 0x398(%rsp), %rdi
callq 0x5290
leaq 0x378(%rsp), %rdi
callq 0x5290
movq 0x50(%rsp), %rax
testb $0x1, 0x48(%rax)
je 0x19749
vmovsd 0x580(%rsp), %xmm0
leaq 0x258(%rsp), %rdi
movq %rdi, 0x20(%rsp)
movl $0x3, %esi
callq 0x3fed0
movq 0x20(%rsp), %rdx
leaq 0x2b4d8(%rip), %rsi     # 0x44652
leaq 0x278(%rsp), %rdi
callq 0x14410
jmp 0x19189
leaq 0x2afb4(%rip), %rdx     # 0x44144
leaq 0x298(%rsp), %rdi
leaq 0x278(%rsp), %rsi
callq 0xaa40
jmp 0x191a7
vmovsd 0x588(%rsp), %xmm0
leaq 0x238(%rsp), %rdi
movl $0x3, %esi
callq 0x3fed0
jmp 0x191c4
leaq 0x2b8(%rsp), %rdi
leaq 0x298(%rsp), %rsi
leaq 0x238(%rsp), %rdx
callq 0x14510
jmp 0x191e3
leaq 0x2af5a(%rip), %rdx     # 0x44144
leaq 0x2d8(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
callq 0xaa40
jmp 0x19201
vmovsd 0x590(%rsp), %xmm0
leaq 0x218(%rsp), %rdi
movl $0x3, %esi
callq 0x3fed0
jmp 0x1921e
leaq 0x2f8(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
leaq 0x218(%rsp), %rdx
callq 0x14510
jmp 0x1923d
leaq 0x2af00(%rip), %rdx     # 0x44144
leaq 0x318(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
callq 0xaa40
jmp 0x1925b
vmovsd 0x598(%rsp), %xmm0
leaq 0x1f8(%rsp), %rdi
movl $0x3, %esi
callq 0x3fed0
jmp 0x19278
leaq 0x338(%rsp), %rdi
leaq 0x318(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x14510
jmp 0x19297
leaq 0x2a586(%rip), %rdx     # 0x43824
leaq 0x358(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0xaa40
jmp 0x192b5
leaq 0x358(%rsp), %rdi
callq 0x143d0
jmp 0x192c4
leaq 0x358(%rsp), %rdi
callq 0x5290
leaq 0x338(%rsp), %rdi
callq 0x5290
leaq 0x1f8(%rsp), %rdi
callq 0x5290
leaq 0x318(%rsp), %rdi
callq 0x5290
leaq 0x2f8(%rsp), %rdi
callq 0x5290
leaq 0x218(%rsp), %rdi
callq 0x5290
leaq 0x2d8(%rsp), %rdi
callq 0x5290
leaq 0x2b8(%rsp), %rdi
callq 0x5290
leaq 0x238(%rsp), %rdi
callq 0x5290
leaq 0x298(%rsp), %rdi
callq 0x5290
leaq 0x278(%rsp), %rdi
callq 0x5290
leaq 0x258(%rsp), %rdi
callq 0x5290
jmp 0x19749
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x194a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19493
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19486
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1946c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1945f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19452
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x538(%rsp), %rdi
callq 0x5290
leaq 0x518(%rsp), %rdi
callq 0x5290
leaq 0x438(%rsp), %rdi
callq 0x5290
leaq 0x4f8(%rsp), %rdi
callq 0x5290
leaq 0x4d8(%rsp), %rdi
callq 0x5290
leaq 0x458(%rsp), %rdi
callq 0x5290
leaq 0x4b8(%rsp), %rdi
callq 0x5290
leaq 0x498(%rsp), %rdi
callq 0x5290
leaq 0x478(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1950c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x194ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x418(%rsp), %rdi
callq 0x5290
leaq 0x3f8(%rsp), %rdi
callq 0x5290
leaq 0x3d8(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19578
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1956b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x3b8(%rsp), %rdi
callq 0x5290
leaq 0x398(%rsp), %rdi
callq 0x5290
leaq 0x378(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19737
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1972a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1971d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19710
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x196f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x196e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x196dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x196cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x196c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x196b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x358(%rsp), %rdi
callq 0x5290
leaq 0x338(%rsp), %rdi
callq 0x5290
leaq 0x1f8(%rsp), %rdi
callq 0x5290
leaq 0x318(%rsp), %rdi
callq 0x5290
leaq 0x2f8(%rsp), %rdi
callq 0x5290
leaq 0x218(%rsp), %rdi
callq 0x5290
leaq 0x2d8(%rsp), %rdi
callq 0x5290
leaq 0x2b8(%rsp), %rdi
callq 0x5290
leaq 0x238(%rsp), %rdi
callq 0x5290
leaq 0x298(%rsp), %rdi
callq 0x5290
leaq 0x278(%rsp), %rdi
callq 0x5290
leaq 0x258(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
jmp 0x1974b
movq 0x50(%rsp), %rdi
addq $0xa8, %rdi
addq $0x12, %rdi
leaq 0x420b6(%rip), %rsi     # 0x5b818
callq 0x1ca30
testb $0x1, %al
jne 0x19770
jmp 0x19881
movq 0x50(%rsp), %rsi
addq $0xba, %rsi
movb 0x66b(%rsp), %al
movb %al, 0x197(%rsp)
movzbl 0x197(%rsp), %edx
leaq 0x198(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x3fad0
movq 0x18(%rsp), %rdx
leaq 0x2aeb0(%rip), %rsi     # 0x44660
leaq 0x1b8(%rsp), %rdi
callq 0x14410
jmp 0x197bf
leaq 0x2a05e(%rip), %rdx     # 0x43824
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0xaa40
jmp 0x197dd
leaq 0x1d8(%rsp), %rdi
callq 0x143d0
jmp 0x197ec
leaq 0x1d8(%rsp), %rdi
callq 0x5290
leaq 0x1b8(%rsp), %rdi
callq 0x5290
leaq 0x198(%rsp), %rdi
callq 0x5290
jmp 0x19881
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x1986f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19862
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0x5290
leaq 0x1b8(%rsp), %rdi
callq 0x5290
leaq 0x198(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
leaq 0x170(%rsp), %rdi
callq 0x55e0
movq 0x50(%rsp), %rsi
movq (%rsi), %rax
movq 0x40(%rax), %rax
leaq 0x150(%rsp), %rdi
callq *%rax
jmp 0x198a6
leaq 0x150(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x168(%rsp), %rdi
callq 0x14690
movq %rax, 0x148(%rsp)
movq 0x168(%rsp), %rdi
callq 0x14700
movq %rax, 0x140(%rsp)
leaq 0x148(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x146c0
testb $0x1, %al
jne 0x19924
leaq 0x150(%rsp), %rdi
callq 0x10af0
jmp 0x19a20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19bfc
leaq 0x148(%rsp), %rdi
callq 0x15660
movw (%rax), %ax
movw %ax, 0x13e(%rsp)
leaq 0xf8(%rsp), %rdi
leaq 0x13e(%rsp), %rsi
callq 0x14740
jmp 0x19953
leaq 0x2e52f(%rip), %rsi     # 0x47e89
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x14410
jmp 0x19971
leaq 0x170(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x5560
jmp 0x19988
leaq 0x118(%rsp), %rdi
callq 0x5290
leaq 0xf8(%rsp), %rdi
callq 0x5290
leaq 0x148(%rsp), %rdi
callq 0x14aa0
jmp 0x198e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19a0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19a01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x5290
leaq 0xf8(%rsp), %rdi
callq 0x5290
leaq 0x150(%rsp), %rdi
callq 0x10af0
jmp 0x19bfc
leaq 0x2a75a(%rip), %rsi     # 0x44181
leaq 0xb8(%rsp), %rdi
leaq 0x170(%rsp), %rdx
callq 0xaa90
jmp 0x19a3e
leaq 0x29ddf(%rip), %rdx     # 0x43824
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xaa40
jmp 0x19a5c
leaq 0xd8(%rsp), %rdi
callq 0x143d0
jmp 0x19a6b
leaq 0xd8(%rsp), %rdi
callq 0x5290
leaq 0xb8(%rsp), %rdi
callq 0x5290
cmpl $0x3, 0x66c(%rsp)
jl 0x19bed
movq 0x50(%rsp), %rdi
addq $0xc0, %rdi
callq 0x1ca70
movb %al, 0x17(%rsp)
jmp 0x19aaa
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x19bed
jmp 0x19ab8
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0x60(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xef40
movq 0x50(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq (%rsi), %rax
movq 0x48(%rax), %rax
leaq 0x78(%rsp), %rdi
callq *%rax
jmp 0x19af4
leaq 0x2a693(%rip), %rsi     # 0x4418e
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x14410
jmp 0x19b0f
leaq 0x98(%rsp), %rdi
callq 0x143d0
jmp 0x19b1e
leaq 0x98(%rsp), %rdi
callq 0x5290
leaq 0x78(%rsp), %rdi
callq 0x5290
leaq 0x60(%rsp), %rdi
callq 0x10af0
jmp 0x19bed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19b7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0xd8(%rsp), %rdi
callq 0x5290
leaq 0xb8(%rsp), %rdi
callq 0x5290
jmp 0x19bfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19be1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
jmp 0x19bd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x5f8(%rsp)
movl %eax, 0x5f4(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x5290
leaq 0x78(%rsp), %rdi
callq 0x5290
leaq 0x60(%rsp), %rdi
callq 0x10af0
jmp 0x19bfc
leaq 0x170(%rsp), %rdi
callq 0x5290
jmp 0x19c0b
leaq 0x170(%rsp), %rdi
callq 0x5290
jmp 0x19c6d
movq 0x50(%rsp), %rdi
addq $0x14a8, %rdi           # imm = 0x14A8
callq 0x1c180
movq 0x50(%rsp), %rax
movq $0x0, 0xd8(%rax)
testb $0x1, 0x38(%rax)
je 0x19c65
movq 0x50(%rsp), %rdi
addq $0xa8, %rdi
addq $0x12, %rdi
leaq 0x41bd2(%rip), %rsi     # 0x5b81b
callq 0x163d0
testb $0x1, %al
jne 0x19c54
jmp 0x19c65
movq 0x50(%rsp), %rdi
addq $0x14a8, %rdi           # imm = 0x14A8
callq 0x1c260
addq $0x688, %rsp            # imm = 0x688
retq
movq 0x5f8(%rsp), %rdi
callq 0x57a0
nopw (%rax,%rax)