// File: tewalds[P]morat/pentago/agentab.cpp
// Function: Morat::Pentago::AgentAB::search(double, unsigned long, int)
void AgentAB::search(double time, uint64_t maxiters, int verbose) {
	reset();
	if(rootboard.outcome() >= 0)
		return;

	if(TT == NULL)
		TT = new Node[maxnodes];

	Alarm timer;
	if (time > 0)
		timer(time/15, std::bind(&AgentAB::timedout, this));

	Time start;

	uint64_t nodes_start, seen, prev_nodes_seen = 0;
	for(unsigned int depth = 2; !timeout && depth < 36 && (maxiters == 0 || depth <= maxiters); depth++){
		maxdepth = depth;
		nodes_start = nodes_seen;
		Time start_depth;
		if (verbose)
			logerr("Depth " + to_str(depth) + "      ");
		negamax(rootboard, SCORE_LOSS, SCORE_WIN, depth);
		seen = nodes_seen - nodes_start;
		if (verbose) {
			logerr("time: " + to_str((Time() - start_depth)*1000, 0) + " msec, ");
			logerr("BF: " + to_str(prev_nodes_seen ? (double)(1.0*seen / prev_nodes_seen) : 0.0, 2) + ", Nodes: " + to_str(seen) + "\n");
		}
		prev_nodes_seen = seen;
	}

	time_used += Time() - start;

	if(verbose){
		logerr("Finished:    " + to_str(nodes_seen) + " nodes in " + to_str(time_used*1000, 0) + " msec: " + to_str((uint64_t)((double)nodes_seen/time_used)) + " Nodes/s\n");

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

		if(verbose >= 3)
			logerr("Move stats:\n" + move_stats(vecmove()));
	}
}

// Assembly:
subq $0x4e8, %rsp            # imm = 0x4E8
movq %rdi, 0x4e0(%rsp)
vmovsd %xmm0, 0x4d8(%rsp)
movq %rsi, 0x4d0(%rsp)
movl %edx, 0x4cc(%rsp)
movq 0x4e0(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0x14090
movq 0x58(%rsp), %rdi
addq $0x10, %rdi
callq 0x14100
movb %al, 0x4cb(%rsp)
movb $0x0, 0x4c9(%rsp)
leaq 0x4ca(%rsp), %rdi
leaq 0x4c9(%rsp), %rsi
callq 0x14160
leaq 0x4cb(%rsp), %rdi
leaq 0x4ca(%rsp), %rsi
callq 0x140c0
testb $0x1, %al
jne 0x11fb6
jmp 0x11fbb
jmp 0x12db4
movq 0x58(%rsp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x120b8
movq 0x58(%rsp), %rax
movq 0x40(%rax), %rax
movq %rax, 0x48(%rsp)
movl $0x10, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x5030
movq %rax, %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x50(%rsp)
cmpq $0x0, %rax
je 0x12085
movq 0x50(%rsp), %rax
movq 0x48(%rsp), %rdx
shlq $0x4, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x38(%rsp)
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x4c7(%rsp), %rdi
movl $0xfffffffc, %esi       # imm = 0xFFFFFFFC
callq 0x14180
jmp 0x12049
movq 0x30(%rsp), %rdi
movzwl 0x4c7(%rsp), %ecx
movq $-0x1, %rsi
xorl %r9d, %r9d
movl %r9d, %edx
movl %r9d, %r8d
callq 0x141a0
jmp 0x1206d
movq 0x38(%rsp), %rcx
movq 0x30(%rsp), %rax
addq $0x10, %rax
cmpq %rcx, %rax
movq %rax, 0x40(%rsp)
jne 0x1202b
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
movq %rcx, 0x38(%rax)
jmp 0x120b8
movq 0x50(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
callq 0x5570
jmp 0x12dc9
leaq 0x4b0(%rsp), %rdi
callq 0x14200
vmovsd 0x4d8(%rsp), %xmm0
vpxor %xmm1, %xmm1, %xmm1
vucomisd %xmm1, %xmm0
jbe 0x121bd
movq 0x58(%rsp), %rax
vmovsd 0x4d8(%rsp), %xmm0
vmovsd 0x32026(%rip), %xmm1    # 0x44118
vdivsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x28(%rsp)
movq $0x0, 0x470(%rsp)
movq $0x59, 0x468(%rsp)
movq %rax, 0x460(%rsp)
leaq 0x478(%rsp), %rdi
leaq 0x468(%rsp), %rsi
leaq 0x460(%rsp), %rdx
callq 0x142d0
jmp 0x1213b
leaq 0x490(%rsp), %rdi
leaq 0x478(%rsp), %rsi
callq 0x14310
jmp 0x12152
vmovsd 0x28(%rsp), %xmm0
leaq 0x4b0(%rsp), %rdi
leaq 0x490(%rsp), %rsi
callq 0x14220
jmp 0x1216f
leaq 0x490(%rsp), %rdi
callq 0x143c0
jmp 0x121bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12dbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x490(%rsp), %rdi
callq 0x143c0
jmp 0x12dbc
leaq 0x458(%rsp), %rdi
callq 0x67a0
jmp 0x121cc
movq $0x0, 0x440(%rsp)
movl $0x2, 0x43c(%rsp)
movq 0x58(%rsp), %rax
movb 0x8(%rax), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x27(%rsp)
jne 0x12235
xorl %eax, %eax
cmpl $0x24, 0x43c(%rsp)
movb %al, 0x27(%rsp)
jae 0x12235
movb $0x1, %al
cmpq $0x0, 0x4d0(%rsp)
movb %al, 0x26(%rsp)
je 0x1222d
movl 0x43c(%rsp), %eax
cmpq 0x4d0(%rsp), %rax
setbe %al
movb %al, 0x26(%rsp)
movb 0x26(%rsp), %al
movb %al, 0x27(%rsp)
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0x12242
jmp 0x1273b
movq 0x58(%rsp), %rax
movl 0x43c(%rsp), %ecx
movl %ecx, 0x50(%rax)
movq 0x58(%rax), %rax
movq %rax, 0x450(%rsp)
leaq 0x430(%rsp), %rdi
callq 0x67a0
jmp 0x1226c
cmpl $0x0, 0x4cc(%rsp)
je 0x12370
movl 0x43c(%rsp), %esi
leaq 0x3d0(%rsp), %rdi
callq 0x14460
jmp 0x12290
leaq 0x31ea1(%rip), %rsi     # 0x44138
leaq 0x3f0(%rsp), %rdi
leaq 0x3d0(%rsp), %rdx
callq 0x14410
jmp 0x122ae
leaq 0x31ed2(%rip), %rdx     # 0x44187
leaq 0x410(%rsp), %rdi
leaq 0x3f0(%rsp), %rsi
callq 0xaa40
jmp 0x122cc
leaq 0x410(%rsp), %rdi
callq 0x143d0
jmp 0x122db
leaq 0x410(%rsp), %rdi
callq 0x5290
leaq 0x3f0(%rsp), %rdi
callq 0x5290
leaq 0x3d0(%rsp), %rdi
callq 0x5290
jmp 0x12370
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x1235e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x410(%rsp), %rdi
callq 0x5290
leaq 0x3f0(%rsp), %rdi
callq 0x5290
leaq 0x3d0(%rsp), %rdi
callq 0x5290
jmp 0x12dbc
movq 0x58(%rsp), %rdi
movq %rdi, %rsi
addq $0x10, %rsi
movl 0x43c(%rsp), %r8d
movl $0xffff8001, %edx       # imm = 0xFFFF8001
movl $0x7fff, %ecx           # imm = 0x7FFF
callq 0x12de0
jmp 0x12395
movq 0x58(%rsp), %rax
movq 0x58(%rax), %rax
subq 0x450(%rsp), %rax
movq %rax, 0x448(%rsp)
cmpl $0x0, 0x4cc(%rsp)
je 0x12715
leaq 0x368(%rsp), %rdi
callq 0x67a0
jmp 0x123cb
leaq 0x368(%rsp), %rdi
leaq 0x430(%rsp), %rsi
callq 0x144f0
vmovsd %xmm0, 0x18(%rsp)
jmp 0x123e8
vmovsd 0x18(%rsp), %xmm0
vmovsd 0x31d2a(%rip), %xmm1    # 0x44120
vmulsd %xmm1, %xmm0, %xmm0
leaq 0x370(%rsp), %rdi
xorl %esi, %esi
callq 0x3fed0
jmp 0x1240b
leaq 0x35a8e(%rip), %rsi     # 0x47ea0
leaq 0x390(%rsp), %rdi
leaq 0x370(%rsp), %rdx
callq 0x14410
jmp 0x12429
leaq 0x31d0f(%rip), %rdx     # 0x4413f
leaq 0x3b0(%rsp), %rdi
leaq 0x390(%rsp), %rsi
callq 0xaa40
jmp 0x12447
leaq 0x3b0(%rsp), %rdi
callq 0x143d0
jmp 0x12456
leaq 0x3b0(%rsp), %rdi
callq 0x5290
leaq 0x390(%rsp), %rdi
callq 0x5290
leaq 0x370(%rsp), %rdi
callq 0x5290
cmpq $0x0, 0x440(%rsp)
je 0x124b6
vcvtusi2sdq 0x448(%rsp), %xmm0, %xmm1
vmovsd 0x30b75(%rip), %xmm0    # 0x43010
vmulsd %xmm1, %xmm0, %xmm0
vcvtusi2sdq 0x440(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x10(%rsp)
jmp 0x124c2
vpxor %xmm0, %xmm0, %xmm0
vmovsd %xmm0, 0x10(%rsp)
jmp 0x124c2
vmovsd 0x10(%rsp), %xmm0
leaq 0x2c8(%rsp), %rdi
movl $0x2, %esi
callq 0x3fed0
jmp 0x124dc
leaq 0x31c64(%rip), %rsi     # 0x44147
leaq 0x2e8(%rsp), %rdi
leaq 0x2c8(%rsp), %rdx
callq 0x14410
jmp 0x124fa
leaq 0x31c4b(%rip), %rdx     # 0x4414c
leaq 0x308(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
callq 0xaa40
jmp 0x12518
movq 0x448(%rsp), %rsi
leaq 0x2a8(%rsp), %rdi
callq 0x14600
jmp 0x1252f
leaq 0x328(%rsp), %rdi
leaq 0x308(%rsp), %rsi
leaq 0x2a8(%rsp), %rdx
callq 0x14510
jmp 0x1254e
leaq 0x312cf(%rip), %rdx     # 0x43824
leaq 0x348(%rsp), %rdi
leaq 0x328(%rsp), %rsi
callq 0xaa40
jmp 0x1256c
leaq 0x348(%rsp), %rdi
callq 0x143d0
jmp 0x1257b
leaq 0x348(%rsp), %rdi
callq 0x5290
leaq 0x328(%rsp), %rdi
callq 0x5290
leaq 0x2a8(%rsp), %rdi
callq 0x5290
leaq 0x308(%rsp), %rdi
callq 0x5290
leaq 0x2e8(%rsp), %rdi
callq 0x5290
leaq 0x2c8(%rsp), %rdi
callq 0x5290
jmp 0x12715
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12628
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x1261b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x3b0(%rsp), %rdi
callq 0x5290
leaq 0x390(%rsp), %rdi
callq 0x5290
leaq 0x370(%rsp), %rdi
callq 0x5290
jmp 0x12dbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x126f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x126e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x126dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x126cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x348(%rsp), %rdi
callq 0x5290
leaq 0x328(%rsp), %rdi
callq 0x5290
leaq 0x2a8(%rsp), %rdi
callq 0x5290
leaq 0x308(%rsp), %rdi
callq 0x5290
leaq 0x2e8(%rsp), %rdi
callq 0x5290
leaq 0x2c8(%rsp), %rdi
callq 0x5290
jmp 0x12dbc
movq 0x448(%rsp), %rax
movq %rax, 0x440(%rsp)
movl 0x43c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x43c(%rsp)
jmp 0x121e3
leaq 0x2a0(%rsp), %rdi
callq 0x67a0
jmp 0x1274a
leaq 0x2a0(%rsp), %rdi
leaq 0x458(%rsp), %rsi
callq 0x144f0
vmovsd %xmm0, 0x8(%rsp)
jmp 0x12767
movq 0x58(%rsp), %rax
vmovsd 0x8(%rsp), %xmm0
vaddsd 0x60(%rax), %xmm0, %xmm0
vmovsd %xmm0, 0x60(%rax)
cmpl $0x0, 0x4cc(%rsp)
je 0x12da7
movq 0x58(%rsp), %rax
movq 0x58(%rax), %rsi
leaq 0x1c0(%rsp), %rdi
callq 0x14600
jmp 0x127a2
leaq 0x319ad(%rip), %rsi     # 0x44156
leaq 0x1e0(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
callq 0x14410
jmp 0x127c0
leaq 0x3199d(%rip), %rdx     # 0x44164
leaq 0x200(%rsp), %rdi
leaq 0x1e0(%rsp), %rsi
callq 0xaa40
jmp 0x127de
movq 0x58(%rsp), %rax
vmovsd 0x60(%rax), %xmm0
vmovsd 0x31930(%rip), %xmm1    # 0x44120
vmulsd %xmm1, %xmm0, %xmm0
leaq 0x1a0(%rsp), %rdi
xorl %esi, %esi
callq 0x3fed0
jmp 0x12805
leaq 0x220(%rsp), %rdi
leaq 0x200(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x14510
jmp 0x12824
leaq 0x31944(%rip), %rdx     # 0x4416f
leaq 0x240(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0xaa40
jmp 0x12842
movq 0x58(%rsp), %rax
vcvtusi2sdq 0x58(%rax), %xmm0, %xmm0
vmovsd 0x60(%rax), %xmm1
vdivsd %xmm1, %xmm0, %xmm0
vcvttsd2usi %xmm0, %rsi
leaq 0x180(%rsp), %rdi
callq 0x14600
jmp 0x1286c
leaq 0x260(%rsp), %rdi
leaq 0x240(%rsp), %rsi
leaq 0x180(%rsp), %rdx
callq 0x14510
jmp 0x1288b
leaq 0x318e5(%rip), %rdx     # 0x44177
leaq 0x280(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0xaa40
jmp 0x128a9
leaq 0x280(%rsp), %rdi
callq 0x143d0
jmp 0x128b8
leaq 0x280(%rsp), %rdi
callq 0x5290
leaq 0x260(%rsp), %rdi
callq 0x5290
leaq 0x180(%rsp), %rdi
callq 0x5290
leaq 0x240(%rsp), %rdi
callq 0x5290
leaq 0x220(%rsp), %rdi
callq 0x5290
leaq 0x1a0(%rsp), %rdi
callq 0x5290
leaq 0x200(%rsp), %rdi
callq 0x5290
leaq 0x1e0(%rsp), %rdi
callq 0x5290
leaq 0x1c0(%rsp), %rdi
callq 0x5290
movq 0x58(%rsp), %rsi
movq (%rsi), %rax
movq 0x40(%rax), %rax
leaq 0x168(%rsp), %rdi
callq *%rax
jmp 0x12945
leaq 0x148(%rsp), %rdi
callq 0x55e0
leaq 0x168(%rsp), %rdi
callq 0x14690
movq %rax, 0x140(%rsp)
leaq 0x168(%rsp), %rdi
callq 0x14700
movq %rax, 0x138(%rsp)
leaq 0x140(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x146c0
testb $0x1, %al
jne 0x1299a
jmp 0x12bc9
leaq 0x140(%rsp), %rdi
callq 0x14730
movq %rax, %rsi
leaq 0xf8(%rsp), %rdi
callq 0x14740
jmp 0x129b9
leaq 0x354c9(%rip), %rsi     # 0x47e89
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x14410
jmp 0x129d7
leaq 0x148(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x5560
jmp 0x129ee
leaq 0x118(%rsp), %rdi
callq 0x5290
leaq 0xf8(%rsp), %rdi
callq 0x5290
leaq 0x140(%rsp), %rdi
callq 0x14aa0
jmp 0x12967
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12b07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12afa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x280(%rsp), %rdi
callq 0x5290
leaq 0x260(%rsp), %rdi
callq 0x5290
leaq 0x180(%rsp), %rdi
callq 0x5290
leaq 0x240(%rsp), %rdi
callq 0x5290
leaq 0x220(%rsp), %rdi
callq 0x5290
leaq 0x1a0(%rsp), %rdi
callq 0x5290
leaq 0x200(%rsp), %rdi
callq 0x5290
leaq 0x1e0(%rsp), %rdi
callq 0x5290
leaq 0x1c0(%rsp), %rdi
callq 0x5290
jmp 0x12dbc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12d8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12bb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x5290
leaq 0xf8(%rsp), %rdi
callq 0x5290
jmp 0x12d8b
leaq 0x315b1(%rip), %rsi     # 0x44181
leaq 0xb8(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0xaa90
jmp 0x12be7
leaq 0x30c36(%rip), %rdx     # 0x43824
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xaa40
jmp 0x12c05
leaq 0xd8(%rsp), %rdi
callq 0x143d0
jmp 0x12c14
leaq 0xd8(%rsp), %rdi
callq 0x5290
leaq 0xb8(%rsp), %rdi
callq 0x5290
cmpl $0x3, 0x4cc(%rsp)
jl 0x12d6f
vpxor %xmm0, %xmm0, %xmm0
vmovdqa %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0x60(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xef40
movq 0x58(%rsp), %rsi
movq (%rsp), %rdx
movq (%rsi), %rax
movq 0x48(%rax), %rax
leaq 0x78(%rsp), %rdi
callq *%rax
jmp 0x12c76
leaq 0x31511(%rip), %rsi     # 0x4418e
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x14410
jmp 0x12c91
leaq 0x98(%rsp), %rdi
callq 0x143d0
jmp 0x12ca0
leaq 0x98(%rsp), %rdi
callq 0x5290
leaq 0x78(%rsp), %rdi
callq 0x5290
leaq 0x60(%rsp), %rdi
callq 0x10af0
jmp 0x12d6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12cfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0xd8(%rsp), %rdi
callq 0x5290
leaq 0xb8(%rsp), %rdi
callq 0x5290
jmp 0x12d8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12d63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
jmp 0x12d59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x4b8(%rsp)
movl %eax, 0x4b4(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x5290
leaq 0x78(%rsp), %rdi
callq 0x5290
leaq 0x60(%rsp), %rdi
callq 0x10af0
jmp 0x12d8b
leaq 0x148(%rsp), %rdi
callq 0x5290
leaq 0x168(%rsp), %rdi
callq 0x10af0
jmp 0x12da7
leaq 0x148(%rsp), %rdi
callq 0x5290
leaq 0x168(%rsp), %rdi
callq 0x10af0
jmp 0x12dbc
leaq 0x4b0(%rsp), %rdi
callq 0x14ac0
addq $0x4e8, %rsp            # imm = 0x4E8
retq
leaq 0x4b0(%rsp), %rdi
callq 0x14ac0
movq 0x4b8(%rsp), %rdi
callq 0x57a0
nopw %cs:(%rax,%rax)