// File: /workspace/github_cpp_makefile_star2_O1/zerolfx[P]P-Machine/movd.cpp
// Function: Movd::execute(StackMachine*)
void Movd::execute(StackMachine *stack)
{	cout << "begin " << stack->fStore[stack->fMP + fQ]->getValue() << endl;
	cout << "einde " << stack->fStore[stack->fMP + fQ + 2]->getValue() << endl;
	cout << "totaal " << stack->fStore[stack->fMP + fQ]->getValue() + stack->fStore[stack->fMP + fQ + 2]->getValue() - 1 << endl;
	if(stack->fStore[stack->fStore[stack->fMP + fQ]->getValue() + stack->fStore[stack->fMP + fQ + 2]->getValue()]->getValue() < 0)
	{
		// copying a block from the heapspace to the top of the stack
				
		StackInteger p1;
		StackBoolean p2;
		StackAddress p3;
		StackCharacter p4;
		StackReal p5;
		
		int baseaddress = stack->fStore[stack->fMP + fQ]->getValue() + stack->fStore[stack->fMP + fQ + 2]->getValue() - 1;
		
		for(int i = 1; i <= stack->fStore[stack->fMP + fQ + 1]->getValue(); ++i)
		{
			int effectiveaddress = - baseaddress - i - 1;
			
			if((-effectiveaddress >= 0) || (-effectiveaddress < stack->fNP))
				throw ExecutionError("instruction movd: trying to access a heapaddress that is out of range.");

			if(typeid(p1) == typeid(*stack->fHeap[effectiveaddress]))			
				stack->fStore.push_back(new StackInteger(*(dynamic_cast<StackInteger*>(stack->fHeap[-effectiveaddress]))));
			if(typeid(p2) == typeid(*stack->fHeap[effectiveaddress]))
				stack->fStore.push_back(new StackBoolean(*(dynamic_cast<StackBoolean*>(stack->fHeap[-effectiveaddress]))));
			if(typeid(p3) == typeid(*stack->fHeap[effectiveaddress]))
				stack->fStore.push_back(new StackAddress(*(dynamic_cast<StackAddress*>(stack->fHeap[-effectiveaddress]))));
			if(typeid(p4) == typeid(*stack->fHeap[effectiveaddress]))
				stack->fStore.push_back(new StackCharacter(*(dynamic_cast<StackCharacter*>(stack->fHeap[-effectiveaddress]))));
			if(typeid(p5) == typeid(*stack->fHeap[effectiveaddress]))
				stack->fStore.push_back(new StackReal(*(dynamic_cast<StackReal*>(stack->fHeap[-effectiveaddress]))));
		}
	}
	else
	{
		// copying a block from the stackspace to the top of the stack
				
		StackInteger p1;
		StackBoolean p2;
		StackAddress p3;
		StackCharacter p4;
		StackReal p5;
		
		int baseaddress = stack->fStore[stack->fMP + fQ]->getValue() + stack->fStore[stack->fMP + fQ + 2]->getValue() - 1;
		
		for(int i = 1; i <= stack->fStore[stack->fMP + fQ + 1]->getValue(); ++i)
		{
			int effectiveaddress = baseaddress + i;
			
			if((effectiveaddress < 0) || (effectiveaddress > stack->fSP))
				throw ExecutionError("instruction movd: trying to access a stackaddress that is out of range.");

			if(typeid(p1) == typeid(*stack->fStore[effectiveaddress]))			
				stack->fStore.push_back(new StackInteger(*(dynamic_cast<StackInteger*>(stack->fStore[effectiveaddress]))));
			if(typeid(p2) == typeid(*stack->fStore[effectiveaddress]))
				stack->fStore.push_back(new StackBoolean(*(dynamic_cast<StackBoolean*>(stack->fStore[effectiveaddress]))));
			if(typeid(p3) == typeid(*stack->fStore[effectiveaddress]))
				stack->fStore.push_back(new StackAddress(*(dynamic_cast<StackAddress*>(stack->fStore[effectiveaddress]))));
			if(typeid(p4) == typeid(*stack->fStore[effectiveaddress]))
				stack->fStore.push_back(new StackCharacter(*(dynamic_cast<StackCharacter*>(stack->fStore[effectiveaddress]))));
			if(typeid(p5) == typeid(*stack->fStore[effectiveaddress]))
				stack->fStore.push_back(new StackReal(*(dynamic_cast<StackReal*>(stack->fStore[effectiveaddress]))));
		}
	}
	
	delete stack->fStore[stack->fMP + fQ];
	stack->fStore[stack->fMP + fQ] = new StackAddress(stack->fSP + 1 - stack->fStore[stack->fMP + fQ + 2]->getValue());
	
	// increase the SP with the total size of the array (that has just been place on top of the stack)
	stack->fSP += stack->fStore[stack->fMP + fQ + 1]->getValue();	
	
	// adding cost of this instruction
	stack->fTime.count("movd");

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rsi, %r13
movq %rdi, %rbx
movq 0x226f3(%rip), %r14     # 0x33fc0
leaq 0x1369f(%rip), %rsi     # 0x24f73
movl $0x6, %edx
movq %r14, %rdi
callq 0x6270
leaq 0x18(%r13), %r15
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movq %r14, %rdi
movl %eax, %esi
callq 0x63f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x61d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6140
leaq 0x1363e(%rip), %rsi     # 0x24f7a
movl $0x6, %edx
movq %r14, %rdi
callq 0x6270
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movq %r14, %rdi
movl %eax, %esi
callq 0x63f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x61d0
movsbl %al, %esi
movq %r12, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6140
leaq 0x135e0(%rip), %rsi     # 0x24f81
movl $0x7, %edx
movq %r14, %rdi
callq 0x6270
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r12d
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
leal (%r12,%rax), %esi
decl %esi
movq %r14, %rdi
callq 0x63f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x61d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6140
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r14d
movslq 0xc0(%r13), %rax
movq %rbx, -0x58(%rbp)
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
addl %r14d, %eax
cltq
movq 0x18(%r13), %rcx
movq (%rcx,%rax,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
testl %eax, %eax
movq %r13, -0x50(%rbp)
leaq -0xe0(%rbp), %rdi
js 0x11eae
xorl %esi, %esi
callq 0x1aca0
leaq -0xd0(%rbp), %rdi
xorl %esi, %esi
callq 0x1b10c
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
callq 0x1a3d0
movq -0x58(%rbp), %rbx
leaq -0xb0(%rbp), %rdi
movl $0x61, %esi
callq 0x1b308
leaq -0xa0(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x1aec8
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r14d
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
addl %r14d, %eax
decl %eax
movl %eax, -0x68(%rbp)
cltq
movq %rax, -0x60(%rbp)
leaq (,%rax,8), %r13
movl $0x1, %r14d
leaq 0x21f12(%rip), %rax     # 0x33a40
addq $0x10, %rax
movq %rax, -0x90(%rbp)
leaq 0x220a0(%rip), %rax     # 0x33be0
addq $0x10, %rax
movq %rax, -0x88(%rbp)
leaq 0x21d56(%rip), %rax     # 0x338a8
addq $0x10, %rax
movq %rax, -0x80(%rbp)
leaq 0x2214f(%rip), %rax     # 0x33cb0
addq $0x10, %rax
movq %rax, -0x78(%rbp)
leaq 0x21fa0(%rip), %rax     # 0x33b10
addq $0x10, %rax
movq %rax, -0x70(%rbp)
movq -0x50(%rbp), %rdx
movslq 0xc0(%rdx), %rax
movq -0x58(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rdx), %rax
movq 0x8(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
cltq
cmpq %rax, %r14
jg 0x11e69
cmpl $-0x1, -0x68(%rbp)
jl 0x123dc
movq -0x60(%rbp), %rax
addq %r14, %rax
movq -0x50(%rbp), %rcx
movslq 0xb4(%rcx), %rcx
cmpq %rcx, %rax
jg 0x123dc
movq (%r15), %rbx
addq %r13, %rbx
movq (%rbx,%r14,8), %rax
testq %rax, %rax
je 0x123d2
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21f0a(%rip), %rcx     # 0x33af8
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x11c09
cmpb $0x2a, (%rdi)
je 0x11c52
callq 0x6310
testl %eax, %eax
jne 0x11c52
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21e0f(%rip), %rsi     # 0x33a30
leaq 0x21ed0(%rip), %rdx     # 0x33af8
xorl %ecx, %ecx
callq 0x6260
movq -0x90(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq (%r15), %rbx
addq %r13, %rbx
movq (%rbx,%r14,8), %rax
testq %rax, %rax
je 0x123d2
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x22025(%rip), %rcx     # 0x33c98
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x11c8e
cmpb $0x2a, (%rdi)
je 0x11cd7
callq 0x6310
testl %eax, %eax
jne 0x11cd7
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21d8a(%rip), %rsi     # 0x33a30
leaq 0x21feb(%rip), %rdx     # 0x33c98
xorl %ecx, %ecx
callq 0x6260
movq -0x88(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq (%r15), %rbx
addq %r13, %rbx
movq (%rbx,%r14,8), %rax
testq %rax, %rax
je 0x123d2
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21c68(%rip), %rcx     # 0x33960
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x11d13
cmpb $0x2a, (%rdi)
je 0x11d59
callq 0x6310
testl %eax, %eax
jne 0x11d59
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21d05(%rip), %rsi     # 0x33a30
leaq 0x21c2e(%rip), %rdx     # 0x33960
xorl %ecx, %ecx
callq 0x6260
movq -0x80(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq (%r15), %rbx
addq %r13, %rbx
movq (%rbx,%r14,8), %rax
testq %rax, %rax
je 0x123d2
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21fee(%rip), %rcx     # 0x33d68
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x11d95
cmpb $0x2a, (%rdi)
je 0x11ddb
callq 0x6310
testl %eax, %eax
jne 0x11ddb
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21c83(%rip), %rsi     # 0x33a30
leaq 0x21fb4(%rip), %rdx     # 0x33d68
xorl %ecx, %ecx
callq 0x6260
movq -0x78(%rbp), %rcx
movq %rcx, (%r12)
movb 0x8(%rax), %al
movb %al, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq (%r15), %rbx
addq %r13, %rbx
movq (%rbx,%r14,8), %rax
testq %rax, %rax
je 0x123d2
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21dcc(%rip), %rcx     # 0x33bc8
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x11e17
cmpb $0x2a, (%rdi)
je 0x11e61
callq 0x6310
testl %eax, %eax
jne 0x11e61
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21c01(%rip), %rsi     # 0x33a30
leaq 0x21d92(%rip), %rdx     # 0x33bc8
xorl %ecx, %ecx
callq 0x6260
movq -0x70(%rbp), %rcx
movq %rcx, (%r12)
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
incq %r14
jmp 0x11b78
leaq -0xa0(%rbp), %rdi
callq 0x1aef6
leaq -0xb0(%rbp), %rdi
callq 0x1b32c
leaq -0xc0(%rbp), %rdi
callq 0x1a3f4
leaq -0xd0(%rbp), %rdi
callq 0x1b130
leaq -0xe0(%rbp), %rdi
callq 0x1acc4
movq -0x50(%rbp), %r13
jmp 0x122cf
xorl %esi, %esi
callq 0x1aca0
leaq -0xd0(%rbp), %rdi
xorl %esi, %esi
callq 0x1b10c
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
callq 0x1a3d0
movq -0x58(%rbp), %rbx
leaq -0xb0(%rbp), %rdi
movl $0x61, %esi
callq 0x1b308
leaq -0xa0(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x1aec8
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r14d
movslq 0xc0(%r13), %rax
movslq 0x8(%rbx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
leal (%rax,%r14), %ecx
addl %r14d, %eax
incl %eax
movslq %eax, %r14
notl %ecx
movl %ecx, -0x60(%rbp)
movl $0x1, %eax
movq %rax, -0x68(%rbp)
leaq 0x21aee(%rip), %rax     # 0x33a40
addq $0x10, %rax
movq %rax, -0x90(%rbp)
leaq 0x21c7c(%rip), %rax     # 0x33be0
addq $0x10, %rax
movq %rax, -0x88(%rbp)
leaq 0x21932(%rip), %rax     # 0x338a8
addq $0x10, %rax
movq %rax, -0x80(%rbp)
leaq 0x21d2b(%rip), %rax     # 0x33cb0
addq $0x10, %rax
movq %rax, -0x78(%rbp)
leaq 0x21b7c(%rip), %rax     # 0x33b10
addq $0x10, %rax
movq %rax, -0x70(%rbp)
movslq 0xc0(%r13), %rax
movq -0x58(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x8(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
cltq
cmpq %rax, -0x68(%rbp)
jg 0x12293
testl %r14d, %r14d
jns 0x12433
cmpl 0xb8(%r13), %r14d
jl 0x12433
movq %r13, %rax
movslq -0x60(%rbp), %r13
movq 0x30(%rax), %rbx
movq (%rbx,%r13,8), %rax
testq %rax, %rax
je 0x123d7
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21af3(%rip), %rcx     # 0x33af8
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x12020
cmpb $0x2a, (%rdi)
je 0x12069
callq 0x6310
testl %eax, %eax
jne 0x12069
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x219f8(%rip), %rsi     # 0x33a30
leaq 0x21ab9(%rip), %rdx     # 0x33af8
xorl %ecx, %ecx
callq 0x6260
movq -0x90(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rbx
movq (%rbx,%r13,8), %rax
testq %rax, %rax
je 0x123d7
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21c0c(%rip), %rcx     # 0x33c98
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x120a7
cmpb $0x2a, (%rdi)
je 0x120f0
callq 0x6310
testl %eax, %eax
jne 0x120f0
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21971(%rip), %rsi     # 0x33a30
leaq 0x21bd2(%rip), %rdx     # 0x33c98
xorl %ecx, %ecx
callq 0x6260
movq -0x88(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rbx
movq (%rbx,%r13,8), %rax
testq %rax, %rax
je 0x123d7
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x2184d(%rip), %rcx     # 0x33960
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x1212e
cmpb $0x2a, (%rdi)
je 0x12174
callq 0x6310
testl %eax, %eax
jne 0x12174
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x218ea(%rip), %rsi     # 0x33a30
leaq 0x21813(%rip), %rdx     # 0x33960
xorl %ecx, %ecx
callq 0x6260
movq -0x80(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rbx
movq (%rbx,%r13,8), %rax
testq %rax, %rax
je 0x123d7
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x21bd1(%rip), %rcx     # 0x33d68
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
je 0x121b2
cmpb $0x2a, (%rdi)
je 0x121f8
callq 0x6310
testl %eax, %eax
jne 0x121f8
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x21866(%rip), %rsi     # 0x33a30
leaq 0x21b97(%rip), %rdx     # 0x33d68
xorl %ecx, %ecx
callq 0x6260
movq -0x78(%rbp), %rcx
movq %rcx, (%r12)
movb 0x8(%rax), %al
movb %al, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rbx
movq (%rbx,%r13,8), %rax
testq %rax, %rax
je 0x123d7
movq (%rax), %rax
movq -0x8(%rax), %rax
leaq 0x219ad(%rip), %rcx     # 0x33bc8
movq 0x8(%rcx), %rdi
movq 0x8(%rax), %rsi
cmpq %rsi, %rdi
movq -0x50(%rbp), %r13
je 0x1223a
cmpb $0x2a, (%rdi)
je 0x12284
callq 0x6310
testl %eax, %eax
jne 0x12284
movl $0x10, %edi
callq 0x6200
movq %rax, %r12
movq (%rbx,%r14,8), %rdi
leaq 0x217de(%rip), %rsi     # 0x33a30
leaq 0x2196f(%rip), %rdx     # 0x33bc8
xorl %ecx, %ecx
callq 0x6260
movq -0x70(%rbp), %rcx
movq %rcx, (%r12)
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x8(%r12)
movq %r12, -0x48(%rbp)
movq %r15, %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3ae
incq -0x68(%rbp)
incq %r14
decl -0x60(%rbp)
jmp 0x11f9c
leaq -0xa0(%rbp), %rdi
callq 0x1aef6
leaq -0xb0(%rbp), %rdi
callq 0x1b32c
leaq -0xc0(%rbp), %rdi
callq 0x1a3f4
leaq -0xd0(%rbp), %rdi
callq 0x1b130
leaq -0xe0(%rbp), %rdi
callq 0x1acc4
movslq 0xc0(%r13), %rax
movq -0x58(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq (%rax,%rcx,8), %r14
testq %r14, %r14
je 0x12303
movq %r14, %rdi
callq 0x1a5cc
movl $0x8, %esi
movq %r14, %rdi
callq 0x6210
movl $0x10, %edi
callq 0x6200
movq %rax, %r14
movl 0xb4(%r13), %r15d
movslq 0xc0(%r13), %rax
movq -0x58(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
subl %eax, %r15d
incl %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x1a3d0
movslq 0xc0(%r13), %rax
movq -0x58(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%r13), %rax
movq %r14, (%rax,%rcx,8)
movq 0x18(%r13), %rax
movslq %ecx, %rcx
movq 0x8(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
addl %eax, 0xb4(%r13)
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c8d(%rip), %rsi     # 0x25018
leaq 0x12c8a(%rip), %rdx     # 0x2501c
leaq -0x48(%rbp), %rdi
callq 0x746c
addq $0x78, %r13
leaq -0x48(%rbp), %rsi
movq %r13, %rdi
callq 0x1ce78
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x123c0
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x6210
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x6250
callq 0x6250
movl $0x20, %edi
callq 0x6100
movq %rax, %r14
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x12bd7(%rip), %rsi     # 0x24fd0
leaq 0x12c17(%rip), %rdx     # 0x25017
leaq -0x48(%rbp), %rdi
callq 0x746c
movb $0x1, %r15b
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x1b418
xorl %r15d, %r15d
leaq 0x20666(%rip), %rsi     # 0x32a88
leaq 0x900d(%rip), %rdx      # 0x1b436
movq %r14, %rdi
callq 0x63e0
jmp 0x12488
movl $0x20, %edi
callq 0x6100
movq %rax, %r14
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x12b39(%rip), %rsi     # 0x24f89
leaq 0x12b78(%rip), %rdx     # 0x24fcf
leaq -0x48(%rbp), %rdi
callq 0x746c
movb $0x1, %r15b
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x1b418
xorl %r15d, %r15d
leaq 0x2060f(%rip), %rsi     # 0x32a88
leaq 0x8fb6(%rip), %rdx      # 0x1b436
movq %r14, %rdi
callq 0x63e0
jmp 0x12490
jmp 0x12498
jmp 0x124a0
jmp 0x124a8
movq %rax, %rbx
jmp 0x12549
movq %rax, %rbx
jmp 0x12555
movq %rax, %rbx
jmp 0x12561
movq %rax, %rbx
jmp 0x1256d
jmp 0x1253a
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x12579
movq -0x38(%rbp), %rsi
incq %rsi
jmp 0x124e3
movq %rax, %rbx
jmp 0x12579
jmp 0x1253a
movq %rax, %rbx
movl $0x10, %esi
movq %r14, %rdi
callq 0x6210
jmp 0x12579
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
jmp 0x12507
jmp 0x12521
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
jmp 0x1253a
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x12527
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x6210
jmp 0x12527
movq %rax, %rbx
movb $0x1, %r15b
testb %r15b, %r15b
je 0x1253d
movq %r14, %rdi
callq 0x6170
jmp 0x1253d
jmp 0x1253a
jmp 0x1253a
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x1aef6
leaq -0xb0(%rbp), %rdi
callq 0x1b32c
leaq -0xc0(%rbp), %rdi
callq 0x1a3f4
leaq -0xd0(%rbp), %rdi
callq 0x1b130
leaq -0xe0(%rbp), %rdi
callq 0x1acc4
movq %rbx, %rdi
callq 0x6410
nop