// File: /workspace/github_cpp_makefile_star2_O1/kipa00[P]AplusB-mc/interpreter/main.cpp
// Function: main
int main(int argc, char *argv[]) {
	int ban_block = 0, tick_limit = -1;
	int parse_status = 0;
	string fn = "";
	for (int i=1; i<argc; ++i) {
		string now_argv = argv[i];
		if (now_argv == "--max-tick") {
			parse_status = 1;
		} else if (now_argv == "--ban-block") {
			parse_status = 2;
		} else {
			if (parse_status == 0) {
				if (fn == "") fn = argv[i];
				else {
					help(argv[0]);
					return -1;
				}
			} else if (parse_status == 1) {
				if (sscanf(now_argv.c_str(), "%d", &tick_limit) != 1 || tick_limit < 0) {
					help(argv[0]);
					return -1;
				}
				parse_status = 0;
			} else if (parse_status == 2) {
				if (now_argv == "wire") ban_block |= 2;
				else if (now_argv == "torch") ban_block |= 4;
				else if (now_argv == "repeater") ban_block |= 120;
				else if (now_argv == "comparator") ban_block |= 384;
				else {
					help(argv[0]);
					return -1;
				}
				parse_status = 0;
			}
		}
	}
	if (parse_status != 0 || fn == "") {
		help(argv[0]);
		return -1;
	}
	bytereader bs(argv[1]);
	vector<node *> graph;
	byte b;
	graph.push_back(nullptr);
	while ((b = bs.read_byte()) != 255) {
		node *n = nullptr;
		if (ban_block & (1 << (b >> 4))) {
			fprintf(stderr, "stopping execution from error: banned block used\n");
			return -2;
		}
		switch (b >> 4) {
			case 1: // redstone wire
				n = new wire;
				break;
			case 2: // redstone torch
				n = new torch;
				break;
			case 3:
			case 4:
			case 5:
			case 6: // repeater
				n = new repeater((b >> 4) - 2);
				break;
			case 7: // comparator
				n = new comparator;
				break;
			case 8: // subtractor
				n = new subtractor;
				break;
			case 9: // lever
				n = new lever;
				break;
			case 10: // lamp
				n = new lamp;
				break;
		}
		switch (b >> 4) {
			case 2: // redstone torch
			case 9: // lever
			case 10: // lamp
				{
					int u;
					while ((u = bs.read_int()) >= 0) {
						n->input.push_back(u);
					}
				}
				break;
			case 1: // redstone wire
			case 3:
			case 4:
			case 5:
			case 6: // repeater
			case 7: // comparator
			case 8: // subtractor
				for (int i=0; i<2; ++i) {
					int u;
					while ((u = bs.read_int()) >= 0) {
						n->input.push_back(u);
					}
					if (i == 0) n->input.push_back(-1);
				}
				break;
		}
		if (!n) {
			fprintf(stderr, "stopping execution from serious error: corrupted file!\n");
			return -2;
		}
		{
			int u;
			while ((u = bs.read_int()) >= 0) {
				n->need_update.push_back(u);
			}
		}
		n->power = b & 15;
		graph.push_back(n);
	}
	vector<int> input[16], output;
	int input_count = 0;
	{
		int u;
		while ((u = bs.read_int()) >= 0) {
			do {
				input[input_count].push_back(u);
			} while ((u = bs.read_int()) >= 0);
			++input_count;
		}
		while ((u = bs.read_int()) >= 0) {
			output.push_back(u);
		}
	}
	queue<int> temp[5], *update[5];
	for (int i=0; i<5; ++i) {
		update[i] = &temp[i];
	}
	for (int i=0; i<input_count; ++i) {
		i64 t;
		scanf("%lld", &t);
		for (const auto &node_idx : input[i]) {
			lever *n = (lever *)graph[node_idx];
			if (n->set_as(t & 1)) {
				for (const int &x : n->need_update) {
					update[graph[x]->delay]->push(x);
				}
			}
			t >>= 1;
		}
	}
	int tick = 0, last_updated_tick = 0;
	mt19937 gen(std::chrono::steady_clock::now().time_since_epoch().count());
	while (!update[0]->empty() || !update[1]->empty() || !update[2]->empty() || !update[3]->empty() || !update[4]->empty()) {
		if (tick_limit >= 0 && tick > tick_limit + 4) {
			fprintf(stderr, "stopping execution from error: tick limit exceeded\n");
			return -2;
		}
		{
			vector<int> temp;
			while (!update[0]->empty()) {
				temp.push_back(update[0]->front());
				update[0]->pop();
			}
			shuffle(temp.begin(), temp.end(), gen);
			for (const int &x : temp) {
				update[0]->push(x);
			}
		}
		while (!update[0]->empty()) {
			const int f = update[0]->front();
			update[0]->pop();
			node *now_node = graph[f];
			int a = -1, b = -1;
			for (const int &other : now_node->input) {
				if (other >= 0) {
					a = std::max(a, graph[other]->power);
				} else {
					b = std::max(a, 0);
					a = 0;
				}
			}
			bool result = false;
			if (b < 0) {
				result = now_node->update(std::max(a, 0));
			} else {
				result = now_node->update(b, a);
			}
#ifdef UPDATE_DEBUG
			fprintf(stderr, "updated node %d, now strength = %d, redstone update = %s\n", f, now_node->power, result ? "true" : "false");
#endif
			if (result) {
				for (const int &other : now_node->need_update) {
					update[graph[other]->delay]->push(other);
				}
				for (const int &other : now_node->input) {
					if (other >= 0) {
						update[graph[other]->delay]->push(other);
					}
				}
				last_updated_tick = tick;
			}
		}
		++tick;
#ifdef UPDATE_DEBUG
		puts("===");
#endif
		{
			auto temp = update[0];
			update[0] = update[1];
			update[1] = update[2];
			update[2] = update[3];
			update[3] = update[4];
			update[4] = temp;
		}
	}
	if (tick_limit >= 0 && last_updated_tick > tick_limit) {
		fprintf(stderr, "stopping execution from error: tick limit exceeded\n");
		return -2;
	}
	u64 t = 0;
	int i;
	for (i=0; i<output.size(); ++i) {
		t |= (graph[output[i]]->power ? 1 : 0) << i;
	}
	printf("%llu\n", t);
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1808, %rsp           # imm = 0x1808
movq %rsi, %r12
movl %edi, %ebx
movl $0xffffffff, 0x18(%rsp) # imm = 0xFFFFFFFF
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x2d0c(%rip), %rdx      # 0x5249
leaq 0xb0(%rsp), %rdi
movq %rdx, %rsi
callq 0x3650
cmpl $0x2, %ebx
setge %r15b
jl 0x280c
movl %ebx, %eax
movl $0x1, %ecx
movq %rax, 0x38(%rsp)
subq %rax, %rcx
movq %rcx, 0x78(%rsp)
movq $0x0, 0x8(%rsp)
movl $0x2, %r14d
movl $0x0, 0x10(%rsp)
xorl %r13d, %r13d
movq %r12, 0xd0(%rsp)
movq -0x8(%r12,%r14,8), %rsi
leaq 0x480(%rsp), %rbx
movq %rbx, %rdi
leaq 0x2f0(%rsp), %rdx
callq 0x3446
movq %rbx, %rdi
leaq 0x2bf0(%rip), %rsi      # 0x51a7
callq 0x2060
movb $0x1, %bpl
testl %eax, %eax
je 0x26b7
movq %rbx, %rdi
leaq 0x2be1(%rip), %rsi      # 0x51b2
callq 0x2060
testl %eax, %eax
je 0x27b7
cmpl $0x1, %r13d
je 0x264b
testl %r13d, %r13d
jne 0x26c4
leaq 0xb0(%rsp), %rdi
leaq 0x2c4d(%rip), %rsi      # 0x5249
callq 0x2060
testl %eax, %eax
jne 0x273f
movq -0x8(%r12,%r14,8), %rbx
movq 0xb8(%rsp), %r12
movq %rbx, %rdi
callq 0x2090
xorl %r13d, %r13d
movb $0x1, %bpl
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
movq %r12, %rdx
movq 0xd0(%rsp), %r12
movq %rbx, %rcx
movq %rax, %r8
callq 0x21c0
movb $0x1, %bl
jmp 0x27bf
movq 0x480(%rsp), %rdi
xorl %r13d, %r13d
leaq 0x2b61(%rip), %rsi      # 0x51be
leaq 0x18(%rsp), %rdx
xorl %eax, %eax
callq 0x2100
cmpl $0x1, %eax
jne 0x267c
movb $0x1, %bpl
cmpl $0x0, 0x18(%rsp)
jns 0x2738
movq (%r12), %rsi
leaq 0x130(%rsp), %rbx
movq %rbx, %rdi
leaq 0x1e(%rsp), %r13
movq %r13, %rdx
callq 0x3446
movq %rbx, %rdi
leaq 0x140(%rsp), %rsi
movq %r13, %rdx
callq 0x22b6
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x8(%rsp)
xorl %ebp, %ebp
xorl %ebx, %ebx
movl $0x1, %r13d
jmp 0x27bf
movq %rbx, %rdi
leaq 0x2af3(%rip), %rsi      # 0x51c1
callq 0x2060
testl %eax, %eax
leaq 0x1d(%rsp), %r13
je 0x271f
movq %rbx, %rdi
leaq 0x2ae0(%rip), %rsi      # 0x51c6
callq 0x2060
testl %eax, %eax
je 0x2726
movq %rbx, %rdi
leaq 0x2ad3(%rip), %rsi      # 0x51cc
callq 0x2060
testl %eax, %eax
je 0x272d
movq %rbx, %rdi
leaq 0x2ac9(%rip), %rsi      # 0x51d5
callq 0x2060
testl %eax, %eax
jne 0x2781
orl $0x180, 0x10(%rsp)      # imm = 0x180
jmp 0x2732
orl $0x2, 0x10(%rsp)
jmp 0x2732
orl $0x4, 0x10(%rsp)
jmp 0x2732
orl $0x78, 0x10(%rsp)
xorl %r13d, %r13d
movb $0x1, %bpl
movb $0x1, %bl
jmp 0x27bf
movq (%r12), %rsi
leaq 0x150(%rsp), %rbx
movq %rbx, %rdi
leaq 0x1f(%rsp), %r13
movq %r13, %rdx
callq 0x3446
movq %rbx, %rdi
leaq 0x160(%rsp), %rsi
movq %r13, %rdx
callq 0x22e0
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x8(%rsp)
xorl %ebp, %ebp
movb $0x1, %bl
xorl %r13d, %r13d
jmp 0x27bf
movq (%r12), %rsi
leaq 0x110(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rdx
callq 0x3446
movq %rbx, %rdi
leaq 0x120(%rsp), %rsi
movq %r13, %rdx
callq 0x230a
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x8(%rsp)
xorl %ebp, %ebp
xorl %ebx, %ebx
movl $0x2, %r13d
movq 0x480(%rsp), %rdi
leaq 0x490(%rsp), %rax
cmpq %rax, %rdi
je 0x27e4
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x2130
testb %bpl, %bpl
je 0x281f
cmpq 0x38(%rsp), %r14
setb %r15b
movq 0x78(%rsp), %rax
addq %r14, %rax
incq %rax
incq %r14
cmpq $0x2, %rax
jne 0x2590
jmp 0x281f
movl $0x0, 0x10(%rsp)
movb $0x1, %bl
movq $0x0, 0x8(%rsp)
testb $0x1, %r15b
jne 0x3273
testb %bl, %bl
je 0x3140
leaq 0x2a11(%rip), %rsi      # 0x5249
leaq 0xb0(%rsp), %rdi
callq 0x2060
testl %eax, %eax
je 0x3140
movq 0x8(%r12), %rsi
leaq 0xd8(%rsp), %rdi
callq 0x4174
pxor %xmm0, %xmm0
leaq 0x20(%rsp), %rdi
movdqa %xmm0, (%rdi)
xorl %eax, %eax
movq %rax, 0x10(%rdi)
leaq 0x480(%rsp), %rsi
movq %rax, (%rsi)
callq 0x36e0
leaq 0xd8(%rsp), %r15
leaq 0x2f0(%rsp), %r14
leaq 0x170(%rsp), %rbp
movq %r15, %rdi
callq 0x4230
cmpb $-0x1, %al
je 0x2b59
movzbl %al, %r13d
movq $0x0, 0x480(%rsp)
movl %r13d, %r12d
shrl $0x4, %r12d
movl 0x10(%rsp), %eax
btl %r12d, %eax
jb 0x2b34
leal -0x1(%r12), %eax
cmpl $0x9, %eax
ja 0x29b3
leaq 0x27ac(%rip), %rcx      # 0x5090
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x48, %edi
callq 0x2120
movq %rax, %rbx
leal -0x2(%r12), %esi
movq %rax, %rdi
callq 0x436c
movq %rbx, 0x480(%rsp)
cmpl $0xa, %r12d
ja 0x29b3
movl $0x1fa, %eax            # imm = 0x1FA
btl %r12d, %eax
jae 0x2a46
xorl %ebx, %ebx
movq %r15, %rdi
callq 0x4294
movl %eax, 0x2f0(%rsp)
testl %eax, %eax
js 0x2969
movq 0x480(%rsp), %rdi
movq 0x10(%rdi), %rsi
cmpq 0x18(%rdi), %rsi
je 0x295b
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x10(%rdi)
jmp 0x292a
addq $0x8, %rdi
movq %r14, %rdx
callq 0x384c
jmp 0x292a
testl %ebx, %ebx
jne 0x29a6
movq 0x480(%rsp), %rdi
movl $0xffffffff, 0x170(%rsp) # imm = 0xFFFFFFFF
movq 0x10(%rdi), %rsi
cmpq 0x18(%rdi), %rsi
je 0x299a
movl $0xffffffff, (%rsi)     # imm = 0xFFFFFFFF
addq $0x4, %rsi
movq %rsi, 0x10(%rdi)
jmp 0x29a6
addq $0x8, %rdi
movq %rbp, %rdx
callq 0x3988
leal 0x1(%rbx), %eax
testl %ebx, %ebx
movl %eax, %ebx
je 0x292a
cmpq $0x0, 0x480(%rsp)
je 0x2b3b
movq %r15, %rdi
callq 0x4294
movl %eax, 0x2f0(%rsp)
testl %eax, %eax
js 0x2a01
movq 0x480(%rsp), %rdi
movq 0x28(%rdi), %rsi
cmpq 0x30(%rdi), %rsi
je 0x29f3
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rdi)
jmp 0x29c2
addq $0x20, %rdi
movq %r14, %rdx
callq 0x384c
jmp 0x29c2
andl $0xf, %r13d
movq 0x480(%rsp), %rax
movl %r13d, 0x38(%rax)
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x2a2d
movq %rax, (%rsi)
addq $0x8, 0x28(%rsp)
movb $0x1, %bl
jmp 0x2b4c
movb $0x1, %bl
leaq 0x20(%rsp), %rdi
leaq 0x480(%rsp), %rdx
callq 0x3a64
jmp 0x2b4c
movl $0x604, %eax            # imm = 0x604
btl %r12d, %eax
jae 0x29b3
movq %r15, %rdi
callq 0x4294
movl %eax, 0x2f0(%rsp)
testl %eax, %eax
js 0x29b3
movq 0x480(%rsp), %rdi
movq 0x10(%rdi), %rsi
cmpq 0x18(%rdi), %rsi
je 0x2a8a
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x10(%rdi)
jmp 0x2a55
addq $0x8, %rdi
movq %r14, %rdx
callq 0x384c
jmp 0x2a55
movl $0x40, %edi
callq 0x2120
movq %rax, %rbx
movq %rax, %rdi
callq 0x447a
jmp 0x2907
movl $0x40, %edi
callq 0x2120
movq %rax, %rbx
movq %rax, %rdi
callq 0x42c8
jmp 0x2907
movl $0x40, %edi
callq 0x2120
movq %rax, %rbx
movq %rax, %rdi
callq 0x432e
jmp 0x2907
movl $0x40, %edi
callq 0x2120
movq %rax, %rbx
movq %rax, %rdi
callq 0x43fe
jmp 0x2907
movl $0x40, %edi
callq 0x2120
movq %rax, %rbx
movq %rax, %rdi
callq 0x43c4
jmp 0x2907
movl $0x40, %edi
callq 0x2120
movq %rax, %rbx
movq %rax, %rdi
callq 0x443a
jmp 0x2907
callq 0x2334
jmp 0x2b40
callq 0x2356
movl $0xfffffffe, %eax       # imm = 0xFFFFFFFE
movq %rax, 0x8(%rsp)
xorl %ebx, %ebx
testb %bl, %bl
jne 0x289a
jmp 0x324f
leaq 0x170(%rsp), %rdi
xorl %r13d, %r13d
movl $0x180, %edx            # imm = 0x180
xorl %esi, %esi
callq 0x20c0
pxor %xmm0, %xmm0
movdqa %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0xd8(%rsp), %rbx
leaq 0x480(%rsp), %r15
movq %rbx, %rdi
callq 0x4294
movl %eax, 0x480(%rsp)
testl %eax, %eax
js 0x2bff
leaq (,%r13,2), %rax
addq %r13, %rax
leaq (%rsp,%rax,8), %r12
addq $0x170, %r12            # imm = 0x170
movq 0x8(%r12), %rsi
cmpq 0x10(%r12), %rsi
je 0x2bdc
movl 0x480(%rsp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%r12)
jmp 0x2be7
movq %r12, %rdi
movq %r15, %rdx
callq 0x384c
movq %rbx, %rdi
callq 0x4294
movl %eax, 0x480(%rsp)
testl %eax, %eax
jns 0x2bbc
incq %r13
jmp 0x2b93
leaq 0xd8(%rsp), %rbx
leaq 0x60(%rsp), %r15
leaq 0x480(%rsp), %r12
movq %rbx, %rdi
callq 0x4294
movl %eax, 0x480(%rsp)
testl %eax, %eax
js 0x2c4d
movq 0x68(%rsp), %rsi
cmpq 0x70(%rsp), %rsi
je 0x2c40
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x68(%rsp)
jmp 0x2c14
movq %r15, %rdi
movq %r12, %rdx
callq 0x384c
jmp 0x2c14
xorl %ebx, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x2f0, %rdi            # imm = 0x2F0
pxor %xmm0, %xmm0
movdqa %xmm0, 0x40(%rdi)
movdqa %xmm0, 0x30(%rdi)
movdqa %xmm0, 0x20(%rdi)
movdqa %xmm0, 0x10(%rdi)
movdqa %xmm0, (%rdi)
xorl %esi, %esi
callq 0x3b40
addq $0x50, %rbx
cmpq $0x190, %rbx            # imm = 0x190
jne 0x2c4f
movdqa 0x237e(%rip), %xmm0     # 0x5010
movl $0x1, %eax
movdqa 0x2381(%rip), %xmm1     # 0x5020
movdqa 0x2389(%rip), %xmm2     # 0x5030
pshufd $0xf5, %xmm2, %xmm3     # xmm3 = xmm2[1,1,3,3]
movdqa 0x238c(%rip), %xmm4     # 0x5040
movdqa %xmm0, %xmm5
pxor %xmm1, %xmm5
movdqa %xmm2, %xmm6
pcmpgtd %xmm5, %xmm6
pshufd $0xf5, %xmm5, %xmm5     # xmm5 = xmm5[1,1,3,3]
pcmpeqd %xmm3, %xmm5
pand %xmm6, %xmm5
movd %xmm5, %ecx
testb $0x1, %cl
je 0x2cdf
movq %r14, 0x78(%rsp,%rax,8)
pextrw $0x4, %xmm5, %ecx
testb $0x1, %cl
je 0x2cf5
leaq 0x50(%r14), %rcx
movq %rcx, 0x80(%rsp,%rax,8)
paddq %xmm4, %xmm0
addq $0x2, %rax
addq $0xa0, %r14
cmpq $0x7, %rax
jne 0x2cb4
testq %r13, %r13
je 0x2de3
movl %r13d, %r13d
xorl %ebp, %ebp
leaq 0x252b(%rip), %rdi      # 0x524a
leaq 0x480(%rsp), %rsi
xorl %eax, %eax
callq 0x2140
leaq (,%rbp,2), %rax
addq %rbp, %rax
movq 0x170(%rsp,%rax,8), %rbx
movq 0x178(%rsp,%rax,8), %r14
cmpq %r14, %rbx
je 0x2dd7
movslq (%rbx), %rax
movq 0x20(%rsp), %rcx
movq (%rcx,%rax,8), %r12
movl 0x480(%rsp), %esi
andl $0x1, %esi
movq %r12, %rdi
callq 0x4460
testb %al, %al
je 0x2dc6
movq 0x20(%r12), %r15
movq 0x28(%r12), %r12
cmpq %r12, %r15
je 0x2dc6
movslq (%r15), %rax
movq 0x20(%rsp), %rcx
movq (%rcx,%rax,8), %rcx
movslq 0x3c(%rcx), %rcx
movq 0x80(%rsp,%rcx,8), %rdi
movq 0x30(%rdi), %rcx
movq 0x40(%rdi), %rdx
addq $-0x4, %rdx
cmpq %rdx, %rcx
je 0x2db8
movl %eax, (%rcx)
addq $0x4, %rcx
movq %rcx, 0x30(%rdi)
jmp 0x2dc0
movq %r15, %rsi
callq 0x3cb6
addq $0x4, %r15
jmp 0x2d7e
sarq 0x480(%rsp)
addq $0x4, %rbx
jmp 0x2d49
incq %rbp
cmpq %r13, %rbp
jne 0x2d18
callq 0x2180
movl %eax, %eax
movq %rax, 0x480(%rsp)
movl $0x1, %ecx
movq %rax, %rdx
shrq $0x1e, %rdx
xorl %eax, %edx
imull $0x6c078965, %edx, %eax # imm = 0x6C078965
addl %ecx, %eax
movq %rax, 0x480(%rsp,%rcx,8)
incq %rcx
cmpq $0x270, %rcx            # imm = 0x270
jne 0x2df7
leaq 0x480(%rsp), %rax
movq $0x270, 0x1380(%rax) # imm = 0x270
movq 0x80(%rsp), %r14
movq 0x88(%rsp), %rcx
movq 0x90(%rsp), %rbx
movq 0x98(%rsp), %r12
movq 0xa0(%rsp), %rax
xorl %ebp, %ebp
xorl %r15d, %r15d
movq %rcx, 0x10(%rsp)
movq %rax, 0x38(%rsp)
movq 0x30(%r14), %rax
cmpq 0x10(%r14), %rax
jne 0x2ea8
movq 0x10(%rsp), %rcx
movq 0x30(%rcx), %rax
cmpq 0x10(%rcx), %rax
jne 0x2ea8
movq 0x30(%rbx), %rax
cmpq 0x10(%rbx), %rax
jne 0x2ea8
movq 0x30(%r12), %rax
cmpq 0x10(%r12), %rax
jne 0x2ea8
movq 0x38(%rsp), %rcx
movq 0x30(%rcx), %rax
cmpq 0x10(%rcx), %rax
je 0x317d
movl 0x18(%rsp), %eax
testl %eax, %eax
setns %cl
addl $0x4, %eax
cmpl %eax, %r15d
setg %al
andb %cl, %al
cmpb $0x1, %al
je 0x312c
pxor %xmm0, %xmm0
movdqa %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
movq 0x10(%r14), %rdx
cmpq %rdx, 0x30(%r14)
je 0x2f10
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x2efc
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x48(%rsp)
jmp 0x2f06
leaq 0x40(%rsp), %rdi
callq 0x384c
movq %r14, %rdi
callq 0x3eca
jmp 0x2ed7
movq %r12, 0x78(%rsp)
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rsi
leaq 0x480(%rsp), %rdx
callq 0x3483
movq 0x40(%rsp), %r12
movq 0x48(%rsp), %r13
cmpq %r13, %r12
je 0x2f6d
movq 0x30(%r14), %rax
movq 0x40(%r14), %rcx
addq $-0x4, %rcx
cmpq %rcx, %rax
je 0x2f5c
movl (%r12), %ecx
movl %ecx, (%rax)
addq $0x4, %rax
movq %rax, 0x30(%r14)
jmp 0x2f67
movq %r14, %rdi
movq %r12, %rsi
callq 0x3cb6
addq $0x4, %r12
jmp 0x2f36
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x30d6
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
jmp 0x30d6
movslq (%rax), %r12
movq %r14, %rdi
callq 0x3eca
movq 0x20(%rsp), %rax
movq (%rax,%r12,8), %r12
movq 0x8(%r12), %rcx
movq 0x10(%r12), %rdi
cmpq %rdi, %rcx
je 0x2feb
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movslq (%rcx), %r8
testq %r8, %r8
js 0x2fd3
movq (%rax,%r8,8), %r8
movl 0x38(%r8), %r8d
cmpl %r8d, %edx
cmovlel %r8d, %edx
jmp 0x2fe0
xorl %r8d, %r8d
testl %edx, %edx
movl %edx, %esi
cmovlel %r8d, %esi
xorl %edx, %edx
addq $0x4, %rcx
cmpq %rdi, %rcx
jne 0x2fba
jmp 0x2ff5
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
testl %esi, %esi
js 0x3005
movq (%r12), %rax
movq %r12, %rdi
callq *0x8(%rax)
jmp 0x301a
testl %edx, %edx
movl $0x0, %eax
cmovlel %eax, %edx
movq (%r12), %rax
movq %r12, %rdi
movl %edx, %esi
callq *(%rax)
testb %al, %al
je 0x30d6
movq 0x20(%r12), %r13
movq 0x28(%r12), %rbp
cmpq %rbp, %r13
je 0x3075
movslq (%r13), %rax
movq 0x20(%rsp), %rcx
movq (%rcx,%rax,8), %rcx
movslq 0x3c(%rcx), %rcx
movq 0x80(%rsp,%rcx,8), %rdi
movq 0x30(%rdi), %rcx
movq 0x40(%rdi), %rdx
addq $-0x4, %rdx
cmpq %rdx, %rcx
je 0x3067
movl %eax, (%rcx)
addq $0x4, %rcx
movq %rcx, 0x30(%rdi)
jmp 0x306f
movq %r13, %rsi
callq 0x3cb6
addq $0x4, %r13
jmp 0x302c
movq 0x8(%r12), %r13
movq 0x10(%r12), %r12
movl %r15d, %ebp
cmpq %r12, %r13
je 0x30d6
movslq (%r13), %rax
testq %rax, %rax
js 0x30ca
movq 0x20(%rsp), %rcx
movq (%rcx,%rax,8), %rcx
movslq 0x3c(%rcx), %rcx
movq 0x80(%rsp,%rcx,8), %rdi
movq 0x30(%rdi), %rcx
movq 0x40(%rdi), %rdx
addq $-0x4, %rdx
cmpq %rdx, %rcx
je 0x30c2
movl %eax, (%rcx)
addq $0x4, %rcx
movq %rcx, 0x30(%rdi)
jmp 0x30ca
movq %r13, %rsi
callq 0x3cb6
addq $0x4, %r13
cmpq %r12, %r13
jne 0x3087
movl %r15d, %ebp
movq 0x10(%r14), %rax
cmpq %rax, 0x30(%r14)
jne 0x2f8d
incl %r15d
movq 0x10(%rsp), %rdx
movq %rdx, 0x80(%rsp)
movq %rbx, %rcx
movq %rbx, 0x88(%rsp)
movq 0x78(%rsp), %rbx
movq %rbx, 0x90(%rsp)
movq 0x38(%rsp), %r12
movq %r12, 0x98(%rsp)
movq %r14, 0xa0(%rsp)
movq %r14, %rax
movq %rdx, %r14
jmp 0x2e5c
callq 0x2378
movl $0xfffffffe, %eax       # imm = 0xFFFFFFFE
movq %rax, 0x8(%rsp)
jmp 0x31f1
movq (%r12), %rsi
leaq 0xf0(%rsp), %rdi
leaq 0x480(%rsp), %rdx
callq 0x3446
leaq 0xf0(%rsp), %rdi
leaq 0x480(%rsp), %rsi
callq 0x23bc
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x8(%rsp)
jmp 0x3273
movl 0x18(%rsp), %eax
testl %eax, %eax
js 0x318d
cmpl %eax, %ebp
jg 0x32af
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rdx
movq $0x0, 0x8(%rsp)
subq %rax, %rdx
je 0x31e1
sarq $0x2, %rdx
movq 0x20(%rsp), %rdi
cmpq $0x1, %rdx
adcq $0x0, %rdx
xorl %ecx, %ecx
xorl %esi, %esi
movslq (%rax,%rcx,4), %r8
movq (%rdi,%r8,8), %r8
xorl %r9d, %r9d
cmpl $0x0, 0x38(%r8)
setne %r9b
shll %cl, %r9d
movslq %r9d, %r8
orq %r8, %rsi
incq %rcx
cmpq %rcx, %rdx
jne 0x31ba
jmp 0x31e3
xorl %esi, %esi
leaq 0x2099(%rip), %rdi      # 0x5283
xorl %eax, %eax
callq 0x2040
movl $0x140, %ebx            # imm = 0x140
leaq (%rsp,%rbx), %rdi
addq $0x2f0, %rdi            # imm = 0x2F0
callq 0x3600
addq $-0x50, %rbx
cmpq $-0x50, %rbx
jne 0x31f6
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x3227
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movl $0x180, %ebx            # imm = 0x180
movq 0x158(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x3249
movq 0x168(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x2130
addq $-0x18, %rbx
jne 0x322c
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3266
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
leaq 0xd8(%rsp), %rdi
callq 0x41e8
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x3298
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x2130
movq 0x8(%rsp), %rax
addq $0x1808, %rsp           # imm = 0x1808
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x239a
jmp 0x3131
jmp 0x32df
jmp 0x338f
jmp 0x334e
jmp 0x32cf
jmp 0x32cf
jmp 0x32cf
jmp 0x32cf
jmp 0x32cf
movq %rax, %r14
movl $0x40, %esi
jmp 0x3318
jmp 0x334e
jmp 0x32df
jmp 0x32df
movq %rax, %r14
movq 0x480(%rsp), %rdi
leaq 0x490(%rsp), %rax
cmpq %rax, %rdi
je 0x3419
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x2130
jmp 0x3419
movq %rax, %r14
movl $0x48, %esi
movq %rbx, %rdi
callq 0x2130
jmp 0x33f5
movq %rax, %r14
testq %rbx, %rbx
je 0x33b6
leaq 0x2a0(%rsp), %r15
leaq (%r15,%rbx), %rdi
callq 0x3600
addq $-0x50, %rbx
jne 0x3339
jmp 0x33b6
jmp 0x3364
jmp 0x338f
movq %rax, %r14
jmp 0x3419
jmp 0x338f
jmp 0x3364
jmp 0x338f
jmp 0x338f
jmp 0x336f
jmp 0x3394
jmp 0x338f
movq %rax, %r14
jmp 0x33b6
jmp 0x3394
jmp 0x3394
jmp 0x336f
movq %rax, %r14
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x3397
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
jmp 0x3397
jmp 0x3394
jmp 0x3394
movq %rax, %r14
jmp 0x33f5
movq %rax, %r14
movl $0x140, %ebx            # imm = 0x140
leaq (%rsp,%rbx), %rdi
addq $0x2f0, %rdi            # imm = 0x2F0
callq 0x3600
addq $-0x50, %rbx
cmpq $-0x50, %rbx
jne 0x339c
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x33cd
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
movl $0x180, %ebx            # imm = 0x180
movq 0x158(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x33ef
movq 0x168(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x2130
addq $-0x18, %rbx
jne 0x33d2
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x340c
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x2130
leaq 0xd8(%rsp), %rdi
callq 0x41e8
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x343e
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x2130
movq %r14, %rdi
callq 0x2200