// File: tewalds[P]morat/hex/agentmcts.cpp
// Function: Morat::Hex::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:
subq $0xa18, %rsp            # imm = 0xA18
movq %rdi, 0xa10(%rsp)
vmovsd %xmm0, 0xa08(%rsp)
movq %rsi, 0xa00(%rsp)
movl %edx, 0x9fc(%rsp)
movq 0xa10(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
addq $0x10, %rdi
callq 0x1a8a0
movq 0xe0(%rsp), %rdi
movb %al, 0x9fb(%rsp)
addq $0x10, %rdi
callq 0x1a900
movb %al, 0x9fa(%rsp)
leaq 0x9fa(%rsp), %rdi
leaq 0x57605(%rip), %rsi     # 0x6d4c3
callq 0x1a8c0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0xef(%rsp)
jne 0x15f0c
xorl %eax, %eax
vpxor %xmm0, %xmm0, %xmm0
vucomisd 0xa08(%rsp), %xmm0
movb %al, 0xdf(%rsp)
jb 0x15efe
cmpq $0x0, 0xa00(%rsp)
sete %al
movb %al, 0xdf(%rsp)
movb 0xdf(%rsp), %al
movb %al, 0xef(%rsp)
movb 0xef(%rsp), %al
testb $0x1, %al
jne 0x15f19
jmp 0x15f1e
jmp 0x17bbc
leaq 0x9f0(%rsp), %rdi
callq 0x6780
movq 0xe0(%rsp), %rdi
addq $0x54f0, %rdi           # imm = 0x54F0
callq 0x1a920
movq 0xe0(%rsp), %rax
cmpq $0x0, 0x4120(%rax)
je 0x16059
movq 0xe0(%rsp), %rax
movq 0x4120(%rax), %rsi
leaq 0x990(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x1a9f0
movq 0xd0(%rsp), %rdx
leaq 0x37380(%rip), %rsi     # 0x4d308
leaq 0x9b0(%rsp), %rdi
callq 0x19f30
jmp 0x15f97
leaq 0x37374(%rip), %rdx     # 0x4d312
leaq 0x9d0(%rsp), %rdi
leaq 0x9b0(%rsp), %rsi
callq 0xb910
jmp 0x15fb5
leaq 0x9d0(%rsp), %rdi
callq 0x1a9b0
jmp 0x15fc4
leaq 0x9d0(%rsp), %rdi
callq 0x5260
leaq 0x9b0(%rsp), %rdi
callq 0x5260
leaq 0x990(%rsp), %rdi
callq 0x5260
jmp 0x16059
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16047
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x1603a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x9d0(%rsp), %rdi
callq 0x5260
leaq 0x9b0(%rsp), %rdi
callq 0x5260
leaq 0x990(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq 0xe0(%rsp), %rdi
movq $0x0, 0x4120(%rdi)
movq 0xa00(%rsp), %rax
movq %rax, 0x4128(%rdi)
addq $0x54f0, %rdi           # imm = 0x54F0
callq 0x1aa80
movq 0xe0(%rsp), %rdi
addq $0x54f0, %rdi           # imm = 0x54F0
callq 0x1ab60
movq 0xe0(%rsp), %rdi
addq $0x54f0, %rdi           # imm = 0x54F0
vmovsd 0xa08(%rsp), %xmm0
callq 0x1abd0
leaq 0x970(%rsp), %rdi
callq 0x6780
leaq 0x970(%rsp), %rdi
leaq 0x9f0(%rsp), %rsi
callq 0x1ad50
vmovsd %xmm0, 0x978(%rsp)
cmpl $0x0, 0x9fc(%rsp)
je 0x17b56
leaq 0x950(%rsp), %rdi
callq 0x1ad70
leaq 0x930(%rsp), %rdi
callq 0x1ad70
leaq 0x8f0(%rsp), %rax
movq %rax, %rcx
addq $0x40, %rcx
movq %rcx, 0xc0(%rsp)
movq %rax, 0xc8(%rsp)
movq 0xc8(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x1ad70
movq 0xb8(%rsp), %rax
movq 0xc0(%rsp), %rcx
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, 0xc8(%rsp)
jne 0x1612a
movq $0x0, 0x8e8(%rsp)
movq $0x0, 0x8e0(%rsp)
leaq 0x8c0(%rsp), %rdi
xorl %esi, %esi
movl $0x20, %edx
callq 0x5210
movq 0xe0(%rsp), %rax
addq $0x54f0, %rax           # imm = 0x54F0
movq %rax, 0x8b8(%rsp)
movq 0x8b8(%rsp), %rdi
callq 0x1ad80
movq %rax, 0x8b0(%rsp)
movq 0x8b8(%rsp), %rdi
callq 0x1adb0
movq %rax, 0x8a8(%rsp)
leaq 0x8b0(%rsp), %rdi
leaq 0x8a8(%rsp), %rsi
callq 0x1ade0
testb $0x1, %al
jne 0x161ea
jmp 0x163ac
leaq 0x8b0(%rsp), %rdi
callq 0x1ae20
movq %rax, 0x8a0(%rsp)
movq 0x8a0(%rsp), %rax
movq (%rax), %rsi
addq $0x12148, %rsi          # imm = 0x12148
leaq 0x950(%rsp), %rdi
callq 0x1ae30
movq 0x8a0(%rsp), %rax
movq (%rax), %rsi
addq $0x12128, %rsi          # imm = 0x12128
leaq 0x930(%rsp), %rdi
callq 0x1ae30
movl $0x0, 0x89c(%rsp)
cmpl $0x2, 0x89c(%rsp)
jge 0x1633a
movl $0x0, 0x898(%rsp)
cmpl $0x1, 0x898(%rsp)
jge 0x16322
movq 0x8a0(%rsp), %rax
movq (%rax), %rsi
addq $0x12168, %rsi          # imm = 0x12168
movslq 0x89c(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq 0x898(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq 0x89c(%rsp), %rax
leaq 0x8f0(%rsp), %rdi
shlq $0x5, %rax
addq %rax, %rdi
movslq 0x898(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rdi
callq 0x1ae30
movq 0x8a0(%rsp), %rax
movq (%rax), %rax
addq $0x12168, %rax          # imm = 0x12168
movslq 0x89c(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq 0x898(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
addq 0x8e8(%rsp), %rax
movq %rax, 0x8e8(%rsp)
movl 0x898(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x898(%rsp)
jmp 0x16261
jmp 0x16324
movl 0x89c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x89c(%rsp)
jmp 0x16248
movl $0x0, 0x894(%rsp)
cmpl $0x4, 0x894(%rsp)
jge 0x16398
movq 0x8a0(%rsp), %rax
movq (%rax), %rax
movslq 0x894(%rsp), %rcx
vmovsd 0x121a8(%rax,%rcx,8), %xmm0
movslq 0x894(%rsp), %rax
vaddsd 0x8c0(%rsp,%rax,8), %xmm0, %xmm0
vmovsd %xmm0, 0x8c0(%rsp,%rax,8)
movl 0x894(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x894(%rsp)
jmp 0x16345
jmp 0x1639a
leaq 0x8b0(%rsp), %rdi
callq 0x1aec0
jmp 0x161cc
movq 0xe0(%rsp), %rax
movl 0x958(%rsp), %ecx
movq 0x8e8(%rsp), %rdx
subq %rdx, %rcx
movq %rcx, 0x8e0(%rsp)
movq 0x4120(%rax), %rsi
leaq 0x7b0(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x1a9f0
movq 0xb0(%rsp), %rdx
leaq 0x36f20(%rip), %rsi     # 0x4d319
leaq 0x7d0(%rsp), %rdi
callq 0x19f30
jmp 0x16408
leaq 0x36f18(%rip), %rdx     # 0x4d327
leaq 0x7f0(%rsp), %rdi
leaq 0x7d0(%rsp), %rsi
callq 0xb910
jmp 0x16426
vmovsd 0x978(%rsp), %xmm0
vmovsd 0x36d99(%rip), %xmm1    # 0x4d1d0
vmulsd %xmm1, %xmm0, %xmm0
leaq 0x790(%rsp), %rdi
xorl %esi, %esi
callq 0x48780
jmp 0x1644c
leaq 0x810(%rsp), %rdi
leaq 0x7f0(%rsp), %rsi
leaq 0x790(%rsp), %rdx
callq 0x19e40
jmp 0x1646b
leaq 0x36ebf(%rip), %rdx     # 0x4d331
leaq 0x830(%rsp), %rdi
leaq 0x810(%rsp), %rsi
callq 0xb910
jmp 0x16489
movq 0xe0(%rsp), %rax
vcvtusi2sdq 0x4120(%rax), %xmm0, %xmm0
vmovsd 0x978(%rsp), %xmm1
vdivsd %xmm1, %xmm0, %xmm0
leaq 0x770(%rsp), %rdi
xorl %esi, %esi
callq 0x48780
jmp 0x164b9
leaq 0x850(%rsp), %rdi
leaq 0x830(%rsp), %rsi
leaq 0x770(%rsp), %rdx
callq 0x19e40
jmp 0x164d8
leaq 0x36e5a(%rip), %rdx     # 0x4d339
leaq 0x870(%rsp), %rdi
leaq 0x850(%rsp), %rsi
callq 0xb910
jmp 0x164f6
leaq 0x870(%rsp), %rdi
callq 0x1a9b0
jmp 0x16505
leaq 0x870(%rsp), %rdi
callq 0x5260
leaq 0x850(%rsp), %rdi
callq 0x5260
leaq 0x770(%rsp), %rdi
callq 0x5260
leaq 0x830(%rsp), %rdi
callq 0x5260
leaq 0x810(%rsp), %rdi
callq 0x5260
leaq 0x790(%rsp), %rdi
callq 0x5260
leaq 0x7f0(%rsp), %rdi
callq 0x5260
leaq 0x7d0(%rsp), %rdi
callq 0x5260
leaq 0x7b0(%rsp), %rdi
callq 0x5260
cmpl $0x0, 0x958(%rsp)
jbe 0x17673
leaq 0x710(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
leaq 0x950(%rsp), %rsi
callq 0x1aee0
movq 0xa8(%rsp), %rdx
leaq 0x36d8f(%rip), %rsi     # 0x4d343
leaq 0x730(%rsp), %rdi
callq 0x19f30
jmp 0x165c3
leaq 0x3631e(%rip), %rdx     # 0x4c8e8
leaq 0x750(%rsp), %rdi
leaq 0x730(%rsp), %rsi
callq 0xb910
jmp 0x165e1
leaq 0x750(%rsp), %rdi
callq 0x1a9b0
jmp 0x165f0
leaq 0x750(%rsp), %rdi
callq 0x5260
leaq 0x730(%rsp), %rdi
callq 0x5260
leaq 0x710(%rsp), %rdi
callq 0x5260
leaq 0x6b0(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
leaq 0x930(%rsp), %rsi
callq 0x1aee0
movq 0xa0(%rsp), %rdx
leaq 0x36d0e(%rip), %rsi     # 0x4d351
leaq 0x6d0(%rsp), %rdi
callq 0x19f30
jmp 0x16652
leaq 0x3628f(%rip), %rdx     # 0x4c8e8
leaq 0x6f0(%rsp), %rdi
leaq 0x6d0(%rsp), %rsi
callq 0xb910
jmp 0x16670
leaq 0x6f0(%rsp), %rdi
callq 0x1a9b0
jmp 0x1667f
leaq 0x6f0(%rsp), %rdi
callq 0x5260
leaq 0x6d0(%rsp), %rdi
callq 0x5260
leaq 0x6b0(%rsp), %rdi
callq 0x5260
movq 0xe0(%rsp), %rax
testb $0x1, 0x68(%rax)
je 0x16cb9
vmovsd 0x8c0(%rsp), %xmm0
leaq 0x590(%rsp), %rdi
movq %rdi, 0x98(%rsp)
movl $0x3, %esi
callq 0x48780
movq 0x98(%rsp), %rdx
leaq 0x36c75(%rip), %rsi     # 0x4d35f
leaq 0x5b0(%rsp), %rdi
callq 0x19f30
jmp 0x166f9
leaq 0x379d5(%rip), %rdx     # 0x4e0d5
leaq 0x5d0(%rsp), %rdi
leaq 0x5b0(%rsp), %rsi
callq 0xb910
jmp 0x16717
vmovsd 0x8c8(%rsp), %xmm0
leaq 0x570(%rsp), %rdi
movl $0x3, %esi
callq 0x48780
jmp 0x16734
leaq 0x5f0(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
leaq 0x570(%rsp), %rdx
callq 0x19e40
jmp 0x16753
leaq 0x3797b(%rip), %rdx     # 0x4e0d5
leaq 0x610(%rsp), %rdi
leaq 0x5f0(%rsp), %rsi
callq 0xb910
jmp 0x16771
vmovsd 0x8d0(%rsp), %xmm0
leaq 0x550(%rsp), %rdi
movl $0x3, %esi
callq 0x48780
jmp 0x1678e
leaq 0x630(%rsp), %rdi
leaq 0x610(%rsp), %rsi
leaq 0x550(%rsp), %rdx
callq 0x19e40
jmp 0x167ad
leaq 0x37921(%rip), %rdx     # 0x4e0d5
leaq 0x650(%rsp), %rdi
leaq 0x630(%rsp), %rsi
callq 0xb910
jmp 0x167cb
vmovsd 0x8d8(%rsp), %xmm0
leaq 0x530(%rsp), %rdi
movl $0x3, %esi
callq 0x48780
jmp 0x167e8
leaq 0x670(%rsp), %rdi
leaq 0x650(%rsp), %rsi
leaq 0x530(%rsp), %rdx
callq 0x19e40
jmp 0x16807
leaq 0x360da(%rip), %rdx     # 0x4c8e8
leaq 0x690(%rsp), %rdi
leaq 0x670(%rsp), %rsi
callq 0xb910
jmp 0x16825
leaq 0x690(%rsp), %rdi
callq 0x1a9b0
jmp 0x16834
leaq 0x690(%rsp), %rdi
callq 0x5260
leaq 0x670(%rsp), %rdi
callq 0x5260
leaq 0x530(%rsp), %rdi
callq 0x5260
leaq 0x650(%rsp), %rdi
callq 0x5260
leaq 0x630(%rsp), %rdi
callq 0x5260
leaq 0x550(%rsp), %rdi
callq 0x5260
leaq 0x610(%rsp), %rdi
callq 0x5260
leaq 0x5f0(%rsp), %rdi
callq 0x5260
leaq 0x570(%rsp), %rdi
callq 0x5260
leaq 0x5d0(%rsp), %rdi
callq 0x5260
leaq 0x5b0(%rsp), %rdi
callq 0x5260
leaq 0x590(%rsp), %rdi
callq 0x5260
jmp 0x16cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16a10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16a03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x169f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x169e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x169dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x169cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x169c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x169b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x870(%rsp), %rdi
callq 0x5260
leaq 0x850(%rsp), %rdi
callq 0x5260
leaq 0x770(%rsp), %rdi
callq 0x5260
leaq 0x830(%rsp), %rdi
callq 0x5260
leaq 0x810(%rsp), %rdi
callq 0x5260
leaq 0x790(%rsp), %rdi
callq 0x5260
leaq 0x7f0(%rsp), %rdi
callq 0x5260
leaq 0x7d0(%rsp), %rdi
callq 0x5260
leaq 0x7b0(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16a7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16a6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x750(%rsp), %rdi
callq 0x5260
leaq 0x730(%rsp), %rdi
callq 0x5260
leaq 0x710(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16ae8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16adb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x6f0(%rsp), %rdi
callq 0x5260
leaq 0x6d0(%rsp), %rdi
callq 0x5260
leaq 0x6b0(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16ca7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16c25
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x690(%rsp), %rdi
callq 0x5260
leaq 0x670(%rsp), %rdi
callq 0x5260
leaq 0x530(%rsp), %rdi
callq 0x5260
leaq 0x650(%rsp), %rdi
callq 0x5260
leaq 0x630(%rsp), %rdi
callq 0x5260
leaq 0x550(%rsp), %rdi
callq 0x5260
leaq 0x610(%rsp), %rdi
callq 0x5260
leaq 0x5f0(%rsp), %rdi
callq 0x5260
leaq 0x570(%rsp), %rdi
callq 0x5260
leaq 0x5d0(%rsp), %rdi
callq 0x5260
leaq 0x5b0(%rsp), %rdi
callq 0x5260
leaq 0x590(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
cmpl $0x2, 0x9fc(%rsp)
jl 0x17671
leaq 0x50f(%rsp), %rdi
movq %rdi, 0x90(%rsp)
callq 0x5770
movq 0x90(%rsp), %rdx
leaq 0x36682(%rip), %rsi     # 0x4d36d
leaq 0x510(%rsp), %rdi
callq 0x5590
jmp 0x16cfa
leaq 0x510(%rsp), %rdi
callq 0x1a9b0
jmp 0x16d09
leaq 0x510(%rsp), %rdi
callq 0x5260
leaq 0x50f(%rsp), %rdi
callq 0x5450
cmpq $0x0, 0x8e0(%rsp)
jbe 0x16e9b
vcvtusi2sdq 0x8e0(%rsp), %xmm0, %xmm0
vmovsd 0x36493(%rip), %xmm1    # 0x4d1d8
vmulsd %xmm1, %xmm0, %xmm0
vcvtusi2sdl 0x958(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
leaq 0x4a8(%rsp), %rdi
movq %rdi, 0x88(%rsp)
xorl %esi, %esi
callq 0x48780
movq 0x88(%rsp), %rdx
leaq 0x365fd(%rip), %rsi     # 0x4d37b
leaq 0x4c8(%rsp), %rdi
callq 0x19f30
jmp 0x16d8d
leaq 0x365ef(%rip), %rdx     # 0x4d383
leaq 0x4e8(%rsp), %rdi
leaq 0x4c8(%rsp), %rsi
callq 0xb910
jmp 0x16dab
leaq 0x4e8(%rsp), %rdi
callq 0x1a9b0
jmp 0x16dba
leaq 0x4e8(%rsp), %rdi
callq 0x5260
leaq 0x4c8(%rsp), %rdi
callq 0x5260
leaq 0x4a8(%rsp), %rdi
callq 0x5260
jmp 0x16e9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16e1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x510(%rsp), %rdi
callq 0x5260
leaq 0x50f(%rsp), %rdi
callq 0x5450
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16e89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16e7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x4e8(%rsp), %rdi
callq 0x5260
leaq 0x4c8(%rsp), %rdi
callq 0x5260
leaq 0x4a8(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movl $0x0, 0x4a4(%rsp)
cmpl $0x2, 0x4a4(%rsp)
jge 0x17322
cmpl $0x0, 0x4a4(%rsp)
jne 0x16ecf
leaq 0x565f7(%rip), %rax     # 0x6d4bc
movq %rax, 0x80(%rsp)
jmp 0x16ee0
leaq 0x565e7(%rip), %rax     # 0x6d4bd
movq %rax, 0x80(%rsp)
jmp 0x16ee0
movq 0x80(%rsp), %rsi
leaq 0x460(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x481c0
movq 0x78(%rsp), %rsi
leaq 0x36430(%rip), %rdx     # 0x4d336
leaq 0x480(%rsp), %rdi
callq 0xb910
jmp 0x16f15
leaq 0x480(%rsp), %rdi
callq 0x1a9b0
jmp 0x16f24
leaq 0x480(%rsp), %rdi
callq 0x5260
leaq 0x460(%rsp), %rdi
callq 0x5260
movl $0x0, 0x45c(%rsp)
cmpl $0x1, 0x45c(%rsp)
jge 0x1724f
cmpl $0x0, 0x45c(%rsp)
je 0x17052
leaq 0x437(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x5770
movq 0x70(%rsp), %rdx
leaq 0x37152(%rip), %rsi     # 0x4e0d5
leaq 0x438(%rsp), %rdi
callq 0x5590
jmp 0x16f92
leaq 0x438(%rsp), %rdi
callq 0x1a9b0
jmp 0x16fa1
leaq 0x438(%rsp), %rdi
callq 0x5260
leaq 0x437(%rsp), %rdi
callq 0x5450
jmp 0x17052
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x16ff7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x480(%rsp), %rdi
callq 0x5260
leaq 0x460(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17040
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x438(%rsp), %rdi
callq 0x5260
leaq 0x437(%rsp), %rdi
callq 0x5450
jmp 0x17bc4
movslq 0x45c(%rsp), %rcx
leaq 0x563ef(%rip), %rax     # 0x6d450
movq (%rax,%rcx,8), %rax
movq %rax, 0x60(%rsp)
leaq 0x40f(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x5770
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
leaq 0x410(%rsp), %rdi
callq 0x5590
jmp 0x17095
leaq 0x410(%rsp), %rdi
callq 0x1a9b0
jmp 0x170a4
leaq 0x410(%rsp), %rdi
callq 0x5260
leaq 0x40f(%rsp), %rdi
callq 0x5450
movslq 0x4a4(%rsp), %rax
shlq $0x5, %rax
leaq 0x8f0(%rsp,%rax), %rcx
movslq 0x45c(%rsp), %rax
shlq $0x5, %rax
vcvtusi2sdl 0x8(%rax,%rcx), %xmm0, %xmm0
vmovsd 0x360ea(%rip), %xmm1    # 0x4d1d8
vmulsd %xmm1, %xmm0, %xmm0
vcvtusi2sdl 0x958(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
leaq 0x3a8(%rsp), %rdi
movq %rdi, 0x58(%rsp)
xorl %esi, %esi
callq 0x48780
movq 0x58(%rsp), %rdx
leaq 0x397b6(%rip), %rsi     # 0x508d7
leaq 0x3c8(%rsp), %rdi
callq 0x19f30
jmp 0x17130
leaq 0x36250(%rip), %rdx     # 0x4d387
leaq 0x3e8(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0xb910
jmp 0x1714e
leaq 0x3e8(%rsp), %rdi
callq 0x1a9b0
jmp 0x1715d
leaq 0x3e8(%rsp), %rdi
callq 0x5260
leaq 0x3c8(%rsp), %rdi
callq 0x5260
leaq 0x3a8(%rsp), %rdi
callq 0x5260
movl 0x45c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x45c(%rsp)
jmp 0x16f49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x171d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x410(%rsp), %rdi
callq 0x5260
leaq 0x40f(%rsp), %rdi
callq 0x5450
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x1723d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17230
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x3e8(%rsp), %rdi
callq 0x5260
leaq 0x3c8(%rsp), %rdi
callq 0x5260
leaq 0x3a8(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movl 0x4a4(%rsp), %eax
testl %eax, %eax
leaq 0x36125(%rip), %rcx     # 0x4d384
leaq 0x35682(%rip), %rax     # 0x4c8e8
cmoveq %rcx, %rax
movq %rax, 0x48(%rsp)
leaq 0x387(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x5770
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
leaq 0x388(%rsp), %rdi
callq 0x5590
jmp 0x1729a
leaq 0x388(%rsp), %rdi
callq 0x1a9b0
jmp 0x172a9
leaq 0x388(%rsp), %rdi
callq 0x5260
leaq 0x387(%rsp), %rdi
callq 0x5450
movl 0x4a4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4a4(%rsp)
jmp 0x16ea6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17310
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x388(%rsp), %rdi
callq 0x5260
leaq 0x387(%rsp), %rdi
callq 0x5450
jmp 0x17bc4
cmpl $0x2, 0x9fc(%rsp)
jl 0x1766f
movl $0x0, 0x380(%rsp)
cmpl $0x2, 0x380(%rsp)
jge 0x1766d
movl $0x0, 0x37c(%rsp)
cmpl $0x1, 0x37c(%rsp)
jge 0x17655
cmpl $0x0, 0x380(%rsp)
jne 0x1737a
leaq 0x56149(%rip), %rax     # 0x6d4bc
movq %rax, 0x40(%rsp)
jmp 0x17388
leaq 0x5613c(%rip), %rax     # 0x6d4bd
movq %rax, 0x40(%rsp)
jmp 0x17388
movq 0x40(%rsp), %rsi
leaq 0x318(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x481c0
movq 0x38(%rsp), %rdx
leaq 0x35ff5(%rip), %rsi     # 0x4d3a0
leaq 0x338(%rsp), %rdi
callq 0x19f30
jmp 0x173ba
leaq 0x39516(%rip), %rdx     # 0x508d7
leaq 0x358(%rsp), %rdi
leaq 0x338(%rsp), %rsi
callq 0xb910
jmp 0x173d8
leaq 0x358(%rsp), %rdi
callq 0x1a9b0
jmp 0x173e7
leaq 0x358(%rsp), %rdi
callq 0x5260
leaq 0x338(%rsp), %rdi
callq 0x5260
leaq 0x318(%rsp), %rdi
callq 0x5260
movslq 0x37c(%rsp), %rcx
leaq 0x56033(%rip), %rax     # 0x6d450
movq (%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
leaq 0x2f7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x5770
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x2f8(%rsp), %rdi
callq 0x5590
jmp 0x17451
leaq 0x2f8(%rsp), %rdi
callq 0x1a9b0
jmp 0x17460
leaq 0x2f8(%rsp), %rdi
callq 0x5260
leaq 0x2f7(%rsp), %rdi
callq 0x5450
movslq 0x380(%rsp), %rax
shlq $0x5, %rax
leaq 0x8f0(%rsp,%rax), %rsi
movslq 0x37c(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rsi
leaq 0x290(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x1aee0
movq 0x20(%rsp), %rdx
leaq 0x35e7b(%rip), %rsi     # 0x4d336
leaq 0x2b0(%rsp), %rdi
callq 0x19f30
jmp 0x174ca
leaq 0x35417(%rip), %rdx     # 0x4c8e8
leaq 0x2d0(%rsp), %rdi
leaq 0x2b0(%rsp), %rsi
callq 0xb910
jmp 0x174e8
leaq 0x2d0(%rsp), %rdi
callq 0x1a9b0
jmp 0x174f7
leaq 0x2d0(%rsp), %rdi
callq 0x5260
leaq 0x2b0(%rsp), %rdi
callq 0x5260
leaq 0x290(%rsp), %rdi
callq 0x5260
movl 0x37c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x37c(%rsp)
jmp 0x17354
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x1758e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17581
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x358(%rsp), %rdi
callq 0x5260
leaq 0x338(%rsp), %rdi
callq 0x5260
leaq 0x318(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x175d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x2f8(%rsp), %rdi
callq 0x5260
leaq 0x2f7(%rsp), %rdi
callq 0x5450
jmp 0x17bc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17643
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17636
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x2d0(%rsp), %rdi
callq 0x5260
leaq 0x2b0(%rsp), %rdi
callq 0x5260
leaq 0x290(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
jmp 0x17657
movl 0x380(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x380(%rsp)
jmp 0x1733b
jmp 0x1766f
jmp 0x17671
jmp 0x17673
movq 0xe0(%rsp), %rdi
addq $0x40e0, %rdi           # imm = 0x40E0
addq $0x22, %rdi
leaq 0x55e33(%rip), %rsi     # 0x6d4c0
callq 0x1b350
testb $0x1, %al
jne 0x1769b
jmp 0x177af
movq 0xe0(%rsp), %rsi
addq $0x4102, %rsi           # imm = 0x4102
movb 0x9fb(%rsp), %al
movb %al, 0x22f(%rsp)
movzbl 0x22f(%rsp), %edx
leaq 0x230(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x48380
movq 0x18(%rsp), %rdx
leaq 0x35cab(%rip), %rsi     # 0x4d389
leaq 0x250(%rsp), %rdi
callq 0x19f30
jmp 0x176ed
leaq 0x351f4(%rip), %rdx     # 0x4c8e8
leaq 0x270(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0xb910
jmp 0x1770b
leaq 0x270(%rsp), %rdi
callq 0x1a9b0
jmp 0x1771a
leaq 0x270(%rsp), %rdi
callq 0x5260
leaq 0x250(%rsp), %rdi
callq 0x5260
leaq 0x230(%rsp), %rdi
callq 0x5260
jmp 0x177af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x1779d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17790
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x270(%rsp), %rdi
callq 0x5260
leaq 0x250(%rsp), %rdi
callq 0x5260
leaq 0x230(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
leaq 0x208(%rsp), %rdi
callq 0x55a0
movq 0xe0(%rsp), %rsi
leaq 0x1e8(%rsp), %rdi
callq 0x1b390
jmp 0x177d3
leaq 0x1e8(%rsp), %rax
movq %rax, 0x200(%rsp)
movq 0x200(%rsp), %rdi
callq 0x1b430
movq %rax, 0x1e0(%rsp)
movq 0x200(%rsp), %rdi
callq 0x1b460
movq %rax, 0x1d8(%rsp)
leaq 0x1e0(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0x1b490
testb $0x1, %al
jne 0x17851
leaq 0x1e8(%rsp), %rdi
callq 0x11920
jmp 0x1794a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17b47
leaq 0x1e0(%rsp), %rdi
callq 0x1b4d0
movq %rax, 0x1d0(%rsp)
movq 0x1d0(%rsp), %rsi
leaq 0x190(%rsp), %rdi
callq 0x19f80
jmp 0x1787d
leaq 0x39053(%rip), %rsi     # 0x508d7
leaq 0x1b0(%rsp), %rdi
leaq 0x190(%rsp), %rdx
callq 0x19f30
jmp 0x1789b
leaq 0x208(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x5520
jmp 0x178b2
leaq 0x1b0(%rsp), %rdi
callq 0x5260
leaq 0x190(%rsp), %rdi
callq 0x5260
leaq 0x1e0(%rsp), %rdi
callq 0x1b4e0
jmp 0x1780d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17938
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x1792b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x1b0(%rsp), %rdi
callq 0x5260
leaq 0x190(%rsp), %rdi
callq 0x5260
leaq 0x1e8(%rsp), %rdi
callq 0x11920
jmp 0x17b47
leaq 0x35a45(%rip), %rsi     # 0x4d396
leaq 0x150(%rsp), %rdi
leaq 0x208(%rsp), %rdx
callq 0xb960
jmp 0x17968
leaq 0x34f79(%rip), %rdx     # 0x4c8e8
leaq 0x170(%rsp), %rdi
leaq 0x150(%rsp), %rsi
callq 0xb910
jmp 0x17986
leaq 0x170(%rsp), %rdi
callq 0x1a9b0
jmp 0x17995
leaq 0x170(%rsp), %rdi
callq 0x5260
leaq 0x150(%rsp), %rdi
callq 0x5260
cmpl $0x3, 0x9fc(%rsp)
jl 0x17b38
movq 0xe0(%rsp), %rdi
addq $0x4108, %rdi           # imm = 0x4108
callq 0x1b500
movb %al, 0x17(%rsp)
jmp 0x179d7
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x17b38
jmp 0x179e5
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0xf0(%rsp)
movq $0x0, 0x100(%rsp)
leaq 0xf0(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x118a0
movq 0xe0(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq (%rsi), %rax
movq 0x48(%rax), %rax
leaq 0x110(%rsp), %rdi
callq *%rax
jmp 0x17a30
leaq 0x3596c(%rip), %rsi     # 0x4d3a3
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rdx
callq 0x19f30
jmp 0x17a4e
leaq 0x130(%rsp), %rdi
callq 0x1a9b0
jmp 0x17a5d
leaq 0x130(%rsp), %rdi
callq 0x5260
leaq 0x110(%rsp), %rdi
callq 0x5260
leaq 0xf0(%rsp), %rdi
callq 0x11920
jmp 0x17b38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17ac0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x5260
leaq 0x150(%rsp), %rdi
callq 0x5260
jmp 0x17b47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17b29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
jmp 0x17b1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x988(%rsp)
movl %eax, 0x984(%rsp)
leaq 0x130(%rsp), %rdi
callq 0x5260
leaq 0x110(%rsp), %rdi
callq 0x5260
leaq 0xf0(%rsp), %rdi
callq 0x11920
jmp 0x17b47
leaq 0x208(%rsp), %rdi
callq 0x5260
jmp 0x17b56
leaq 0x208(%rsp), %rdi
callq 0x5260
jmp 0x17bc4
movq 0xe0(%rsp), %rdi
addq $0x54f0, %rdi           # imm = 0x54F0
callq 0x1aa80
movq 0xe0(%rsp), %rax
movq $0x0, 0x4120(%rax)
testb $0x1, 0x58(%rax)
je 0x17bbc
movq 0xe0(%rsp), %rdi
addq $0x40e0, %rdi           # imm = 0x40E0
addq $0x22, %rdi
leaq 0x55926(%rip), %rsi     # 0x6d4c3
callq 0x1b520
testb $0x1, %al
jne 0x17ba8
jmp 0x17bbc
movq 0xe0(%rsp), %rdi
addq $0x54f0, %rdi           # imm = 0x54F0
callq 0x1ab60
addq $0xa18, %rsp            # imm = 0xA18
retq
movq 0x988(%rsp), %rdi
callq 0x5760
nopw %cs:(%rax,%rax)