// File: /workspace/github_cpp_makefile_star2_O3/lrq3000[P]rfrb/./src/main.cpp
// Function: main
int main(int argc, char *argv[])
{
	//Check the Parameters
	std::string inPath;
	std::vector<std::string> paths;
	std::string outPath;
	int raidVersion = 6, stripeSize = -1, lostImages = -1;

	//Too few arguments
	if (argc < 5)
	{
		std::cout << "\"Raid faster - recover better\"(v0.8.0) will recover/rebuild a damaged raidsystem " << std::endl;
		std::cout << "from remaining images. It handles Raid-0, Raid-1 and Raid-5." << std::endl;
		std::cout << "Copyright (C) 2014 crisbi - Christian Zoubek, Sabine Seufert" << std::endl << std::endl;
		std::cerr << "Try: './rfrb [-P PathToImageFolder] [-o PathToOutputFolder] ([-r #RaidVersion] [-s #Stripesize] [-n #NumberOfLostImages])'" << std::endl;
		std::cerr << "or './rfrb [-p PathToImage1] [-p PathToImage2] ... [-o PathToOutputFolder] ([-r #RaidVersion] [-s #Stripesize] [-n #NumberOfLostImages])'" << std::endl;
		return 1;
	}

	bool in = false;
	bool out = false;
	for (int i = 1; i < argc-1; i=i+1)
	{
		std::string input = argv[i];
		if (input.compare("-h") == 0)
		{
			std::cout << "\"Raid faster - recover better\"(v0.8.0) will recover/rebuild a damaged raidsystem " << std::endl;
			std::cout << "from remaining images. It handles Raid-0, Raid-1 and Raid-5." << std::endl;
			std::cout << "Copyright (C) 2014 crisbi - Christian Zoubek, Sabine Seufert" << std::endl << std::endl;
			std::cerr << "Usage 1: './rfrb [-P PathToImageFolder] [-o PathToOutputFolder] ([-r #RaidVersion] [-s #Stripesize] [-n #NumberOfLostImages])'" << std::endl;
			std::cerr << "Usage 2: './rfrb [-p PathToImage1] [-p PathToImage2] ... [-o PathToOutputFolder] ([-r #RaidVersion] [-s #Stripesize] [-n #NumberOfLostImages])'" << std::endl;
			return 1;
		}
		if (input.compare("-P") == 0)
		{
			inPath = argv[i+1];
			in = true;
			std::cout << "Input Folder: " << inPath << std::endl;
		}
		else if (input.compare("-p") == 0)
		{
			paths.push_back(argv[i+1]);
			in = true;
			std::cout << "image: " << argv[i+1] << std::endl;
		}
		else if (input.compare("-o") == 0)
		{
			outPath = argv[i+1];
			out = true;
			std::cout << "Output Folder: " << outPath << std::endl;
		}
		else if (input.compare("-r") == 0)
		{
			raidVersion = atoi(argv[i+1]);
			std::cout << "RaidVersion: " << raidVersion << std::endl;
		}
		else if (input.compare("-s") == 0)
		{
			stripeSize = atoi(argv[i+1]);
			std::cout << "Stripesize: " << stripeSize << std::endl;
		}
		else if (input.compare("-n") == 0)
		{
			lostImages = atoi(argv[i+1]);
			std::cout << "Lost discs: " << lostImages << std::endl;
		}
		else
		{
			continue;
		}
	}

	//Check if input is valid
	if (in == true && out == true && ((inPath.size() > 0 && paths.empty()) || (paths.size()>0 && inPath == "")))
	{
		std::cout << "Valid Input" << std::endl;
	} else
	{
		std::cout << "Not a valid Input. Please try again." << std::endl;
		std::cout << "Please use: './rfrb [-P PathToImageFolder] [-o PathToOutput-Folder]'" << std::endl;
		std::cout << "or: './rfrb [-p PathToImage1] [-p PathToImage2] [-o PathToOutput-Folder]'" << std::endl;
		return 1;
	}

	RaidRecover *raidR;
	if (paths.empty())
	{
		if (!(inPath.at(inPath.size()-1) == '/'))
			inPath+="/";
		if (!(outPath.at(outPath.size()-1) == '/'))
			outPath += "/";
		raidR = new RaidRecover(inPath, outPath);
	}
	else
	{
		raidR = new RaidRecover(paths, outPath);
	}

	//Check if a valid RAID-level was set
	if (raidVersion != 0 && raidVersion != 1 && raidVersion != 5)
	{}
	else
	{
		raidR->setRaid(raidVersion);
	}

	//Stripesize was set
	if (stripeSize >= 0)
	{
		raidR->setStripeSize(stripeSize);
	}

	//Number of lost Images was set
	if (lostImages >= 0)
	{
		raidR->setLostImages(lostImages);
	}

	std::cout << "Interpreted parameters. Now starting to analyse the Raid system." << std::endl;

	//Call the RAID-recovery
	raidR->run();

	return  0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rsi, 0x10(%rsp)
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
xorl %ebx, %ebx
movq %rbx, -0x8(%r13)
movb %bl, (%r13)
movq %rbx, 0x70(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rbx, -0x8(%r12)
movb %bl, (%r12)
cmpl $0x5, %edi
jge 0x12d94
movq 0xa3a7(%rip), %rbx      # 0x1cfb0
leaq 0x317e(%rip), %rsi      # 0x15d8e
movl $0x51, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xa375(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xa361(%rip), %rbx      # 0x1cfb0
leaq 0x318a(%rip), %rsi      # 0x15de0
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xa32f(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xa31b(%rip), %rbx      # 0x1cfb0
leaq 0x3181(%rip), %rsi      # 0x15e1d
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xa2e9(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xa2eb(%rip), %rbx      # 0x1cff0
leaq 0x314e(%rip), %rsi      # 0x15e5a
movl $0x7a, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xa2b9(%rip), %rdi      # 0x1cff0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xa2a5(%rip), %rbx      # 0x1cff0
leaq 0x3183(%rip), %rsi      # 0x15ed5
movl $0x89, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xa273(%rip), %rdi      # 0x1cff0
callq 0x5040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x5260
jmp 0x13702
decl %edi
leaq 0xa0(%rsp), %r14
movl $0x6, 0x4(%rsp)
movl $0xffffffff, 0x8(%rsp)  # imm = 0xFFFFFFFF
movl $0x1, %r15d
movq 0xa1f5(%rip), %r12      # 0x1cfb0
movq $0x0, 0x80(%rsp)
movq $0x0, 0x88(%rsp)
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
movq %rdi, %r13
movq 0x10(%rsp), %rax
movq (%rax,%r15,8), %rsi
leaq 0x90(%rsp), %rbp
movq %rbp, %rdi
leaq 0xb0(%rsp), %rdx
callq 0x5140
movq %rbp, %rdi
leaq 0x3156(%rip), %rsi      # 0x15f5f
callq 0x50f0
testl %eax, %eax
je 0x12f07
movq %rbp, %rdi
leaq 0x3251(%rip), %rsi      # 0x16071
callq 0x50f0
testl %eax, %eax
je 0x13088
movq %rbp, %rdi
leaq 0x324c(%rip), %rsi      # 0x16083
callq 0x50f0
testl %eax, %eax
je 0x130fe
movq %rbp, %rdi
leaq 0x3240(%rip), %rsi      # 0x1608e
callq 0x50f0
testl %eax, %eax
je 0x13186
movq %rbp, %rdi
leaq 0x323c(%rip), %rsi      # 0x160a1
callq 0x50f0
testl %eax, %eax
je 0x13219
movq %rbp, %rdi
leaq 0x3236(%rip), %rsi      # 0x160b2
callq 0x50f0
testl %eax, %eax
je 0x132f5
movq %rbp, %rdi
leaq 0x3222(%rip), %rsi      # 0x160b5
callq 0x50f0
movl $0x4, %ebp
testl %eax, %eax
jne 0x132c8
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %rdi
callq 0x55b0
movl %eax, 0x8(%rsp)
movl $0xc, %edx
movq %r12, %rdi
leaq 0x31f1(%rip), %rsi      # 0x160b8
callq 0x5450
movq %r12, %rdi
movl 0x8(%rsp), %esi
callq 0x5630
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
jmp 0x132c6
movl $0x51, %edx
movq %r12, %rdi
leaq 0x2e78(%rip), %rsi      # 0x15d8e
callq 0x5450
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x3c, %edx
movq %r12, %rdi
leaq 0x2e8e(%rip), %rsi      # 0x15de0
callq 0x5450
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x3c, %edx
movq %r12, %rdi
leaq 0x2e8f(%rip), %rsi      # 0x15e1d
callq 0x5450
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x7e, %edx
movq 0x9fff(%rip), %rdi      # 0x1cff0
leaq 0x2f6a(%rip), %rsi      # 0x15f62
callq 0x5450
movq 0x9fec(%rip), %rcx      # 0x1cff0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x9fce(%rip), %rdi      # 0x1cff0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x8f, %edx
movq 0x9fb5(%rip), %rdi      # 0x1cff0
leaq 0x2f9f(%rip), %rsi      # 0x15fe1
callq 0x5450
movq 0x9fa2(%rip), %rcx      # 0x1cff0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x9f84(%rip), %rdi      # 0x1cff0
callq 0x5040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x5260
movl $0x1, %ebp
jmp 0x132c8
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %rbp
movq 0x48(%rsp), %r14
movq %rbp, %rdi
callq 0x5160
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
movq %r14, %rdx
leaq 0xa0(%rsp), %r14
movq %rbp, %rcx
movq %rax, %r8
callq 0x55a0
movl $0xe, %edx
movq %r12, %rdi
leaq 0x2fa9(%rip), %rsi      # 0x16074
callq 0x5450
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x5450
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x53b0
jmp 0x132a9
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %rsi
leaq 0xb0(%rsp), %rbp
movq %rbp, %rdi
leaq 0x1f(%rsp), %rdx
callq 0x5140
leaq 0x60(%rsp), %rdi
movq %rbp, %rsi
callq 0x138e0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x13144
callq 0x5390
movl $0x7, %edx
movq %r12, %rdi
leaq 0x2f33(%rip), %rsi      # 0x16086
callq 0x5450
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %rbp
testq %rbp, %rbp
je 0x13278
movq %rbp, %rdi
callq 0x5160
movq %r12, %rdi
movq %rbp, %rsi
movq %rax, %rdx
callq 0x5450
jmp 0x13291
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %r14
movq 0x28(%rsp), %rbp
movq %r14, %rdi
callq 0x5160
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
movq %rbp, %rdx
movq %r14, %rcx
leaq 0xa0(%rsp), %r14
movq %rax, %r8
callq 0x55a0
movl $0xf, %edx
movq %r12, %rdi
leaq 0x2ec8(%rip), %rsi      # 0x16091
callq 0x5450
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x5450
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movb $0x1, %al
movq %rax, 0x80(%rsp)
jmp 0x132c6
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %rdi
callq 0x55b0
movl %eax, 0x4(%rsp)
movl $0xd, %edx
movq %r12, %rdi
leaq 0x2e69(%rip), %rsi      # 0x160a4
callq 0x5450
movq %r12, %rdi
movl 0x4(%rsp), %esi
callq 0x5630
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
jmp 0x132c6
movq (%r12), %rax
movq -0x18(%rax), %rax
leaq (%r12,%rax), %rdi
movl 0x20(%r12,%rax), %esi
orl $0x1, %esi
callq 0x5610
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x53b0
movq %r12, %rbp
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movb $0x1, %al
movq %rax, 0x88(%rsp)
xorl %ebp, %ebp
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x132da
callq 0x5390
testb $0x3, %bpl
jne 0x13390
incq %r15
movq %r13, %rdi
cmpq %r15, %r13
jne 0x12ddb
jmp 0x13357
movq 0x10(%rsp), %rax
movq 0x8(%rax,%r15,8), %rdi
callq 0x55b0
movl %eax, 0xc(%rsp)
movl $0xc, %edx
movq %r12, %rdi
leaq 0x10a9(%rip), %rsi      # 0x143c0
callq 0x5450
movq %r12, %rdi
movl 0xc(%rsp), %esi
callq 0x5630
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
jmp 0x132c6
movq 0x88(%rsp), %rax
andb 0x80(%rsp), %al
testb $0x1, %al
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
je 0x133c7
cmpq $0x0, 0x48(%rsp)
je 0x1339f
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
cmpq %rcx, %rax
jne 0x133a9
jmp 0x134a3
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
jmp 0x13702
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
cmpq %rax, %rcx
je 0x133c7
leaq 0x23cf(%rip), %rsi      # 0x15784
leaq 0x40(%rsp), %rdi
callq 0x50f0
testl %eax, %eax
je 0x134a3
movq 0x9be2(%rip), %rbx      # 0x1cfb0
leaq 0x2cfc(%rip), %rsi      # 0x160d1
movl $0x24, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x9bb0(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0x9b9c(%rip), %rbx      # 0x1cfb0
leaq 0x2cdb(%rip), %rsi      # 0x160f6
movl $0x44, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x9b6a(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0x9b56(%rip), %rbx      # 0x1cfb0
leaq 0x2cda(%rip), %rsi      # 0x1613b
movl $0x49, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x9b24(%rip), %rdi      # 0x1cfb0
callq 0x5040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x5260
jmp 0x13702
movq 0x9b06(%rip), %rbx      # 0x1cfb0
leaq 0x2c14(%rip), %rsi      # 0x160c5
movl $0xb, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x9ad4(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0x60(%rsp), %rax
cmpq 0x68(%rsp), %rax
je 0x1357a
movl $0x50, %edi
callq 0x53d0
movq %rax, %r14
leaq 0xd0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1385c
leaq 0xf8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0xe8(%rsp), %rdi
callq 0x7f0e
leaq 0xd0(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
movq %r14, %rdi
callq 0x128ac
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13568
callq 0x5390
leaq 0xd0(%rsp), %rdi
callq 0xd514
jmp 0x1366b
movq 0x48(%rsp), %rsi
subq $0x1, %rsi
jb 0x1373e
movq 0x40(%rsp), %rax
cmpb $0x2f, (%rax,%rsi)
je 0x135a5
leaq 0x2bea(%rip), %rsi      # 0x16185
leaq 0x40(%rsp), %rdi
callq 0x5680
movq 0x28(%rsp), %rsi
subq $0x1, %rsi
jb 0x1373e
movq 0x20(%rsp), %rax
cmpb $0x2f, (%rax,%rsi)
je 0x135d0
leaq 0x2bbf(%rip), %rsi      # 0x16185
leaq 0x20(%rsp), %rdi
callq 0x5680
movl $0x50, %edi
callq 0x53d0
movq %rax, %r14
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x128(%rsp), %rdi
callq 0x7f0e
leaq 0x118(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x108(%rsp), %rdi
callq 0x7f0e
leaq 0x128(%rsp), %rsi
leaq 0x108(%rsp), %rdx
movq %r14, %rdi
callq 0x1274a
movq 0x108(%rsp), %rdi
cmpq %r12, %rdi
je 0x13654
callq 0x5390
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
leaq 0x30(%rsp), %r12
je 0x1366b
callq 0x5390
cmpl $0x5, 0x4(%rsp)
ja 0x1368c
movl $0x23, %eax
movl 0x4(%rsp), %ecx
btl %ecx, %eax
jae 0x1368c
movq %r14, %rdi
movl 0x4(%rsp), %esi
callq 0x12a5e
cmpl $0x0, 0xc(%rsp)
js 0x1369f
movq %r14, %rdi
movl 0xc(%rsp), %esi
callq 0x12a4a
cmpl $0x0, 0x8(%rsp)
js 0x136b2
movq %r14, %rdi
movl 0x8(%rsp), %esi
callq 0x12a54
movq 0x98f7(%rip), %rbx      # 0x1cfb0
leaq 0x2ac7(%rip), %rsi      # 0x16187
movl $0x40, %edx
movq %rbx, %rdi
callq 0x5450
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0x98c5(%rip), %rdi      # 0x1cfb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
xorl %ebx, %ebx
movq %r14, %rdi
callq 0x12a68
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x13711
callq 0x5390
leaq 0x60(%rsp), %rdi
callq 0xd514
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x1372a
callq 0x5390
movl %ebx, %eax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2a83(%rip), %rdi      # 0x161c8
xorl %edx, %edx
xorl %eax, %eax
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
callq 0x5570
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r12, %rdi
je 0x13772
callq 0x5390
jmp 0x13772
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x137b4
callq 0x5390
jmp 0x137b4
jmp 0x137b1
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x137a2
callq 0x5390
jmp 0x137a2
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xd514
jmp 0x137b4
movq %rax, %rbx
movq %r14, %rdi
callq 0x5390
jmp 0x137fb
jmp 0x13807
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x137e2
callq 0x5390
jmp 0x137e2
movq %rax, %rbx
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
leaq 0xa0(%rsp), %r14
jmp 0x13819
jmp 0x13807
movq %rax, %rbx
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
jmp 0x1382b
movq %rax, %rbx
jmp 0x1382b
movq %rax, %rbx
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %r12
movq 0x90(%rsp), %rdi
cmpq %r14, %rdi
je 0x1382b
callq 0x5390
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x1383a
callq 0x5390
leaq 0x60(%rsp), %rdi
callq 0xd514
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x13853
callq 0x5390
movq %rbx, %rdi
callq 0x5650
nop