// File: /workspace/github_cpp_makefile_star2_O3/mittman[P]project254/parser.cpp
// Function: main
int main(int argc, char* argv[]) {

	// Check parameters
	if(argc != 2 && argc != 3) {
		cerr << "USAGE: ./parser [filename]" << endl;
		cerr << "USAGE: ./parser [filename] [output]" << endl;
		cerr << "USAGE: ./parser [filename] -" << endl;
	}
	else {
		// Read log file
		fstream f;
		f.open(argv[1], ios::in);

		int num = 1;
		string line = "";
		string cycle = "";
		string direction = "";
		double elapsed = 0;

		int words = 0;
		int count = 0;
		int wordPos = 0;
		bool marker1 = false;
		bool marker2 = false;
		bool printList = false;
		unsigned long address;

		vector<unsigned long> addressList;
		vector<int> wordPosList;
		vector<string> binaryList;
		vector<int> numLines;

		string highWord = "";
		string lowWord = "";
		string binary = "";

		// Initialize objects
		Address a;
		Binary2 b;
		Cycle c;
		DataRate d;
		Output o;
		Table t;

		// Write parsed file
		fstream output;
		if(argc == 3 && strcmp(argv[2], "-") == 0) {
			o.setMode("print");
		}
		else if(argc == 3) {
			output.open(argv[2], ios:: out);
			o.setMode("file");
		}
		else {
			output.open("log_parsed.txt", ios:: out);
			o.setMode("file");
		}

		// Line by line
		while (getline(f, line)) {

			// Split into vector by whitespace
			istringstream linestream(line);
			vector<string> column;
			copy(istream_iterator<string>(linestream),
				 istream_iterator<string>(),
				 back_inserter(column));

			// S-to-D marker
			if(column[6] == "40000810") {
				if(printList){
					if(addressList[0] > addressList[1]){
						reverse(wordPosList.begin(),wordPosList.end());
						vector<int>::size_type siz = binaryList.size();
						for (unsigned i=0; i < siz-1; i+=2)
							iter_swap(binaryList.begin()+i, binaryList.begin()+i+1);
					}
					vector<int>::size_type sz = binaryList.size();
					for (unsigned i=0; i<sz; i++){

						highWord = t.getCode(wordPosList[i], binaryList[i]);
						if(highWord != "") {
							o.writeWords(highWord, wordPosList[i], numLines[i], output);
						}

					}

					o.writeBlank(output);
					printList = false;
					binaryList.clear();
					numLines.clear();
					wordPosList.clear();
					addressList.clear();
				}

				words = a.getLength(column[7]);
				count = words;
				cycle = c.getIO(column[9]);
				direction = "S-to-D";
				elapsed = c.toNanoSeconds(column[2]);
				c.setElapsed(cycle, elapsed, direction);
				c.plusType(cycle, direction);
				o.writeCommand(cycle, words, num, direction, output);

				if(words > 0) {
					marker1 = true;
				}
				else {
					marker1 = false;
					o.writeBlank(output);
				}
			}

			// D-to-S marker
			else if(column[6] == "40000C18") {
				if(printList){
					if(addressList[0] > addressList[1]){
						reverse(wordPosList.begin(),wordPosList.end());
						
						for (unsigned i=0; i < binaryList.size()-1; i+=2)
							iter_swap(binaryList.begin()+i, binaryList.begin()+i+1);
	
					}
					vector<int>::size_type sz = binaryList.size();
					for (unsigned i=0; i<sz; i++){

						highWord = t.getCode(wordPosList[i], binaryList[i]);
						if(highWord != "") {
							o.writeWords(highWord, wordPosList[i], numLines[i], output);
						}

					}

					o.writeBlank(output);
					printList = false;
					binaryList.clear();
					numLines.clear();
					wordPosList.clear();
					addressList.clear();
				}

				words = a.getLength(column[7]);
				count = words;
				cycle = c.getIO(column[9]);
				direction = "D-to-S";
				elapsed = c.toNanoSeconds(column[2]);
				c.setElapsed(cycle, elapsed, direction);
				c.plusType(cycle, direction);
				o.writeCommand(cycle, words, num, direction, output);

				if(words > 0) {
					marker2 = true;
				}
				else {
					marker2 = false;
					o.writeBlank(output);
				}

			}
			// S-to-D range
			else if(marker1 && words > 0) {
				address = a.getAddress(column[6]);
				if(static_cast<long>(0x40000818) <= address && address <= static_cast<long>(0x40000C14)) {
					if(addressList.size() <2){
						addressList.push_back(address);
					}

					b.hexToBinary(column[7]);
					cycle = c.getIO(column[9]);
					direction = "S-to-D";
					elapsed = c.toNanoSeconds(column[2]);
					c.setElapsed(cycle, elapsed, direction);
					c.plusType(cycle, direction);

					wordPos = (count-words);
					wordPosList.push_back(wordPos);
					binaryList.push_back(b.getWord0());
					numLines.push_back(num);

					wordPos = (count-words+1);
					wordPosList.push_back(wordPos);
					binaryList.push_back(b.getWord1());
					numLines.push_back(num);
		
					words -= 2;
					printList = true;
				}
			}
			// D-to-S range
			else if(marker2 && words > 0) {
				address = a.getAddress(column[6]);
				if(static_cast<long>(0x40000C20) <= address && address <= static_cast<long>(0x4000101C)) {
					if(addressList.size() <2){
						addressList.push_back(address);
					}

					b.hexToBinary(column[7]);
					cycle = c.getIO(column[9]);
					direction = "D-to-S";
					elapsed = c.toNanoSeconds(column[2]);
					c.setElapsed(cycle, elapsed, direction);
					c.plusType(cycle, direction);

					wordPos = (count-words);
					wordPosList.push_back(wordPos);
					binaryList.push_back(b.getWord0());
					numLines.push_back(num);

					wordPos = (count-words+1);
					wordPosList.push_back(wordPos);
					binaryList.push_back(b.getWord1());
					numLines.push_back(num);
					words -= 2;
					printList = true;

				}
			}
			else if(marker1 && words == 0) {
				marker1 = false;
			}
			else if(marker2 && words == 0) {
				marker2 = false;
			}

			++num;
		}

		f.close();

		// Data Rates
		cycle = "Read"; direction = "S-to-D";
		o.writeRate(d.GigaOrTera(d.MegaBits(c.getBits(cycle, direction), c.getElapsed(cycle, direction))), cycle, direction, output);
		cycle = "Read"; direction = "D-to-S";
		o.writeRate(d.GigaOrTera(d.MegaBits(c.getBits(cycle, direction), c.getElapsed(cycle, direction))), cycle, direction, output);
		cycle = "Write"; direction = "S-to-D";
		o.writeRate(d.GigaOrTera(d.MegaBits(c.getBits(cycle, direction), c.getElapsed(cycle, direction))), cycle, direction, output);
		cycle = "Write"; direction = "D-to-S";
		o.writeRate(d.GigaOrTera(d.MegaBits(c.getBits(cycle, direction), c.getElapsed(cycle, direction))), cycle, direction, output);

		output.close();
	}

	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10e8, %rsp           # imm = 0x10E8
movl %edi, %r14d
leal -0x4(%r14), %eax
cmpl $-0x3, %eax
ja 0x4c7e
movq 0x8428(%rip), %rbx      # 0xcff0
leaq 0x56a1(%rip), %rsi      # 0xa270
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
leaq 0x5681(%rip), %rsi      # 0xa28b
movl $0x23, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
leaq 0x566a(%rip), %rsi      # 0xa2af
movl $0x1c, %edx
movq %rbx, %rdi
callq 0x2200
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
jmp 0x7584
movq %rsi, %rbx
leaq 0xed8(%rsp), %r15
movq %r15, %rdi
callq 0x2210
movq 0x8(%rbx), %rsi
movq %r15, %rdi
movl $0x8, %edx
callq 0x21a0
movl $0x1, 0x18(%rsp)
leaq 0x198(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x53fa(%rip), %rdx      # 0xa0b7
leaq 0x188(%rsp), %rdi
movq %rdx, %rsi
callq 0x313c
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x53da(%rip), %rdx      # 0xa0b7
leaq 0x40(%rsp), %rdi
movq %rdx, %rsi
callq 0x313c
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x53bd(%rip), %rdx      # 0xa0b7
leaq 0x20(%rsp), %rdi
movq %rdx, %rsi
callq 0x313c
movl $0x0, 0x1c(%rsp)
xorl %eax, %eax
movq %rax, 0xf0(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xe0(%rsp)
movq %rax, 0x90(%rsp)
movaps %xmm0, 0x80(%rsp)
movq %rax, 0xd0(%rsp)
movaps %xmm0, 0xc0(%rsp)
movq %rax, 0xb0(%rsp)
movaps %xmm0, 0xa0(%rsp)
leaq 0x138(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x5350(%rip), %rdx      # 0xa0b7
leaq 0x128(%rsp), %rdi
movq %rdx, %rsi
callq 0x313c
leaq 0x438(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x532d(%rip), %rdx      # 0xa0b7
leaq 0x428(%rsp), %rdi
movq %rdx, %rsi
callq 0x313c
leaq 0x698(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x530a(%rip), %rdx      # 0xa0b7
leaq 0x688(%rsp), %rdi
movq %rdx, %rsi
callq 0x313c
leaq 0x7(%rsp), %rdi
callq 0x256c
leaq 0xc68(%rsp), %rdi
callq 0x26bc
leaq 0x148(%rsp), %rdi
callq 0x2a64
leaq 0x4(%rsp), %rdi
callq 0x31d4
leaq 0x5(%rsp), %rdi
callq 0x3454
leaq 0x17(%rsp), %rdi
callq 0x39e4
leaq 0xcc8(%rsp), %rdi
callq 0x2210
cmpl $0x3, %r14d
jne 0x4e7a
movq 0x10(%rbx), %rsi
cmpb $0x2d, (%rsi)
jne 0x4e25
cmpb $0x0, 0x1(%rsi)
je 0x7598
leaq 0xcc8(%rsp), %rdi
movl $0x10, %edx
callq 0x21a0
leaq 0xa88(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x5258(%rip), %rsi      # 0xa0a2
leaq 0x5255(%rip), %rdx      # 0xa0a6
leaq 0xa78(%rsp), %rdi
callq 0x313c
leaq 0x5(%rsp), %rdi
leaq 0xa78(%rsp), %rsi
callq 0x3458
movq 0xa78(%rsp), %rdi
jmp 0x4ed4
leaq 0x544b(%rip), %rsi      # 0xa2cc
leaq 0xcc8(%rsp), %rdi
movl $0x10, %edx
callq 0x21a0
leaq 0xa68(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x51fc(%rip), %rsi      # 0xa0a2
leaq 0x51f9(%rip), %rdx      # 0xa0a6
leaq 0xa58(%rsp), %rdi
callq 0x313c
leaq 0x5(%rsp), %rdi
leaq 0xa58(%rsp), %rsi
callq 0x3458
movq 0xa58(%rsp), %rdi
cmpq %r14, %rdi
je 0x4ee4
movq (%r14), %rsi
incq %rsi
callq 0x21e0
leaq 0xb30(%rsp), %r13
leaq 0x60(%rsp), %rbx
movl $0x0, 0x98(%rsp)
movl $0x0, 0xb8(%rsp)
movl $0x0, 0x8(%rsp)
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0xed8(%rsp), %rax
movq -0x18(%rax), %rdi
leaq 0xed8(%rsp), %rbp
addq %rbp, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %edx
movq %rbp, %rdi
leaq 0x188(%rsp), %rsi
callq 0x2350
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x6a0a
leaq 0xab8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x188(%rsp), %rsi
movl $0x8, %edx
callq 0x22f0
xorps %xmm0, %xmm0
movaps %xmm0, 0x100(%rsp)
movq $0x0, 0x110(%rsp)
leaq 0xc38(%rsp), %rdi
movq %rbp, %rsi
callq 0x866e
xorl %eax, %eax
movq %rax, 0x6a8(%rsp)
leaq 0x6c0(%rsp), %rbp
movq %rbp, 0x6b0(%rsp)
movq %rax, 0x6b8(%rsp)
movb %al, 0x6c0(%rsp)
movb %al, 0x6d0(%rsp)
leaq 0xc38(%rsp), %rdi
leaq 0x6a8(%rsp), %rsi
leaq 0x100(%rsp), %rdx
callq 0x8488
movq 0x6b0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5009
movq 0x6c0(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xc40(%rsp), %rdi
leaq 0xc50(%rsp), %rax
cmpq %rax, %rdi
je 0x502e
movq 0xc50(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x100(%rsp), %rdi
movl $0xc0, %ebp
addq %rbp, %rdi
leaq 0x5296(%rip), %rsi      # 0xa2db
callq 0x2070
testl %eax, %eax
je 0x5159
movq 0x100(%rsp), %rdi
addq %rbp, %rdi
leaq 0x5280(%rip), %rsi      # 0xa2e4
callq 0x2070
testl %eax, %eax
je 0x584a
testl %r15d, %r15d
setg %al
andb 0x8(%rsp), %al
cmpb $0x1, %al
jne 0x5926
movq 0x100(%rsp), %rax
leaq 0x2d8(%rsp), %rcx
movq %rcx, 0x2c8(%rsp)
movq 0xc0(%rax), %rsi
movq 0xc8(%rax), %rdx
addq %rsi, %rdx
leaq 0x2c8(%rsp), %rdi
callq 0x2920
leaq 0x7(%rsp), %rdi
leaq 0x2c8(%rsp), %rsi
callq 0x261a
movq %rax, 0x120(%rsp)
movq 0x2c8(%rsp), %rdi
leaq 0x2d8(%rsp), %rcx
cmpq %rcx, %rdi
je 0x5100
movq 0x2d8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x120(%rsp), %rax
leaq -0x40000818(%rax), %rcx
movb $0x1, %dl
movl %edx, 0x8(%rsp)
cmpq $0x3fc, %rcx            # imm = 0x3FC
ja 0x607f
movq 0xe8(%rsp), %rsi
movq %rsi, %rcx
subq 0xe0(%rsp), %rcx
cmpq $0x8, %rcx
ja 0x60dc
cmpq 0xf0(%rsp), %rsi
je 0x60c7
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xe8(%rsp)
jmp 0x60dc
testb $0x1, 0x98(%rsp)
je 0x5443
movq 0xe0(%rsp), %rax
movq (%rax), %rcx
cmpq 0x8(%rax), %rcx
jbe 0x520b
movq 0x80(%rsp), %rax
movq 0x88(%rsp), %rcx
cmpq %rcx, %rax
setne %dl
addq $-0x4, %rcx
cmpq %rax, %rcx
seta %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x51c4
addq $0x4, %rax
movl -0x4(%rax), %edx
movl (%rcx), %esi
movl %esi, -0x4(%rax)
movl %edx, (%rcx)
addq $-0x4, %rcx
leaq 0x4(%rax), %rdx
cmpq %rcx, %rax
movq %rdx, %rax
jb 0x51aa
movq 0xc8(%rsp), %r14
subq 0xc0(%rsp), %r14
sarq $0x5, %r14
decq %r14
je 0x520b
movl $0x2, %ebp
xorl %eax, %eax
movq 0xc0(%rsp), %rcx
shlq $0x5, %rax
leaq (%rcx,%rax), %rdi
leaq (%rcx,%rax), %rsi
addq $0x20, %rsi
callq 0x2150
movl %ebp, %eax
addl $0x2, %ebp
cmpq %rax, %r14
ja 0x51e4
movq 0xc8(%rsp), %r15
movq 0xc0(%rsp), %rax
subq %rax, %r15
je 0x538a
sarq $0x5, %r15
movl $0x1, %ebp
xorl %r13d, %r13d
movq 0x80(%rsp), %rax
movl (%rax,%r13,4), %r14d
movq 0xc0(%rsp), %rax
movq %r13, %rcx
shlq $0x5, %rcx
leaq 0x678(%rsp), %rdx
movq %rdx, 0x668(%rsp)
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq 0x668(%rsp), %r12
movq %r12, %rdi
callq 0x2920
movq %rbx, %rdi
leaq 0x17(%rsp), %rsi
movl %r14d, %edx
movq %r12, %rcx
callq 0x39e8
leaq 0x128(%rsp), %rdi
movq %rbx, %rsi
callq 0x20e0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x52b6
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x668(%rsp), %rdi
leaq 0x678(%rsp), %rax
cmpq %rax, %rdi
je 0x52db
movq 0x678(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x128(%rsp), %rdi
leaq 0x4dcd(%rip), %rsi      # 0xa0b7
callq 0x2070
testl %eax, %eax
je 0x537c
leaq 0x658(%rsp), %rax
movq %rax, 0x648(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
leaq 0x648(%rsp), %r14
movq %r14, %rdi
callq 0x2920
movq 0x80(%rsp), %rax
movl (%rax,%r13,4), %edx
movq 0xa0(%rsp), %rax
movl (%rax,%r13,4), %ecx
leaq 0x5(%rsp), %rdi
movq %r14, %rsi
leaq 0xcc8(%rsp), %r8
callq 0x386c
movq 0x648(%rsp), %rdi
leaq 0x658(%rsp), %rax
cmpq %rax, %rdi
je 0x537c
movq 0x658(%rsp), %rsi
incq %rsi
callq 0x21e0
movl %ebp, %r13d
incl %ebp
cmpq %r13, %r15
ja 0x5230
leaq 0x5(%rsp), %rdi
leaq 0xcc8(%rsp), %rsi
callq 0x349c
movq 0xc0(%rsp), %r14
movq 0xc8(%rsp), %r15
cmpq %r14, %r15
je 0x53e2
leaq 0x10(%r14), %r13
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x53ca
movq (%r13), %rsi
incq %rsi
callq 0x21e0
leaq 0x20(%r13), %rax
addq $0x10, %r13
cmpq %r15, %r13
movq %rax, %r13
jne 0x53b5
movq %r14, 0xc8(%rsp)
movq 0xa0(%rsp), %rax
cmpq %rax, 0xa8(%rsp)
leaq 0xb30(%rsp), %r13
je 0x5404
movq %rax, 0xa8(%rsp)
movq 0x80(%rsp), %rax
cmpq %rax, 0x88(%rsp)
je 0x541e
movq %rax, 0x88(%rsp)
movq 0xe0(%rsp), %rax
cmpq %rax, 0xe8(%rsp)
je 0x5438
movq %rax, 0xe8(%rsp)
movl $0x0, 0x98(%rsp)
movq 0x100(%rsp), %rax
leaq 0x418(%rsp), %rcx
movq %rcx, 0x408(%rsp)
movq 0xe0(%rax), %rsi
movq 0xe8(%rax), %rdx
addq %rsi, %rdx
leaq 0x408(%rsp), %rdi
callq 0x2920
leaq 0x7(%rsp), %rdi
leaq 0x408(%rsp), %rsi
callq 0x2570
movl %eax, %r14d
movq 0x408(%rsp), %rdi
leaq 0x418(%rsp), %rax
cmpq %rax, %rdi
je 0x54b3
movq 0x418(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x100(%rsp), %rax
leaq 0x638(%rsp), %rcx
movq %rcx, 0x628(%rsp)
movq 0x120(%rax), %rsi
movq 0x128(%rax), %rdx
addq %rsi, %rdx
leaq 0x628(%rsp), %r15
movq %r15, %rdi
callq 0x2920
movq %rbx, %rdi
leaq 0x148(%rsp), %rsi
movq %r15, %rdx
callq 0x2a84
leaq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x20e0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x5528
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x628(%rsp), %rdi
leaq 0x638(%rsp), %rax
cmpq %rax, %rdi
je 0x554d
movq 0x638(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%rsp), %rdx
movl $0x6, %r8d
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
leaq 0x4af7(%rip), %rcx      # 0xa05d
callq 0x22a0
movq 0x100(%rsp), %rax
leaq 0x3f8(%rsp), %rcx
movq %rcx, 0x3e8(%rsp)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq 0x3e8(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
callq 0x2b04
movsd %xmm0, 0x8(%rsp)
movq 0x3e8(%rsp), %rdi
leaq 0x3f8(%rsp), %rax
cmpq %rax, %rdi
je 0x55db
movq 0x3f8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x3d8(%rsp), %rax
movq %rax, 0x3c8(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3c8(%rsp), %rdi
callq 0x2920
leaq 0x618(%rsp), %rax
movq %rax, 0x608(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x608(%rsp), %r15
movq %r15, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
movsd 0x8(%rsp), %xmm0
movq %r15, %rdx
callq 0x2dec
movq 0x608(%rsp), %rdi
leaq 0x618(%rsp), %rax
cmpq %rax, %rdi
je 0x5675
movq 0x618(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x3c8(%rsp), %rdi
leaq 0x3d8(%rsp), %rax
cmpq %rax, %rdi
je 0x569a
movq 0x3d8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x3b8(%rsp), %rax
movq %rax, 0x3a8(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3a8(%rsp), %rdi
callq 0x2920
leaq 0x5f8(%rsp), %rax
movq %rax, 0x5e8(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x5e8(%rsp), %r15
movq %r15, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
movq %r15, %rdx
callq 0x2ee0
movq 0x5e8(%rsp), %rdi
leaq 0x5f8(%rsp), %rax
cmpq %rax, %rdi
je 0x572e
movq 0x5f8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x3a8(%rsp), %rdi
leaq 0x3b8(%rsp), %rax
cmpq %rax, %rdi
je 0x5753
movq 0x3b8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x398(%rsp), %rax
movq %rax, 0x388(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x388(%rsp), %rdi
callq 0x2920
movl 0x18(%rsp), %r15d
leaq 0x5d8(%rsp), %rax
movq %rax, 0x5c8(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x5c8(%rsp), %r12
movq %r12, %rdi
callq 0x2920
leaq 0x5(%rsp), %rdi
leaq 0x388(%rsp), %rsi
movl %r14d, %edx
movl %r15d, %ecx
movq %r12, %r8
leaq 0xcc8(%rsp), %r9
callq 0x3518
movq 0x5c8(%rsp), %rdi
leaq 0x5d8(%rsp), %rax
cmpq %rax, %rdi
je 0x57f7
movq 0x5d8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x388(%rsp), %rdi
leaq 0x398(%rsp), %rax
cmpq %rax, %rdi
je 0x581c
movq 0x398(%rsp), %rsi
incq %rsi
callq 0x21e0
movb $0x1, %al
movl %eax, 0x8(%rsp)
testl %r14d, %r14d
jg 0x607c
leaq 0x5(%rsp), %rdi
leaq 0xcc8(%rsp), %rsi
callq 0x349c
movl $0x0, 0x8(%rsp)
jmp 0x607c
testb $0x1, 0x98(%rsp)
je 0x5c72
movq 0xe0(%rsp), %rax
movq (%rax), %rcx
cmpq 0x8(%rax), %rcx
jbe 0x5a34
movq 0x80(%rsp), %rax
movq 0x88(%rsp), %rcx
cmpq %rcx, %rax
setne %dl
addq $-0x4, %rcx
cmpq %rax, %rcx
seta %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x58b5
addq $0x4, %rax
movl -0x4(%rax), %edx
movl (%rcx), %esi
movl %esi, -0x4(%rax)
movl %edx, (%rcx)
addq $-0x4, %rcx
leaq 0x4(%rax), %rdx
cmpq %rcx, %rax
movq %rdx, %rax
jb 0x589b
movq 0xc0(%rsp), %rax
movq 0xc8(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
movl $0x20, %r15d
cmpq $0x20, %rdx
je 0x5a4a
movl $0x2, %ebp
xorl %edx, %edx
shlq $0x5, %rdx
leaq (%rax,%rdx), %rdi
leaq (%rax,%rdx), %rsi
addq $0x20, %rsi
callq 0x2150
movl %ebp, %edx
movq 0xc0(%rsp), %rax
movq 0xc8(%rsp), %rcx
movq %rcx, %r15
subq %rax, %r15
movq %r15, %rsi
sarq $0x5, %rsi
decq %rsi
addl $0x2, %ebp
cmpq %rdx, %rsi
ja 0x58e2
jmp 0x5a4a
testl %r15d, %r15d
setg %al
andb 0xb8(%rsp), %al
cmpb $0x1, %al
jne 0x5a14
movq 0x100(%rsp), %rax
leaq 0x238(%rsp), %rcx
movq %rcx, 0x228(%rsp)
movq 0xc0(%rax), %rsi
movq 0xc8(%rax), %rdx
addq %rsi, %rdx
leaq 0x228(%rsp), %rdi
callq 0x2920
leaq 0x7(%rsp), %rdi
leaq 0x228(%rsp), %rsi
callq 0x261a
movq %rax, 0x120(%rsp)
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rcx
cmpq %rcx, %rdi
je 0x59b8
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x120(%rsp), %rax
leaq -0x40000c20(%rax), %rcx
movb $0x1, %dl
movl %edx, 0xb8(%rsp)
cmpq $0x3fc, %rcx            # imm = 0x3FC
ja 0x607f
movq 0xe8(%rsp), %rsi
movq %rsi, %rcx
subq 0xe0(%rsp), %rcx
cmpq $0x8, %rcx
ja 0x6579
cmpq 0xf0(%rsp), %rsi
je 0x6564
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0xe8(%rsp)
jmp 0x6579
testl %r15d, %r15d
sete %al
testb %al, 0x8(%rsp)
je 0x60b1
movl $0x0, 0x8(%rsp)
xorl %r15d, %r15d
jmp 0x607f
movq 0xc0(%rsp), %rax
movq 0xc8(%rsp), %rcx
movq %rcx, %r15
subq %rax, %r15
cmpq %rax, %rcx
je 0x5bb9
sarq $0x5, %r15
movl $0x1, %ebp
xorl %r13d, %r13d
movq 0x80(%rsp), %rax
movl (%rax,%r13,4), %r14d
movq 0xc0(%rsp), %rax
movq %r13, %rcx
shlq $0x5, %rcx
leaq 0x5b8(%rsp), %rdx
movq %rdx, 0x5a8(%rsp)
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq 0x5a8(%rsp), %r12
movq %r12, %rdi
callq 0x2920
movq %rbx, %rdi
leaq 0x17(%rsp), %rsi
movl %r14d, %edx
movq %r12, %rcx
callq 0x39e8
leaq 0x128(%rsp), %rdi
movq %rbx, %rsi
callq 0x20e0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x5ae5
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x5a8(%rsp), %rdi
leaq 0x5b8(%rsp), %rax
cmpq %rax, %rdi
je 0x5b0a
movq 0x5b8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x128(%rsp), %rdi
leaq 0x459e(%rip), %rsi      # 0xa0b7
callq 0x2070
testl %eax, %eax
je 0x5bab
leaq 0x598(%rsp), %rax
movq %rax, 0x588(%rsp)
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
addq %rsi, %rdx
leaq 0x588(%rsp), %r14
movq %r14, %rdi
callq 0x2920
movq 0x80(%rsp), %rax
movl (%rax,%r13,4), %edx
movq 0xa0(%rsp), %rax
movl (%rax,%r13,4), %ecx
leaq 0x5(%rsp), %rdi
movq %r14, %rsi
leaq 0xcc8(%rsp), %r8
callq 0x386c
movq 0x588(%rsp), %rdi
leaq 0x598(%rsp), %rax
cmpq %rax, %rdi
je 0x5bab
movq 0x598(%rsp), %rsi
incq %rsi
callq 0x21e0
movl %ebp, %r13d
incl %ebp
cmpq %r13, %r15
ja 0x5a5f
leaq 0x5(%rsp), %rdi
leaq 0xcc8(%rsp), %rsi
callq 0x349c
movq 0xc0(%rsp), %r14
movq 0xc8(%rsp), %r15
cmpq %r14, %r15
je 0x5c11
leaq 0x10(%r14), %r13
movq -0x10(%r13), %rdi
cmpq %rdi, %r13
je 0x5bf9
movq (%r13), %rsi
incq %rsi
callq 0x21e0
leaq 0x20(%r13), %rax
addq $0x10, %r13
cmpq %r15, %r13
movq %rax, %r13
jne 0x5be4
movq %r14, 0xc8(%rsp)
movq 0xa0(%rsp), %rax
cmpq %rax, 0xa8(%rsp)
je 0x5c2b
movq %rax, 0xa8(%rsp)
movq 0x80(%rsp), %rax
cmpq %rax, 0x88(%rsp)
leaq 0xb30(%rsp), %r13
je 0x5c4d
movq %rax, 0x88(%rsp)
movq 0xe0(%rsp), %rax
cmpq %rax, 0xe8(%rsp)
je 0x5c67
movq %rax, 0xe8(%rsp)
movl $0x0, 0x98(%rsp)
movq 0x100(%rsp), %rax
leaq 0x378(%rsp), %rcx
movq %rcx, 0x368(%rsp)
movq 0xe0(%rax), %rsi
movq 0xe8(%rax), %rdx
addq %rsi, %rdx
leaq 0x368(%rsp), %rdi
callq 0x2920
leaq 0x7(%rsp), %rdi
leaq 0x368(%rsp), %rsi
callq 0x2570
movl %eax, %r14d
movq 0x368(%rsp), %rdi
leaq 0x378(%rsp), %rax
cmpq %rax, %rdi
je 0x5ce2
movq 0x378(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x100(%rsp), %rax
leaq 0x578(%rsp), %rcx
movq %rcx, 0x568(%rsp)
movq 0x120(%rax), %rsi
movq 0x128(%rax), %rdx
addq %rsi, %rdx
leaq 0x568(%rsp), %r15
movq %r15, %rdi
callq 0x2920
movq %rbx, %rdi
leaq 0x148(%rsp), %rsi
movq %r15, %rdx
callq 0x2a84
leaq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x20e0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x5d57
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x568(%rsp), %rdi
leaq 0x578(%rsp), %rax
cmpq %rax, %rdi
je 0x5d7c
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%rsp), %rdx
movl $0x6, %r8d
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
leaq 0x42c1(%rip), %rcx      # 0xa056
callq 0x22a0
movq 0x100(%rsp), %rax
leaq 0x358(%rsp), %rcx
movq %rcx, 0x348(%rsp)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq 0x348(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x348(%rsp), %rsi
callq 0x2b04
movsd %xmm0, 0xb8(%rsp)
movq 0x348(%rsp), %rdi
leaq 0x358(%rsp), %rax
cmpq %rax, %rdi
je 0x5e0d
movq 0x358(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x338(%rsp), %rax
movq %rax, 0x328(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x328(%rsp), %rdi
callq 0x2920
leaq 0x558(%rsp), %rax
movq %rax, 0x548(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x548(%rsp), %r15
movq %r15, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x328(%rsp), %rsi
movsd 0xb8(%rsp), %xmm0
movq %r15, %rdx
callq 0x2dec
movq 0x548(%rsp), %rdi
leaq 0x558(%rsp), %rax
cmpq %rax, %rdi
je 0x5eaa
movq 0x558(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x328(%rsp), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x5ecf
movq 0x338(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x318(%rsp), %rax
movq %rax, 0x308(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x308(%rsp), %rdi
callq 0x2920
leaq 0x538(%rsp), %rax
movq %rax, 0x528(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x528(%rsp), %r15
movq %r15, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x308(%rsp), %rsi
movq %r15, %rdx
callq 0x2ee0
movq 0x528(%rsp), %rdi
leaq 0x538(%rsp), %rax
cmpq %rax, %rdi
je 0x5f63
movq 0x538(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x308(%rsp), %rdi
leaq 0x318(%rsp), %rax
cmpq %rax, %rdi
je 0x5f88
movq 0x318(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x2f8(%rsp), %rax
movq %rax, 0x2e8(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2e8(%rsp), %rdi
callq 0x2920
movl 0x18(%rsp), %r15d
leaq 0x518(%rsp), %rax
movq %rax, 0x508(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x508(%rsp), %r12
movq %r12, %rdi
callq 0x2920
leaq 0x5(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
movl %r14d, %edx
movl %r15d, %ecx
movq %r12, %r8
leaq 0xcc8(%rsp), %r9
callq 0x3518
movq 0x508(%rsp), %rdi
leaq 0x518(%rsp), %rax
cmpq %rax, %rdi
je 0x602c
movq 0x518(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x6051
movq 0x2f8(%rsp), %rsi
incq %rsi
callq 0x21e0
movb $0x1, %al
movl %eax, 0xb8(%rsp)
testl %r14d, %r14d
jg 0x607c
leaq 0x5(%rsp), %rdi
leaq 0xcc8(%rsp), %rsi
callq 0x349c
movl $0x0, 0xb8(%rsp)
movl %r14d, %r15d
incl 0x18(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x86fa
leaq 0xab8(%rsp), %rdi
movq 0x6f21(%rip), %rsi      # 0xcfc0
callq 0x2270
movq %r13, %rdi
callq 0x2090
jmp 0x4f15
testl %r15d, %r15d
sete %al
movl 0xb8(%rsp), %ecx
andb %cl, %al
xorb %cl, %al
jmp 0x69fe
leaq 0xe0(%rsp), %rdi
leaq 0x120(%rsp), %rdx
callq 0x8bc8
movq 0x100(%rsp), %rax
leaq 0x2b8(%rsp), %rcx
movq %rcx, 0x2a8(%rsp)
movq 0xe0(%rax), %rsi
movq 0xe8(%rax), %rdx
addq %rsi, %rdx
leaq 0x2a8(%rsp), %rdi
callq 0x2920
leaq 0xc68(%rsp), %rdi
leaq 0x2a8(%rsp), %rsi
callq 0x273a
movq 0x2a8(%rsp), %rdi
leaq 0x2b8(%rsp), %rax
cmpq %rax, %rdi
je 0x614c
movq 0x2b8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x100(%rsp), %rax
leaq 0x4f8(%rsp), %rcx
movq %rcx, 0x4e8(%rsp)
movq 0x120(%rax), %rsi
movq 0x128(%rax), %rdx
addq %rsi, %rdx
leaq 0x4e8(%rsp), %r12
movq %r12, %rdi
callq 0x2920
movq %rbx, %rdi
leaq 0x148(%rsp), %rsi
movq %r12, %rdx
callq 0x2a84
leaq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x20e0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x61c1
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x4e8(%rsp), %rdi
leaq 0x4f8(%rsp), %rax
cmpq %rax, %rdi
je 0x61e6
movq 0x4f8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%rsp), %rdx
movl $0x6, %r8d
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
leaq 0x3e5e(%rip), %rcx      # 0xa05d
callq 0x22a0
movq 0x100(%rsp), %rax
leaq 0x298(%rsp), %rcx
movq %rcx, 0x288(%rsp)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq 0x288(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0x2b04
movsd %xmm0, 0x8(%rsp)
movq 0x288(%rsp), %rdi
leaq 0x298(%rsp), %rax
cmpq %rax, %rdi
je 0x6274
movq 0x298(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x278(%rsp), %rax
movq %rax, 0x268(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x268(%rsp), %rdi
callq 0x2920
leaq 0x4d8(%rsp), %rax
movq %rax, 0x4c8(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x4c8(%rsp), %r12
movq %r12, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x268(%rsp), %rsi
movsd 0x8(%rsp), %xmm0
movq %r12, %rdx
callq 0x2dec
movq 0x4c8(%rsp), %rdi
leaq 0x4d8(%rsp), %rax
cmpq %rax, %rdi
je 0x630e
movq 0x4d8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x6333
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x258(%rsp), %rax
movq %rax, 0x248(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x248(%rsp), %rdi
callq 0x2920
leaq 0x4b8(%rsp), %rax
movq %rax, 0x4a8(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x4a8(%rsp), %r12
movq %r12, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x248(%rsp), %rsi
movq %r12, %rdx
callq 0x2ee0
movq 0x4a8(%rsp), %rdi
leaq 0x4b8(%rsp), %rax
cmpq %rax, %rdi
je 0x63c7
movq 0x4b8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x63ec
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x21e0
movl %r14d, %ebp
subl %r15d, %ebp
movl %ebp, 0x1c(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x6418
movl %ebp, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x88(%rsp)
jmp 0x642a
leaq 0x80(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x8d04
movq %rbx, %rdi
leaq 0xc68(%rsp), %rsi
callq 0x28d8
leaq 0xc0(%rsp), %rdi
movq %rbx, %rsi
callq 0x86bc
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x6466
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xa8(%rsp), %rsi
cmpq 0xb0(%rsp), %rsi
je 0x648c
movl 0x18(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xa8(%rsp)
jmp 0x649e
leaq 0xa0(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x8d04
incl %ebp
movl %ebp, 0x1c(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x64c6
movl %ebp, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x88(%rsp)
jmp 0x64d8
leaq 0x80(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x8d04
movq %rbx, %rdi
leaq 0xc68(%rsp), %rsi
callq 0x28fc
leaq 0xc0(%rsp), %rdi
movq %rbx, %rsi
callq 0x86bc
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x6514
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xa8(%rsp), %rsi
cmpq 0xb0(%rsp), %rsi
je 0x653a
movl 0x18(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xa8(%rsp)
jmp 0x654c
leaq 0xa0(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x8d04
addl $-0x2, %r15d
movb $0x1, %al
movl %eax, 0x98(%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
jmp 0x607f
leaq 0xe0(%rsp), %rdi
leaq 0x120(%rsp), %rdx
callq 0x8bc8
movq 0x100(%rsp), %rax
leaq 0x218(%rsp), %rcx
movq %rcx, 0x208(%rsp)
movq 0xe0(%rax), %rsi
movq 0xe8(%rax), %rdx
addq %rsi, %rdx
leaq 0x208(%rsp), %rdi
callq 0x2920
leaq 0xc68(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x273a
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x65e9
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x100(%rsp), %rax
leaq 0x498(%rsp), %rcx
movq %rcx, 0x488(%rsp)
movq 0x120(%rax), %rsi
movq 0x128(%rax), %rdx
addq %rsi, %rdx
leaq 0x488(%rsp), %r12
movq %r12, %rdi
callq 0x2920
movq %rbx, %rdi
leaq 0x148(%rsp), %rsi
movq %r12, %rdx
callq 0x2a84
leaq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x20e0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x665e
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x488(%rsp), %rdi
leaq 0x498(%rsp), %rax
cmpq %rax, %rdi
je 0x6683
movq 0x498(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%rsp), %rdx
movl $0x6, %r8d
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
leaq 0x39ba(%rip), %rcx      # 0xa056
callq 0x22a0
movq 0x100(%rsp), %rax
leaq 0x1f8(%rsp), %rcx
movq %rcx, 0x1e8(%rsp)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq 0x1e8(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
callq 0x2b04
movsd %xmm0, 0x98(%rsp)
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x6714
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x1d8(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1c8(%rsp), %rdi
callq 0x2920
leaq 0x478(%rsp), %rax
movq %rax, 0x468(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x468(%rsp), %r12
movq %r12, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
movsd 0x98(%rsp), %xmm0
movq %r12, %rdx
callq 0x2dec
movq 0x468(%rsp), %rdi
leaq 0x478(%rsp), %rax
cmpq %rax, %rdi
je 0x67b1
movq 0x478(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x67d6
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x1b8(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1a8(%rsp), %rdi
callq 0x2920
leaq 0x458(%rsp), %rax
movq %rax, 0x448(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x448(%rsp), %r12
movq %r12, %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x1a8(%rsp), %rsi
movq %r12, %rdx
callq 0x2ee0
movq 0x448(%rsp), %rdi
leaq 0x458(%rsp), %rax
cmpq %rax, %rdi
je 0x686a
movq 0x458(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x688f
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x21e0
movl %r14d, %ebp
subl %r15d, %ebp
movl %ebp, 0x1c(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x68bb
movl %ebp, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x88(%rsp)
jmp 0x68cd
leaq 0x80(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x8d04
movq %rbx, %rdi
leaq 0xc68(%rsp), %rsi
callq 0x28d8
leaq 0xc0(%rsp), %rdi
movq %rbx, %rsi
callq 0x86bc
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x6909
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xa8(%rsp), %rsi
cmpq 0xb0(%rsp), %rsi
je 0x692f
movl 0x18(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xa8(%rsp)
jmp 0x6941
leaq 0xa0(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x8d04
incl %ebp
movl %ebp, 0x1c(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x6969
movl %ebp, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x88(%rsp)
jmp 0x697b
leaq 0x80(%rsp), %rdi
leaq 0x1c(%rsp), %rdx
callq 0x8d04
movq %rbx, %rdi
leaq 0xc68(%rsp), %rsi
callq 0x28fc
leaq 0xc0(%rsp), %rdi
movq %rbx, %rsi
callq 0x86bc
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x69b7
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xa8(%rsp), %rsi
cmpq 0xb0(%rsp), %rsi
je 0x69dd
movl 0x18(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xa8(%rsp)
jmp 0x69ef
leaq 0xa0(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x8d04
addl $-0x2, %r15d
movb $0x1, %al
movl %eax, 0x98(%rsp)
movb $0x1, %al
movl %eax, 0xb8(%rsp)
jmp 0x607f
leaq 0xed8(%rsp), %rdi
callq 0x2040
leaq 0x40(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x361d(%rip), %rcx      # 0xa044
movl $0x4, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x20(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x3619(%rip), %rcx      # 0xa05d
movl $0x6, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x9c8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x9b8(%rsp), %rdi
callq 0x2920
leaq 0x9a8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x998(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x9b8(%rsp), %rsi
leaq 0x998(%rsp), %rdx
callq 0x2fa2
movl %eax, %ebx
leaq 0x988(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x978(%rsp), %rdi
callq 0x2920
leaq 0x968(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x958(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x978(%rsp), %rsi
leaq 0x958(%rsp), %rdx
callq 0x306a
leaq 0x4(%rsp), %rdi
movl %ebx, %esi
movq %rax, %rdx
callq 0x31d8
leaq 0xa38(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x3208
leaq 0x948(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x938(%rsp), %rdi
callq 0x2920
leaq 0x928(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x918(%rsp), %rdi
callq 0x2920
leaq 0x5(%rsp), %rdi
leaq 0xa38(%rsp), %rsi
leaq 0x938(%rsp), %rdx
leaq 0x918(%rsp), %rcx
leaq 0xcc8(%rsp), %r8
callq 0x370a
movq 0x918(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6bda
movq 0x928(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x938(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6bf7
movq 0x948(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0xa48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6c18
movq 0xa48(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x958(%rsp), %rdi
cmpq %r13, %rdi
je 0x6c35
movq 0x968(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x978(%rsp), %rdi
cmpq %r12, %rdi
je 0x6c52
movq 0x988(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x998(%rsp), %rdi
cmpq %r15, %rdi
je 0x6c6f
movq 0x9a8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x9b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6c8c
movq 0x9c8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x40(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x33a8(%rip), %rcx      # 0xa044
movl $0x4, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x20(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x339d(%rip), %rcx      # 0xa056
movl $0x6, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x908(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8f8(%rsp), %rdi
callq 0x2920
leaq 0x8e8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8d8(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x8f8(%rsp), %rsi
leaq 0x8d8(%rsp), %rdx
callq 0x2fa2
movl %eax, %ebx
leaq 0x8c8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x8b8(%rsp), %rdi
callq 0x2920
leaq 0x8a8(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x898(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x8b8(%rsp), %rsi
leaq 0x898(%rsp), %rdx
callq 0x306a
leaq 0x4(%rsp), %rdi
movl %ebx, %esi
movq %rax, %rdx
callq 0x31d8
leaq 0xa18(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x3208
leaq 0x888(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x878(%rsp), %rdi
callq 0x2920
leaq 0x868(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x858(%rsp), %rdi
callq 0x2920
leaq 0x5(%rsp), %rdi
leaq 0xa18(%rsp), %rsi
leaq 0x878(%rsp), %rdx
leaq 0x858(%rsp), %rcx
leaq 0xcc8(%rsp), %r8
callq 0x370a
movq 0x858(%rsp), %rdi
cmpq %rbx, %rdi
je 0x6e4f
movq 0x868(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x878(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6e6c
movq 0x888(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0xa28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6e8d
movq 0xa28(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x898(%rsp), %rdi
cmpq %r13, %rdi
je 0x6eaa
movq 0x8a8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x6ec7
movq 0x8c8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x6ee4
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6f01
movq 0x908(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x40(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x312a(%rip), %rcx      # 0xa03b
movl $0x5, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x20(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x312f(%rip), %rcx      # 0xa05d
movl $0x6, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x848(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x838(%rsp), %rdi
callq 0x2920
leaq 0x828(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x818(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x838(%rsp), %rsi
leaq 0x818(%rsp), %rdx
callq 0x2fa2
movl %eax, %ebx
leaq 0x808(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x7f8(%rsp), %rdi
callq 0x2920
leaq 0x7e8(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x7d8(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
leaq 0x7d8(%rsp), %rdx
callq 0x306a
leaq 0x4(%rsp), %rdi
movl %ebx, %esi
movq %rax, %rdx
callq 0x31d8
leaq 0x9f8(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x3208
leaq 0x7c8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x7b8(%rsp), %rdi
callq 0x2920
leaq 0x7a8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x798(%rsp), %rdi
callq 0x2920
leaq 0x5(%rsp), %rdi
leaq 0x9f8(%rsp), %rsi
leaq 0x7b8(%rsp), %rdx
leaq 0x798(%rsp), %rcx
leaq 0xcc8(%rsp), %r8
callq 0x370a
movq 0x798(%rsp), %rdi
cmpq %rbx, %rdi
je 0x70c4
movq 0x7a8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x7b8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x70e1
movq 0x7c8(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0xa08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7102
movq 0xa08(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x7d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x711f
movq 0x7e8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x7f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x713c
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x818(%rsp), %rdi
cmpq %r15, %rdi
je 0x7159
movq 0x828(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x838(%rsp), %rdi
cmpq %r14, %rdi
je 0x7176
movq 0x848(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x40(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x2eb5(%rip), %rcx      # 0xa03b
movl $0x5, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x20(%rsp), %rdi
movq 0x8(%rdi), %rdx
leaq 0x2eb3(%rip), %rcx      # 0xa056
movl $0x6, %r8d
xorl %esi, %esi
callq 0x22a0
leaq 0x788(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x778(%rsp), %rdi
callq 0x2920
leaq 0x768(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x758(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x778(%rsp), %rsi
leaq 0x758(%rsp), %rdx
callq 0x2fa2
movl %eax, %ebx
leaq 0x748(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x738(%rsp), %rdi
callq 0x2920
leaq 0x728(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x718(%rsp), %rdi
callq 0x2920
leaq 0x148(%rsp), %rdi
leaq 0x738(%rsp), %rsi
leaq 0x718(%rsp), %rdx
callq 0x306a
leaq 0x4(%rsp), %rdi
movl %ebx, %esi
movq %rax, %rdx
callq 0x31d8
leaq 0x9d8(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0x3208
leaq 0x708(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
addq %rsi, %rdx
leaq 0x6f8(%rsp), %rdi
callq 0x2920
leaq 0x6e8(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x6d8(%rsp), %rdi
callq 0x2920
leaq 0x5(%rsp), %rdi
leaq 0x9d8(%rsp), %rsi
leaq 0x6f8(%rsp), %rdx
leaq 0x6d8(%rsp), %rcx
leaq 0xcc8(%rsp), %r8
callq 0x370a
movq 0x6d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7339
movq 0x6e8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x6f8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7356
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x9e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7377
movq 0x9e8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x718(%rsp), %rdi
cmpq %r13, %rdi
je 0x7394
movq 0x728(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x738(%rsp), %rdi
cmpq %r12, %rdi
je 0x73b1
movq 0x748(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x758(%rsp), %rdi
cmpq %r15, %rdi
je 0x73ce
movq 0x768(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x778(%rsp), %rdi
cmpq %r14, %rdi
je 0x73eb
movq 0x788(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0xcc8(%rsp), %rdi
callq 0x2040
leaq 0xcc8(%rsp), %rdi
callq 0x2050
leaq 0x17(%rsp), %rdi
callq 0x39e6
leaq 0x5(%rsp), %rdi
callq 0x3456
leaq 0x4(%rsp), %rdi
callq 0x31d6
leaq 0x148(%rsp), %rdi
callq 0x2a82
leaq 0xc68(%rsp), %rdi
callq 0x26ec
leaq 0x7(%rsp), %rdi
callq 0x256e
movq 0x688(%rsp), %rdi
leaq 0x698(%rsp), %rax
cmpq %rax, %rdi
je 0x746c
movq 0x698(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x428(%rsp), %rdi
leaq 0x438(%rsp), %rax
cmpq %rax, %rdi
je 0x7491
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x74b6
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x74d3
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
leaq 0xc0(%rsp), %rdi
callq 0x86fa
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x74fd
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x751a
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x7536
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x7552
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x7577
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0xed8(%rsp), %rdi
callq 0x2050
xorl %eax, %eax
addq $0x10e8, %rsp           # imm = 0x10E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xaa8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x2af1(%rip), %rsi      # 0xa09c
leaq 0x2aef(%rip), %rdx      # 0xa0a1
leaq 0xa98(%rsp), %rdi
callq 0x313c
leaq 0x5(%rsp), %rdi
leaq 0xa98(%rsp), %rsi
callq 0x3458
movq 0xa98(%rsp), %rdi
jmp 0x4ed4
movq %rax, %rbx
movq 0xa98(%rsp), %rdi
cmpq %r14, %rdi
je 0x82ec
movq 0xaa8(%rsp), %rsi
jmp 0x7640
jmp 0x81ef
movq %rax, %rbx
movq 0xa78(%rsp), %rdi
cmpq %r14, %rdi
je 0x82ec
movq 0xa88(%rsp), %rsi
jmp 0x7640
jmp 0x81ef
movq %rax, %rbx
movq 0xa58(%rsp), %rdi
cmpq %r14, %rdi
je 0x82ec
movq 0xa68(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x82ec
jmp 0x81ef
movq %rax, 0x8(%rsp)
movq 0x6d8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x767b
movq 0x6e8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x767b
movq %rax, 0x8(%rsp)
movq 0x6f8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x769f
movq 0x708(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x769f
movq %rax, 0x8(%rsp)
leaq 0x9e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7a70
movq 0x9e8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7a70
movq %rax, 0x8(%rsp)
jmp 0x7a8d
movq %rax, 0x8(%rsp)
jmp 0x7ac7
movq %rax, 0x8(%rsp)
movq 0x798(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7706
movq 0x7a8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7706
movq %rax, 0x8(%rsp)
movq 0x7b8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x772a
movq 0x7c8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x772a
movq %rax, 0x8(%rsp)
leaq 0xa08(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7aea
movq 0xa08(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7aea
movq %rax, 0x8(%rsp)
jmp 0x7b07
movq %rax, 0x8(%rsp)
jmp 0x7b41
movq %rax, 0x8(%rsp)
movq 0x858(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7791
movq 0x868(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7791
movq %rax, 0x8(%rsp)
movq 0x878(%rsp), %rdi
cmpq %rbp, %rdi
je 0x77b5
movq 0x888(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x77b5
movq %rax, 0x8(%rsp)
leaq 0xa28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7b64
movq 0xa28(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7b64
movq %rax, 0x8(%rsp)
jmp 0x7b81
movq %rax, 0x8(%rsp)
jmp 0x7bbb
movq %rax, 0x8(%rsp)
movq 0x918(%rsp), %rdi
cmpq %rbx, %rdi
je 0x781c
movq 0x928(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x781c
movq %rax, 0x8(%rsp)
movq 0x938(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7840
movq 0x948(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7840
movq %rax, 0x8(%rsp)
leaq 0xa48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7bdb
movq 0xa48(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7bdb
movq %rax, 0x8(%rsp)
jmp 0x7bf8
movq %rax, 0x8(%rsp)
jmp 0x7c32
movq %rax, %rbx
jmp 0x82f9
movq %rax, %rbx
jmp 0x8303
movq %rax, %rbx
jmp 0x830d
movq %rax, %rbx
jmp 0x8317
movq %rax, %rbx
jmp 0x8324
movq %rax, %rbx
jmp 0x8331
movq %rax, %rbx
jmp 0x833b
movq %rax, %rbx
jmp 0x8360
movq %rax, %rbx
jmp 0x8385
movq %rax, %rbx
jmp 0x83aa
movq %rax, %rbx
jmp 0x842a
movq %rax, %rbx
jmp 0x8446
jmp 0x78e0
movq %rax, %rbx
jmp 0x846b
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x1f8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x468(%rsp), %rdi
leaq 0x478(%rsp), %rax
cmpq %rax, %rdi
je 0x7948
movq 0x478(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7948
jmp 0x82b8
jmp 0x7cee
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x1d8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x79cd
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x79cd
movq %rax, %rbx
jmp 0x7a20
movq %rax, %rbx
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x218(%rsp), %rsi
jmp 0x82ae
jmp 0x7cee
jmp 0x82b8
movq %rax, %rbx
movq 0x488(%rsp), %rdi
leaq 0x498(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x498(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
movq %rax, %rbx
movq 0x448(%rsp), %rdi
leaq 0x458(%rsp), %rax
cmpq %rax, %rdi
je 0x7a20
movq 0x458(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x1b8(%rsp), %rsi
jmp 0x82ae
movq %rax, 0x8(%rsp)
jmp 0x7aaa
movq %rax, 0x8(%rsp)
jmp 0x7b24
movq %rax, 0x8(%rsp)
jmp 0x7b9e
movq %rax, 0x8(%rsp)
jmp 0x7c15
movq %rax, 0x8(%rsp)
movq 0x718(%rsp), %rdi
cmpq %r13, %rdi
je 0x7a8d
movq 0x728(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x738(%rsp), %rdi
cmpq %r12, %rdi
je 0x7aaa
movq 0x748(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x758(%rsp), %rdi
cmpq %r15, %rdi
je 0x7ac7
movq 0x768(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x778(%rsp), %rdi
cmpq %r14, %rdi
je 0x7c4f
movq 0x788(%rsp), %rsi
jmp 0x7c47
movq %rax, 0x8(%rsp)
movq 0x7d8(%rsp), %rdi
cmpq %r13, %rdi
je 0x7b07
movq 0x7e8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x7f8(%rsp), %rdi
cmpq %r12, %rdi
je 0x7b24
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x818(%rsp), %rdi
cmpq %r15, %rdi
je 0x7b41
movq 0x828(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x838(%rsp), %rdi
cmpq %r14, %rdi
je 0x7c4f
movq 0x848(%rsp), %rsi
jmp 0x7c47
movq %rax, 0x8(%rsp)
movq 0x898(%rsp), %rdi
cmpq %r13, %rdi
je 0x7b81
movq 0x8a8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8b8(%rsp), %rdi
cmpq %r12, %rdi
je 0x7b9e
movq 0x8c8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8d8(%rsp), %rdi
cmpq %r15, %rdi
je 0x7bbb
movq 0x8e8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x7c4f
movq 0x908(%rsp), %rsi
jmp 0x7c47
movq %rax, 0x8(%rsp)
movq 0x958(%rsp), %rdi
cmpq %r13, %rdi
je 0x7bf8
movq 0x968(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x978(%rsp), %rdi
cmpq %r12, %rdi
je 0x7c15
movq 0x988(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x998(%rsp), %rdi
cmpq %r15, %rdi
je 0x7c32
movq 0x9a8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x9b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x7c4f
movq 0x9c8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x8(%rsp), %rbx
jmp 0x82ec
movq %rax, %rbx
movq 0x4a8(%rsp), %rdi
leaq 0x4b8(%rsp), %rax
cmpq %rax, %rdi
je 0x7c86
movq 0x4b8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7c86
movq %rax, %rbx
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x258(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
jmp 0x82b8
jmp 0x82b8
movq %rax, %rbx
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x238(%rsp), %rsi
jmp 0x82ae
jmp 0x7cee
movq %rax, %rbx
jmp 0x7d7f
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x70(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x288(%rsp), %rdi
leaq 0x298(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x298(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x2a8(%rsp), %rdi
leaq 0x2b8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x2b8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x7d7f
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x4e8(%rsp), %rdi
leaq 0x4f8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x4f8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x4c8(%rsp), %rdi
leaq 0x4d8(%rsp), %rax
cmpq %rax, %rdi
je 0x7dd2
movq 0x4d8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7dd2
movq %rax, %rbx
movq 0x268(%rsp), %rdi
leaq 0x278(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x278(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
jmp 0x82b8
movq %rax, %rbx
movq 0x2c8(%rsp), %rdi
leaq 0x2d8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x2d8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x7fad
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7fad
movq %rax, %rbx
movq 0x508(%rsp), %rdi
leaq 0x518(%rsp), %rax
cmpq %rax, %rdi
je 0x7f08
movq 0x518(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7f08
movq %rax, %rbx
movq 0x348(%rsp), %rdi
leaq 0x358(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x358(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
jmp 0x7eda
movq %rax, %rbx
movq 0x548(%rsp), %rdi
leaq 0x558(%rsp), %rax
cmpq %rax, %rdi
je 0x7eda
movq 0x558(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x328(%rsp), %rdi
leaq 0x338(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x338(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
movq %rax, %rbx
movq 0x2e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x2f8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x368(%rsp), %rdi
leaq 0x378(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x378(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x528(%rsp), %rdi
leaq 0x538(%rsp), %rax
cmpq %rax, %rdi
je 0x7f84
movq 0x538(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7f84
movq %rax, %rbx
movq 0x308(%rsp), %rdi
leaq 0x318(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x318(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x568(%rsp), %rdi
leaq 0x578(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x578(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x7fff
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x7fff
movq %rax, %rbx
jmp 0x80a7
movq %rax, %rbx
movq 0x628(%rsp), %rdi
leaq 0x638(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x638(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x608(%rsp), %rdi
leaq 0x618(%rsp), %rax
cmpq %rax, %rdi
je 0x8123
movq 0x618(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x8123
movq %rax, %rbx
movq 0x3e8(%rsp), %rdi
leaq 0x3f8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x3f8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x5c8(%rsp), %rdi
leaq 0x5d8(%rsp), %rax
cmpq %rax, %rdi
je 0x80a7
movq 0x5d8(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x388(%rsp), %rdi
leaq 0x398(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x398(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x5e8(%rsp), %rdi
leaq 0x5f8(%rsp), %rax
cmpq %rax, %rdi
je 0x80fa
movq 0x5f8(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x80fa
movq %rax, %rbx
movq 0x3a8(%rsp), %rdi
leaq 0x3b8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x3b8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
movq 0x3c8(%rsp), %rdi
leaq 0x3d8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x3d8(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
movq %rax, %rbx
movq 0x408(%rsp), %rdi
leaq 0x418(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x418(%rsp), %rsi
jmp 0x82ae
jmp 0x81ef
movq %rax, %rbx
movq 0x6b0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8199
movq 0x6c0(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xc40(%rsp), %rdi
leaq 0xc50(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0xc50(%rsp), %rsi
jmp 0x82ae
jmp 0x81ef
movq %rax, %rbx
movq 0x588(%rsp), %rdi
leaq 0x598(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x598(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
movq %rax, %rbx
jmp 0x82ec
movq %rax, %rbx
movq 0x648(%rsp), %rdi
leaq 0x658(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x658(%rsp), %rsi
jmp 0x82ae
jmp 0x82b8
jmp 0x82b8
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x824e
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x824e
movq %rax, %rbx
movq 0x5a8(%rsp), %rdi
leaq 0x5b8(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x5b8(%rsp), %rsi
jmp 0x82ae
movq %rax, %rbx
jmp 0x8291
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x8291
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0x668(%rsp), %rdi
leaq 0x678(%rsp), %rax
cmpq %rax, %rdi
je 0x82bb
movq 0x678(%rsp), %rsi
incq %rsi
callq 0x21e0
jmp 0x82bb
movq %rax, %rbx
leaq 0xb30(%rsp), %r13
leaq 0x100(%rsp), %rdi
callq 0x86fa
movq 0x4ce9(%rip), %rsi      # 0xcfc0
leaq 0xab8(%rsp), %rdi
callq 0x2270
movq %r13, %rdi
callq 0x2090
leaq 0xcc8(%rsp), %rdi
callq 0x2050
leaq 0x17(%rsp), %rdi
callq 0x39e6
leaq 0x5(%rsp), %rdi
callq 0x3456
leaq 0x4(%rsp), %rdi
callq 0x31d6
leaq 0x148(%rsp), %rdi
callq 0x2a82
leaq 0xc68(%rsp), %rdi
callq 0x26ec
leaq 0x7(%rsp), %rdi
callq 0x256e
movq 0x688(%rsp), %rdi
leaq 0x698(%rsp), %rax
cmpq %rax, %rdi
je 0x8360
movq 0x698(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x438(%rsp), %rax
movq 0x428(%rsp), %rdi
cmpq %rax, %rdi
je 0x8385
movq 0x438(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x138(%rsp), %rax
movq 0x128(%rsp), %rdi
cmpq %rax, %rdi
je 0x83aa
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x21e0
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x83c7
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
leaq 0xc0(%rsp), %rdi
callq 0x86fa
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x83f1
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x840e
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x842a
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x50(%rsp), %rax
movq 0x40(%rsp), %rdi
cmpq %rax, %rdi
je 0x8446
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0x198(%rsp), %rax
movq 0x188(%rsp), %rdi
cmpq %rax, %rdi
je 0x846b
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x21e0
leaq 0xed8(%rsp), %rdi
callq 0x2050
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
jmp 0x82c3