// File: nwieder[P]SSTS/src/Input/Standard_Ipt.cpp
// Function: nw::Standard_Ipt::read_Species(pugi::xml_node const&)
void Standard_Ipt::read_Species(xml_node const& nod){
	cout << "read_Species...",
	info_path << "############ SPECIES ############" << endl;

	xml_node_iterator spc_it;  //voxel iterator, voxel element iterator, list iterator

//	read all Standard Species
	for (spc_it = nod.child("standardSpcList").begin(); spc_it !=
			nod.child("standardSpcList").end(); ++spc_it){
// 		create new standard species struct
		Standard_Ipt::xml_spc* xspc = new Standard_Ipt::xml_spc;
		xspc->xml_id = atol(spc_it->attribute("id").value());
		info_path<< "id: " << xspc->xml_id;
		xspc->xml_name = (string)spc_it->child_value("name");
		info_path<< ", name: " << xspc->xml_name;
		xspc->xml_init_conc = atof(spc_it->child_value("initialConcentration"));
		info_path<< ", initConc:" << xspc->xml_init_conc;
		info_path<< endl;
		xgd.xml_spc_list.push_back(xspc);
	}

//	read all Channel Species
	for (spc_it = nod.child("channelSpcList").begin(); spc_it !=
			nod.child("channelSpcList").end(); ++spc_it){
// 		create new channel species struct
		Standard_Ipt::xml_Ch_Spc* xspc = new Standard_Ipt::xml_Ch_Spc;
		xspc->xml_id = atol(spc_it->attribute("id").value());
		info_path<< "id: " << xspc->xml_id;
		xspc->xml_name = (string)spc_it->child_value("name");
		info_path<< ", name: " << xspc->xml_name;
		xspc->xml_init_conc = atof(spc_it->child_value("initialConcentration"));
		info_path<< ", initConc:" << xspc->xml_init_conc;
		xspc->xml_n_subunits = atol(spc_it->child_value("nSubUnits"));
		info_path<< ", n_subunits:" << xspc->xml_n_subunits;
		xspc->xml_n_suToOpen = atol(spc_it->child_value("nSubUnitsToOpen"));
		info_path<< ", n_suToOpen:" << xspc->xml_n_suToOpen;
		info_path<< endl;
		xgd.xml_ch_spc_list.push_back(xspc);
	}

	cout << "DONE" << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x108(%rbp)
movq 0x5310b(%rip), %rdi     # 0x5dfd0
leaq 0x3a53f(%rip), %rsi     # 0x4540b
callq 0x5300
movq -0x108(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a535(%rip), %rsi     # 0x4541b
callq 0x5300
movq %rax, %rdi
movq 0x530ab(%rip), %rsi     # 0x5dfa0
callq 0x5340
leaq -0x20(%rbp), %rdi
callq 0x22930
movq -0x10(%rbp), %rdi
leaq 0x3a52f(%rip), %rsi     # 0x4543d
callq 0x1dc70
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x1da30
movq %rax, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x3a4fa(%rip), %rsi     # 0x4543d
callq 0x1dc70
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1da90
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x22a30
testb $0x1, %al
jne 0xaf73
jmp 0xb156
movl $0x30, %edi
callq 0x5320
movq %rax, %rdi
movq %rdi, -0x128(%rbp)
callq 0xf330
movq -0x128(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq -0x20(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x22ad0
movq %rax, %rdi
leaq 0x3a91b(%rip), %rsi     # 0x458cc
callq 0x1e000
movq %rax, -0x60(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x1ce10
movq %rax, %rdi
callq 0x5410
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, (%rax)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a463(%rip), %rsi     # 0x4544d
callq 0x5300
movq %rax, %rdi
movq -0x58(%rbp), %rax
movq (%rax), %rsi
callq 0x56a0
movq -0x120(%rbp), %rdi
callq 0x22ad0
movq %rax, %rdi
leaq 0x3d8b5(%rip), %rsi     # 0x488c9
callq 0x1e6d0
movq %rax, -0x118(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x5660
movq -0x118(%rbp), %rsi
movq -0x110(%rbp), %rdx
leaq -0x80(%rbp), %rdi
callq 0xed50
jmp 0xb04c
movq -0x58(%rbp), %rdi
addq $0x8, %rdi
leaq -0x80(%rbp), %rsi
callq 0x5430
leaq -0x80(%rbp), %rdi
callq 0x5768
leaq -0x81(%rbp), %rdi
callq 0x5360
movq -0x108(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a3cb(%rip), %rsi     # 0x45452
callq 0x5300
movq %rax, %rdi
movq -0x58(%rbp), %rsi
addq $0x8, %rsi
callq 0x52c0
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, %rdi
leaq 0x3a3ac(%rip), %rsi     # 0x4545b
callq 0x1e6d0
movq %rax, %rdi
callq 0x5450
movq -0x108(%rbp), %rdi
movq -0x58(%rbp), %rax
movsd %xmm0, 0x28(%rax)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a396(%rip), %rsi     # 0x45470
callq 0x5300
movq %rax, %rdi
movq -0x58(%rbp), %rax
movsd 0x28(%rax), %xmm0
callq 0x5700
movq -0x108(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
movq 0x52e9b(%rip), %rsi     # 0x5dfa0
callq 0x5340
movq -0x108(%rbp), %rdi
addq $0x30, %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0x58(%rbp), %rsi
callq 0xf350
leaq -0x20(%rbp), %rdi
callq 0x22b20
jmp 0xaf38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x81(%rbp), %rdi
callq 0x5360
jmp 0xb4cf
movq -0x10(%rbp), %rdi
leaq 0x3a31b(%rip), %rsi     # 0x4547c
callq 0x1dc70
movq %rax, -0xb0(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x1da30
movq %rax, -0xa8(%rbp)
movq %rdx, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x3a2d4(%rip), %rsi     # 0x4547c
callq 0x1dc70
movq %rax, -0xc8(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x1da90
movq %rax, -0xc0(%rbp)
movq %rdx, -0xb8(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x22a30
testb $0x1, %al
jne 0xb1e7
jmp 0xb4a4
movl $0x40, %edi
callq 0x5320
movq %rax, %rdi
movq %rdi, -0x148(%rbp)
callq 0xf3c0
movq -0x148(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0x20(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x22ad0
movq %rax, %rdi
leaq 0x3a6a4(%rip), %rsi     # 0x458cc
callq 0x1e000
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x1ce10
movq %rax, %rdi
callq 0x5410
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movq -0xd0(%rbp), %rax
movq %rcx, (%rax)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a1e3(%rip), %rsi     # 0x4544d
callq 0x5300
movq %rax, %rdi
movq -0xd0(%rbp), %rax
movq (%rax), %rsi
callq 0x56a0
movq -0x140(%rbp), %rdi
callq 0x22ad0
movq %rax, %rdi
leaq 0x3d632(%rip), %rsi     # 0x488c9
callq 0x1e6d0
movq %rax, -0x138(%rbp)
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x5660
movq -0x138(%rbp), %rsi
movq -0x130(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
callq 0xed50
jmp 0xb2d2
movq -0xd0(%rbp), %rdi
addq $0x8, %rdi
leaq -0xf8(%rbp), %rsi
callq 0x5430
leaq -0xf8(%rbp), %rdi
callq 0x5768
leaq -0xf9(%rbp), %rdi
callq 0x5360
movq -0x108(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a13c(%rip), %rsi     # 0x45452
callq 0x5300
movq %rax, %rdi
movq -0xd0(%rbp), %rsi
addq $0x8, %rsi
callq 0x52c0
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, %rdi
leaq 0x3a11a(%rip), %rsi     # 0x4545b
callq 0x1e6d0
movq %rax, %rdi
callq 0x5450
movq -0x108(%rbp), %rdi
movq -0xd0(%rbp), %rax
movsd %xmm0, 0x28(%rax)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a101(%rip), %rsi     # 0x45470
callq 0x5300
movq %rax, %rdi
movq -0xd0(%rbp), %rax
movsd 0x28(%rax), %xmm0
callq 0x5700
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, %rdi
leaq 0x3a0f0(%rip), %rsi     # 0x4548b
callq 0x1e6d0
movq %rax, %rdi
callq 0x5410
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movq -0xd0(%rbp), %rax
movq %rcx, 0x30(%rax)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a0ca(%rip), %rsi     # 0x45495
callq 0x5300
movq %rax, %rdi
movq -0xd0(%rbp), %rax
movq 0x30(%rax), %rsi
callq 0x56a0
leaq -0x20(%rbp), %rdi
callq 0x22ad0
movq %rax, %rdi
leaq 0x3a0ad(%rip), %rsi     # 0x454a3
callq 0x1e6d0
movq %rax, %rdi
callq 0x5410
movq -0x108(%rbp), %rdi
movq %rax, %rcx
movq -0xd0(%rbp), %rax
movq %rcx, 0x38(%rax)
addq $0x248, %rdi            # imm = 0x248
leaq 0x3a08d(%rip), %rsi     # 0x454b3
callq 0x5300
movq %rax, %rdi
movq -0xd0(%rbp), %rax
movq 0x38(%rax), %rsi
callq 0x56a0
movq -0x108(%rbp), %rdi
addq $0x248, %rdi            # imm = 0x248
movq 0x52b4d(%rip), %rsi     # 0x5dfa0
callq 0x5340
movq -0x108(%rbp), %rdi
addq $0x30, %rdi
addq $0x128, %rdi            # imm = 0x128
leaq -0xd0(%rbp), %rsi
callq 0xf3e0
leaq -0x20(%rbp), %rdi
callq 0x22b20
jmp 0xb19d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xf9(%rbp), %rdi
callq 0x5360
jmp 0xb4cf
movq 0x52b25(%rip), %rdi     # 0x5dfd0
leaq 0x3a00f(%rip), %rsi     # 0x454c1
callq 0x5300
movq %rax, %rdi
movq 0x52adf(%rip), %rsi     # 0x5dfa0
callq 0x5340
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
movq -0x90(%rbp), %rdi
callq 0x5650
nopl (%rax,%rax)