// File: nwieder[P]SSTS/src/Input/../System/../Events/_Event.h
// Function: nw::_Event::_Event(long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, std::vector<nw::_Voxel*, std::allocator<nw::_Voxel*>>, nw::Uni_Rnd*)
_Event(long id, string name, double k, VoxelVector vvc, Uni_Rnd* rg):
		id(id),
		name(name),
		k(k),
		rg(rg),
		dirty_flag(true){

//		add self-reference to dependency list.
		this->dep_list.push_back(this);
//		check if all voxel in the assigned voxel vector have the same size
		for (size_t i = 0; i < tv_vec.size(); i++){
			if(vvc[i]->get_volume() != vvc[0]->get_volume()){
				cout << "ERROR: Voxel sizes in Event: " << this->name << " differ in size. "
						"You either have to create another Event or resize the voxel to one size"
						<< std::endl;
				break;
			}
		}

//		create the tau voxel structure container that assigns a tau value to each _Voxel
//		in the _Voxel vector
		tv_vec.resize(vvc.size());
		for(size_t i = 0; i < tv_vec.size(); i++){
			tv_vec[i].v = vvc[i];
			tv_vec[i].t = 0.0;
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdx, -0x90(%rbp)
movq %rsi, %rax
movq -0x90(%rbp), %rsi
movq %rcx, -0x88(%rbp)
movq %rdi, -0x8(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movsd %xmm0, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x68(%rbp)
leaq 0x4b495(%rip), %rax     # 0x5d7e0
movq %rax, (%rdi)
movq -0x10(%rbp), %rax
movq %rax, 0x8(%rdi)
addq $0x10, %rdi
movq %rdi, -0x80(%rbp)
callq 0x5130
movq -0x68(%rbp), %rdi
movsd -0x20(%rbp), %xmm0
movsd %xmm0, 0x30(%rdi)
addq $0x38, %rdi
movq %rdi, -0x78(%rbp)
callq 0x10390
movq -0x68(%rbp), %rdi
addq $0x50, %rdi
movq %rdi, -0x70(%rbp)
callq 0x12830
movq -0x68(%rbp), %rdi
movq -0x30(%rbp), %rax
movq %rax, 0x68(%rdi)
movb $0x1, 0x80(%rdi)
addq $0x88, %rdi
movq %rdi, -0x60(%rbp)
callq 0x12850
movq -0x68(%rbp), %rax
movq -0x60(%rbp), %rdi
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rsi
callq 0x12870
jmp 0x123c9
movq $0x0, -0x50(%rbp)
movq -0x68(%rbp), %rdi
movq -0x50(%rbp), %rax
movq %rax, -0x98(%rbp)
addq $0x50, %rdi
callq 0x5fd0
movq %rax, %rcx
movq -0x98(%rbp), %rax
cmpq %rcx, %rax
jae 0x12511
movq -0x88(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x8180
movq (%rax), %rdi
callq 0x9000
movsd %xmm0, -0xa0(%rbp)
jmp 0x1241e
movq -0x88(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x8180
movq (%rax), %rdi
callq 0x9000
movsd %xmm0, -0xa8(%rbp)
jmp 0x12440
movsd -0xa0(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jne 0x1245d
jp 0x1245d
jmp 0x124fe
movq 0x4bb6c(%rip), %rdi     # 0x5dfd0
leaq 0x333a9(%rip), %rsi     # 0x45814
callq 0x5300
movq %rax, -0xb0(%rbp)
jmp 0x12479
movq -0xb0(%rbp), %rdi
movq -0x68(%rbp), %rsi
addq $0x10, %rsi
callq 0x52c0
movq %rax, -0xb8(%rbp)
jmp 0x12496
movq -0xb8(%rbp), %rdi
leaq 0x3338e(%rip), %rsi     # 0x45832
callq 0x5300
movq %rax, -0xc0(%rbp)
jmp 0x124b2
movq -0xc0(%rbp), %rdi
movq 0x4bae0(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0x124c7
jmp 0x12511
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x63c0
movq -0x70(%rbp), %rdi
callq 0x6420
movq -0x78(%rbp), %rdi
callq 0x61a0
movq -0x80(%rbp), %rdi
callq 0x5768
jmp 0x125d4
jmp 0x12500
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x123d1
movq -0x88(%rbp), %rdi
movq -0x68(%rbp), %rax
addq $0x50, %rax
movq %rax, -0xc8(%rbp)
callq 0x7af0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x128a0
jmp 0x1253d
movq $0x0, -0x58(%rbp)
movq -0x68(%rbp), %rdi
movq -0x58(%rbp), %rax
movq %rax, -0xd0(%rbp)
addq $0x50, %rdi
callq 0x5fd0
movq %rax, %rcx
movq -0xd0(%rbp), %rax
cmpq %rcx, %rax
jae 0x125cb
movq -0x88(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x8180
movq -0x68(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0xd8(%rbp)
addq $0x50, %rdi
movq -0x58(%rbp), %rsi
callq 0x6050
movq -0xd8(%rbp), %rcx
movq -0x68(%rbp), %rdi
movq %rcx, (%rax)
addq $0x50, %rdi
movq -0x58(%rbp), %rsi
callq 0x6050
xorps %xmm0, %xmm0
movsd %xmm0, 0x8(%rax)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x12545
addq $0xe0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x5650
nopl (%rax)