// File: nwieder[P]SSTS/src/Input/Standard_Ipt.cpp
// Function: nw::Standard_Ipt::read_Sim_Data()
void Standard_Ipt::read_Sim_Data(){

	xml_node top = doc.child("Sim");
	xml_node_iterator it = doc.begin();
	xml_node_iterator li_it; // iterator for the outputSpeciesList

//	open output file stream
	string tmp = output_dir_path + "sim_info" + ".e";
	info_path.open(tmp.c_str());
	info_path << build_header() << endl;
	info_path << "############ GENERAL DATA ############" << endl;

//	read the general data and save to xgd
	xgd.xml_output_mode = atol(it->child_value("outputMode"));
	info_path << "output mode: " << xgd.xml_output_mode << endl;
	xgd.xml_max_sim_steps = atof(it->child_value("maxSimulationSteps"));
	info_path << "max simulation steps: " << xgd.xml_max_sim_steps << endl;
	xgd.xml_max_sim_time = atof(it->child_value("maxSimTime"));
	info_path<< "max simulation time: " << xgd.xml_max_sim_time << endl;
	xgd.xml_sample_rate = atof(it->child_value("sampleRate"));
	info_path<< "sample rate: " << xgd.xml_sample_rate << endl;
	xgd.xml_box_lenght = atof(it->child_value("voxelBoxLenght"));
	info_path<< "voxel box lenght: " << xgd.xml_box_lenght << endl;
	xgd.xml_border_condition = (string)it->child_value("borderCondition");
	info_path<< "border condition: " << xgd.xml_border_condition << endl;

//	print output _Species and _Voxel ids to sim_info.e
	info_path<< "output species: ";
	for (li_it = it->child("outputSpcList").begin(); li_it !=
			it->child("outputSpcList").end(); ++li_it){
		xgd.xml_output_Spc.push_back(atol(li_it->child_value()));
		info_path << li_it->child_value() << ",";
	}
	info_path << endl << "output voxel: " ;
	for (li_it = it->child("outputVxlList").begin(); li_it !=
			it->child("outputVxlList").end(); ++li_it){
		xgd.xml_output_Vxl.push_back(atol(li_it->child_value()));
		info_path<< li_it->child_value() << ",";
	}
	info_path << endl;

	read_Species(it->child("speciesList"));
	read_Voxel(it->child("voxelList"));
	read_Events(it->child("eventList"));

	alloc_Species();
	alloc_Voxel();
	alloc_Events();

//	close the file stream
	info_path << endl << endl << endl;
	info_path.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3a0, %rsp            # imm = 0x3A0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x160(%rbp)
addq $0x170, %rdi            # imm = 0x170
movq %rdi, -0x168(%rbp)
leaq 0x3b0a8(%rip), %rsi     # 0x452b7
callq 0x1dc70
movq -0x168(%rbp), %rdi
movq %rax, -0x10(%rbp)
callq 0x1da30
movq %rax, -0x20(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x22930
movq -0x160(%rbp), %rsi
addq $0x10, %rsi
leaq 0x3b074(%rip), %rdx     # 0x452bb
leaq -0x70(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0xf2b0
movq -0x158(%rbp), %rsi
leaq 0x3b76e(%rip), %rdx     # 0x459d3
leaq -0x50(%rbp), %rdi
callq 0xf260
jmp 0xa270
leaq -0x70(%rbp), %rdi
callq 0x5768
movq -0x160(%rbp), %rax
addq $0x248, %rax            # imm = 0x248
movq %rax, -0x170(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x5120
movq -0x170(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x5060
jmp 0xa2ac
movq -0x160(%rbp), %rsi
movq %rsi, %rax
addq $0x248, %rax            # imm = 0x248
movq %rax, -0x178(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xadd0
jmp 0xa2d1
movq -0x178(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x52c0
movq %rax, -0x180(%rbp)
jmp 0xa2ed
movq -0x180(%rbp), %rdi
movq 0x53ca5(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa302
leaq -0xa0(%rbp), %rdi
callq 0x5768
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
leaq 0x3afa1(%rip), %rsi     # 0x452c4
callq 0x5300
movq %rax, -0x188(%rbp)
jmp 0xa331
movq -0x188(%rbp), %rdi
movq 0x53c61(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa346
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x190(%rbp)
jmp 0xa358
movq -0x190(%rbp), %rdi
leaq 0x3af85(%rip), %rsi     # 0x452eb
callq 0x1e6d0
movq %rax, -0x198(%rbp)
jmp 0xa374
movq -0x198(%rbp), %rdi
callq 0x5410
movq -0x160(%rbp), %rdi
movq %rax, 0x70(%rdi)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3af5d(%rip), %rsi     # 0x452f6
callq 0x5300
movq %rax, -0x1a0(%rbp)
jmp 0xa3a7
movq -0x1a0(%rbp), %rdi
movq -0x160(%rbp), %rax
movq 0x70(%rax), %rsi
callq 0x56a0
movq %rax, -0x1a8(%rbp)
jmp 0xa3c7
movq -0x1a8(%rbp), %rdi
movq 0x53bcb(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa3dc
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x1b0(%rbp)
jmp 0xa3ee
movq -0x1b0(%rbp), %rdi
leaq 0x3af08(%rip), %rsi     # 0x45304
callq 0x1e6d0
movq %rax, -0x1b8(%rbp)
jmp 0xa40a
movq -0x1b8(%rbp), %rdi
callq 0x5450
movq -0x160(%rbp), %rdi
movsd %xmm0, 0x78(%rdi)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3aee7(%rip), %rsi     # 0x45317
callq 0x5300
movq %rax, -0x1c0(%rbp)
jmp 0xa43e
movq -0x1c0(%rbp), %rdi
movq -0x160(%rbp), %rax
movsd 0x78(%rax), %xmm0
callq 0x5700
movq %rax, -0x1c8(%rbp)
jmp 0xa45f
movq -0x1c8(%rbp), %rdi
movq 0x53b33(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa474
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x1d0(%rbp)
jmp 0xa486
movq -0x1d0(%rbp), %rdi
leaq 0x3ae9a(%rip), %rsi     # 0x4532e
callq 0x1e6d0
movq %rax, -0x1d8(%rbp)
jmp 0xa4a2
movq -0x1d8(%rbp), %rdi
callq 0x5450
movq -0x160(%rbp), %rdi
movsd %xmm0, 0x80(%rdi)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3ae6e(%rip), %rsi     # 0x45339
callq 0x5300
movq %rax, -0x1e0(%rbp)
jmp 0xa4d9
movq -0x1e0(%rbp), %rdi
movq -0x160(%rbp), %rax
movsd 0x80(%rax), %xmm0
callq 0x5700
movq %rax, -0x1e8(%rbp)
jmp 0xa4fd
movq -0x1e8(%rbp), %rdi
movq 0x53a95(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa512
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x1f0(%rbp)
jmp 0xa524
movq -0x1f0(%rbp), %rdi
leaq 0x3ae1d(%rip), %rsi     # 0x4534f
callq 0x1e6d0
movq %rax, -0x1f8(%rbp)
jmp 0xa540
movq -0x1f8(%rbp), %rdi
callq 0x5450
movq -0x160(%rbp), %rdi
movsd %xmm0, 0x88(%rdi)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3adf1(%rip), %rsi     # 0x4535a
callq 0x5300
movq %rax, -0x200(%rbp)
jmp 0xa577
movq -0x200(%rbp), %rdi
movq -0x160(%rbp), %rax
movsd 0x88(%rax), %xmm0
callq 0x5700
movq %rax, -0x208(%rbp)
jmp 0xa59b
movq -0x208(%rbp), %rdi
movq 0x539f7(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa5b0
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x210(%rbp)
jmp 0xa5c2
movq -0x210(%rbp), %rdi
leaq 0x3ad98(%rip), %rsi     # 0x45368
callq 0x1e6d0
movq %rax, -0x218(%rbp)
jmp 0xa5de
movq -0x218(%rbp), %rdi
callq 0x5450
movq -0x160(%rbp), %rdi
movsd %xmm0, 0x90(%rdi)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3ad70(%rip), %rsi     # 0x45377
callq 0x5300
movq %rax, -0x220(%rbp)
jmp 0xa615
movq -0x220(%rbp), %rdi
movq -0x160(%rbp), %rax
movsd 0x90(%rax), %xmm0
callq 0x5700
movq %rax, -0x228(%rbp)
jmp 0xa639
movq -0x228(%rbp), %rdi
movq 0x53959(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa64e
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x230(%rbp)
jmp 0xa660
movq -0x230(%rbp), %rdi
leaq 0x3ad1c(%rip), %rsi     # 0x4538a
callq 0x1e6d0
movq %rax, -0x238(%rbp)
jmp 0xa67c
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x240(%rbp)
callq 0x5660
movq -0x238(%rbp), %rsi
movq -0x240(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
callq 0xed50
jmp 0xa6ab
movq -0x160(%rbp), %rdi
addq $0x50, %rdi
leaq -0xc0(%rbp), %rsi
movq %rsi, -0x250(%rbp)
callq 0x5430
movq -0x250(%rbp), %rdi
callq 0x5768
leaq -0xc1(%rbp), %rdi
callq 0x5360
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
leaq 0x3aca4(%rip), %rsi     # 0x4539a
callq 0x5300
movq %rax, -0x248(%rbp)
jmp 0xa704
movq -0x248(%rbp), %rdi
movq -0x160(%rbp), %rsi
addq $0x50, %rsi
callq 0x52c0
movq %rax, -0x258(%rbp)
jmp 0xa724
movq -0x258(%rbp), %rdi
movq 0x5386e(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xa739
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
leaq 0x3ac5f(%rip), %rsi     # 0x453ad
callq 0x5300
jmp 0xa755
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x260(%rbp)
jmp 0xa767
movq -0x260(%rbp), %rdi
leaq 0x3ac49(%rip), %rsi     # 0x453be
callq 0x1dc70
movq %rax, -0x268(%rbp)
jmp 0xa783
movq -0x268(%rbp), %rax
movq %rax, -0xe0(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x1da30
movq %rdx, -0x278(%rbp)
movq %rax, -0x270(%rbp)
jmp 0xa7ad
movq -0x278(%rbp), %rax
movq -0x270(%rbp), %rcx
movq %rcx, -0xd8(%rbp)
movq %rax, -0xd0(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x280(%rbp)
jmp 0xa7f1
movq -0x280(%rbp), %rdi
leaq 0x3abbf(%rip), %rsi     # 0x453be
callq 0x1dc70
movq %rax, -0x288(%rbp)
jmp 0xa80d
movq -0x288(%rbp), %rax
movq %rax, -0xf8(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x1da90
movq %rdx, -0x298(%rbp)
movq %rax, -0x290(%rbp)
jmp 0xa837
movq -0x298(%rbp), %rax
movq -0x290(%rbp), %rcx
movq %rcx, -0xf0(%rbp)
movq %rax, -0xe8(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x22a30
movb %al, -0x299(%rbp)
jmp 0xa86b
movb -0x299(%rbp), %al
testb $0x1, %al
jne 0xa87a
jmp 0xa9c0
movq -0x160(%rbp), %rax
addq $0x98, %rax
movq %rax, -0x2b0(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x2a8(%rbp)
jmp 0xa8a0
movq -0x2a8(%rbp), %rdi
callq 0x1e5d0
movq %rax, -0x2b8(%rbp)
jmp 0xa8b5
movq -0x2b8(%rbp), %rdi
callq 0x5410
movq -0x2b0(%rbp), %rdi
movq %rax, -0x100(%rbp)
leaq -0x100(%rbp), %rsi
callq 0x9020
jmp 0xa8dd
movq -0x160(%rbp), %rax
addq $0x248, %rax            # imm = 0x248
movq %rax, -0x2c8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x2c0(%rbp)
jmp 0xa903
movq -0x2c0(%rbp), %rdi
callq 0x1e5d0
movq %rax, -0x2d0(%rbp)
jmp 0xa918
movq -0x2d0(%rbp), %rsi
movq -0x2c8(%rbp), %rdi
callq 0x5300
movq %rax, -0x2d8(%rbp)
jmp 0xa934
movq -0x2d8(%rbp), %rdi
leaq 0x3aa8a(%rip), %rsi     # 0x453cc
callq 0x5300
jmp 0xa949
jmp 0xa94b
leaq -0x30(%rbp), %rdi
callq 0x22b20
jmp 0xa956
jmp 0xa7df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x5768
jmp 0xadbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0xadb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5768
jmp 0xadb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xc1(%rbp), %rdi
callq 0x5360
jmp 0xadb2
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
movq 0x535cb(%rip), %rsi     # 0x5dfa0
callq 0x5340
movq %rax, -0x2e0(%rbp)
jmp 0xa9e3
movq -0x2e0(%rbp), %rdi
leaq 0x3a9dd(%rip), %rsi     # 0x453ce
callq 0x5300
jmp 0xa9f8
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x2e8(%rbp)
jmp 0xaa0a
movq -0x2e8(%rbp), %rdi
leaq 0x3a9c5(%rip), %rsi     # 0x453dd
callq 0x1dc70
movq %rax, -0x2f0(%rbp)
jmp 0xaa26
movq -0x2f0(%rbp), %rax
movq %rax, -0x118(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x1da30
movq %rdx, -0x300(%rbp)
movq %rax, -0x2f8(%rbp)
jmp 0xaa50
movq -0x300(%rbp), %rax
movq -0x2f8(%rbp), %rcx
movq %rcx, -0x110(%rbp)
movq %rax, -0x108(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x108(%rbp), %rax
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x308(%rbp)
jmp 0xaa94
movq -0x308(%rbp), %rdi
leaq 0x3a93b(%rip), %rsi     # 0x453dd
callq 0x1dc70
movq %rax, -0x310(%rbp)
jmp 0xaab0
movq -0x310(%rbp), %rax
movq %rax, -0x130(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x1da90
movq %rdx, -0x320(%rbp)
movq %rax, -0x318(%rbp)
jmp 0xaada
movq -0x320(%rbp), %rax
movq -0x318(%rbp), %rcx
movq %rcx, -0x128(%rbp)
movq %rax, -0x120(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x22a30
movb %al, -0x321(%rbp)
jmp 0xab0e
movb -0x321(%rbp), %al
testb $0x1, %al
jne 0xab1d
jmp 0xabfe
movq -0x160(%rbp), %rax
addq $0xb0, %rax
movq %rax, -0x338(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x330(%rbp)
jmp 0xab43
movq -0x330(%rbp), %rdi
callq 0x1e5d0
movq %rax, -0x340(%rbp)
jmp 0xab58
movq -0x340(%rbp), %rdi
callq 0x5410
movq -0x338(%rbp), %rdi
movq %rax, -0x138(%rbp)
leaq -0x138(%rbp), %rsi
callq 0x9020
jmp 0xab80
movq -0x160(%rbp), %rax
addq $0x248, %rax            # imm = 0x248
movq %rax, -0x350(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x348(%rbp)
jmp 0xaba6
movq -0x348(%rbp), %rdi
callq 0x1e5d0
movq %rax, -0x358(%rbp)
jmp 0xabbb
movq -0x358(%rbp), %rsi
movq -0x350(%rbp), %rdi
callq 0x5300
movq %rax, -0x360(%rbp)
jmp 0xabd7
movq -0x360(%rbp), %rdi
leaq 0x3a7e7(%rip), %rsi     # 0x453cc
callq 0x5300
jmp 0xabec
jmp 0xabee
leaq -0x30(%rbp), %rdi
callq 0x22b20
jmp 0xabf9
jmp 0xaa82
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
movq 0x5338d(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xac1a
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x368(%rbp)
jmp 0xac2c
movq -0x368(%rbp), %rdi
leaq 0x3a7b1(%rip), %rsi     # 0x453eb
callq 0x1dc70
movq %rax, -0x370(%rbp)
jmp 0xac48
movq -0x160(%rbp), %rdi
movq -0x370(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x140(%rbp), %rsi
callq 0xaea0
jmp 0xac6b
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x378(%rbp)
jmp 0xac7d
movq -0x378(%rbp), %rdi
leaq 0x3a76c(%rip), %rsi     # 0x453f7
callq 0x1dc70
movq %rax, -0x380(%rbp)
jmp 0xac99
movq -0x160(%rbp), %rdi
movq -0x380(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x148(%rbp), %rsi
callq 0xb4e0
jmp 0xacbc
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, -0x388(%rbp)
jmp 0xacce
movq -0x388(%rbp), %rdi
leaq 0x3a725(%rip), %rsi     # 0x45401
callq 0x1dc70
movq %rax, -0x390(%rbp)
jmp 0xacea
movq -0x160(%rbp), %rdi
movq -0x390(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0x150(%rbp), %rsi
callq 0xb920
jmp 0xad0d
movq -0x160(%rbp), %rdi
callq 0xd230
jmp 0xad1b
movq -0x160(%rbp), %rdi
callq 0xd590
jmp 0xad29
movq -0x160(%rbp), %rdi
callq 0xdd40
jmp 0xad37
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
movq 0x53254(%rip), %rsi     # 0x5dfa0
callq 0x5340
movq %rax, -0x398(%rbp)
jmp 0xad5a
movq -0x398(%rbp), %rdi
movq 0x53238(%rip), %rsi     # 0x5dfa0
callq 0x5340
movq %rax, -0x3a0(%rbp)
jmp 0xad76
movq -0x3a0(%rbp), %rdi
movq 0x5321c(%rip), %rsi     # 0x5dfa0
callq 0x5340
jmp 0xad8b
movq -0x160(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
callq 0x5510
jmp 0xada0
leaq -0x50(%rbp), %rdi
callq 0x5768
addq $0x3a0, %rsp            # imm = 0x3A0
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0x5768
movq -0x78(%rbp), %rdi
callq 0x5650
nopw %cs:(%rax,%rax)