// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
movq %rdi, %r15
movq 0x2a921(%rip), %rdi     # 0x32fc8
leaq 0x1bda5(%rip), %rsi     # 0x24453
movl $0xf, %edx
callq 0x42f0
leaq 0x248(%r15), %r12
leaq 0x1bd9d(%rip), %rsi     # 0x24463
movl $0x21, %edx
movq %r12, %rdi
callq 0x42f0
movq 0x248(%r15), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4280
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4190
leaq 0x38(%rsp), %rbx
movq %rbx, %rdi
callq 0x15894
leaq 0x1bd73(%rip), %r13     # 0x24485
movq %r14, %rdi
movq %r13, %rsi
callq 0x11080
leaq 0x10(%rsp), %rbp
movq %rax, (%rbp)
movq %rbp, %rdi
callq 0x10fec
movq %rax, (%rbx)
movq %rdx, 0x8(%rbx)
movq %r14, %rdi
movq %r13, %rsi
callq 0x11080
movq %rsp, %rdi
movq %rax, (%rdi)
callq 0x10ffc
movq %rax, (%rbp)
movq %rdx, 0x8(%rbp)
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x158dc
testb %al, %al
je 0x895a
leaq 0x140(%r15), %rax
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %r13
leaq 0x10(%rsp), %rbx
movq %rsp, %rbp
movl $0x30, %edi
callq 0x42b0
leaq 0x18(%rax), %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
movb $0x0, 0x18(%rax)
movq %rax, (%rsp)
movq %r13, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1c15f(%rip), %rsi     # 0x24914
callq 0x111c0
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
callq 0x107c8
movq %rax, %rdi
callq 0x4320
movq (%rsp), %rcx
movq %rax, (%rcx)
movl $0x4, %edx
movq %r12, %rdi
leaq 0x1bcb0(%rip), %rsi     # 0x24495
callq 0x42f0
movq (%rsp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x4270
movq %r13, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1e8ef(%rip), %rsi     # 0x270fa
callq 0x11426
movq %rbx, %rdi
movq %rax, %rsi
leaq 0xf(%rsp), %rdx
callq 0xbf1c
movq (%rsp), %rdi
addq $0x8, %rdi
movq %rbx, %rsi
callq 0x4340
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x884c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42c0
movl $0x8, %edx
movq %r12, %rdi
leaq 0x1bc3f(%rip), %rsi     # 0x2449a
callq 0x42f0
movq (%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %r12, %rdi
callq 0x42f0
movq %r13, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1bc1d(%rip), %rsi     # 0x244a3
callq 0x11426
movq %rax, %rdi
callq 0x4350
movq (%rsp), %rax
movsd %xmm0, 0x28(%rax)
movl $0xb, %edx
movq %r12, %rdi
leaq 0x1bc0d(%rip), %rsi     # 0x244b8
callq 0x42f0
movq (%rsp), %rax
movsd 0x28(%rax), %xmm0
movq %r12, %rdi
callq 0x4480
movq 0x248(%r15), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4280
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4190
movq 0x148(%r15), %rsi
cmpq 0x150(%r15), %rsi
je 0x890d
movq (%rsp), %rax
movq %rax, (%rsi)
addq $0x8, 0x148(%r15)
jmp 0x891a
movq 0x30(%rsp), %rdi
movq %rbp, %rdx
callq 0xd7ba
movq %r13, %rdi
callq 0x15950
movq %r14, %rdi
leaq 0x1bb59(%rip), %rsi     # 0x24485
callq 0x11080
movq %rax, (%rsp)
movq %rbp, %rdi
callq 0x10ffc
movq %rax, 0x10(%rsp)
movq %rdx, 0x18(%rsp)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x158dc
testb %al, %al
jne 0x8781
leaq 0x1bb63(%rip), %rbx     # 0x244c4
movq %r14, %rdi
movq %rbx, %rsi
callq 0x11080
leaq 0x10(%rsp), %r13
movq %rax, (%r13)
movq %r13, %rdi
callq 0x10fec
leaq 0x38(%rsp), %rbp
movq %rax, (%rbp)
movq %rdx, 0x8(%rbp)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x11080
movq %rsp, %rdi
movq %rax, (%rdi)
callq 0x10ffc
movq %rax, (%r13)
movq %rdx, 0x8(%r13)
leaq 0x10(%rsp), %rsi
movq %rbp, %rdi
callq 0x158dc
testb %al, %al
je 0x8c45
leaq 0x158(%r15), %rax
movq %rax, 0x30(%rsp)
leaq 0x38(%rsp), %rbp
leaq 0x10(%rsp), %r13
movq %rsp, %rbx
movl $0x40, %edi
callq 0x42b0
leaq 0x18(%rax), %rcx
movq %rcx, 0x8(%rax)
movq $0x0, 0x10(%rax)
movb $0x0, 0x18(%rax)
movq %rax, (%rsp)
movq %rbp, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1bf0a(%rip), %rsi     # 0x24914
callq 0x111c0
movq %rax, 0x10(%rsp)
movq %r13, %rdi
callq 0x107c8
movq %rax, %rdi
callq 0x4320
movq (%rsp), %rcx
movq %rax, (%rcx)
movl $0x4, %edx
movq %r12, %rdi
leaq 0x1ba5b(%rip), %rsi     # 0x24495
callq 0x42f0
movq (%rsp), %rax
movq (%rax), %rsi
movq %r12, %rdi
callq 0x4270
movq %rbp, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1e69a(%rip), %rsi     # 0x270fa
callq 0x11426
movq %r13, %rdi
movq %rax, %rsi
leaq 0xf(%rsp), %rdx
callq 0xbf1c
movq (%rsp), %rdi
addq $0x8, %rdi
movq %r13, %rsi
callq 0x4340
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x8aa1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42c0
movl $0x8, %edx
movq %r12, %rdi
leaq 0x1b9ea(%rip), %rsi     # 0x2449a
callq 0x42f0
movq (%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %r12, %rdi
callq 0x42f0
movq %rbp, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1b9c8(%rip), %rsi     # 0x244a3
callq 0x11426
movq %rax, %rdi
callq 0x4350
movq (%rsp), %rax
movsd %xmm0, 0x28(%rax)
movl $0xb, %edx
movq %r12, %rdi
leaq 0x1b9b8(%rip), %rsi     # 0x244b8
callq 0x42f0
movq (%rsp), %rax
movsd 0x28(%rax), %xmm0
movq %r12, %rdi
callq 0x4480
movq %rbp, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1b9ab(%rip), %rsi     # 0x244d3
callq 0x11426
movq %rax, %rdi
callq 0x4320
movq (%rsp), %rcx
movq %rax, 0x30(%rcx)
movl $0xd, %edx
movq %r12, %rdi
leaq 0x1b991(%rip), %rsi     # 0x244dd
callq 0x42f0
movq (%rsp), %rax
movq 0x30(%rax), %rsi
movq %r12, %rdi
callq 0x4270
movq %rbp, %rdi
callq 0x15926
movq %rax, %rdi
leaq 0x1b978(%rip), %rsi     # 0x244eb
callq 0x11426
movq %rax, %rdi
callq 0x4320
movq (%rsp), %rcx
movq %rax, 0x38(%rcx)
movl $0xd, %edx
movq %r12, %rdi
leaq 0x1b964(%rip), %rsi     # 0x244fb
callq 0x42f0
movq (%rsp), %rax
movq 0x38(%rax), %rsi
movq %r12, %rdi
callq 0x4270
movq 0x248(%r15), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x4280
movsbl %al, %esi
movq %r12, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4190
movq 0x160(%r15), %rsi
cmpq 0x168(%r15), %rsi
je 0x8bf8
movq (%rsp), %rax
movq %rax, (%rsi)
addq $0x8, 0x160(%r15)
jmp 0x8c05
movq 0x30(%rsp), %rdi
movq %rbx, %rdx
callq 0xd8f6
movq %rbp, %rdi
callq 0x15950
movq %r14, %rdi
leaq 0x1b8ad(%rip), %rsi     # 0x244c4
callq 0x11080
movq %rax, (%rsp)
movq %rbx, %rdi
callq 0x10ffc
movq %rax, 0x10(%rsp)
movq %rdx, 0x18(%rsp)
movq %rbp, %rdi
movq %r13, %rsi
callq 0x158dc
testb %al, %al
jne 0x89d6
leaq 0x1b8bd(%rip), %rsi     # 0x24509
movl $0x4, %edx
movq 0x2a370(%rip), %rbx     # 0x32fc8
movq %rbx, %rdi
callq 0x42f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x4280
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x4190
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq