// File: Laakeri[P]Triangulator/src/IO.cpp
// Function: IO::readInput(std::istream&, std::set<std::pair<int, int>, std::less<std::pair<int, int>>, std::allocator<std::pair<int, int>>>&)
int IO::readInput(istream& in, set<pair<int, int> >& edges) {
	ios_base::sync_with_stdio(0);
	string inputLine;
	bool dimacs = false;
	paceTreeWidth = false;
	paceVertices = 0;
	assert(edges.size() == 0);
	while (getline(in, inputLine)) {
		if (inputLine[0] == '#') continue;
		if (inputLine[0] == 'c' && (dimacs || paceTreeWidth) ) continue;
		if (inputLine.size() >= 7 && inputLine.substr(0, 7) == "p edge " && nTokens(inputLine) >= 3) {
			dimacs = true;
			edges.clear();
			continue;
		}
		if (inputLine.size() >= 6 && inputLine.substr(0, 6) == "p col " && nTokens(inputLine) >= 3) {
			dimacs = true;
			edges.clear();
			continue;
		}
		if (inputLine.size() >= 5 && inputLine.substr(0, 5) == "p tw " && nTokens(inputLine) >= 3) {
			edges.clear();
			stringstream ss;
			ss<<inputLine;
			string temp;
			ss>>temp;
			ss>>temp;
			ss>>paceVertices;
			paceTreeWidth = true;
			continue;
		}
		if (inputLine.size() >= 2 && inputLine.substr(0, 2) == "p " && nTokens(inputLine) >= 3) {
			edges.clear();
			dimacs = true;
			continue;
		}
		string vA,vB;
		stringstream ss;
		ss<<inputLine;
		if (inputLine[0] == 'e' && dimacs && nTokens(inputLine) == 3) {
			char e;
			if (!(ss>>e>>vA>>vB)) {
				cerr<<"Unexpected input "<<inputLine<<endl;
				edges.clear();
				continue;
			}
		}
		else if (nTokens(inputLine) == 2 && !dimacs) {
			if (!(ss>>vA>>vB)) {
				cerr<<"Unexpected input "<<inputLine<<endl;
				edges.clear();
				continue;
			}
		}
		else {
			continue;
		}
		if (vA == vB) continue;
		if (vertices.count(vA) == 0) {
			verticeLabels.push_back(vA);
			vertices[vA] = verticeLabels.size();
		}
		if (vertices.count(vB) == 0) {
			verticeLabels.push_back(vB);
			vertices[vB] = verticeLabels.size();
		}
		int a = vertices[vA];
		int b = vertices[vB];
		if (a > b) swap(a, b);
		edges.insert({a, b});
	}
	return vertices.size();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6a0, %rsp            # imm = 0x6A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x570(%rbp)
xorl %edi, %edi
callq 0x30d0
leaq -0x38(%rbp), %rdi
callq 0x33f0
movq -0x570(%rbp), %rax
movb $0x0, -0x39(%rbp)
movb $0x0, 0x4c(%rax)
movl $0x0, 0x48(%rax)
movq -0x18(%rbp), %rdi
callq 0xe140
cmpq $0x0, %rax
jne 0x25119
jmp 0x25138
leaq 0x34a10(%rip), %rdi     # 0x59b30
leaq 0x34a1b(%rip), %rsi     # 0x59b42
movl $0x20, %edx
leaq 0x34a16(%rip), %rcx     # 0x59b49
callq 0x31a0
jmp 0x2513a
movq -0x10(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3070
movq %rax, -0x578(%rbp)
jmp 0x25150
movq -0x578(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x33a0
movb %al, -0x579(%rbp)
jmp 0x2516e
movb -0x579(%rbp), %al
testb $0x1, %al
jne 0x2517d
jmp 0x25e51
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x34e0
movq %rax, -0x588(%rbp)
jmp 0x25193
movq -0x588(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x251b5
jmp 0x2513a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x25e85
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x34e0
movq %rax, -0x590(%rbp)
jmp 0x251cb
movq -0x590(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x63, %eax
jne 0x251f2
testb $0x1, -0x39(%rbp)
jne 0x251ed
movq -0x570(%rbp), %rax
testb $0x1, 0x4c(%rax)
je 0x251f2
jmp 0x2513a
leaq -0x38(%rbp), %rdi
callq 0x31e0
movq %rax, %rcx
movb $0x0, -0x71(%rbp)
movb $0x0, -0x99(%rbp)
xorl %eax, %eax
cmpq $0x7, %rcx
movb %al, -0x591(%rbp)
jb 0x252aa
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x7, %ecx
callq 0x32e0
jmp 0x25233
movb $0x1, -0x71(%rbp)
leaq 0x3493f(%rip), %rsi     # 0x59b7d
leaq -0x70(%rbp), %rdi
callq 0x5580
movb %al, -0x592(%rbp)
jmp 0x2524f
movb -0x592(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x591(%rbp)
jne 0x25264
jmp 0x252aa
leaq -0x98(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x25276
movq -0x570(%rbp), %rdi
movb $0x1, -0x99(%rbp)
leaq -0x98(%rbp), %rsi
callq 0x24fd0
movl %eax, -0x598(%rbp)
jmp 0x25298
movl -0x598(%rbp), %eax
cmpl $0x3, %eax
setge %al
movb %al, -0x591(%rbp)
movb -0x591(%rbp), %al
movb %al, -0x599(%rbp)
testb $0x1, -0x99(%rbp)
jne 0x252c1
jmp 0x252cd
leaq -0x98(%rbp), %rdi
callq 0x3190
testb $0x1, -0x71(%rbp)
jne 0x252d5
jmp 0x252de
leaq -0x70(%rbp), %rdi
callq 0x3190
movb -0x599(%rbp), %al
testb $0x1, %al
jne 0x252ea
jmp 0x25345
movb $0x1, -0x39(%rbp)
movq -0x18(%rbp), %rdi
callq 0x26930
jmp 0x2513a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2532f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x99(%rbp)
jne 0x25321
jmp 0x2532d
leaq -0x98(%rbp), %rdi
callq 0x3190
jmp 0x2532f
testb $0x1, -0x71(%rbp)
jne 0x25337
jmp 0x25340
leaq -0x70(%rbp), %rdi
callq 0x3190
jmp 0x25e85
leaq -0x38(%rbp), %rdi
callq 0x31e0
movq %rax, %rcx
movb $0x0, -0xc1(%rbp)
movb $0x0, -0xe9(%rbp)
xorl %eax, %eax
cmpq $0x6, %rcx
movb %al, -0x59a(%rbp)
jb 0x25409
xorl %eax, %eax
movl %eax, %edx
leaq -0xc0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x6, %ecx
callq 0x32e0
jmp 0x2538c
movb $0x1, -0xc1(%rbp)
leaq 0x347eb(%rip), %rsi     # 0x59b85
leaq -0xc0(%rbp), %rdi
callq 0x5580
movb %al, -0x59b(%rbp)
jmp 0x253ae
movb -0x59b(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x59a(%rbp)
jne 0x253c3
jmp 0x25409
leaq -0xe8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x253d5
movq -0x570(%rbp), %rdi
movb $0x1, -0xe9(%rbp)
leaq -0xe8(%rbp), %rsi
callq 0x24fd0
movl %eax, -0x5a0(%rbp)
jmp 0x253f7
movl -0x5a0(%rbp), %eax
cmpl $0x3, %eax
setge %al
movb %al, -0x59a(%rbp)
movb -0x59a(%rbp), %al
movb %al, -0x5a1(%rbp)
testb $0x1, -0xe9(%rbp)
jne 0x25420
jmp 0x2542c
leaq -0xe8(%rbp), %rdi
callq 0x3190
testb $0x1, -0xc1(%rbp)
jne 0x25437
jmp 0x25443
leaq -0xc0(%rbp), %rdi
callq 0x3190
movb -0x5a1(%rbp), %al
testb $0x1, %al
jne 0x2544f
jmp 0x254b0
movb $0x1, -0x39(%rbp)
movq -0x18(%rbp), %rdi
callq 0x26930
jmp 0x2513a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x25494
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0xe9(%rbp)
jne 0x25486
jmp 0x25492
leaq -0xe8(%rbp), %rdi
callq 0x3190
jmp 0x25494
testb $0x1, -0xc1(%rbp)
jne 0x2549f
jmp 0x254ab
leaq -0xc0(%rbp), %rdi
callq 0x3190
jmp 0x25e85
leaq -0x38(%rbp), %rdi
callq 0x31e0
movq %rax, %rcx
movb $0x0, -0x111(%rbp)
movb $0x0, -0x139(%rbp)
xorl %eax, %eax
cmpq $0x5, %rcx
movb %al, -0x5a2(%rbp)
jb 0x25574
xorl %eax, %eax
movl %eax, %edx
leaq -0x110(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x5, %ecx
callq 0x32e0
jmp 0x254f7
movb $0x1, -0x111(%rbp)
leaq 0x34687(%rip), %rsi     # 0x59b8c
leaq -0x110(%rbp), %rdi
callq 0x5580
movb %al, -0x5a3(%rbp)
jmp 0x25519
movb -0x5a3(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x5a2(%rbp)
jne 0x2552e
jmp 0x25574
leaq -0x138(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x25540
movq -0x570(%rbp), %rdi
movb $0x1, -0x139(%rbp)
leaq -0x138(%rbp), %rsi
callq 0x24fd0
movl %eax, -0x5a8(%rbp)
jmp 0x25562
movl -0x5a8(%rbp), %eax
cmpl $0x3, %eax
setge %al
movb %al, -0x5a2(%rbp)
movb -0x5a2(%rbp), %al
movb %al, -0x5a9(%rbp)
testb $0x1, -0x139(%rbp)
jne 0x2558b
jmp 0x25597
leaq -0x138(%rbp), %rdi
callq 0x3190
testb $0x1, -0x111(%rbp)
jne 0x255a2
jmp 0x255ae
leaq -0x110(%rbp), %rdi
callq 0x3190
movb -0x5a9(%rbp), %al
testb $0x1, %al
jne 0x255bd
jmp 0x256ea
movq -0x18(%rbp), %rdi
callq 0x26930
leaq -0x2c8(%rbp), %rdi
callq 0x31f0
jmp 0x255d4
leaq -0x2b8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3290
jmp 0x255e6
leaq -0x2e8(%rbp), %rdi
movq %rdi, -0x5b8(%rbp)
callq 0x33f0
movq -0x5b8(%rbp), %rsi
leaq -0x2c8(%rbp), %rdi
callq 0x33b0
jmp 0x2560e
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x33b0
jmp 0x25623
movq -0x570(%rbp), %rsi
addq $0x48, %rsi
leaq -0x2c8(%rbp), %rdi
callq 0x3180
jmp 0x2563c
movq -0x570(%rbp), %rax
movb $0x1, 0x4c(%rax)
leaq -0x2e8(%rbp), %rdi
callq 0x3190
leaq -0x2c8(%rbp), %rdi
callq 0x3220
jmp 0x2513a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x25697
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x139(%rbp)
jne 0x25689
jmp 0x25695
leaq -0x138(%rbp), %rdi
callq 0x3190
jmp 0x25697
testb $0x1, -0x111(%rbp)
jne 0x256a2
jmp 0x256ae
leaq -0x110(%rbp), %rdi
callq 0x3190
jmp 0x25e85
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x256d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x3190
leaq -0x2c8(%rbp), %rdi
callq 0x3220
jmp 0x25e85
leaq -0x38(%rbp), %rdi
callq 0x31e0
movq %rax, %rcx
movb $0x0, -0x309(%rbp)
movb $0x0, -0x331(%rbp)
xorl %eax, %eax
cmpq $0x2, %rcx
movb %al, -0x5b9(%rbp)
jb 0x257ae
xorl %eax, %eax
movl %eax, %edx
leaq -0x308(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x2, %ecx
callq 0x32e0
jmp 0x25731
movb $0x1, -0x309(%rbp)
leaq 0x34453(%rip), %rsi     # 0x59b92
leaq -0x308(%rbp), %rdi
callq 0x5580
movb %al, -0x5ba(%rbp)
jmp 0x25753
movb -0x5ba(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x5b9(%rbp)
jne 0x25768
jmp 0x257ae
leaq -0x330(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x2577a
movq -0x570(%rbp), %rdi
movb $0x1, -0x331(%rbp)
leaq -0x330(%rbp), %rsi
callq 0x24fd0
movl %eax, -0x5c0(%rbp)
jmp 0x2579c
movl -0x5c0(%rbp), %eax
cmpl $0x3, %eax
setge %al
movb %al, -0x5b9(%rbp)
movb -0x5b9(%rbp), %al
movb %al, -0x5c1(%rbp)
testb $0x1, -0x331(%rbp)
jne 0x257c5
jmp 0x257d1
leaq -0x330(%rbp), %rdi
callq 0x3190
testb $0x1, -0x309(%rbp)
jne 0x257dc
jmp 0x257e8
leaq -0x308(%rbp), %rdi
callq 0x3190
movb -0x5c1(%rbp), %al
testb $0x1, %al
jne 0x257f4
jmp 0x25855
movq -0x18(%rbp), %rdi
callq 0x26930
movb $0x1, -0x39(%rbp)
jmp 0x2513a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x25839
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x331(%rbp)
jne 0x2582b
jmp 0x25837
leaq -0x330(%rbp), %rdi
callq 0x3190
jmp 0x25839
testb $0x1, -0x309(%rbp)
jne 0x25844
jmp 0x25850
leaq -0x308(%rbp), %rdi
callq 0x3190
jmp 0x25e85
leaq -0x358(%rbp), %rdi
callq 0x33f0
leaq -0x378(%rbp), %rdi
callq 0x33f0
leaq -0x500(%rbp), %rdi
callq 0x31f0
jmp 0x2587b
leaq -0x4f0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3290
jmp 0x2588d
movb $0x0, -0x521(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x34e0
movq %rax, -0x5d0(%rbp)
jmp 0x258aa
movq -0x5d0(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x65, %ecx
movb %al, -0x5d1(%rbp)
jne 0x25915
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x5d1(%rbp)
je 0x25915
leaq -0x520(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x258e1
movq -0x570(%rbp), %rdi
movb $0x1, -0x521(%rbp)
leaq -0x520(%rbp), %rsi
callq 0x24fd0
movl %eax, -0x5d8(%rbp)
jmp 0x25903
movl -0x5d8(%rbp), %eax
cmpl $0x3, %eax
sete %al
movb %al, -0x5d1(%rbp)
movb -0x5d1(%rbp), %al
movb %al, -0x5d9(%rbp)
testb $0x1, -0x521(%rbp)
jne 0x2592c
jmp 0x25938
leaq -0x520(%rbp), %rdi
callq 0x3190
movb -0x5d9(%rbp), %al
testb $0x1, %al
jne 0x25947
jmp 0x25a79
leaq -0x500(%rbp), %rdi
leaq -0x522(%rbp), %rsi
callq 0x33d0
movq %rax, -0x5e8(%rbp)
jmp 0x25963
movq -0x5e8(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x33b0
movq %rax, -0x5f0(%rbp)
jmp 0x2597f
movq -0x5f0(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x33b0
movq %rax, -0x5f8(%rbp)
jmp 0x2599b
movq -0x5f8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3110
movb %al, -0x5f9(%rbp)
jmp 0x259b9
movb -0x5f9(%rbp), %al
testb $0x1, %al
jne 0x259c8
jmp 0x25a74
movq 0x54621(%rip), %rdi     # 0x79ff0
leaq 0x341bf(%rip), %rsi     # 0x59b95
callq 0x32b0
movq %rax, -0x608(%rbp)
jmp 0x259e4
movq -0x608(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3290
movq %rax, -0x610(%rbp)
jmp 0x259fd
movq -0x610(%rbp), %rdi
movq 0x545ad(%rip), %rsi     # 0x79fb8
callq 0x3300
jmp 0x25a12
movq -0x18(%rbp), %rdi
callq 0x26930
movl $0x2, -0x528(%rbp)
jmp 0x25df1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x25e37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x25e2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x521(%rbp)
jne 0x25a63
jmp 0x25a6f
leaq -0x520(%rbp), %rdi
callq 0x3190
jmp 0x25e2b
jmp 0x25bdf
leaq -0x548(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x25a8b
movq -0x570(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x24fd0
movl %eax, -0x614(%rbp)
jmp 0x25aa6
movl -0x614(%rbp), %ecx
xorl %eax, %eax
cmpl $0x2, %ecx
movb %al, -0x615(%rbp)
jne 0x25ac4
movb -0x39(%rbp), %al
xorb $-0x1, %al
movb %al, -0x615(%rbp)
movb -0x615(%rbp), %al
movb %al, -0x616(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x3190
movb -0x616(%rbp), %al
testb $0x1, %al
jne 0x25aeb
jmp 0x25bce
leaq -0x500(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x33b0
movq %rax, -0x620(%rbp)
jmp 0x25b07
movq -0x620(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x33b0
movq %rax, -0x628(%rbp)
jmp 0x25b23
movq -0x628(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3110
movb %al, -0x629(%rbp)
jmp 0x25b41
movb -0x629(%rbp), %al
testb $0x1, %al
jne 0x25b4d
jmp 0x25bcc
movq 0x5449c(%rip), %rdi     # 0x79ff0
leaq 0x3403a(%rip), %rsi     # 0x59b95
callq 0x32b0
movq %rax, -0x638(%rbp)
jmp 0x25b69
movq -0x638(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3290
movq %rax, -0x640(%rbp)
jmp 0x25b82
movq -0x640(%rbp), %rdi
movq 0x54428(%rip), %rsi     # 0x79fb8
callq 0x3300
jmp 0x25b97
movq -0x18(%rbp), %rdi
callq 0x26930
movl $0x2, -0x528(%rbp)
jmp 0x25df1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x548(%rbp), %rdi
callq 0x3190
jmp 0x25e2b
jmp 0x25bdd
movl $0x2, -0x528(%rbp)
jmp 0x25df1
jmp 0x25bdf
leaq -0x358(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x26950
testb $0x1, %al
jne 0x25bf8
jmp 0x25c07
movl $0x2, -0x528(%rbp)
jmp 0x25df1
movq -0x570(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0xf4f0
movq %rax, -0x648(%rbp)
jmp 0x25c23
movq -0x648(%rbp), %rax
cmpq $0x0, %rax
jne 0x25c8a
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
leaq -0x358(%rbp), %rsi
callq 0x24880
jmp 0x25c49
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
callq 0x24860
movq -0x570(%rbp), %rdi
movl %eax, -0x654(%rbp)
leaq -0x358(%rbp), %rsi
callq 0xf550
movq %rax, -0x650(%rbp)
jmp 0x25c7b
movq -0x650(%rbp), %rax
movl -0x654(%rbp), %ecx
movl %ecx, (%rax)
movq -0x570(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0xf4f0
movq %rax, -0x660(%rbp)
jmp 0x25ca6
movq -0x660(%rbp), %rax
cmpq $0x0, %rax
jne 0x25d0d
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
leaq -0x378(%rbp), %rsi
callq 0x24880
jmp 0x25ccc
movq -0x570(%rbp), %rdi
addq $0x30, %rdi
callq 0x24860
movq -0x570(%rbp), %rdi
movl %eax, -0x66c(%rbp)
leaq -0x378(%rbp), %rsi
callq 0xf550
movq %rax, -0x668(%rbp)
jmp 0x25cfe
movq -0x668(%rbp), %rax
movl -0x66c(%rbp), %ecx
movl %ecx, (%rax)
movq -0x570(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0xf550
movq %rax, -0x678(%rbp)
jmp 0x25d29
movq -0x570(%rbp), %rdi
movq -0x678(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x54c(%rbp)
leaq -0x378(%rbp), %rsi
callq 0xf550
movq %rax, -0x680(%rbp)
jmp 0x25d54
movq -0x680(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x550(%rbp)
movl -0x54c(%rbp), %eax
cmpl -0x550(%rbp), %eax
jle 0x25d84
leaq -0x54c(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0x17910
movq -0x18(%rbp), %rax
movq %rax, -0x688(%rbp)
leaq -0x558(%rbp), %rdi
leaq -0x54c(%rbp), %rsi
leaq -0x550(%rbp), %rdx
callq 0xdfc0
jmp 0x25dab
movq -0x688(%rbp), %rdi
leaq -0x558(%rbp), %rsi
callq 0xde40
movb %dl, -0x691(%rbp)
movq %rax, -0x690(%rbp)
jmp 0x25dcd
movb -0x691(%rbp), %al
movq -0x690(%rbp), %rcx
movq %rcx, -0x568(%rbp)
movb %al, -0x560(%rbp)
movl $0x0, -0x528(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x3220
leaq -0x378(%rbp), %rdi
callq 0x3190
leaq -0x358(%rbp), %rdi
callq 0x3190
movl -0x528(%rbp), %eax
testl %eax, %eax
je 0x25e26
jmp 0x25e21
jmp 0x2513a
jmp 0x2513a
leaq -0x500(%rbp), %rdi
callq 0x3220
leaq -0x378(%rbp), %rdi
callq 0x3190
leaq -0x358(%rbp), %rdi
callq 0x3190
jmp 0x25e85
movq -0x570(%rbp), %rdi
callq 0xdd70
movl %eax, -0x698(%rbp)
movl $0x1, -0x528(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3190
movl -0x698(%rbp), %eax
addq $0x6a0, %rsp            # imm = 0x6A0
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x3190
movq -0x48(%rbp), %rdi
callq 0x3480
nopw (%rax,%rax)