// File: /workspace/github_cpp_makefile_star2_O3/CMU-SAFARI[P]MQSim/src/exec/IO_Flow_Parameter_Set.cpp
// Function: IO_Flow_Parameter_Set::XML_deserialize(rapidxml::xml_node<char>*)
void IO_Flow_Parameter_Set::XML_deserialize(rapidxml::xml_node<> *node)
{
	try {
		for (auto param = node->first_node(); param; param = param->next_sibling()) {
			if (strcmp(param->name(), "Device_Level_Data_Caching_Mode") == 0) {
				std::string val = param->value();
				std::transform(val.begin(), val.end(), val.begin(), ::toupper);
				if (strcmp(val.c_str(), "TURNED_OFF") == 0) {
					Device_Level_Data_Caching_Mode = SSD_Components::Caching_Mode::TURNED_OFF;
				} else if (strcmp(val.c_str(), "WRITE_CACHE") == 0) {
					Device_Level_Data_Caching_Mode = SSD_Components::Caching_Mode::WRITE_CACHE;
				} else if (strcmp(val.c_str(), "READ_CACHE") == 0) {
					Device_Level_Data_Caching_Mode = SSD_Components::Caching_Mode::READ_CACHE;
				} else if (strcmp(val.c_str(), "WRITE_READ_CACHE") == 0) {
					Device_Level_Data_Caching_Mode = SSD_Components::Caching_Mode::WRITE_READ_CACHE;
				} else {
					PRINT_ERROR("Wrong caching mode definition for input flow")
				}
			}
			else if (strcmp(param->name(), "Priority_Class") == 0)
			{
				std::string val = param->value();
				std::transform(val.begin(), val.end(), val.begin(), ::toupper);
				if (strcmp(val.c_str(), "URGENT") == 0) {
					Priority_Class = IO_Flow_Priority_Class::URGENT;
				} else if (strcmp(val.c_str(), "HIGH") == 0) {
					Priority_Class = IO_Flow_Priority_Class::HIGH;
				} else if (strcmp(val.c_str(), "MEDIUM") == 0) {
					Priority_Class = IO_Flow_Priority_Class::MEDIUM;
				} else if (strcmp(val.c_str(), "LOW") == 0) {
					Priority_Class = IO_Flow_Priority_Class::LOW;
				} else {
					PRINT_ERROR("Wrong priority class definition for input flow")
				}
			} else if (strcmp(param->name(), "Channel_IDs") == 0) {
				std::set<int> ids;
				char tmp[1000], *tmp2;
				strncpy(tmp, param->value(), 1000);
				std::string id = strtok(tmp, ",");
				while (1) {
					std::string::size_type sz;
					ids.insert(std::stoi(id, &sz));
					tmp2 = strtok(NULL, ",");
					if (tmp2 == NULL) {
						break;
					} else {
						id = tmp2;
					}
				}
				Channel_No = (int)ids.size();
				Channel_IDs = new flash_block_ID_type[Channel_No];
				int i = 0;
				for (auto it = ids.begin(); it != ids.end(); it++) {
					Channel_IDs[i++] = *it;
				}
			} else if (strcmp(param->name(), "Chip_IDs") == 0) {
				std::set<int> ids;
				char tmp[1000], *tmp2;
				strncpy(tmp, param->value(), 1000);
				std::string id = strtok(tmp, ",");
				while (1) {
					std::string::size_type sz;
					ids.insert(std::stoi(id, &sz));
					tmp2 = strtok(NULL, ",");
					if (tmp2 == NULL) {
						break;
					} else {
						id = tmp2;
					}
				}
				Chip_No = (int)ids.size();
				Chip_IDs = new flash_block_ID_type[Chip_No];
				int i = 0;
				for (auto it = ids.begin(); it != ids.end(); it++) {
					Chip_IDs[i++] = *it;
				}
			} else if (strcmp(param->name(), "Die_IDs") == 0) {
				std::set<int> ids;
				char tmp[1000], *tmp2;
				strncpy(tmp, param->value(), 1000);
				std::string id = strtok(tmp, ",");
				while (1) {
					std::string::size_type sz;
					ids.insert(std::stoi(id, &sz));
					tmp2 = strtok(NULL, ",");
					if (tmp2 == NULL) {
						break;
					} else {
						id = tmp2;
					}
				}
				Die_No = (int)ids.size();
				Die_IDs = new flash_block_ID_type[Die_No];
				int i = 0;
				for (auto it = ids.begin(); it != ids.end(); it++) {
					Die_IDs[i++] = *it;
				}
			} else if (strcmp(param->name(), "Plane_IDs") == 0) {
				std::set<int> ids;
				char tmp[1000], *tmp2;
				strncpy(tmp, param->value(), 1000);
				std::string id = strtok(tmp, ",");
				while (1) {
					std::string::size_type sz;
					ids.insert(std::stoi(id, &sz));
					tmp2 = strtok(NULL, ",");
					if (tmp2 == NULL) {
						break;
					} else {
						id = tmp2;
					}
				}
				Plane_No = (int)ids.size();
				Plane_IDs = new flash_block_ID_type[Plane_No];
				int i = 0;
				for (auto it = ids.begin(); it != ids.end(); it++) {
					Plane_IDs[i++] = *it;
				}
			} else if (strcmp(param->name(), "Initial_Occupancy_Percentage") == 0) {
				std::string val = param->value();
				Initial_Occupancy_Percentage = std::stoul(val);
			}
		}
	} catch (...) {
		PRINT_ERROR("Error in IO_Flow_Parameter_Set!")
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x458, %rsp            # imm = 0x458
movq 0x30(%rsi), %r13
testq %r13, %r13
je 0x17dad
movq %rdi, %rbp
leaq 0x40(%rsp), %r15
leaq 0x580a7(%rip), %rax     # 0x6f532
leaq 0x68(%rsp), %r14
movq %rdi, 0x10(%rsp)
movq %r14, %r12
movq %rbp, %r14
movq (%r13), %rbx
testq %rbx, %rbx
cmoveq %rax, %rbx
movq %rbx, %rdi
movq %rax, %rbp
leaq 0x3fba1(%rip), %rsi     # 0x57054
callq 0x74d0
testl %eax, %eax
movq %r13, 0x8(%rsp)
je 0x175cb
movq %rbx, %rdi
leaq 0x3fb5f(%rip), %rsi     # 0x5702e
callq 0x74d0
testl %eax, %eax
je 0x17620
movq %rbx, %rdi
leaq 0x3fbb5(%rip), %rsi     # 0x5709b
callq 0x74d0
testl %eax, %eax
je 0x176e6
movq %r14, %rbp
movq %rbx, %rdi
leaq 0x3fba9(%rip), %rsi     # 0x570a9
callq 0x74d0
testl %eax, %eax
movq %r12, %r14
je 0x178ce
movq %rbx, %rdi
leaq 0x3fb98(%rip), %rsi     # 0x570b2
callq 0x74d0
testl %eax, %eax
leaq 0x38(%rsp), %r12
je 0x17a48
movq %rbx, %rdi
leaq 0x3fb84(%rip), %rsi     # 0x570ba
callq 0x74d0
testl %eax, %eax
je 0x17bc6
movq %rbx, %rdi
leaq 0x3fb77(%rip), %rsi     # 0x570c4
callq 0x74d0
testl %eax, %eax
movq 0x8(%rsp), %r13
jne 0x17d69
movq 0x8(%r13), %rsi
testq %rsi, %rsi
leaq 0x57fc5(%rip), %rax     # 0x6f532
cmoveq %rax, %rsi
leaq 0x70(%rsp), %rdi
movq %r12, %rdx
callq 0x7180
movq 0x70(%rsp), %r15
callq 0x7050
movq %rax, %rbx
movl (%rax), %ebp
movl $0x0, (%rax)
movq %r15, %rdi
movq %r12, %rsi
movl $0xa, %edx
callq 0x7140
cmpq %r15, 0x38(%rsp)
je 0x17ed8
movl (%rbx), %ecx
testl %ecx, %ecx
je 0x17d8a
cmpl $0x22, %ecx
leaq 0x40(%rsp), %r15
jne 0x17d91
jmp 0x17ee4
movq 0x8(%r13), %rsi
testq %rsi, %rsi
cmoveq %rbp, %rsi
leaq 0x70(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x7180
movq 0x70(%rsp), %rbx
movq 0x78(%rsp), %r15
testq %r15, %r15
je 0x17857
xorl %ebp, %ebp
movq %r12, %r14
movsbl (%rbx,%rbp), %edi
callq 0x7670
movb %al, (%rbx,%rbp)
incq %rbp
cmpq %rbp, %r15
jne 0x175fd
movq 0x70(%rsp), %rbx
movq 0x10(%rsp), %rbp
jmp 0x1785d
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
testq %rsi, %rsi
leaq 0x57eff(%rip), %rax     # 0x6f532
cmoveq %rax, %rsi
leaq 0x70(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x7180
movq %r14, %rbp
movq 0x70(%rsp), %rbx
movq 0x78(%rsp), %r15
testq %r15, %r15
movq %r12, %r14
je 0x1767b
xorl %ebp, %ebp
movsbl (%rbx,%rbp), %edi
callq 0x7670
movb %al, (%rbx,%rbp)
incq %rbp
cmpq %rbp, %r15
jne 0x1765d
movq 0x70(%rsp), %rbx
movq 0x10(%rsp), %rbp
movq %rbx, %rdi
leaq 0x3f9b8(%rip), %rsi     # 0x5703d
callq 0x74d0
testl %eax, %eax
leaq 0x40(%rsp), %r15
je 0x17a3a
movq %rbx, %rdi
leaq 0x3f9a3(%rip), %rsi     # 0x57044
callq 0x74d0
testl %eax, %eax
je 0x17baf
movq %rbx, %rdi
leaq 0x3f991(%rip), %rsi     # 0x57049
callq 0x74d0
testl %eax, %eax
je 0x17d47
movq %rbx, %rdi
leaq 0x3f981(%rip), %rsi     # 0x57050
callq 0x74d0
movl $0x3, %ecx
testl %eax, %eax
je 0x17d4c
jmp 0x17e8b
movl $0x0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x48(%rsp)
movq %r15, 0x50(%rsp)
movq %r15, 0x58(%rsp)
movq %rax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
testq %rsi, %rsi
leaq 0x57e1b(%rip), %rax     # 0x6f532
cmoveq %rax, %rsi
movl $0x3e8, %edx            # imm = 0x3E8
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x7200
movq %rbx, %rdi
leaq 0x3f970(%rip), %rsi     # 0x570a7
callq 0x7560
leaq 0x18(%rsp), %rdi
movq %rax, %rsi
movq %r12, %r14
movq %r12, %rdx
callq 0x7180
callq 0x7050
movq %rax, %rbx
leaq 0x38(%rsp), %r12
movq 0x18(%rsp), %rbp
movl (%rbx), %r15d
movl $0x0, (%rbx)
movq %rbp, %rdi
movq %r14, %rsi
movl $0xa, %edx
callq 0x74e0
cmpq %rbp, 0x68(%rsp)
je 0x17dbf
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x17dcb
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x17dcb
testl %ecx, %ecx
jne 0x177b1
movl %r15d, (%rbx)
movl %eax, 0x4(%rsp)
movq %r12, %rdi
leaq 0x4(%rsp), %rsi
callq 0x1abb6
xorl %edi, %edi
leaq 0x3f8dc(%rip), %rsi     # 0x570a7
callq 0x7560
testq %rax, %rax
je 0x177ff
movq %rax, %rbp
movq 0x20(%rsp), %r15
movq %rax, %rdi
callq 0x71a0
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x7550
jmp 0x1775c
movq 0x60(%rsp), %rax
movq 0x10(%rsp), %rbp
movl %eax, 0x3c(%rbp)
shlq $0x20, %rax
movq %rax, %rdi
sarq $0x1e, %rdi
testq %rax, %rax
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x7030
movq %rax, %rbx
movq %rax, 0x18(%rbp)
movq 0x50(%rsp), %rax
leaq 0x40(%rsp), %r15
cmpq %r15, %rax
je 0x17d29
movl 0x20(%rax), %ecx
movl %ecx, (%rbx)
movq %rax, %rdi
callq 0x7410
addq $0x4, %rbx
jmp 0x1783b
movq %r14, %rbp
movq %r12, %r14
movq %rbx, %rdi
leaq 0x3f80c(%rip), %rsi     # 0x57073
callq 0x74d0
testl %eax, %eax
leaq 0x40(%rsp), %r15
je 0x178c4
movq %rbx, %rdi
leaq 0x3f7ff(%rip), %rsi     # 0x5707e
callq 0x74d0
testl %eax, %eax
je 0x17a41
movq %rbx, %rdi
leaq 0x3f7fa(%rip), %rsi     # 0x57090
callq 0x74d0
testl %eax, %eax
je 0x17bb9
movq %rbx, %rdi
leaq 0x3f7dd(%rip), %rsi     # 0x5708a
callq 0x74d0
movl $0x2, %ecx
testl %eax, %eax
je 0x17bbe
jmp 0x17e3e
movl $0x3, %ecx
jmp 0x17bbe
movl $0x0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x48(%rsp)
movq %r15, 0x50(%rsp)
movq %r15, 0x58(%rsp)
movq %rax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
testq %rsi, %rsi
leaq 0x57c33(%rip), %rax     # 0x6f532
cmoveq %rax, %rsi
movl $0x3e8, %edx            # imm = 0x3E8
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x7200
movq %rbx, %rdi
leaq 0x3f788(%rip), %rsi     # 0x570a7
callq 0x7560
leaq 0x18(%rsp), %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x7180
leaq 0x38(%rsp), %r12
callq 0x7050
movq %rax, %rbx
movq 0x18(%rsp), %r15
movl (%rbx), %ebp
movl $0x0, (%rbx)
movq %r15, %rdi
movq %r14, %rsi
movl $0xa, %edx
callq 0x74e0
cmpq %r15, 0x68(%rsp)
je 0x17de3
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x17dd7
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x17dd7
testl %ecx, %ecx
jne 0x17994
movl %ebp, (%rbx)
movl %eax, 0x4(%rsp)
movq %r12, %rdi
leaq 0x4(%rsp), %rsi
callq 0x1abb6
xorl %edi, %edi
leaq 0x3f6f9(%rip), %rsi     # 0x570a7
callq 0x7560
testq %rax, %rax
je 0x179e2
movq %rax, %rbp
movq 0x20(%rsp), %r15
movq %rax, %rdi
callq 0x71a0
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x7550
jmp 0x17941
movq 0x60(%rsp), %rax
movq 0x10(%rsp), %rbp
movl %eax, 0x40(%rbp)
shlq $0x20, %rax
movq %rax, %rdi
sarq $0x1e, %rdi
testq %rax, %rax
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x7030
movq %rax, %rbx
movq %rax, 0x20(%rbp)
movq 0x50(%rsp), %rax
leaq 0x40(%rsp), %r15
cmpq %r15, %rax
je 0x17d29
movl 0x20(%rax), %ecx
movl %ecx, (%rbx)
movq %rax, %rdi
callq 0x7410
addq $0x4, %rbx
jmp 0x17a1e
xorl %ecx, %ecx
jmp 0x17d4c
xorl %ecx, %ecx
jmp 0x17bbe
movl $0x0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x48(%rsp)
movq %r15, 0x50(%rsp)
movq %r15, 0x58(%rsp)
movq %rax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
testq %rsi, %rsi
leaq 0x57ab9(%rip), %rax     # 0x6f532
cmoveq %rax, %rsi
movl $0x3e8, %edx            # imm = 0x3E8
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x7200
movq %rbx, %rdi
leaq 0x3f60e(%rip), %rsi     # 0x570a7
callq 0x7560
leaq 0x18(%rsp), %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x7180
callq 0x7050
movq %rax, %rbx
movq 0x18(%rsp), %r15
movl (%rbx), %ebp
movl $0x0, (%rbx)
movq %r15, %rdi
movq %r14, %rsi
movl $0xa, %edx
callq 0x74e0
cmpq %r15, 0x68(%rsp)
je 0x17def
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x17dfb
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x17dfb
testl %ecx, %ecx
jne 0x17b09
movl %ebp, (%rbx)
movl %eax, 0x4(%rsp)
movq %r12, %rdi
leaq 0x4(%rsp), %rsi
callq 0x1abb6
xorl %edi, %edi
leaq 0x3f584(%rip), %rsi     # 0x570a7
callq 0x7560
testq %rax, %rax
je 0x17b57
movq %rax, %rbp
movq 0x20(%rsp), %r15
movq %rax, %rdi
callq 0x71a0
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x7550
jmp 0x17ab6
movq 0x60(%rsp), %rax
movq 0x10(%rsp), %rbp
movl %eax, 0x44(%rbp)
shlq $0x20, %rax
movq %rax, %rdi
sarq $0x1e, %rdi
testq %rax, %rax
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x7030
movq %rax, %rbx
movq %rax, 0x28(%rbp)
movq 0x50(%rsp), %rax
leaq 0x40(%rsp), %r15
cmpq %r15, %rax
je 0x17d29
movl 0x20(%rax), %ecx
movl %ecx, (%rbx)
movq %rax, %rdi
callq 0x7410
addq $0x4, %rbx
jmp 0x17b93
movl $0x1, %ecx
jmp 0x17d4c
movl $0x1, %ecx
movl %ecx, 0x8(%rbp)
jmp 0x17d4f
movl $0x0, 0x40(%rsp)
xorl %eax, %eax
movq %rax, 0x48(%rsp)
movq %r15, 0x50(%rsp)
movq %r15, 0x58(%rsp)
movq %rax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
testq %rsi, %rsi
leaq 0x5793b(%rip), %rax     # 0x6f532
cmoveq %rax, %rsi
movl $0x3e8, %edx            # imm = 0x3E8
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x7200
movq %rbx, %rdi
leaq 0x3f490(%rip), %rsi     # 0x570a7
callq 0x7560
leaq 0x18(%rsp), %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0x7180
callq 0x7050
movq %rax, %rbx
movq 0x18(%rsp), %r15
movl (%rbx), %ebp
movl $0x0, (%rbx)
movq %r15, %rdi
movq %r14, %rsi
movl $0xa, %edx
callq 0x74e0
cmpq %r15, 0x68(%rsp)
je 0x17e13
leaq -0x80000000(%rax), %rcx
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
cmpq %rdx, %rcx
jb 0x17e07
movl (%rbx), %ecx
cmpl $0x22, %ecx
je 0x17e07
testl %ecx, %ecx
jne 0x17c87
movl %ebp, (%rbx)
movl %eax, 0x4(%rsp)
movq %r12, %rdi
leaq 0x4(%rsp), %rsi
callq 0x1abb6
xorl %edi, %edi
leaq 0x3f406(%rip), %rsi     # 0x570a7
callq 0x7560
testq %rax, %rax
je 0x17cd5
movq %rax, %rbp
movq 0x20(%rsp), %r15
movq %rax, %rdi
callq 0x71a0
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %rbp, %rcx
movq %rax, %r8
callq 0x7550
jmp 0x17c34
movq 0x60(%rsp), %rax
movq 0x10(%rsp), %rbp
movl %eax, 0x48(%rbp)
shlq $0x20, %rax
movq %rax, %rdi
sarq $0x1e, %rdi
testq %rax, %rax
movq $-0x1, %rax
cmovsq %rax, %rdi
callq 0x7030
movq %rax, %rbx
movq %rax, 0x30(%rbp)
movq 0x50(%rsp), %rax
leaq 0x40(%rsp), %r15
cmpq %r15, %rax
je 0x17d29
movl 0x20(%rax), %ecx
movl %ecx, (%rbx)
movq %rax, %rdi
callq 0x7410
addq $0x4, %rbx
jmp 0x17d11
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x17d3d
callq 0x7370
movq %r12, %rdi
callq 0x1ab6c
jmp 0x17d64
movl $0x2, %ecx
movl %ecx, 0x10(%rbp)
leaq 0x80(%rsp), %rax
cmpq %rax, %rbx
je 0x17d64
movq %rbx, %rdi
callq 0x7370
movq 0x8(%rsp), %r13
cmpq $0x0, 0x20(%r13)
je 0x17e1f
movq 0x58(%r13), %r13
testq %r13, %r13
leaq 0x577b0(%rip), %rax     # 0x6f532
jne 0x17495
jmp 0x17dad
movl %ebp, (%rbx)
leaq 0x40(%rsp), %r15
movq 0x10(%rsp), %rbp
movl %eax, 0x38(%rbp)
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
jne 0x17d5f
jmp 0x17d64
addq $0x458, %rsp            # imm = 0x458
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3eb64(%rip), %rdi     # 0x5692a
callq 0x7250
leaq 0x3eb58(%rip), %rdi     # 0x5692a
callq 0x7510
leaq 0x3eb4c(%rip), %rdi     # 0x5692a
callq 0x7510
leaq 0x3eb40(%rip), %rdi     # 0x5692a
callq 0x7250
leaq 0x3eb34(%rip), %rdi     # 0x5692a
callq 0x7250
leaq 0x3eb28(%rip), %rdi     # 0x5692a
callq 0x7510
leaq 0x3eb1c(%rip), %rdi     # 0x5692a
callq 0x7510
leaq 0x3eb10(%rip), %rdi     # 0x5692a
callq 0x7250
leaq 0x3d951(%rip), %rdi     # 0x55777
leaq 0x3d71c(%rip), %rsi     # 0x55549
leaq 0x3d952(%rip), %rcx     # 0x55786
movl $0x3ee, %edx            # imm = 0x3EE
callq 0x7270
movq 0x571ab(%rip), %rdi     # 0x6eff0
leaq 0x3e75c(%rip), %rsi     # 0x565a8
movl $0x6, %edx
callq 0x7400
movq 0x57193(%rip), %rdi     # 0x6eff0
leaq 0x3f27d(%rip), %rsi     # 0x570e1
movl $0x2c, %edx
callq 0x7400
movq 0x5717b(%rip), %rdi     # 0x6eff0
callq 0x71c0
movq 0x5714f(%rip), %rdi     # 0x6efd0
callq 0x7430
jmp 0x17fd2
movq 0x5715e(%rip), %rdi     # 0x6eff0
leaq 0x3e70f(%rip), %rsi     # 0x565a8
movl $0x6, %edx
callq 0x7400
movq 0x57146(%rip), %rdi     # 0x6eff0
leaq 0x3f25d(%rip), %rsi     # 0x5710e
movl $0x2e, %edx
callq 0x7400
movq 0x5712e(%rip), %rdi     # 0x6eff0
callq 0x71c0
movq 0x57102(%rip), %rdi     # 0x6efd0
callq 0x7430
jmp 0x17fd2
leaq 0x3ea57(%rip), %rdi     # 0x56936
callq 0x7250
leaq 0x3ea4b(%rip), %rdi     # 0x56936
callq 0x7510
jmp 0x17f31
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x17f0b
movl %ebp, (%rbx)
jmp 0x17f0b
jmp 0x17f48
jmp 0x17f2a
jmp 0x17f08
jmp 0x17f48
jmp 0x17f2a
movq %rax, %r14
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x17f82
callq 0x7370
jmp 0x17f82
jmp 0x17f48
jmp 0x17f2a
jmp 0x17f48
movq %rax, %r14
jmp 0x17f78
jmp 0x17f31
movq %rax, %r14
jmp 0x17f82
jmp 0x17f48
jmp 0x17f48
jmp 0x17f48
jmp 0x17f48
jmp 0x17f4d
jmp 0x17f48
jmp 0x17f48
jmp 0x17f4d
jmp 0x17f48
movq %rax, %r14
jmp 0x17f64
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x17f64
movl %ebp, (%rbx)
jmp 0x17f64
movq %rax, %r14
cmpl $0x0, (%rbx)
jne 0x17f64
movl %r15d, (%rbx)
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x17f78
callq 0x7370
leaq 0x38(%rsp), %rdi
callq 0x1ab6c
movq %r14, %rdi
callq 0x7190
movq 0x5705f(%rip), %rdi     # 0x6eff0
leaq 0x3e610(%rip), %rsi     # 0x565a8
movl $0x6, %edx
callq 0x7400
movq 0x57047(%rip), %rdi     # 0x6eff0
leaq 0x3f18d(%rip), %rsi     # 0x5713d
movl $0x1f, %edx
callq 0x7400
movq 0x5702f(%rip), %rdi     # 0x6eff0
callq 0x71c0
movq 0x57003(%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