// File: lrq3000[P]rfrb/./src/raidSystem.cpp
// Function: RaidSystem::printAllInfos()
void RaidSystem::printAllInfos()
{
	std::cout << std::endl;
	std::cout << "All information compact: " << std::endl << std::endl;
	std::vector<FileReader *> inFiles = handle->getInFiles();
	std::cout << "Found Raid system: ";
	//Print RAID-level
	if (raidSystem == Raid_unknown)
	{
		std::cout << "No valid found";
	}
	else if (raidSystem == Raid0)
	{
		std::cout << "Raid 0";
	}
	else if (raidSystem == Raid1)
	{
		std::cout << "Raid 1";
	}
	else if (raidSystem == Raid5_incomplete)
	{
		std::cout << "Raid 5 - with one disc missing";
	}
	else if (raidSystem == Raid5_complete)
	{
		std::cout << "Raid 5";
	}
	std::cout << std::endl;
	//Print other information
	std::cout << "Stripe/Chunk-size:\t" << stripeSize/1024 << "KB" << std::endl;
	std::cout << "Device order:" << std::endl;
	for (unsigned int j = 0; j < inFiles.size(); ++j)
	{
		std::cout << std::to_string(j+1) << ") " << inFiles.at(j)->getPath() << std::endl;
	}

	//Print device order
	std::cout << std::setw(10)<< "Device:   ";
	for (unsigned int j = 0; j < inFiles.size(); ++j)
	{
		std::cout << std::setw(4) << std::to_string(j+1);
	}
	std::cout << std::endl;
	std::cout << std::endl;

	//Print stripemap
	for (auto &in : stripeMap)
	{
		std::cout << std::setw(10) << " ";
		for (auto &it : in)
		{
			if (it.isParity)
			{
				std::cout << std::setw(4) << "P";
			}
			else
			{
				std::cout << std::setw(4) << std::to_string(it.dataBlock);
			}
		}
		std::cout << std::endl;
	}
	std::cout << std::endl;
}

// Assembly:
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rdi, 0x1c0(%rsp)
movq 0x1c0(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x4ac5a(%rip), %rdi     # 0x53fb0
movq %rdi, 0xb0(%rsp)
movq 0x4ac0b(%rip), %rsi     # 0x53f70
movq %rsi, 0xa0(%rsp)
callq 0x6470
movq 0xb0(%rsp), %rdi
leaq 0x310f7(%rip), %rsi     # 0x3a478
callq 0x6420
movq 0xa0(%rsp), %rsi
movq %rax, %rdi
callq 0x6470
movq 0xa0(%rsp), %rsi
movq %rax, %rdi
callq 0x6470
movq 0xa8(%rsp), %rax
movq (%rax), %rdi
callq 0xcc90
movq %rax, %rsi
leaq 0x1a8(%rsp), %rdi
callq 0x9c50
movq 0xb0(%rsp), %rdi
leaq 0x310bd(%rip), %rsi     # 0x3a492
callq 0x6420
jmp 0x93dc
movq 0xa8(%rsp), %rax
cmpl $0x5, 0x8(%rax)
jne 0x941d
movq 0x4abbf(%rip), %rdi     # 0x53fb0
leaq 0x310ae(%rip), %rsi     # 0x3a4a6
callq 0x6420
jmp 0x93ff
jmp 0x94b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0x9aa7
movq 0xa8(%rsp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x9442
movq 0x4ab7e(%rip), %rdi     # 0x53fb0
leaq 0x3107c(%rip), %rsi     # 0x3a4b5
callq 0x6420
jmp 0x9440
jmp 0x94b7
movq 0xa8(%rsp), %rax
cmpl $0x1, 0x8(%rax)
jne 0x9467
movq 0x4ab59(%rip), %rdi     # 0x53fb0
leaq 0x3105e(%rip), %rsi     # 0x3a4bc
callq 0x6420
jmp 0x9465
jmp 0x94b5
movq 0xa8(%rsp), %rax
cmpl $0x3, 0x8(%rax)
jne 0x948c
movq 0x4ab34(%rip), %rdi     # 0x53fb0
leaq 0x31040(%rip), %rsi     # 0x3a4c3
callq 0x6420
jmp 0x948a
jmp 0x94b3
movq 0xa8(%rsp), %rax
cmpl $0x4, 0x8(%rax)
jne 0x94b1
movq 0x4ab0f(%rip), %rdi     # 0x53fb0
leaq 0x3103a(%rip), %rsi     # 0x3a4e2
callq 0x6420
jmp 0x94af
jmp 0x94b1
jmp 0x94b3
jmp 0x94b5
jmp 0x94b7
jmp 0x94b9
movq 0x4aaf0(%rip), %rdi     # 0x53fb0
movq 0x4aaa9(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x94ce
movq 0x4aadb(%rip), %rdi     # 0x53fb0
leaq 0x3100d(%rip), %rsi     # 0x3a4e9
callq 0x6420
movq %rax, 0x98(%rsp)
jmp 0x94eb
movq 0x98(%rsp), %rdi
movq 0xa8(%rsp), %rax
movl 0xc(%rax), %esi
movl %esi, %eax
addl $0x3ff, %eax            # imm = 0x3FF
testl %esi, %esi
cmovsl %eax, %esi
sarl $0xa, %esi
callq 0x6720
movq %rax, 0x90(%rsp)
jmp 0x951c
movq 0x90(%rsp), %rdi
leaq 0x30e32(%rip), %rsi     # 0x3a35d
callq 0x6420
movq %rax, 0x88(%rsp)
jmp 0x953a
movq 0x88(%rsp), %rdi
movq 0x4aa27(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x9550
movq 0x4aa59(%rip), %rdi     # 0x53fb0
leaq 0x30f9f(%rip), %rsi     # 0x3a4fd
callq 0x6420
movq %rax, 0x80(%rsp)
jmp 0x956d
movq 0x80(%rsp), %rdi
movq 0x4a9f4(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x9583
movl $0x0, 0x198(%rsp)
movl 0x198(%rsp), %eax
movq %rax, 0x78(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x9d50
movq %rax, %rcx
movq 0x78(%rsp), %rax
cmpq %rcx, %rax
jae 0x96dc
movl 0x198(%rsp), %esi
incl %esi
leaq 0x178(%rsp), %rdi
callq 0x9ea0
jmp 0x95d0
movq 0x4a9d9(%rip), %rdi     # 0x53fb0
leaq 0x178(%rsp), %rsi
callq 0x6390
movq %rax, 0x70(%rsp)
jmp 0x95eb
movq 0x70(%rsp), %rdi
leaq 0x31ebe(%rip), %rsi     # 0x3b4b5
callq 0x6420
movq %rax, 0x68(%rsp)
jmp 0x9603
movl 0x198(%rsp), %eax
movl %eax, %esi
leaq 0x1a8(%rsp), %rdi
callq 0x9d70
movq %rax, 0x60(%rsp)
jmp 0x9620
movq 0x60(%rsp), %rax
movq (%rax), %rsi
leaq 0x158(%rsp), %rdi
callq 0x2fcb0
jmp 0x9637
movq 0x68(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x6390
movq %rax, 0x58(%rsp)
jmp 0x9650
movq 0x58(%rsp), %rdi
movq 0x4a914(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x9663
leaq 0x158(%rsp), %rdi
callq 0x6260
leaq 0x178(%rsp), %rdi
callq 0x6260
movl 0x198(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x198(%rsp)
jmp 0x958e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
jmp 0x96ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x6260
leaq 0x178(%rsp), %rdi
callq 0x6260
jmp 0x9aa7
movl $0xa, %edi
callq 0x9fa0
movl %eax, 0x54(%rsp)
jmp 0x96ec
movl 0x54(%rsp), %eax
movl %eax, 0x154(%rsp)
movl 0x154(%rsp), %esi
movq 0x4a8ab(%rip), %rdi     # 0x53fb0
callq 0x64d0
movq %rax, 0x48(%rsp)
jmp 0x9711
movq 0x48(%rsp), %rdi
leaq 0x30dee(%rip), %rsi     # 0x3a50b
callq 0x6420
jmp 0x9724
movl $0x0, 0x150(%rsp)
movl 0x150(%rsp), %eax
movq %rax, 0x40(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x9d50
movq %rax, %rcx
movq 0x40(%rsp), %rax
cmpq %rcx, %rax
jae 0x9803
movl $0x4, %edi
callq 0x9fa0
movl %eax, 0x3c(%rsp)
jmp 0x9769
movl 0x3c(%rsp), %eax
movl %eax, 0x14c(%rsp)
movl 0x14c(%rsp), %esi
movq 0x4a82e(%rip), %rdi     # 0x53fb0
callq 0x64d0
movq %rax, 0x30(%rsp)
jmp 0x978e
movl 0x150(%rsp), %esi
incl %esi
leaq 0x128(%rsp), %rdi
callq 0x9ea0
jmp 0x97a6
movq 0x30(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x6390
jmp 0x97ba
leaq 0x128(%rsp), %rdi
callq 0x6260
movl 0x150(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x150(%rsp)
jmp 0x972f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x6260
jmp 0x9aa7
movq 0x4a7a6(%rip), %rdi     # 0x53fb0
movq 0x4a75f(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x9818
movq 0x4a791(%rip), %rdi     # 0x53fb0
movq 0x4a74a(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x982d
movq 0xa8(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x120(%rsp)
movq 0x120(%rsp), %rdi
callq 0x9fc0
movq %rax, 0x118(%rsp)
movq 0x120(%rsp), %rdi
callq 0x9ff0
movq %rax, 0x110(%rsp)
leaq 0x118(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0xa020
testb $0x1, %al
jne 0x9889
jmp 0x9a7d
leaq 0x118(%rsp), %rdi
callq 0xa060
movq %rax, 0x108(%rsp)
movl $0xa, %edi
callq 0x9fa0
movl %eax, 0x2c(%rsp)
jmp 0x98ae
movl 0x2c(%rsp), %eax
movl %eax, 0x104(%rsp)
movl 0x104(%rsp), %esi
movq 0x4a6e9(%rip), %rdi     # 0x53fb0
callq 0x64d0
movq %rax, 0x20(%rsp)
jmp 0x98d3
movq 0x20(%rsp), %rdi
leaq 0x30c35(%rip), %rsi     # 0x3a514
callq 0x6420
jmp 0x98e6
movq 0x108(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0xf8(%rsp), %rdi
callq 0xa070
movq %rax, 0xf0(%rsp)
movq 0xf8(%rsp), %rdi
callq 0xa0a0
movq %rax, 0xe8(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0xa0d0
testb $0x1, %al
jne 0x993e
jmp 0x9a54
leaq 0xf0(%rsp), %rdi
callq 0xa110
movq %rax, 0xe0(%rsp)
movq 0xe0(%rsp), %rax
testb $0x1, (%rax)
je 0x99ad
movl $0x4, %edi
callq 0x9fa0
movl %eax, 0x1c(%rsp)
jmp 0x9970
movl 0x1c(%rsp), %eax
movl %eax, 0xdc(%rsp)
movl 0xdc(%rsp), %esi
movq 0x4a627(%rip), %rdi     # 0x53fb0
callq 0x64d0
movq %rax, 0x10(%rsp)
jmp 0x9995
movq 0x10(%rsp), %rdi
leaq 0x32bc8(%rip), %rsi     # 0x3c569
callq 0x6420
jmp 0x99a8
jmp 0x9a40
movl $0x4, %edi
callq 0x9fa0
movl %eax, 0xc(%rsp)
jmp 0x99bd
movl 0xc(%rsp), %eax
movl %eax, 0xd8(%rsp)
movl 0xd8(%rsp), %esi
movq 0x4a5da(%rip), %rdi     # 0x53fb0
callq 0x64d0
movq %rax, (%rsp)
jmp 0x99e1
movq 0xe0(%rsp), %rax
movl 0x4(%rax), %esi
leaq 0xb8(%rsp), %rdi
callq 0xa120
jmp 0x99fb
movq (%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x6390
jmp 0x9a0e
leaq 0xb8(%rsp), %rdi
callq 0x6260
jmp 0x9a40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1a0(%rsp)
movl %eax, 0x19c(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x6260
jmp 0x9aa7
jmp 0x9a42
leaq 0xf0(%rsp), %rdi
callq 0xa260
jmp 0x9920
movq 0x4a555(%rip), %rdi     # 0x53fb0
movq 0x4a50e(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x9a69
jmp 0x9a6b
leaq 0x118(%rsp), %rdi
callq 0xa280
jmp 0x986b
movq 0x4a52c(%rip), %rdi     # 0x53fb0
movq 0x4a4e5(%rip), %rsi     # 0x53f70
callq 0x6470
jmp 0x9a92
leaq 0x1a8(%rsp), %rdi
callq 0x9db0
addq $0x1c8, %rsp            # imm = 0x1C8
retq
leaq 0x1a8(%rsp), %rdi
callq 0x9db0
movq 0x1a0(%rsp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)