// File: /workspace/github_cpp_makefile_star2_O2/tewalds[P]pentagod/agentmcts.cpp
// Function: AgentMCTS::search(double, unsigned long, int)
void AgentMCTS::search(double time, uint64_t max_runs, int verbose){
	time_used = 0;
	int toplay = rootboard.toplay();

	if(rootboard.won() >= 0 || (time <= 0 && max_runs == 0))
		return;

	Time starttime;

	stop_threads();

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

	runs = 0;
	maxruns = max_runs;
	for(unsigned int i = 0; i < threads.size(); i++)
		threads[i]->reset();


	//let them run!
	start_threads();

	Alarm timer;
	if(time > 0)
		timer(time - (Time() - starttime), std::bind(&AgentMCTS::timedout, this));

	//wait for the timer to stop them
	runbarrier.wait();
	CAS(threadstate, Thread_Wait_End, Thread_Wait_Start);
	assert(threadstate == Thread_Wait_Start);

	time_used = Time() - starttime;


	if(verbose){
		DepthStats gamelen, treelen;
		double times[4] = {0,0,0,0};
		for(unsigned int i = 0; i < threads.size(); i++){
			gamelen += threads[i]->gamelen;
			treelen += threads[i]->treelen;
			for(int a = 0; a < 4; a++)
				times[a] += threads[i]->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 != -3){
			logerr("Solved as a ");
			if(     root.outcome == 0)        logerr("draw\n");
			else if(root.outcome == 3)        logerr("draw by simultaneous win\n");
			else if(root.outcome == toplay)   logerr("win\n");
			else if(root.outcome == 3-toplay) logerr("loss\n");
			else if(root.outcome == -toplay)  logerr("win or draw\n");
			else if(root.outcome == toplay-3) logerr("loss or draw\n");
		}

		vector<Move> pv = get_pv();
		string pvstr;
		for(vector<Move>::iterator m = pv.begin(); m != pv.end(); ++m)
			pvstr += " " + m->to_s();
		logerr("PV:         " + pvstr + "\n");

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

	for(unsigned int i = 0; i < threads.size(); i++)
		threads[i]->reset();
	runs = 0;


	if(ponder && root.outcome < 0)
		start_threads();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3e8, %rsp            # imm = 0x3E8
andq $0x0, 0xb60(%rdi)
movq %rdi, %rbx
addq $0x80, %rdi
movl %edx, 0x4c(%rsp)
movq %rsi, %r14
vmovsd %xmm0, 0x50(%rsp)
movzbl 0x99(%rbx), %ebp
callq 0xae70
testb %al, %al
jns 0x13d4a
vxorpd %xmm0, %xmm0, %xmm0
vucomisd 0x50(%rsp), %xmm0
setae %al
testq %r14, %r14
sete %cl
testb %cl, %al
jne 0x13d4a
leaq 0x78(%rsp), %rdi
callq 0x4c50
movq %rbx, %rdi
callq 0x13fda
movq 0xe0(%rbx), %rsi
testq %rsi, %rsi
je 0x13408
leaq 0x170(%rsp), %r15
movq %r15, %rdi
callq 0xaf8f
leaq 0xc2f6(%rip), %rsi      # 0x1f6a0
leaq 0x130(%rsp), %rdi
movq %r15, %rdx
callq 0x8423
leaq 0xc2e9(%rip), %rdx      # 0x1f6aa
leaq 0x3c8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x6821
leaq 0x3c8(%rsp), %r15
movq %r15, %rdi
callq 0xac65
movq %r15, %rdi
callq 0x4130
leaq 0x130(%rsp), %rdi
callq 0x4130
leaq 0x170(%rsp), %rdi
callq 0x4130
andq $0x0, 0xe0(%rbx)
xorl %eax, %eax
movq %r14, 0xe8(%rbx)
movl %eax, %r14d
movq 0xa88(%rbx), %rax
movq 0xa90(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r14, %rcx
jbe 0x13445
movq (%rax,%r14,8), %rdi
callq 0x15316
leal 0x1(%r14), %eax
jmp 0x13419
movq %rbx, %rdi
callq 0x14036
vmovsd 0x50(%rsp), %xmm1
orl $-0x1, 0x4(%rsp)
vxorpd %xmm0, %xmm0, %xmm0
vucomisd %xmm0, %xmm1
jbe 0x134ef
leaq 0x170(%rsp), %r14
movq %r14, %rdi
callq 0x4c50
vmovsd (%r14), %xmm0
vmovsd 0x78(%rsp), %xmm1
leaq 0x130(%rsp), %rsi
movq $0x59, (%rsi)
andq $0x0, 0x8(%rsi)
movq %rbx, 0x10(%rsi)
vmovsd %xmm0, 0xa8(%rsp)
vmovsd %xmm1, 0xa0(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x153de
vmovsd 0xa0(%rsp), %xmm0
vsubsd 0xa8(%rsp), %xmm0, %xmm0
vaddsd 0x50(%rsp), %xmm0, %xmm0
leaq 0x4(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x15364
leaq 0x208(%rsp), %rdi
callq 0x70f8
leaq 0xaa0(%rbx), %rdi
callq 0x14eda
pushq $0x6
popq %rax
pushq $0x1
popq %rcx
lock
cmpxchgl %ecx, 0xa80(%rbx)
movl 0xa80(%rbx), %eax
cmpl $0x1, %eax
jne 0x13d5c
leaq 0x130(%rsp), %r14
movq %r14, %rdi
callq 0x4c50
vmovsd (%r14), %xmm0
cmpl $0x0, 0x4c(%rsp)
vsubsd 0x78(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0xb60(%rbx)
je 0x13cf3
leaq 0x130(%rsp), %r14
leaq 0x170(%rsp), %r15
movl $0x3b9aca00, %eax       # imm = 0x3B9ACA00
vxorpd %xmm0, %xmm0, %xmm0
movl $0x98, %r13d
xorl %r12d, %r12d
andl $0x0, 0x8(%r14)
movq %rax, (%r14)
andl $0x0, 0x8(%r15)
movq %rax, (%r15)
vmovupd %xmm0, 0x10(%r14)
vmovupd %xmm0, 0x10(%r15)
vxorpd %xmm0, %xmm0, %xmm0
vmovupd %ymm0, 0x150(%rsp)
movq 0xa88(%rbx), %rax
movq 0xa90(%rbx), %rcx
movl %r12d, %r12d
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r12, %rcx
jbe 0x1360f
movq (%rax,%r12,8), %rsi
movq %r14, %rdi
addq %r13, %rsi
vzeroupper
callq 0x15426
movq 0xa88(%rbx), %rax
movq %r15, %rdi
movq (%rax,%r12,8), %rsi
addq $0x78, %rsi
callq 0x15426
movq 0xa88(%rbx), %rax
xorl %edx, %edx
movq (%rax,%r12,8), %rcx
cmpq $0x4, %rdx
je 0x1360a
vmovsd 0xb8(%rcx,%rdx,8), %xmm0
vaddsd 0x150(%rsp,%rdx,8), %xmm0, %xmm0
vmovsd %xmm0, 0x150(%rsp,%rdx,8)
incq %rdx
jmp 0x135e4
incl %r12d
jmp 0x13598
movq 0xe0(%rbx), %rsi
leaq 0xf0(%rsp), %rdi
vzeroupper
callq 0xaf8f
leaq 0xc0e9(%rip), %rsi      # 0x1f716
leaq 0x110(%rsp), %rdi
leaq 0xf0(%rsp), %rdx
callq 0x8423
leaq 0xc0db(%rip), %rdx      # 0x1f724
leaq 0x58(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x6821
vmovsd 0xb60(%rbx), %xmm0
vmulsd 0x899d(%rip), %xmm0, %xmm0 # 0x1c008
leaq 0xd0(%rsp), %rdi
xorl %esi, %esi
callq 0xf350
leaq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0x8365
leaq 0xc093(%rip), %rdx      # 0x1f72e
leaq 0x28(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x6821
vcvtusi2sdq 0xe0(%rbx), %xmm2, %xmm0
vdivsd 0xb60(%rbx), %xmm0, %xmm0
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
callq 0xf350
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x8365
leaq 0xc04d(%rip), %rdx      # 0x1f736
leaq 0x3a8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x6821
leaq 0x3a8(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
leaq 0x8(%rsp), %rdi
callq 0x4130
leaq 0xb0(%rsp), %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
callq 0x4130
leaq 0x80(%rsp), %rdi
callq 0x4130
leaq 0xd0(%rsp), %rdi
callq 0x4130
leaq 0x58(%rsp), %rdi
callq 0x4130
leaq 0x110(%rsp), %rdi
callq 0x4130
leaq 0xf0(%rsp), %rdi
callq 0x4130
cmpq $0x0, 0xe0(%rbx)
je 0x13a37
leaq 0x28(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x15452
leaq 0xbfa7(%rip), %rsi      # 0x1f740
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x8423
leaq 0x9309(%rip), %rdx      # 0x1cab8
leaq 0x388(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x6821
leaq 0x388(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
leaq 0x8(%rsp), %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x15452
leaq 0xbf48(%rip), %rsi      # 0x1f74e
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x8423
leaq 0x929c(%rip), %rdx      # 0x1cab8
leaq 0x368(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x6821
leaq 0x368(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
leaq 0x8(%rsp), %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
callq 0x4130
cmpb $0x1, 0x48(%rbx)
jne 0x13a37
vmovsd 0x150(%rsp), %xmm0
leaq 0xb0(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0xf350
leaq 0xbed8(%rip), %rsi      # 0x1f75c
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
callq 0x8423
leaq 0xd0cc(%rip), %rdx      # 0x2096c
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x6821
vmovsd 0x158(%rsp), %xmm0
leaq 0x1e8(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0xf350
leaq 0x110(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x1e8(%rsp), %rdx
callq 0x8365
leaq 0xd07a(%rip), %rdx      # 0x2096c
leaq 0x58(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x6821
vmovsd 0x160(%rsp), %xmm0
leaq 0x1c8(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0xf350
leaq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x1c8(%rsp), %rdx
callq 0x8365
leaq 0xd02e(%rip), %rdx      # 0x2096c
leaq 0x28(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x6821
vmovsd 0x168(%rsp), %xmm0
leaq 0x1a8(%rsp), %rdi
pushq $0x3
popq %rsi
callq 0xf350
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0x8365
leaq 0x9131(%rip), %rdx      # 0x1cab8
leaq 0x348(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x6821
leaq 0x348(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
leaq 0x8(%rsp), %rdi
callq 0x4130
leaq 0x1a8(%rsp), %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
callq 0x4130
leaq 0x80(%rsp), %rdi
callq 0x4130
leaq 0x1c8(%rsp), %rdi
callq 0x4130
leaq 0x58(%rsp), %rdi
callq 0x4130
leaq 0x110(%rsp), %rdi
callq 0x4130
leaq 0x1e8(%rsp), %rdi
callq 0x4130
leaq 0xf0(%rsp), %rdi
callq 0x4130
leaq 0xd0(%rsp), %rdi
callq 0x4130
leaq 0xb0(%rsp), %rdi
callq 0x4130
cmpb $-0x3, 0xba(%rbx)
je 0x13b88
leaq 0xbd1f(%rip), %rsi      # 0x1f76a
leaq 0x328(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x328(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
movzbl 0xba(%rbx), %eax
cmpl $0x3, %eax
je 0x13aab
testl %eax, %eax
jne 0x13ad1
leaq 0xbd12(%rip), %rsi      # 0x1f79e
leaq 0x308(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x308(%rsp), %r14
jmp 0x13b78
leaq 0xbcc5(%rip), %rsi      # 0x1f777
leaq 0x2e8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x2e8(%rsp), %r14
jmp 0x13b78
movsbl %al, %eax
cmpl %ebp, %eax
jne 0x13afb
leaq 0xbcad(%rip), %rsi      # 0x1f78c
leaq 0x2c8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x2c8(%rsp), %r14
jmp 0x13b78
pushq $0x3
popq %rcx
subl %ebp, %ecx
cmpl %eax, %ecx
jne 0x13b27
leaq 0xbc86(%rip), %rsi      # 0x1f791
leaq 0x2a8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x2a8(%rsp), %r14
jmp 0x13b78
movl %eax, %ecx
addl %ebp, %ecx
jne 0x13b50
leaq 0xbc63(%rip), %rsi      # 0x1f797
leaq 0x288(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x288(%rsp), %r14
jmp 0x13b78
addl $-0x3, %ebp
cmpl %eax, %ebp
jne 0x13b88
leaq 0xbc46(%rip), %rsi      # 0x1f7a4
leaq 0x268(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x40f0
leaq 0x268(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
movq (%rbx), %rax
leaq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq *0x40(%rax)
leaq 0x18(%rsp), %rax
movq 0x58(%rsp), %r14
leaq 0x80(%rsp), %r15
leaq 0xbc0e(%rip), %r12      # 0x1f7bd
leaq 0x28(%rsp), %r13
leaq 0x8(%rsp), %rbp
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
cmpq 0x60(%rsp), %r14
je 0x13c08
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x8178
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x8423
movq %rbp, %rdi
movq %r13, %rsi
callq 0x4610
movq %r13, %rdi
callq 0x4130
movq %r15, %rdi
callq 0x4130
addq $0x4, %r14
jmp 0x13bc5
leaq 0xbba3(%rip), %rsi      # 0x1f7b2
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x6864
leaq 0x8e93(%rip), %rdx      # 0x1cab8
leaq 0x248(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x6821
leaq 0x248(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
callq 0x4130
cmpl $0x3, 0x4c(%rsp)
jl 0x13cdf
movq 0xc8(%rbx), %rax
cmpq $0x2, %rax
jb 0x13cdf
cmpw $0x0, 0x6(%rax)
je 0x13cdf
leaq 0x190(%rsp), %rdx
vxorpd %xmm0, %xmm0, %xmm0
vmovapd %xmm0, (%rdx)
andq $0x0, 0x10(%rdx)
movq (%rbx), %rax
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq *0x48(%rax)
leaq 0xbb21(%rip), %rsi      # 0x1f7bf
leaq 0x228(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x8423
leaq 0x228(%rsp), %r14
movq %r14, %rdi
callq 0xac65
movq %r14, %rdi
callq 0x4130
leaq 0x28(%rsp), %rdi
callq 0x4130
leaq 0x190(%rsp), %rdi
callq 0x8958
leaq 0x8(%rsp), %rdi
callq 0x4130
leaq 0x58(%rsp), %rdi
callq 0x8958
xorl %r14d, %r14d
movq 0xa88(%rbx), %rax
movq 0xa90(%rbx), %rcx
movl %r14d, %r14d
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %r14, %rcx
jbe 0x13d21
movq (%rax,%r14,8), %rdi
callq 0x15316
incl %r14d
jmp 0x13cf6
andq $0x0, 0xe0(%rbx)
cmpb $0x1, 0x38(%rbx)
jne 0x13d40
cmpb $0x0, 0xba(%rbx)
jns 0x13d40
movq %rbx, %rdi
callq 0x14036
leaq 0x4(%rsp), %rdi
callq 0x1571e
addq $0x3e8, %rsp            # imm = 0x3E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb94e(%rip), %rdi      # 0x1f6b1
leaq 0xb968(%rip), %rsi      # 0x1f6d2
leaq 0xb96f(%rip), %rcx      # 0x1f6e0
pushq $0x67
popq %rdx
callq 0x41c0
jmp 0x13fc4
jmp 0x13fc4
jmp 0x13fc4
jmp 0x13fc4
leaq 0x28(%rsp), %rdi
movq %rax, %rbx
callq 0x4130
jmp 0x13d9f
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0x8958
jmp 0x13fae
jmp 0x13fc4
jmp 0x13fc4
leaq 0x8(%rsp), %rdi
movq %rax, %rbx
callq 0x4130
jmp 0x13dcd
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
callq 0x4130
jmp 0x13ddf
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x4130
jmp 0x13dee
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x4130
jmp 0x13e00
movq %rax, %rbx
leaq 0x1c8(%rsp), %rdi
callq 0x4130
leaq 0x58(%rsp), %rdi
callq 0x4130
leaq 0x110(%rsp), %rdi
callq 0x4130
leaq 0x1e8(%rsp), %rdi
callq 0x4130
leaq 0xf0(%rsp), %rdi
callq 0x4130
leaq 0xd0(%rsp), %rdi
callq 0x4130
leaq 0xb0(%rsp), %rdi
jmp 0x13f4c
movq %rax, %rbx
jmp 0x13e0d
movq %rax, %rbx
jmp 0x13e17
movq %rax, %rbx
jmp 0x13e24
movq %rax, %rbx
jmp 0x13e31
movq %rax, %rbx
jmp 0x13e3e
movq %rax, %rbx
jmp 0x13e4b
jmp 0x13fc4
jmp 0x13fc4
jmp 0x13e89
jmp 0x13e98
jmp 0x13fc4
leaq 0x8(%rsp), %rdi
movq %rax, %rbx
callq 0x4130
jmp 0x13e9b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0x13f4c
jmp 0x13fc4
leaq 0x208(%rsp), %rdi
movq %rax, %rbx
callq 0x70f8
jmp 0x13fc7
jmp 0x13fc4
leaq 0x28(%rsp), %rdi
movq %rax, %rbx
jmp 0x13fa9
jmp 0x13f8a
jmp 0x13fc4
leaq 0x8(%rsp), %rdi
movq %rax, %rbx
callq 0x4130
jmp 0x13eed
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0x4130
jmp 0x13eff
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x4130
jmp 0x13f0e
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x4130
jmp 0x13f20
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x4130
leaq 0x58(%rsp), %rdi
callq 0x4130
leaq 0x110(%rsp), %rdi
callq 0x4130
leaq 0xf0(%rsp), %rdi
callq 0x4130
jmp 0x13fc7
movq %rax, %rbx
jmp 0x13f2d
movq %rax, %rbx
jmp 0x13f37
movq %rax, %rbx
jmp 0x13f44
jmp 0x13fc4
leaq 0x130(%rsp), %rdi
movq %rax, %rbx
callq 0x4130
jmp 0x13f79
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0x4130
jmp 0x13fd1
jmp 0x13fc4
movq %rax, %rbx
jmp 0x13fae
movq %rax, %rbx
jmp 0x13fa1
leaq 0x28(%rsp), %rdi
movq %rax, %rbx
callq 0x4130
leaq 0x80(%rsp), %rdi
callq 0x4130
leaq 0x8(%rsp), %rdi
callq 0x4130
leaq 0x58(%rsp), %rdi
callq 0x8958
jmp 0x13fc7
movq %rax, %rbx
leaq 0x4(%rsp), %rdi
callq 0x1571e
movq %rbx, %rdi
callq 0x4590
nop