// File: /workspace/github_cpp_makefile_star2_O1/CMU-SAFARI[P]MQSim/src/ssd/TSU_OutofOrder.cpp
// Function: SSD_Components::TSU_OutOfOrder::~TSU_OutOfOrder()
TSU_OutOfOrder::~TSU_OutOfOrder()
{
	for (unsigned int channelID = 0; channelID < channel_count; channelID++)
	{
		delete[] UserReadTRQueue[channelID];
		delete[] UserWriteTRQueue[channelID];
		delete[] GCReadTRQueue[channelID];
		delete[] GCWriteTRQueue[channelID];
		delete[] GCEraseTRQueue[channelID];
		delete[] MappingReadTRQueue[channelID];
		delete[] MappingWriteTRQueue[channelID];
	}
	delete[] UserReadTRQueue;
	delete[] UserWriteTRQueue;
	delete[] GCReadTRQueue;
	delete[] GCWriteTRQueue;
	delete[] GCEraseTRQueue;
	delete[] MappingReadTRQueue;
	delete[] MappingWriteTRQueue;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x21a3f(%rip), %rax     # 0x6ec40
movq %rax, (%rdi)
cmpl $0x0, 0x44(%rdi)
je 0x4d70d
xorl %r15d, %r15d
leaq 0x21250(%rip), %r12     # 0x6e468
addq $0x10, %r12
movq %rbx, (%rsp)
movq 0xb0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d2d2
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d2c2
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d26d
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d27b
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d293
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d2b6
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d2a6
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d24f
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xb8(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d384
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d374
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d31f
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d32d
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d345
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d368
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d358
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d301
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xc0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d436
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d426
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d3d1
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d3df
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d3f7
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d41a
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d40a
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d3b3
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xc8(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d4e8
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d4d8
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d483
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d491
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d4a9
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d4cc
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d4bc
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d465
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xd0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d59a
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d58a
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d535
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d543
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d55b
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d57e
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d56e
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d517
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xd8(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d64c
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d63c
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d5e7
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d5f5
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d60d
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d630
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d620
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d5c9
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xe0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4d6fe
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4d6ee
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x48224
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4d699
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4d6a7
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4d6bf
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4d6e2
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4d6d2
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4d67b
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
incq %r15
movl 0x44(%rbx), %eax
cmpq %rax, %r15
jb 0x4d220
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0x4d71e
callq 0x7480
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0x4d72f
callq 0x7480
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0x4d740
callq 0x7480
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0x4d751
callq 0x7480
movq 0xd0(%rbx), %rdi
testq %rdi, %rdi
je 0x4d762
callq 0x7480
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0x4d773
callq 0x7480
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x4d784
callq 0x7480
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4b01a