// File: /workspace/github_cpp_makefile_star2_O1/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 $0x158, %rsp            # imm = 0x158
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), %rbp
movq %rbp, -0x10(%rbp)
movq %rbx, -0x8(%rbp)
movb %bl, (%rbp)
cmpl $0x5, %edi
jge 0x13c49
movq 0xb4f2(%rip), %rbx      # 0x1efb0
leaq 0x37b8(%rip), %rsi      # 0x1727d
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 0xb4c0(%rip), %rdi      # 0x1efb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xb4ac(%rip), %rbx      # 0x1efb0
leaq 0x37c4(%rip), %rsi      # 0x172cf
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 0xb47a(%rip), %rdi      # 0x1efb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xb466(%rip), %rbx      # 0x1efb0
leaq 0x37bb(%rip), %rsi      # 0x1730c
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 0xb434(%rip), %rdi      # 0x1efb0
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 0xb436(%rip), %rbx      # 0x1eff0
leaq 0x3788(%rip), %rsi      # 0x17349
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 0xb404(%rip), %rdi      # 0x1eff0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xb3f0(%rip), %rbx      # 0x1eff0
leaq 0x37bd(%rip), %rsi      # 0x173c4
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 0xb3be(%rip), %rdi      # 0x1eff0
callq 0x5040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x5260
jmp 0x14370
decl %edi
movslq %edi, %rax
movq %rax, 0x98(%rsp)
movl $0x1, %eax
subq %rdi, %rax
movq %rax, 0x90(%rsp)
movl $0x6, 0x4(%rsp)
movl $0xffffffff, 0x8(%rsp)  # imm = 0xFFFFFFFF
movb $0x1, %r15b
movl $0x2, %r12d
leaq 0xc0(%rsp), %r14
leaq 0xa0(%rsp), %rbp
movq 0xb31a(%rip), %r13      # 0x1efb0
movq $0x0, 0x80(%rsp)
movq $0x0, 0x88(%rsp)
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
movq 0x10(%rsp), %rax
movq -0x8(%rax,%r12,8), %rsi
movq %r14, %rdi
movq %rbp, %rdx
callq 0x5140
movq %r14, %rdi
leaq 0x3779(%rip), %rsi      # 0x1744e
callq 0x50f0
testl %eax, %eax
je 0x13dd2
movq %r14, %rdi
leaq 0x3874(%rip), %rsi      # 0x17560
callq 0x50f0
testl %eax, %eax
je 0x13f53
movq %r14, %rdi
leaq 0x386f(%rip), %rsi      # 0x17572
callq 0x50f0
testl %eax, %eax
je 0x13fc0
movq %r14, %rdi
leaq 0x3863(%rip), %rsi      # 0x1757d
callq 0x50f0
testl %eax, %eax
je 0x1403e
movq %r14, %rdi
leaq 0x385f(%rip), %rsi      # 0x17590
callq 0x50f0
testl %eax, %eax
je 0x140c8
movq %r14, %rdi
leaq 0x3859(%rip), %rsi      # 0x175a1
callq 0x50f0
testl %eax, %eax
je 0x141d3
movq %r14, %rdi
leaq 0x3845(%rip), %rsi      # 0x175a4
callq 0x50f0
movl $0x4, %ebp
testl %eax, %eax
jne 0x14176
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %rdi
callq 0x55b0
movl %eax, 0x8(%rsp)
movl $0xc, %edx
movq %r13, %rdi
leaq 0x3815(%rip), %rsi      # 0x175a7
callq 0x5450
movq %r13, %rdi
movl 0x8(%rsp), %esi
callq 0x5630
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
jmp 0x14174
movl $0x51, %edx
movq %r13, %rdi
leaq 0x349c(%rip), %rsi      # 0x1727d
callq 0x5450
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x3c, %edx
movq %r13, %rdi
leaq 0x34b2(%rip), %rsi      # 0x172cf
callq 0x5450
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x3c, %edx
movq %r13, %rdi
leaq 0x34b3(%rip), %rsi      # 0x1730c
callq 0x5450
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r13, %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 0xb134(%rip), %rdi      # 0x1eff0
leaq 0x358e(%rip), %rsi      # 0x17451
callq 0x5450
movq 0xb121(%rip), %rcx      # 0x1eff0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xb103(%rip), %rdi      # 0x1eff0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movl $0x8f, %edx
movq 0xb0ea(%rip), %rdi      # 0x1eff0
leaq 0x35c3(%rip), %rsi      # 0x174d0
callq 0x5450
movq 0xb0d7(%rip), %rcx      # 0x1eff0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq 0xb0b9(%rip), %rdi      # 0x1eff0
callq 0x5040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x5260
movl $0x1, %ebp
jmp 0x14176
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %r14
movq 0x48(%rsp), %rbp
movq %r14, %rdi
callq 0x5160
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
movq %rbp, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x55a0
movl $0xe, %edx
movq %r13, %rdi
leaq 0x35d6(%rip), %rsi      # 0x17563
callq 0x5450
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r13, %rdi
callq 0x5450
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x53b0
jmp 0x14157
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %rsi
movq %rbp, %rdi
leaq 0x1f(%rsp), %rdx
callq 0x5140
leaq 0x60(%rsp), %rdi
movq %rbp, %rsi
callq 0x147a4
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0x13ffd
callq 0x5390
movl $0x7, %edx
movq %r13, %rdi
leaq 0x3569(%rip), %rsi      # 0x17575
callq 0x5450
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %r14
testq %r14, %r14
je 0x14126
movq %r14, %rdi
callq 0x5160
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x5450
jmp 0x1413f
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %r14
movq 0x28(%rsp), %rbp
movq %r14, %rdi
callq 0x5160
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
movq %rbp, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x55a0
movl $0xf, %edx
movq %r13, %rdi
leaq 0x3508(%rip), %rsi      # 0x17580
callq 0x5450
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r13, %rdi
callq 0x5450
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movb $0x1, %al
movq %rax, 0x80(%rsp)
jmp 0x14174
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %rdi
callq 0x55b0
movl %eax, 0x4(%rsp)
movl $0xd, %edx
movq %r13, %rdi
leaq 0x34aa(%rip), %rsi      # 0x17593
callq 0x5450
movq %r13, %rdi
movl 0x4(%rsp), %esi
callq 0x5630
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
jmp 0x14174
movq (%r13), %rax
movq -0x18(%rax), %rax
leaq (%rax,%r13), %rdi
movl 0x20(%r13,%rax), %esi
orl $0x1, %esi
callq 0x5610
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x53b0
movq %r13, %r14
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
movb $0x1, %al
movq %rax, 0x88(%rsp)
xorl %ebp, %ebp
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x14190
callq 0x5390
testb $0x3, %bpl
leaq 0xc0(%rsp), %r14
leaq 0xa0(%rsp), %rbp
jne 0x14234
cmpq 0x98(%rsp), %r12
setl %r15b
movq 0x90(%rsp), %rax
addq %r12, %rax
incq %rax
incq %r12
cmpq $0x2, %rax
jne 0x13cb6
jmp 0x14234
movq 0x10(%rsp), %rax
movq (%rax,%r12,8), %rdi
callq 0x55b0
movl %eax, 0xc(%rsp)
movl $0xc, %edx
movq %r13, %rdi
leaq 0x11cc(%rip), %rsi      # 0x153c0
callq 0x5450
movq %r13, %rdi
movl 0xc(%rsp), %esi
callq 0x5630
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x53b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5040
movq %rax, %rdi
callq 0x5260
jmp 0x14174
testb $0x1, %r15b
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %rbp
jne 0x14370
testb $0x1, 0x88(%rsp)
je 0x14299
testb $0x1, 0x80(%rsp)
je 0x14299
cmpq $0x0, 0x48(%rsp)
je 0x14274
movq 0x60(%rsp), %rax
cmpq 0x68(%rsp), %rax
je 0x143ac
movq 0x68(%rsp), %rax
cmpq 0x60(%rsp), %rax
je 0x14299
leaq 0x27ad(%rip), %rsi      # 0x16a34
leaq 0x40(%rsp), %rdi
callq 0x50f0
testl %eax, %eax
je 0x143ac
movq 0xad10(%rip), %rbx      # 0x1efb0
leaq 0x3319(%rip), %rsi      # 0x175c0
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 0xacde(%rip), %rdi      # 0x1efb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xacca(%rip), %rbx      # 0x1efb0
leaq 0x32f8(%rip), %rsi      # 0x175e5
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 0xac98(%rip), %rdi      # 0x1efb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0xac84(%rip), %rbx      # 0x1efb0
leaq 0x32f7(%rip), %rsi      # 0x1762a
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 0xac52(%rip), %rdi      # 0x1efb0
callq 0x5040
movl $0x1, %ebx
movq %rax, %rdi
callq 0x5260
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1437f
callq 0x5390
leaq 0x60(%rsp), %rdi
callq 0xddae
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x14398
callq 0x5390
movl %ebx, %eax
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xabfd(%rip), %rbx      # 0x1efb0
leaq 0x31fa(%rip), %rsi      # 0x175b4
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 0xabcb(%rip), %rdi      # 0x1efb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
movq 0x60(%rsp), %rax
cmpq 0x68(%rsp), %rax
je 0x14483
movl $0x50, %edi
callq 0x53d0
movq %rax, %r14
leaq 0xe0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x14720
leaq 0x108(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0xf8(%rsp), %rdi
callq 0x7f46
leaq 0xe0(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
movq %r14, %rdi
callq 0x13764
movq 0xf8(%rsp), %rdi
cmpq %r15, %rdi
je 0x14471
callq 0x5390
leaq 0xe0(%rsp), %rdi
callq 0xddae
jmp 0x14575
movq 0x48(%rsp), %rdx
movq %rdx, %rsi
subq $0x1, %rsi
jb 0x14611
movq 0x40(%rsp), %rax
cmpb $0x2f, (%rax,%rsi)
je 0x144b1
leaq 0x31cd(%rip), %rsi      # 0x17674
leaq 0x40(%rsp), %rdi
callq 0x5680
movq 0x28(%rsp), %rdx
movq %rdx, %rsi
subq $0x1, %rsi
jb 0x14611
movq 0x20(%rsp), %rax
cmpb $0x2f, (%rax,%rsi)
je 0x144df
leaq 0x319f(%rip), %rsi      # 0x17674
leaq 0x20(%rsp), %rdi
callq 0x5680
movl $0x50, %edi
callq 0x53d0
movq %rax, %r14
leaq 0x148(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x138(%rsp), %rdi
callq 0x7f46
leaq 0x128(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x118(%rsp), %rdi
callq 0x7f46
leaq 0x138(%rsp), %rsi
leaq 0x118(%rsp), %rdx
movq %r14, %rdi
callq 0x13602
movq 0x118(%rsp), %rdi
cmpq %r12, %rdi
je 0x14563
callq 0x5390
movq 0x138(%rsp), %rdi
cmpq %r15, %rdi
je 0x14575
callq 0x5390
cmpl $0x5, 0x4(%rsp)
ja 0x14596
movl $0x23, %eax
movl 0x4(%rsp), %ecx
btl %ecx, %eax
jae 0x14596
movq %r14, %rdi
movl 0x4(%rsp), %esi
callq 0x13916
cmpl $0x0, 0xc(%rsp)
js 0x145a9
movq %r14, %rdi
movl 0xc(%rsp), %esi
callq 0x13902
cmpl $0x0, 0x8(%rsp)
js 0x145bc
movq %r14, %rdi
movl 0x8(%rsp), %esi
callq 0x1390c
movq 0xa9ed(%rip), %rbx      # 0x1efb0
leaq 0x30ac(%rip), %rsi      # 0x17676
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 0xa9bb(%rip), %rdi      # 0x1efb0
callq 0x5040
movq %rax, %rdi
callq 0x5260
xorl %ebx, %ebx
movq %r14, %rdi
callq 0x13920
jmp 0x14370
leaq 0x309f(%rip), %rdi      # 0x176b7
xorl %eax, %eax
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %rbp
callq 0x5570
movq %rax, %rbx
movq 0x118(%rsp), %rdi
cmpq %r12, %rdi
je 0x14643
callq 0x5390
jmp 0x14643
movq %rax, %rbx
movq 0x138(%rsp), %rdi
cmpq %r15, %rdi
je 0x14685
callq 0x5390
jmp 0x14685
jmp 0x14682
movq %rax, %rbx
movq 0xf8(%rsp), %rdi
cmpq %r15, %rdi
je 0x14673
callq 0x5390
jmp 0x14673
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0xddae
jmp 0x14685
movq %rax, %rbx
movq %r14, %rdi
callq 0x5390
jmp 0x146b7
jmp 0x146c3
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rax
cmpq %rax, %rdi
je 0x146cb
callq 0x5390
jmp 0x146cb
jmp 0x146c8
jmp 0x146c3
movq %rax, %rbx
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %rbp
jmp 0x146ef
movq %rax, %rbx
jmp 0x146ef
movq %rax, %rbx
leaq 0x50(%rsp), %r13
leaq 0x30(%rsp), %rbp
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x146ef
callq 0x5390
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x146fe
callq 0x5390
leaq 0x60(%rsp), %rdi
callq 0xddae
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0x14717
callq 0x5390
movq %rbx, %rdi
callq 0x5650
nop