// File: /workspace/github_cpp_makefile_star2_O2/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, %rbx
movq %rdi, %r13
movq 0x1f481(%rip), %r14     # 0x2efc0
leaq 0x1042d(%rip), %rsi     # 0x1ff73
movq %r14, %rdi
callq 0x61b0
movq %rax, %r12
leaq 0x18(%rbx), %r15
movslq 0xc0(%rbx), %rax
movslq 0x8(%r13), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movq %r12, %rdi
movl %eax, %esi
callq 0x63d0
movq %rax, %rdi
callq 0x60e0
leaq 0x103f0(%rip), %rsi     # 0x1ff7a
movq %r14, %rdi
callq 0x61b0
movq %rax, %r12
movslq 0xc0(%rbx), %rax
movslq 0x8(%r13), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movq %r12, %rdi
movl %eax, %esi
callq 0x63d0
movq %rax, %rdi
callq 0x60e0
leaq 0x103b6(%rip), %rsi     # 0x1ff81
movq %r14, %rdi
callq 0x61b0
movq %rax, %r14
movslq 0xc0(%rbx), %rax
movslq 0x8(%r13), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r12d
movslq 0xc0(%rbx), %rax
movslq 0x8(%r13), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
leal (%r12,%rax), %esi
decl %esi
movq %r14, %rdi
callq 0x63d0
movq %rax, %rdi
callq 0x60e0
movslq 0xc0(%rbx), %rax
movslq 0x8(%r13), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r14d
movslq 0xc0(%rbx), %rax
movq %r13, -0x38(%rbp)
movslq 0x8(%r13), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
addl %r14d, %eax
cltq
movq 0x18(%rbx), %rcx
movq (%rcx,%rax,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
leaq -0xa0(%rbp), %rdi
xorl %esi, %esi
testl %eax, %eax
js 0x10014
callq 0x175ac
leaq -0xe0(%rbp), %rdi
xorl %esi, %esi
callq 0x17a18
leaq -0xd0(%rbp), %rdi
xorl %esi, %esi
callq 0x1704c
movq -0x38(%rbp), %r14
leaq -0xc0(%rbp), %rdi
pushq $0x61
popq %rsi
callq 0x17c08
leaq -0xb0(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x177d4
movslq 0xc0(%rbx), %rax
movslq 0x8(%r14), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movl %eax, %r12d
movslq 0xc0(%rbx), %rax
movslq 0x8(%r14), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
pushq $0x1
popq %r14
addl %r12d, %eax
decl %eax
movl %eax, -0x60(%rbp)
cltq
movq %rax, -0x90(%rbp)
leaq (,%rax,8), %r12
leaq 0x1ed11(%rip), %rax     # 0x2ea40
addq $0x10, %rax
movq %rax, -0x88(%rbp)
leaq 0x1ee9f(%rip), %rax     # 0x2ebe0
addq $0x10, %rax
movq %rax, -0x80(%rbp)
leaq 0x1eb58(%rip), %rax     # 0x2e8a8
addq $0x10, %rax
movq %rax, -0x78(%rbp)
leaq 0x1ef51(%rip), %rax     # 0x2ecb0
addq $0x10, %rax
movq %rax, -0x70(%rbp)
leaq 0x1eda2(%rip), %rax     # 0x2eb10
addq $0x10, %rax
movq %rax, -0x68(%rbp)
movslq 0xc0(%rbx), %rax
movq -0x38(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x8(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
cltq
cmpq %rax, %r14
jg 0x10394
cmpl $-0x1, -0x60(%rbp)
jl 0x104c1
movq -0x90(%rbp), %rax
addq %r14, %rax
movslq 0xb4(%rbx), %rcx
cmpq %rcx, %rax
jg 0x104c1
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rax
testq %rax, %rax
je 0x104b7
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1ed11(%rip), %rdi     # 0x2eaf8
callq 0x76c8
testb %al, %al
je 0xfe3c
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r13
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rdi
leaq 0x1ec24(%rip), %rsi     # 0x2ea30
leaq 0x1ece5(%rip), %rdx     # 0x2eaf8
xorl %ecx, %ecx
callq 0x6230
movq -0x88(%rbp), %rcx
movq %rcx, (%r13)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r13)
movq %r13, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rax
testq %rax, %rax
je 0x104b7
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1ee3b(%rip), %rdi     # 0x2ec98
callq 0x76c8
testb %al, %al
je 0xfeaf
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r13
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rdi
leaq 0x1ebae(%rip), %rsi     # 0x2ea30
leaq 0x1ee0f(%rip), %rdx     # 0x2ec98
xorl %ecx, %ecx
callq 0x6230
movq -0x80(%rbp), %rcx
movq %rcx, (%r13)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r13)
movq %r13, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rax
testq %rax, %rax
je 0x104b7
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1ea90(%rip), %rdi     # 0x2e960
callq 0x76c8
testb %al, %al
je 0xff22
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r13
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rdi
leaq 0x1eb3b(%rip), %rsi     # 0x2ea30
leaq 0x1ea64(%rip), %rdx     # 0x2e960
xorl %ecx, %ecx
callq 0x6230
movq -0x78(%rbp), %rcx
movq %rcx, (%r13)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r13)
movq %r13, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rax
testq %rax, %rax
je 0x104b7
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1ee25(%rip), %rdi     # 0x2ed68
callq 0x76c8
testb %al, %al
je 0xff95
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r13
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rdi
leaq 0x1eac8(%rip), %rsi     # 0x2ea30
leaq 0x1edf9(%rip), %rdx     # 0x2ed68
xorl %ecx, %ecx
callq 0x6230
movq -0x70(%rbp), %rcx
movq %rcx, (%r13)
movb 0x8(%rax), %al
movb %al, 0x8(%r13)
movq %r13, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rax
testq %rax, %rax
je 0x104b7
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1ec12(%rip), %rdi     # 0x2ebc8
callq 0x76c8
testb %al, %al
je 0x1000c
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r13
movq (%r15), %rax
addq %r12, %rax
movq (%rax,%r14,8), %rdi
leaq 0x1ea55(%rip), %rsi     # 0x2ea30
leaq 0x1ebe6(%rip), %rdx     # 0x2ebc8
xorl %ecx, %ecx
callq 0x6230
movq -0x68(%rbp), %rcx
movq %rcx, (%r13)
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x8(%r13)
movq %r13, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
incq %r14
jmp 0xfd76
callq 0x175ac
leaq -0xe0(%rbp), %rdi
xorl %esi, %esi
callq 0x17a18
leaq -0xd0(%rbp), %rdi
xorl %esi, %esi
callq 0x1704c
movq -0x38(%rbp), %r14
leaq -0xc0(%rbp), %rdi
pushq $0x61
popq %rsi
callq 0x17c08
leaq -0xb0(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x177d4
movslq 0xc0(%rbx), %rax
movslq 0x8(%r14), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq (%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
movq %r14, %rcx
movl %eax, %r14d
movslq 0xc0(%rbx), %rax
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x10(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
leal (%rax,%r14), %r13d
addl %r14d, %eax
incl %eax
movslq %eax, %r14
notl %r13d
pushq $0x1
popq %rax
movq %rax, -0x60(%rbp)
leaq 0x1e98d(%rip), %rax     # 0x2ea40
addq $0x10, %rax
movq %rax, -0x88(%rbp)
leaq 0x1eb1b(%rip), %rax     # 0x2ebe0
addq $0x10, %rax
movq %rax, -0x80(%rbp)
leaq 0x1e7d4(%rip), %rax     # 0x2e8a8
addq $0x10, %rax
movq %rax, -0x78(%rbp)
leaq 0x1ebcd(%rip), %rax     # 0x2ecb0
addq $0x10, %rax
movq %rax, -0x70(%rbp)
leaq 0x1ea1e(%rip), %rax     # 0x2eb10
addq $0x10, %rax
movq %rax, -0x68(%rbp)
movslq 0xc0(%rbx), %rax
movq -0x38(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq 0x8(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
cltq
cmpq %rax, -0x60(%rbp)
jg 0x10394
testl %r14d, %r14d
jns 0x1050a
cmpl 0xb8(%rbx), %r14d
jl 0x1050a
movl %r13d, -0x90(%rbp)
movslq %r13d, %r13
movq 0x30(%rbx), %rax
movq (%rax,%r13,8), %rax
testq %rax, %rax
je 0x104bc
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1e992(%rip), %rdi     # 0x2eaf8
callq 0x76c8
testb %al, %al
je 0x101ba
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r12
movq 0x30(%rbx), %rax
movq (%rax,%r14,8), %rdi
leaq 0x1e8a7(%rip), %rsi     # 0x2ea30
leaq 0x1e968(%rip), %rdx     # 0x2eaf8
xorl %ecx, %ecx
callq 0x6230
movq -0x88(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq 0x30(%rbx), %rax
movq (%rax,%r13,8), %rax
testq %rax, %rax
je 0x104bc
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1eabf(%rip), %rdi     # 0x2ec98
callq 0x76c8
testb %al, %al
je 0x1022a
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r12
movq 0x30(%rbx), %rax
movq (%rax,%r14,8), %rdi
leaq 0x1e834(%rip), %rsi     # 0x2ea30
leaq 0x1ea95(%rip), %rdx     # 0x2ec98
xorl %ecx, %ecx
callq 0x6230
movq -0x80(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq 0x30(%rbx), %rax
movq (%rax,%r13,8), %rax
testq %rax, %rax
je 0x104bc
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1e717(%rip), %rdi     # 0x2e960
callq 0x76c8
testb %al, %al
je 0x1029a
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r12
movq 0x30(%rbx), %rax
movq (%rax,%r14,8), %rdi
leaq 0x1e7c4(%rip), %rsi     # 0x2ea30
leaq 0x1e6ed(%rip), %rdx     # 0x2e960
xorl %ecx, %ecx
callq 0x6230
movq -0x78(%rbp), %rcx
movq %rcx, (%r12)
movl 0x8(%rax), %eax
movl %eax, 0x8(%r12)
movq %r12, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq 0x30(%rbx), %rax
movq (%rax,%r13,8), %rax
testq %rax, %rax
je 0x104bc
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1eaaf(%rip), %rdi     # 0x2ed68
callq 0x76c8
testb %al, %al
je 0x1030a
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r12
movq 0x30(%rbx), %rax
movq (%rax,%r14,8), %rdi
leaq 0x1e754(%rip), %rsi     # 0x2ea30
leaq 0x1ea85(%rip), %rdx     # 0x2ed68
xorl %ecx, %ecx
callq 0x6230
movq -0x70(%rbp), %rcx
movq %rcx, (%r12)
movb 0x8(%rax), %al
movb %al, 0x8(%r12)
movq %r12, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
movq 0x30(%rbx), %rax
movq (%rax,%r13,8), %rax
testq %rax, %rax
je 0x104bc
movq (%rax), %rax
movq -0x8(%rax), %rsi
leaq 0x1e89f(%rip), %rdi     # 0x2ebc8
callq 0x76c8
testb %al, %al
movl -0x90(%rbp), %r13d
je 0x10385
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r12
movq 0x30(%rbx), %rax
movq (%rax,%r14,8), %rdi
leaq 0x1e6dd(%rip), %rsi     # 0x2ea30
leaq 0x1e86e(%rip), %rdx     # 0x2ebc8
xorl %ecx, %ecx
callq 0x6230
movq -0x68(%rbp), %rcx
movq %rcx, (%r12)
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x8(%r12)
movq %r12, -0x58(%rbp)
movq %r15, %rdi
leaq -0x58(%rbp), %rsi
callq 0x99a0
incq -0x60(%rbp)
incq %r14
decl %r13d
jmp 0x100fa
leaq -0xb0(%rbp), %rdi
callq 0x17802
leaq -0xc0(%rbp), %rdi
callq 0x17c2c
leaq -0xd0(%rbp), %rdi
callq 0x17070
leaq -0xe0(%rbp), %rdi
callq 0x17a3c
leaq -0xa0(%rbp), %rdi
callq 0x175d0
movslq 0xc0(%rbx), %rax
movq -0x38(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq (%rax,%rcx,8), %r14
testq %r14, %r14
je 0x103f7
movq %r14, %rdi
callq 0x17248
pushq $0x8
popq %rsi
movq %r14, %rdi
callq 0x61e0
pushq $0x10
popq %rdi
callq 0x61d0
movq %rax, %r14
movl 0xb4(%rbx), %r15d
movslq 0xc0(%rbx), %rax
movq -0x38(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %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 0x1704c
movslq 0xc0(%rbx), %rax
movq -0x38(%rbp), %rcx
movslq 0x8(%rcx), %rcx
addq %rax, %rcx
movq 0x18(%rbx), %rax
movq %r14, (%rax,%rcx,8)
movq 0x18(%rbx), %rax
movq 0x8(%rax,%rcx,8), %rdi
movq (%rdi), %rax
callq *0x68(%rax)
addl %eax, 0xb4(%rbx)
leaq 0xfb9c(%rip), %rsi      # 0x20018
leaq -0x58(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0x72a6
addq $0x78, %rbx
leaq -0x58(%rbp), %rsi
movq %rbx, %rdi
callq 0x1925e
leaq -0x58(%rbp), %rdi
callq 0x60d0
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x6220
callq 0x6220
pushq $0x20
popq %rdi
callq 0x60f0
movq %rax, %r14
leaq 0xfafd(%rip), %rsi      # 0x1ffd0
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x72a6
movb $0x1, %r15b
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x17d10
xorl %r15d, %r15d
leaq 0x1d58f(%rip), %rsi     # 0x2da88
leaq 0x781a(%rip), %rdx      # 0x17d1a
movq %r14, %rdi
callq 0x63c0
jmp 0x10551
pushq $0x20
popq %rdi
callq 0x60f0
movq %rax, %r14
leaq 0xfa6d(%rip), %rsi      # 0x1ff89
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x72a6
movb $0x1, %r15b
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x17d10
xorl %r15d, %r15d
leaq 0x1d546(%rip), %rsi     # 0x2da88
leaq 0x77d1(%rip), %rdx      # 0x17d1a
movq %r14, %rdi
callq 0x63c0
jmp 0x10559
jmp 0x10561
jmp 0x10569
jmp 0x10571
movq %rax, %rbx
jmp 0x105f3
movq %rax, %rbx
jmp 0x105ff
movq %rax, %rbx
jmp 0x1060b
movq %rax, %rbx
jmp 0x10617
jmp 0x105e4
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x60d0
jmp 0x10623
movq %rax, %rbx
jmp 0x10623
jmp 0x105e4
movq %rax, %rbx
pushq $0x10
popq %rsi
movq %r14, %rdi
callq 0x61e0
jmp 0x10623
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
jmp 0x105be
jmp 0x105d1
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x60d0
testb %r15b, %r15b
jne 0x105d4
jmp 0x105e7
movq %rax, %rbx
movq %r14, %rdi
callq 0x6150
jmp 0x105e7
jmp 0x105e4
jmp 0x105e4
jmp 0x105e4
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x17802
leaq -0xc0(%rbp), %rdi
callq 0x17c2c
leaq -0xd0(%rbp), %rdi
callq 0x17070
leaq -0xe0(%rbp), %rdi
callq 0x17a3c
leaq -0xa0(%rbp), %rdi
callq 0x175d0
movq %rbx, %rdi
callq 0x63f0
nop