// File: /workspace/github_cpp_makefile_star2_O3/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 0x2244d(%rip), %rax     # 0x6ec38
movq %rax, (%rdi)
cmpl $0x0, 0x44(%rdi)
je 0x4ccf7
xorl %r15d, %r15d
leaq 0x21c5e(%rip), %r12     # 0x6e460
addq $0x10, %r12
movq %rbx, (%rsp)
movq 0xb0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4c8bc
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4c8ac
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4c857
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4c865
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4c87d
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4c8a0
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4c890
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4c839
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xb8(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4c96e
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4c95e
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4c909
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4c917
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4c92f
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4c952
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4c942
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4c8eb
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xc0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4ca20
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4ca10
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4c9bb
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4c9c9
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4c9e1
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4ca04
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4c9f4
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4c99d
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xc8(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4cad2
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4cac2
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4ca6d
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4ca7b
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4ca93
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4cab6
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4caa6
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4ca4f
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xd0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4cb84
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4cb74
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4cb1f
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4cb2d
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4cb45
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4cb68
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4cb58
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4cb01
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xd8(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4cc36
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4cc26
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4cbd1
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4cbdf
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4cbf7
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4cc1a
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4cc0a
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4cbb3
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
movq 0xe0(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0x4cce8
movq -0x8(%r14), %rax
testq %rax, %rax
je 0x4ccd8
movq %rax, %rcx
shlq $0x8, %rcx
leaq (%rcx,%rax,8), %r13
addq %r14, %r13
movq %r12, -0x108(%r13)
leaq -0x48(%r13), %rdi
callq 0x477c0
movq -0x60(%r13), %rdi
testq %rdi, %rdi
je 0x4cc83
callq 0x7370
movq -0x78(%r13), %rdi
testq %rdi, %rdi
je 0x4cc91
callq 0x7370
movq -0xe8(%r13), %rdi
leaq -0xd8(%r13), %rax
cmpq %rax, %rdi
je 0x4cca9
callq 0x7370
leaq -0x100(%r13), %rbp
movq -0x100(%r13), %rdi
cmpq %rbp, %rdi
je 0x4cccc
movq (%rdi), %rbx
callq 0x7370
movq %rbx, %rdi
cmpq %rbp, %rbx
jne 0x4ccbc
addq $-0x108, %r13           # imm = 0xFEF8
cmpq %r14, %r13
jne 0x4cc65
addq $-0x8, %r14
movq %r14, %rdi
callq 0x7480
movq (%rsp), %rbx
incq %r15
movl 0x44(%rbx), %eax
cmpq %rax, %r15
jb 0x4c80a
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd08
callq 0x7480
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd19
callq 0x7480
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd2a
callq 0x7480
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd3b
callq 0x7480
movq 0xd0(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd4c
callq 0x7480
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd5d
callq 0x7480
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x4cd6e
callq 0x7480
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4a5ba