// File: IlanPrice[P]Linear-Algebra-Library-in-Cplusplus/Vector.cpp
// Function: Vector::setValues(int, int, Vector) const
void Vector::setValues(int istart, int iend, Vector v) const
{
	if (istart < 1 || iend < 1)
		{
		  throw Exception("out of range",
			  "accessing vector through () - index too small");
		}
	else if (iend > mSize || istart > mSize)
		{
		  throw Exception("length mismatch",
			  "accessing vector through () - index too high");
		}

		int l = iend - istart + 1;
		for (int i = 0; i<l; i++)
		{
			mData[istart -1 + i] = v(i+1);
		}


}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rcx, 0x38(%rsp)
movq %rdi, 0x110(%rsp)
movl %esi, 0x10c(%rsp)
movl %edx, 0x108(%rsp)
movq %rcx, 0x100(%rsp)
movq 0x110(%rsp), %rax
movq %rax, 0x40(%rsp)
cmpl $0x1, 0x10c(%rsp)
jl 0x473f
cmpl $0x1, 0x108(%rsp)
jge 0x4880
movb $0x1, 0xa6(%rsp)
movl $0x40, %edi
callq 0x2070
movq %rax, 0x28(%rsp)
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x21c0
movq 0x30(%rsp), %rdx
leaq 0xda49(%rip), %rsi      # 0x121bd
leaq 0xe0(%rsp), %rdi
callq 0x2110
jmp 0x4783
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x21c0
movq 0x20(%rsp), %rdx
leaq 0xda29(%rip), %rsi      # 0x121ca
leaq 0xa8(%rsp), %rdi
callq 0x2110
jmp 0x47b0
movq 0x28(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x4d60
jmp 0x47cc
movq 0x28(%rsp), %rdi
movb $0x0, 0xa6(%rsp)
leaq 0x115c0(%rip), %rsi     # 0x15da0
leaq 0x549(%rip), %rdx       # 0x4d30
callq 0x2180
jmp 0x4a47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x4858
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x483e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x2080
leaq 0xa7(%rsp), %rdi
callq 0x20f0
leaq 0xe0(%rsp), %rdi
callq 0x2080
leaq 0xdf(%rsp), %rdi
callq 0x20f0
testb $0x1, 0xa6(%rsp)
jne 0x4871
jmp 0x487b
movq 0x28(%rsp), %rdi
callq 0x20a0
jmp 0x4a3a
movq 0x40(%rsp), %rcx
movl 0x108(%rsp), %eax
cmpl 0x8(%rcx), %eax
jg 0x48a6
movq 0x40(%rsp), %rcx
movl 0x10c(%rsp), %eax
cmpl 0x8(%rcx), %eax
jle 0x49c6
movb $0x1, 0x56(%rsp)
movl $0x40, %edi
callq 0x2070
movq %rax, 0x10(%rsp)
leaq 0x7f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x21c0
movq 0x18(%rsp), %rdx
leaq 0xd83f(%rip), %rsi      # 0x12114
leaq 0x80(%rsp), %rdi
callq 0x2110
jmp 0x48e4
leaq 0x57(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x21c0
movq 0x8(%rsp), %rdx
leaq 0xd8f9(%rip), %rsi      # 0x121f8
leaq 0x58(%rsp), %rdi
callq 0x2110
jmp 0x490b
movq 0x10(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0x4d60
jmp 0x4924
movq 0x10(%rsp), %rdi
movb $0x0, 0x56(%rsp)
leaq 0x1146b(%rip), %rsi     # 0x15da0
leaq 0x3f4(%rip), %rdx       # 0x4d30
callq 0x2180
jmp 0x4a47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x49a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
jmp 0x4990
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xd0(%rsp)
movl %eax, 0xcc(%rsp)
leaq 0x58(%rsp), %rdi
callq 0x2080
leaq 0x57(%rsp), %rdi
callq 0x20f0
leaq 0x80(%rsp), %rdi
callq 0x2080
leaq 0x7f(%rsp), %rdi
callq 0x20f0
testb $0x1, 0x56(%rsp)
jne 0x49ba
jmp 0x49c4
movq 0x10(%rsp), %rdi
callq 0x20a0
jmp 0x4a3a
jmp 0x49c8
movl 0x108(%rsp), %eax
subl 0x10c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
movl $0x0, 0x4c(%rsp)
movl 0x4c(%rsp), %eax
cmpl 0x50(%rsp), %eax
jge 0x4a32
movq 0x38(%rsp), %rdi
movl 0x4c(%rsp), %esi
addl $0x1, %esi
callq 0x3ee0
movq %rax, %rcx
movq 0x40(%rsp), %rax
movsd (%rcx), %xmm0
movq (%rax), %rax
movl 0x10c(%rsp), %ecx
subl $0x1, %ecx
addl 0x4c(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x4c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4c(%rsp)
jmp 0x49e5
addq $0x118, %rsp            # imm = 0x118
retq
movq 0xd0(%rsp), %rdi
callq 0x21b0
nopw (%rax,%rax)