// File: /workspace/github_cpp_makefile_star2_O3/tewalds[P]morat/havannah/agentmcts.cpp
// Function: Morat::Havannah::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;
		DepthStats win_types[2][Board::num_win_types];
		uint64_t games = 0, draws = 0;
		double times[4] = {0,0,0,0};
		for(auto & t : pool){
			gamelen += t->gamelen;
			treelen += t->treelen;

			for(int a = 0; a < 2; a++){
				for(int b = 0; b < Board::num_win_types; b++){
					win_types[a][b] += t->win_types[a][b];
					games += t->win_types[a][b].num;
				}
			}

			for(int a = 0; a < 4; a++)
				times[a] += t->times[a];
		}
		draws = gamelen.num - games;

		logerr("Finished:    " + to_str(runs) + " runs in " + to_str(time_used*1000, 0) + " msec: " + to_str(runs/time_used, 0) + " Games/s\n");
		if(gamelen.num > 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 (Board::num_win_types > 1 || verbose >= 2) {
				logerr("Win Types:   ");
				if (draws > 0)
					logerr("Draws: " + to_str(draws*100.0/gamelen.num, 0) + "%; ");
				for (int a = 0; a < 2; a++) {
					logerr((a == 0 ? Side::P1 : Side::P2).to_s_short() + ": ");
					for (int b = 0; b < Board::num_win_types; b++) {
						if (b != 0) logerr(", ");
						logerr(Board::win_names[b]);
						logerr(" " + to_str(win_types[a][b].num*100.0/gamelen.num, 0) + "%");
					}
					logerr((a == 0 ? "; " : "\n"));
				}

				if(verbose >= 2){
					for (int a = 0; a < 2; a++) {
						for (int b = 0; b < Board::num_win_types; b++) {
							logerr("  " + (a == 0 ? Side::P1 : Side::P2).to_s_short() + " ");
							logerr(Board::win_names[b]);
							logerr(": " + win_types[a][b].to_s() + "\n");
						}
					}
				}
			}
		}

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

		std::string pvstr;
		for(const auto& m : Agent::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 $0x508, %rsp            # imm = 0x508
leaq 0x2bfb1(%rip), %rcx     # 0x39109
movb 0x1b(%rdi), %al
movl %edx, 0x8c(%rsp)
cmpb (%rcx), %al
jge 0xd26d
vxorpd %xmm1, %xmm1, %xmm1
movq %rsi, %rbx
vucomisd %xmm0, %xmm1
setae %al
testq %rsi, %rsi
sete %cl
testb %cl, %al
jne 0xd26d
movb 0x1a(%rdi), %al
leaq 0x400(%rsp), %r14
movq %rdi, %r15
vmovsd %xmm0, 0xf0(%rsp)
xorl %esi, %esi
movq %r14, %rdi
movb %al, 0x4f(%rsp)
callq 0x55b0
vcvtsi2sdq (%r14), %xmm2, %xmm0
vmovsd %xmm0, 0x80(%rsp)
vcvtsi2sdq 0x8(%r14), %xmm2, %xmm0
leaq 0x5550(%r15), %r14
movq %r14, %rdi
vmovsd %xmm0, 0x78(%rsp)
callq 0x116ec
movq 0x4180(%r15), %rsi
testq %rsi, %rsi
jne 0xd27f
movq $0x0, 0x4180(%r15)
movq %r14, %rdi
movq %rbx, 0x4188(%r15)
callq 0x117e2
movq %r14, %rdi
callq 0x11858
vmovsd 0xf0(%rsp), %xmm0
movq %r14, %rdi
callq 0x1189c
leaq 0x400(%rsp), %rdi
xorl %esi, %esi
xorl %ebx, %ebx
callq 0x55b0
cmpl $0x0, 0x8c(%rsp)
jne 0xd2d8
movq %r14, %rdi
callq 0x117e2
movq $0x0, 0x4180(%r15)
leaq 0x2beb9(%rip), %rcx     # 0x39109
cmpb $0x1, 0xb0(%r15)
jne 0xd26d
movb 0x4162(%r15), %al
cmpb (%rcx), %al
jge 0xd26d
movq %r14, %rdi
callq 0x11858
addq $0x508, %rsp            # imm = 0x508
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %r13
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
callq 0x1175f
leaq 0x273af(%rip), %rcx     # 0x34648
movl $0x9, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x410(%rsp), %r14
movq %rax, %rcx
addq $0x10, %rcx
movq %r14, -0x10(%r14)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xd552
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r14)
jmp 0xd565
vmovsd 0x78(%rsp), %xmm0
movl $0x3b9aca00, %eax       # imm = 0x3B9ACA00
movl %ebx, 0xd8(%rsp)
movl %ebx, 0x180(%rsp)
movq %r14, 0x198(%rsp)
vdivsd 0x25d07(%rip), %xmm0, %xmm0 # 0x33008
movq %rax, 0xd0(%rsp)
movq %rax, 0x178(%rsp)
movl $0x10, %eax
vaddsd 0x80(%rsp), %xmm0, %xmm0
vcvtsi2sdq 0x408(%rsp), %xmm2, %xmm2
vcvtsi2sdq 0x400(%rsp), %xmm3, %xmm1
vdivsd 0x25ccd(%rip), %xmm2, %xmm2 # 0x33008
vaddsd %xmm1, %xmm2, %xmm1
vsubsd %xmm0, %xmm1, %xmm0
vmovsd %xmm0, 0x80(%rsp)
vxorpd %xmm0, %xmm0, %xmm0
vmovupd %xmm0, 0xe0(%rsp)
vmovupd %xmm0, 0x188(%rsp)
movl $0x0, 0x3f8(%rsp,%rax)
movq $0x3b9aca00, 0x3f0(%rsp,%rax) # imm = 0x3B9ACA00
vmovapd %xmm0, 0x400(%rsp,%rax)
addq $0x20, %rax
cmpq $0xd0, %rax
jne 0xd362
movq 0x5558(%r15), %rbx
movq 0x5560(%r15), %r14
vxorpd %xmm0, %xmm0, %xmm0
movq %r15, 0x78(%rsp)
cmpq %r14, %rbx
jne 0xd3be
vmovupd %ymm0, 0xf0(%rsp)
xorl %r13d, %r13d
xorl %r15d, %r15d
jmp 0xd4f4
xorl %r15d, %r15d
vmovupd %ymm0, 0xf0(%rsp)
movq (%rbx), %rax
movl 0x125d8(%rax), %ecx
addl %ecx, 0xd8(%rsp)
vmovdqu 0xe0(%rsp), %xmm0
vpaddq 0x125e0(%rax), %xmm0, %xmm0
vmovdqu %xmm0, 0xe0(%rsp)
movl 0x125d0(%rax), %ecx
cmpl %ecx, 0xd0(%rsp)
jbe 0xd40a
movl %ecx, 0xd0(%rsp)
movl 0x125d4(%rax), %ecx
cmpl %ecx, 0xd4(%rsp)
jae 0xd420
movl %ecx, 0xd4(%rsp)
movl 0x125b8(%rax), %ecx
addl %ecx, 0x180(%rsp)
vmovdqu 0x188(%rsp), %xmm0
vpaddq 0x125c0(%rax), %xmm0, %xmm0
vmovdqu %xmm0, 0x188(%rsp)
movl 0x125b0(%rax), %ecx
cmpl %ecx, 0x178(%rsp)
jbe 0xd45d
movl %ecx, 0x178(%rsp)
movl 0x125b4(%rax), %ecx
cmpl %ecx, 0x17c(%rsp)
jae 0xd473
movl %ecx, 0x17c(%rsp)
movb $0x1, %bpl
xorl %ecx, %ecx
shlq $0x5, %rcx
movl $0x3, %r13d
leaq (%rcx,%rcx,2), %r12
leaq 0x125f0(%rax,%r12), %rsi
leaq 0x400(%rsp,%r12), %rdi
vzeroupper
callq 0x119bc
movq (%rbx), %rax
movl 0x125f8(%rax,%r12), %ecx
addq $0x20, %r12
addq %rcx, %r15
decq %r13
jne 0xd486
movl $0x1, %ecx
testb $0x1, %bpl
movl $0x0, %ebp
jne 0xd478
vmovupd 0xf0(%rsp), %ymm0
addq $0x8, %rbx
vaddpd 0x126b0(%rax), %ymm0, %ymm0
vmovupd %ymm0, 0xf0(%rsp)
cmpq %r14, %rbx
jne 0xd3ca
movl 0xd8(%rsp), %r13d
movq 0x78(%rsp), %rax
leaq 0x158(%rsp), %rbx
movq %rbx, %rdi
movq 0x4180(%rax), %rsi
vzeroupper
callq 0x1175f
leaq 0x2713f(%rip), %rcx     # 0x34659
movl $0xd, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0xc0(%rsp), %rbp
movq %rax, %rcx
addq $0x10, %rcx
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xd5bc
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbp)
jmp 0xd5cf
movq %rdx, 0x400(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x410(%rsp)
movq 0x8(%rax), %rdx
leaq 0x400(%rsp), %rdi
movq %r15, %r12
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x270c4(%rip), %rsi     # 0x34652
callq 0x56e0
leaq 0x370(%rsp), %r15
movq %rax, %rcx
addq $0x10, %rcx
movq %r15, -0x10(%r15)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xd629
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r15)
jmp 0xd63c
movq %rdx, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
movq 0x8(%rax), %rdx
leaq 0xb0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x27072(%rip), %rsi     # 0x34667
callq 0x56e0
leaq 0xa0(%rsp), %r12
movq %rax, %rcx
addq $0x10, %rcx
movq %r12, -0x10(%r12)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xd6b3
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r12)
jmp 0xd6c6
movq %rdx, 0x360(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x370(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x368(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3e972(%rip), %rax     # 0x4bfd0
movq 0x360(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x360(%rsp), %rdi
cmpq %r15, %rdi
je 0xd680
callq 0x52e0
movq 0x400(%rsp), %rdi
movq %r12, %r15
cmpq %r14, %rdi
je 0xd695
callq 0x52e0
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd6ab
callq 0x52e0
movq %r13, %r14
jmp 0xd1e4
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
vmovsd 0x80(%rsp), %xmm0
movq 0x8(%rax), %rdx
vmulsd 0x26b5d(%rip), %xmm0, %xmm0 # 0x34238
movq %rdx, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x118(%rsp), %rdi
xorl %esi, %esi
callq 0x31ae4
movq 0x98(%rsp), %r8
movq 0x120(%rsp), %rdx
movq 0x90(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r12, %rcx
je 0xd72f
movq 0xa0(%rsp), %rdi
movq 0x118(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xd75b
leaq 0x128(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xd756
movq 0x128(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xd76a
leaq 0x90(%rsp), %rdi
callq 0x50c0
jmp 0xd77b
leaq 0x118(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x60(%rsp), %rdx
leaq 0x10(%rax), %rcx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
cmpq %rcx, %rsi
jne 0xd79a
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rdx)
jmp 0xd7a7
movq %rsi, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x26ea6(%rip), %rsi     # 0x34671
leaq 0x50(%rsp), %rdi
callq 0x56e0
leaq 0x38(%rsp), %r14
movq %rax, %rcx
addq $0x10, %rcx
movq %r14, -0x10(%r14)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xd7f8
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r14)
jmp 0xd805
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)
movq 0x78(%rsp), %rax
vcvtusi2sdq 0x4180(%rax), %xmm1, %xmm0
vdivsd 0x80(%rsp), %xmm0, %xmm0
leaq 0x138(%rsp), %rdi
xorl %esi, %esi
callq 0x31ae4
movq 0x30(%rsp), %r8
movq 0x140(%rsp), %rdx
movq 0x28(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r14, %rcx
je 0xd869
movq 0x38(%rsp), %rdi
movq 0x138(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xd895
leaq 0x148(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xd890
movq 0x148(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xd8a1
leaq 0x28(%rsp), %rdi
callq 0x50c0
jmp 0xd8b2
leaq 0x138(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rdx
leaq 0x10(%rax), %rcx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
cmpq %rcx, %rsi
jne 0xd8d1
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rdx)
jmp 0xd8de
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 0x26d77(%rip), %rsi     # 0x34679
leaq 0x8(%rsp), %rdi
callq 0x56e0
leaq 0x350(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xd931
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xd944
movq %rdx, 0x340(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x350(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x348(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3e66a(%rip), %rax     # 0x4bfd0
movq 0x340(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x340(%rsp), %rdi
cmpq %rbx, %rdi
je 0xd988
callq 0x52e0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd99b
callq 0x52e0
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd9b1
callq 0x52e0
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xd9c0
callq 0x52e0
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xd9d3
callq 0x52e0
leaq 0x128(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0xd9e9
callq 0x52e0
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0xd9fb
callq 0x52e0
movq 0xb0(%rsp), %rdi
cmpq %rbp, %rdi
je 0xda0d
callq 0x52e0
leaq 0x168(%rsp), %rbp
movq -0x10(%rbp), %rdi
cmpq %rbp, %rdi
je 0xda23
callq 0x52e0
cmpl $0x0, 0xd8(%rsp)
je 0xea6f
leaq 0x28(%rsp), %rbx
leaq 0xd0(%rsp), %rsi
movq %rbx, %rdi
callq 0x119e8
leaq 0x26c36(%rip), %rcx     # 0x34683
movl $0xd, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xda82
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xda8f
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 0x25e5e(%rip), %rsi     # 0x33910
callq 0x56e0
leaq 0x330(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdadc
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xdaef
movq %rdx, 0x320(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x330(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x328(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3e4bf(%rip), %rax     # 0x4bfd0
movq 0x320(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x320(%rsp), %rdi
cmpq %rbx, %rdi
je 0xdb33
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xdb47
callq 0x52e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xdb5b
callq 0x52e0
leaq 0x28(%rsp), %rbx
leaq 0x178(%rsp), %rsi
movq %rbx, %rdi
callq 0x119e8
leaq 0x26b1a(%rip), %rcx     # 0x34691
movl $0xd, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdbac
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xdbb9
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 0x25d34(%rip), %rsi     # 0x33910
callq 0x56e0
leaq 0x310(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdc06
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xdc19
movq %rdx, 0x300(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x310(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x308(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3e395(%rip), %rax     # 0x4bfd0
movq 0x300(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x300(%rsp), %rdi
cmpq %rbx, %rdi
je 0xdc5d
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xdc71
callq 0x52e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xdc85
callq 0x52e0
movq 0x78(%rsp), %rax
cmpb $0x1, 0xc0(%rax)
jne 0xe26f
leaq 0x138(%rsp), %rbx
movl $0x3, %esi
vmovups 0xf0(%rsp), %ymm0
movq %rbx, %rdi
vzeroupper
callq 0x31ae4
leaq 0x269e0(%rip), %rcx     # 0x3469f
movl $0xd, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
movq %r14, 0x118(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdcf3
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r14)
jmp 0xdd06
movq %rdx, 0x118(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x128(%rsp)
movq 0x8(%rax), %rdx
leaq 0x118(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x277b3(%rip), %rsi     # 0x354df
callq 0x56e0
movq %rbp, 0x158(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdd53
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbp)
jmp 0xdd66
movq %rdx, 0x158(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x168(%rsp)
vpermilpd $0x1, 0xf0(%rsp), %xmm0 # xmm0 = mem[1,0]
movq 0x8(%rax), %rdx
movq %rdx, 0x160(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x200(%rsp), %rdi
movl $0x3, %esi
callq 0x31ae4
movq 0x160(%rsp), %r8
movq 0x208(%rsp), %rdx
movq 0x158(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %rbp, %rcx
je 0xddcc
movq 0x168(%rsp), %rdi
movq 0x200(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xddf8
leaq 0x210(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xddf3
movq 0x210(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xde07
leaq 0x158(%rsp), %rdi
callq 0x50c0
jmp 0xde18
leaq 0x200(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0xc0(%rsp), %rsi
leaq 0x10(%rax), %rcx
movq %rsi, 0xb0(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xde3e
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xde51
movq %rdx, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0xb8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x27667(%rip), %rsi     # 0x354df
leaq 0xb0(%rsp), %rdi
callq 0x56e0
movq %r12, 0x90(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdea8
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r12)
jmp 0xdebb
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
vmovupd 0xf0(%rsp), %ymm0
movq 0x8(%rax), %rdx
movq %rdx, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
vextractf128 $0x1, %ymm0, %xmm0
leaq 0x1e0(%rsp), %rdi
movl $0x3, %esi
vmovapd %xmm0, 0xf0(%rsp)
vzeroupper
callq 0x31ae4
movq 0x98(%rsp), %r8
movq 0x1e8(%rsp), %rdx
movq 0x90(%rsp), %rcx
movl $0xf, %edi
leaq (%rdx,%r8), %rax
cmpq %r12, %rcx
je 0xdf31
movq 0xa0(%rsp), %rdi
movq 0x1e0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xdf5d
leaq 0x1f0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xdf58
movq 0x1f0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xdf6c
leaq 0x90(%rsp), %rdi
callq 0x50c0
jmp 0xdf7d
leaq 0x1e0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x60(%rsp), %rsi
leaq 0x10(%rax), %rcx
movq %rsi, 0x50(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdf9d
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xdfaa
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
movq 0x8(%rax), %rsi
movq %rax, %rdx
addq $0x8, %rdx
movq %rsi, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x27511(%rip), %rsi     # 0x354df
leaq 0x50(%rsp), %rdi
callq 0x56e0
leaq 0x38(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xdffb
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xe008
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
vpermilpd $0x1, 0xf0(%rsp), %xmm0 # xmm0 = mem[1,0]
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1c0(%rsp), %rdi
movl $0x3, %esi
callq 0x31ae4
movq 0x30(%rsp), %r8
movq 0x1c8(%rsp), %rdx
movq 0x28(%rsp), %rcx
movl $0xf, %edi
leaq 0x38(%rsp), %rsi
leaq (%rdx,%r8), %rax
cmpq %rsi, %rcx
je 0xe067
movq 0x38(%rsp), %rdi
movq 0x1c0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0xe093
leaq 0x1d0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0xe08e
movq 0x1d0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xe09f
leaq 0x28(%rsp), %rdi
callq 0x50c0
jmp 0xe0b0
leaq 0x1c0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rsi
leaq 0x10(%rax), %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe0d0
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xe0dd
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 0x2580f(%rip), %rsi     # 0x33910
leaq 0x8(%rsp), %rdi
callq 0x56e0
leaq 0x2f0(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe130
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xe143
movq %rdx, 0x2e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2f0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2e8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3de6b(%rip), %rax     # 0x4bfd0
movq 0x2e0(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x2e0(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe187
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
leaq 0x148(%rsp), %rbx
cmpq %rax, %rdi
je 0xe1a3
callq 0x52e0
leaq 0x1d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xe1b9
callq 0x52e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xe1cd
callq 0x52e0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xe1e1
callq 0x52e0
leaq 0x1f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xe1f7
callq 0x52e0
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0xe209
callq 0x52e0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0xe223
callq 0x52e0
leaq 0x210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xe239
callq 0x52e0
movq 0x158(%rsp), %rdi
cmpq %rbp, %rdi
je 0xe24b
callq 0x52e0
movq 0x118(%rsp), %rdi
cmpq %r14, %rdi
je 0xe25d
callq 0x52e0
movq 0x138(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe26f
callq 0x52e0
leaq 0x3f0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2642b(%rip), %rsi     # 0x346ad
leaq 0x26431(%rip), %rdx     # 0x346ba
leaq 0x3e0(%rsp), %rdi
callq 0xb1f0
movq 0x3dd33(%rip), %rax     # 0x4bfd0
movq 0x3e0(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x3e0(%rsp), %rdi
leaq 0x18(%rsp), %r12
cmpq %rbx, %rdi
je 0xe2c4
callq 0x52e0
cmpq %r15, %r13
je 0xe406
subq %r15, %r13
leaq 0x28(%rsp), %rbx
xorl %esi, %esi
vcvtusi2sd %r13, %xmm1, %xmm0
vmulsd 0x25f5b(%rip), %xmm0, %xmm0 # 0x34240
movq %rbx, %rdi
vcvtusi2sdl 0xd8(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
callq 0x31ae4
leaq 0x263bb(%rip), %rcx     # 0x346bb
movl $0x7, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x38(%rsp), %r14
callq 0x5380
movq %r12, 0x8(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe337
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r12)
jmp 0xe344
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 0x2635c(%rip), %rsi     # 0x346c3
callq 0x56e0
leaq 0x2d0(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe391
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xe3a4
movq %rdx, 0x2c0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2d0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2c8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3dc0a(%rip), %rax     # 0x4bfd0
movq 0x2c0(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x2c0(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe3e8
callq 0x52e0
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xe3f7
callq 0x52e0
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0xe406
callq 0x52e0
leaq 0x1b0(%rsp), %r13
leaq 0x3b0(%rsp), %rbp
leaq 0x270(%rsp), %rbx
movb $0x1, %al
leaq 0x8(%rsp), %r15
leaq 0x3a0(%rsp), %r14
xorl %r12d, %r12d
leaq 0x2accc(%rip), %rsi     # 0x39103
movl %eax, 0x80(%rsp)
testb $0x1, %al
je 0xe449
leaq 0x2acb9(%rip), %rsi     # 0x39102
movq %r15, %rdi
callq 0x319ae
leaq 0x2621e(%rip), %rsi     # 0x34676
movq %r15, %rdi
callq 0x56e0
movq %r13, 0x1a0(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe483
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r13)
jmp 0xe496
movq %rdx, 0x1a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1b0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x1a8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x3db18(%rip), %rax     # 0x4bfd0
movq 0x1a0(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x1a0(%rsp), %rdi
cmpq %r13, %rdi
je 0xe4da
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xe4ee
callq 0x52e0
leaq (%r12,%r12,2), %rcx
leaq 0x408(%rsp), %rax
leaq 0x3c0(%rsp), %r12
xorl %r13d, %r13d
shlq $0x5, %rcx
addq %rax, %rcx
movq %rcx, 0xf0(%rsp)
testq %r13, %r13
je 0xe558
movq %rbp, %r14
leaq 0x3d0(%rsp), %rbp
movq %rbp, 0x3c0(%rsp)
leaq 0x26fac(%rip), %rsi     # 0x354df
leaq 0x26fa7(%rip), %rdx     # 0x354e1
movq %r12, %rdi
callq 0xb1f0
movq %r12, %rdi
movq %rbp, %rsi
callq 0x5780
movq %r14, %rbp
leaq 0x3a0(%rsp), %r14
leaq 0x3de61(%rip), %rax     # 0x4c3c0
movq %rbx, %r12
movq (%rax,%r13), %rsi
movq %r14, %rdi
movq %r15, %rdx
movq %r15, %rbx
callq 0x5120
movq %r14, %rdi
movq %rbp, %rsi
callq 0x57b1
movq 0xf0(%rsp), %rax
vcvtusi2sdl (%rax,%r13,4), %xmm2, %xmm0
leaq 0x28(%rsp), %r15
xorl %esi, %esi
movq %r15, %rdi
vmulsd 0x25ca0(%rip), %xmm0, %xmm0 # 0x34240
vcvtusi2sdl 0xd8(%rsp), %xmm2, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
callq 0x31ae4
movl $0x1, %r8d
leaq 0x29454(%rip), %rcx     # 0x37a12
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe5ed
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xe5fa
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rbx, %r15
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x260ab(%rip), %rsi     # 0x346c7
movq %rbx, %rdi
callq 0x56e0
movq %r12, 0x260(%rsp)
movq %rax, %rcx
movq %r12, %rbx
addq $0x10, %rcx
leaq 0x3c0(%rsp), %r12
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe650
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xe663
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 0x3d94b(%rip), %rax     # 0x4bfd0
movq 0x260(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x260(%rsp), %rdi
cmpq %rbx, %rdi
je 0xe6a7
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xe6bb
callq 0x52e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xe6cf
callq 0x52e0
addq $0x8, %r13
cmpq $0x18, %r13
jne 0xe514
movl 0x80(%rsp), %eax
leaq 0x25225(%rip), %rsi     # 0x33910
leaq 0x25fd2(%rip), %rcx     # 0x346c4
leaq 0x390(%rsp), %r14
movq %r14, 0x380(%rsp)
testb $0x1, %al
movzbl %al, %eax
cmovneq %rcx, %rsi
andl $0x1, %eax
leaq 0x1(%rax,%rsi), %rdx
leaq 0x380(%rsp), %rdi
callq 0xb1f0
movq 0x3d8a9(%rip), %rax     # 0x4bfd0
movq 0x380(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x380(%rsp), %rdi
leaq 0x1b0(%rsp), %r13
cmpq %r14, %rdi
je 0xe751
callq 0x52e0
testb $0x1, 0x80(%rsp)
movl $0x1, %r12d
movl $0x0, %eax
leaq 0x3a0(%rsp), %r14
jne 0xe430
cmpl $0x2, 0x8c(%rsp)
jl 0xea6f
leaq 0x230(%rsp), %r13
movb $0x1, %r15b
leaq 0x28(%rsp), %r14
xorl %eax, %eax
leaq 0x2a96a(%rip), %rcx     # 0x39103
movq %rcx, 0xf0(%rsp)
testb $0x1, %r15b
je 0xe7b6
leaq 0x2a954(%rip), %rcx     # 0x39102
movq %rcx, 0xf0(%rsp)
leaq (%rax,%rax,2), %rax
xorl %ebp, %ebp
shlq $0x5, %rax
leaq 0x400(%rsp,%rax), %rbx
movq 0xf0(%rsp), %rsi
movq %r14, %rdi
callq 0x319ae
movl $0x2, %r8d
leaq 0x25efb(%rip), %rcx     # 0x346e0
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe814
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xe821
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %r13, %r12
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x8(%rsp), %rdi
leaq 0x291ca(%rip), %rsi     # 0x37a12
callq 0x56e0
leaq 0x250(%rsp), %r13
movq %rax, %rcx
addq $0x10, %rcx
movq %r13, 0x240(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe878
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r13)
jmp 0xe88b
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 0x3d723(%rip), %rax     # 0x4bfd0
movq 0x240(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x240(%rsp), %rdi
cmpq %r13, %rdi
je 0xe8cf
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %r12, %r13
cmpq %rax, %rdi
je 0xe8e6
callq 0x52e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
leaq 0x4c8(%rsp), %r12
cmpq %rax, %rdi
je 0xe902
callq 0x52e0
leaq 0x3dab7(%rip), %rax     # 0x4c3c0
movq (%rax,%rbp,8), %rsi
leaq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x5120
leaq 0x4d8(%rsp), %rsi
movq %r12, %rdi
callq 0x57e2
movq %r14, %rdi
movq %rbx, %rsi
callq 0x119e8
movl $0x2, %r8d
leaq 0x25d34(%rip), %rcx     # 0x34676
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x18(%rsp), %rsi
movq %rax, %rcx
addq $0x10, %rcx
movq %rsi, 0x8(%rsp)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe971
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rsi)
jmp 0xe97e
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x8(%rsp), %rdi
leaq 0x24f6e(%rip), %rsi     # 0x33910
callq 0x56e0
movq %r13, 0x220(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xe9ca
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r13)
jmp 0xe9dd
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 0x3d5d1(%rip), %rax     # 0x4bfd0
movq 0x220(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x220(%rsp), %rdi
cmpq %r13, %rdi
je 0xea21
callq 0x52e0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xea35
callq 0x52e0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xea49
callq 0x52e0
incq %rbp
addq $0x20, %rbx
cmpq $0x3, %rbp
jne 0xe7c8
movl $0x1, %eax
testb $0x1, %r15b
movl $0x0, %r15d
jne 0xe792
movq 0x78(%rsp), %r15
leaq 0x2a68b(%rip), %rcx     # 0x39106
leaq 0x38(%rsp), %rbp
leaq 0x18(%rsp), %r14
movb 0x4162(%r15), %al
cmpb (%rcx), %al
je 0xebb4
movzbl 0x4f(%rsp), %edx
leaq 0x28(%rsp), %rbx
leaq 0x4162(%r15), %rsi
movq %rbx, %rdi
callq 0x31a16
leaq 0x25c15(%rip), %rcx     # 0x346c9
movl $0xc, %r8d
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
movq %r14, 0x8(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xeae5
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%r14)
jmp 0xeaf2
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 0x24dfb(%rip), %rsi     # 0x33910
callq 0x56e0
leaq 0x2b0(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xeb3f
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xeb52
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 0x3d45c(%rip), %rax     # 0x4bfd0
movq 0x2a0(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x2a0(%rsp), %rdi
cmpq %rbx, %rdi
je 0xeb96
callq 0x52e0
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xeba5
callq 0x52e0
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0xebb4
callq 0x52e0
movq %r14, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0x18(%rsp)
leaq 0x90(%rsp), %rdi
movq %r15, %rsi
callq 0x12188
movq 0x90(%rsp), %rbx
movq 0x98(%rsp), %r13
cmpq %r13, %rbx
je 0xecb9
leaq 0x50(%rsp), %r14
leaq 0x28e16(%rip), %r15     # 0x37a12
leaq 0x8(%rsp), %r12
movq %r14, %rdi
movq %rbx, %rsi
callq 0x10fbe
movl $0x1, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
movq %r15, %rcx
callq 0x5380
movq %rbp, 0x28(%rsp)
movq %rax, %rcx
addq $0x10, %rcx
movq (%rax), %rdx
cmpq %rcx, %rdx
je 0xec44
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0xec4d
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbp)
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 %r12, %rdi
callq 0x50c0
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0xec86
callq 0x52e0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xec9a
callq 0x52e0
addq $0x2, %rbx
cmpq %r13, %rbx
jne 0xec01
movq 0x90(%rsp), %rbx
movq 0x78(%rsp), %r15
leaq 0x18(%rsp), %r14
testq %rbx, %rbx
je 0xecc6
movq %rbx, %rdi
callq 0x52e0
leaq 0x25a09(%rip), %rsi     # 0x346d6
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x97f9
leaq 0x24c2d(%rip), %rsi     # 0x33910
leaq 0x28(%rsp), %rdi
callq 0x56e0
leaq 0x290(%rsp), %rbx
movq %rax, %rcx
addq $0x10, %rcx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
cmpq %rcx, %rdx
jne 0xed12
vmovupd (%rcx), %xmm0
vmovupd %xmm0, (%rbx)
jmp 0xed25
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 0x3d289(%rip), %rax     # 0x4bfd0
movq 0x280(%rsp), %rdi
movq (%rax), %rsi
callq 0x5370
movq 0x280(%rsp), %rdi
cmpq %rbx, %rdi
je 0xed69
callq 0x52e0
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0xed78
callq 0x52e0
cmpl $0x3, 0x8c(%rsp)
jl 0xed96
movq 0x4168(%r15), %rax
cmpq $0x2, %rax
jb 0xed96
cmpw $0x0, 0x6(%rax)
jne 0xedb2
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xeda5
callq 0x52e0
movq 0x198(%rsp), %r14
jmp 0xd236
leaq 0x50(%rsp), %rdx
vxorpd %xmm0, %xmm0, %xmm0
vmovapd %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
movq (%r15), %rax
leaq 0x28(%rsp), %rdi
movq %r15, %rsi
callq *0x48(%rax)
leaq 0x25907(%rip), %rcx     # 0x346e3
leaq 0x28(%rsp), %rdi
movl $0xc, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x5380
leaq 0x4e8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
leaq 0x50(%rsp), %rcx
movq %rax, %rsi
callq 0x5813
jmp 0xed96
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %rbp, %rdi
je 0xee23
callq 0x52e0
jmp 0xee23
movq %rax, %rbx
movq 0x50(%rsp), %rdi
jmp 0xf0d1
movq 0x8(%rsp), %rdi
movq %rax, %rbx
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xee49
callq 0x52e0
jmp 0xee49
movq %rax, %rbx
leaq 0x1d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xee64
callq 0x52e0
jmp 0xee64
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xee93
callq 0x52e0
jmp 0xee93
movq 0x8(%rsp), %rdi
movq %rax, %rbx
cmpq %r12, %rdi
jne 0xf10c
jmp 0xf116
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xeeb1
callq 0x52e0
jmp 0xeeb1
jmp 0xf113
movq %rax, %rbx
leaq 0x1f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xeecc
callq 0x52e0
jmp 0xeecc
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0xeee3
callq 0x52e0
jmp 0xeee3
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0xef02
callq 0x52e0
jmp 0xef02
movq %rax, %rbx
leaq 0x210(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xef1d
callq 0x52e0
jmp 0xef1d
movq %rax, %rbx
movq 0x158(%rsp), %rdi
cmpq %rbp, %rdi
je 0xef2f
callq 0x52e0
movq 0x118(%rsp), %rdi
cmpq %r14, %rdi
je 0xef41
callq 0x52e0
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
jmp 0xf120
movq %rax, %rbx
jmp 0xef2f
movq %rax, %rbx
jmp 0xef41
movq 0x8(%rsp), %rdi
movq %rax, %rbx
cmpq %r14, %rdi
jne 0xf10c
jmp 0xf116
jmp 0xf113
jmp 0xf12c
jmp 0xf0fa
jmp 0xf113
jmp 0xf0fa
jmp 0xf113
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %rbp, %rdi
jne 0xf0d6
jmp 0xf0e2
jmp 0xf0df
jmp 0xf0df
leaq 0x18(%rsp), %rcx
movq %rax, %rbx
movq -0x10(%rcx), %rdi
cmpq %rcx, %rdi
je 0xefcf
callq 0x52e0
jmp 0xefcf
movq %rax, %rbx
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xefea
callq 0x52e0
jmp 0xefea
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xf003
callq 0x52e0
jmp 0xf003
movq %rax, %rbx
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf01b
callq 0x52e0
jmp 0xf01b
movq %rax, %rbx
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf036
callq 0x52e0
jmp 0xf036
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0xf04d
callq 0x52e0
jmp 0xf04d
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf07b
callq 0x52e0
jmp 0xf07b
movq 0x400(%rsp), %rdi
movq %rax, %rbx
cmpq %r14, %rdi
je 0xf088
callq 0x52e0
jmp 0xf088
movq %rax, %rbx
leaq 0x168(%rsp), %rax
jmp 0xf090
movq %rax, %rbx
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0xf120
movq 0x28(%rsp), %rdi
movq %rax, %rbx
cmpq %rbp, %rdi
je 0xf0b0
callq 0x52e0
jmp 0xf0b0
movq %rax, %rbx
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xf0c9
callq 0x52e0
jmp 0xf0c9
movq %rax, %rbx
movq 0x90(%rsp), %rdi
testq %rdi, %rdi
je 0xf0e2
callq 0x52e0
jmp 0xf0e2
jmp 0xf12c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
jmp 0xf120
jmp 0xf12c
jmp 0xf0fa
jmp 0xf113
jmp 0xf12c
jmp 0xf0fa
jmp 0xf113
movq 0x8(%rsp), %rdi
movq %rax, %rbx
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xf116
callq 0x52e0
jmp 0xf116
movq %rax, %rbx
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0xf12f
callq 0x52e0
jmp 0xf12f
movq %rax, %rbx
movq %rbx, %rdi
callq 0x5670
nop