// File: /workspace/github_cpp_makefile_star2_O3/CMU-SAFARI[P]MQSim/src/exec/Host_Parameter_Set.cpp
// Function: Host_Parameter_Set::XML_deserialize(rapidxml::xml_node<char>*)
void Host_Parameter_Set::XML_deserialize(rapidxml::xml_node<> *node)
{
	try {
		for (auto param = node->first_node(); param; param = param->next_sibling()) {
			if (strcmp(param->name(), "PCIe_Lane_Bandwidth") == 0) {
				std::string val = param->value();
				PCIe_Lane_Bandwidth = std::stod(val);
			} else if (strcmp(param->name(), "PCIe_Lane_Count") == 0) {
				std::string val = param->value();
				PCIe_Lane_Count = std::stoul(val);
			} else if (strcmp(param->name(), "SATA_Processing_Delay") == 0) {
				std::string val = param->value();
				SATA_Processing_Delay = std::stoul(val);
			} else if (strcmp(param->name(), "Enable_ResponseTime_Logging") == 0) {
				std::string val = param->value();
				std::transform(val.begin(), val.end(), val.begin(), ::toupper);
				Enable_ResponseTime_Logging = (val.compare("FALSE") == 0 ? false : true);
			} else if (strcmp(param->name(), "ResponseTime_Logging_Period_Length") == 0) {
				std::string val = param->value();
				ResponseTime_Logging_Period_Length = std::stoul(val);
			}
		}
	} catch (...) {
		PRINT_ERROR("Error in the Host_Parameter_Set!")
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq 0x30(%rsi), %r12
testq %r12, %r12
je 0x14889
leaq 0x5af3e(%rip), %r14     # 0x6f532
leaq 0x20(%rsp), %r15
movq (%r12), %rbp
testq %rbp, %rbp
cmoveq %r14, %rbp
movq %rbp, %rdi
leaq 0x427e2(%rip), %rsi     # 0x56df0
callq 0x74d0
testl %eax, %eax
je 0x146d6
movq %rbp, %rdi
leaq 0x427df(%rip), %rsi     # 0x56e04
callq 0x74d0
testl %eax, %eax
je 0x14728
movq %rbp, %rdi
leaq 0x427d8(%rip), %rsi     # 0x56e14
callq 0x74d0
testl %eax, %eax
je 0x1478f
movq %rbp, %rdi
leaq 0x427d7(%rip), %rsi     # 0x56e2a
callq 0x74d0
testl %eax, %eax
je 0x147f1
movq %rbp, %rdi
leaq 0x427dc(%rip), %rsi     # 0x56e46
callq 0x74d0
testl %eax, %eax
jne 0x14873
movq 0x8(%r12), %rsi
testq %rsi, %rsi
cmoveq %r14, %rsi
movq %rsp, %rdi
movq %r15, %rdx
callq 0x7180
movq (%rsp), %r13
callq 0x7050
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r13, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x7140
cmpq %r13, 0x20(%rsp)
je 0x148ff
movl (%rbp), %ecx
testl %ecx, %ecx
je 0x14856
cmpl $0x22, %ecx
jne 0x14859
jmp 0x1490b
movq 0x8(%r12), %rsi
testq %rsi, %rsi
cmoveq %r14, %rsi
movq %rsp, %rdi
movq %r15, %rdx
callq 0x7180
movq (%rsp), %r13
callq 0x7050
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r13, %rdi
movq %r15, %rsi
callq 0x72d0
cmpq %r13, 0x20(%rsp)
je 0x148b7
movl (%rbp), %eax
testl %eax, %eax
je 0x1477f
cmpl $0x22, %eax
jne 0x14782
jmp 0x148cf
movq 0x8(%r12), %rsi
testq %rsi, %rsi
cmoveq %r14, %rsi
movq %rsp, %rdi
movq %r15, %rdx
callq 0x7180
movq (%rsp), %r13
callq 0x7050
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r13, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x7140
cmpq %r13, 0x20(%rsp)
je 0x148c3
movl (%rbp), %ecx
testl %ecx, %ecx
je 0x147e6
cmpl $0x22, %ecx
jne 0x147e9
jmp 0x148e7
movl %ebx, (%rbp)
movsd %xmm0, 0x5ad0e(%rip)    # 0x6f498
jmp 0x14860
movq 0x8(%r12), %rsi
testq %rsi, %rsi
cmoveq %r14, %rsi
movq %rsp, %rdi
movq %r15, %rdx
callq 0x7180
movq (%rsp), %r13
callq 0x7050
movq %rax, %rbp
movl (%rax), %ebx
movl $0x0, (%rax)
movq %r13, %rdi
movq %r15, %rsi
movl $0xa, %edx
callq 0x7140
cmpq %r13, 0x20(%rsp)
je 0x148db
movl (%rbp), %ecx
testl %ecx, %ecx
je 0x1484a
cmpl $0x22, %ecx
jne 0x1484d
jmp 0x148f3
movl %ebx, (%rbp)
movl %eax, 0x5acb1(%rip)     # 0x6f4a0
jmp 0x14860
movq 0x8(%r12), %rsi
testq %rsi, %rsi
cmoveq %r14, %rsi
movq %rsp, %rdi
movq %r15, %rdx
callq 0x7180
movq 0x8(%rsp), %rbx
testq %rbx, %rbx
je 0x14830
movq (%rsp), %r13
xorl %ebp, %ebp
movsbl (%r13,%rbp), %edi
callq 0x7670
movb %al, (%r13,%rbp)
incq %rbp
cmpq %rbp, %rbx
jne 0x14818
movq %rsp, %rdi
leaq 0x41d68(%rip), %rsi     # 0x565a2
callq 0x7120
testl %eax, %eax
setne 0x5ad28(%rip)           # 0x6f570
jmp 0x14860
movl %ebx, (%rbp)
movq %rax, 0x5ad14(%rip)     # 0x6f568
jmp 0x14860
movl %ebx, (%rbp)
movq %rax, 0x5ac48(%rip)     # 0x6f4a8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x14873
callq 0x7370
cmpq $0x0, 0x20(%r12)
je 0x14898
movq 0x58(%r12), %r12
testq %r12, %r12
jne 0x145f9
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x40ed8(%rip), %rdi     # 0x55777
leaq 0x40ca3(%rip), %rsi     # 0x55549
leaq 0x40ed9(%rip), %rcx     # 0x55786
movl $0x3ee, %edx            # imm = 0x3EE
callq 0x7270
leaq 0x4207e(%rip), %rdi     # 0x5693c
callq 0x7250
leaq 0x4206c(%rip), %rdi     # 0x56936
callq 0x7250
leaq 0x42066(%rip), %rdi     # 0x5693c
callq 0x7510
leaq 0x42054(%rip), %rdi     # 0x56936
callq 0x7250
leaq 0x42048(%rip), %rdi     # 0x56936
callq 0x7510
leaq 0x4203c(%rip), %rdi     # 0x56936
callq 0x7510
leaq 0x42030(%rip), %rdi     # 0x56936
callq 0x7250
leaq 0x42024(%rip), %rdi     # 0x56936
callq 0x7510
jmp 0x14925
jmp 0x1492a
jmp 0x14925
jmp 0x14925
jmp 0x1492a
jmp 0x14925
jmp 0x1492a
movq %rax, %r14
jmp 0x14949
movq %rax, %r14
cmpl $0x0, (%rbp)
jne 0x14936
movl %ebx, (%rbp)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x14949
callq 0x7370
movq %r14, %rdi
callq 0x7190
movq 0x5a698(%rip), %rdi     # 0x6eff0
leaq 0x41c49(%rip), %rsi     # 0x565a8
movl $0x6, %edx
callq 0x7400
movq 0x5a680(%rip), %rdi     # 0x6eff0
leaq 0x424f2(%rip), %rsi     # 0x56e69
movl $0x20, %edx
callq 0x7400
movq 0x5a668(%rip), %rdi     # 0x6eff0
callq 0x71c0
movq 0x5a63c(%rip), %rdi     # 0x6efd0
callq 0x7430
movl $0x1, %edi
callq 0x7440
movq %rax, %rbx
callq 0x7590
movq %rbx, %rdi
callq 0x7620
movq %rax, %rdi
callq 0xae63
nop