// File: ksherlock[P]wdc-utils/dumpobj.cpp
// Function: dump_obj(char const*, int)
bool dump_obj(const char *name, int fd)
{
	Mod_head h;
	ssize_t ok;

	ok = read(fd, &h, sizeof(h));
	if (ok == 0) return false;

	if (ok != sizeof(h))
		errx(EX_DATAERR, "%s is not an object file", name);


	le_to_host(h.h_magic);
	le_to_host(h.h_version);
	le_to_host(h.h_filtyp);
	le_to_host(h.h_namlen);
	le_to_host(h.h_recsize);
	le_to_host(h.h_secsize);
	le_to_host(h.h_symsize);
	le_to_host(h.h_optsize);
	le_to_host(h.h_tot_secs);
	le_to_host(h.h_num_secs);
	le_to_host(h.h_num_syms);

	assert(h.h_magic == MOD_MAGIC);
	assert(h.h_version == 1);
	assert(h.h_filtyp == 1);

	// now read the name (h_namlen includes 0 terminator.)
	std::vector<char> oname;
	oname.resize(h.h_namlen);
	ok = read(fd, oname.data(), h.h_namlen);
	if (ok != h.h_namlen) errx(EX_DATAERR, "%s", name);


	// records [until record_eof]

	std::vector<uint8_t> data;
	data.resize(h.h_recsize);
	ok = read(fd, data.data(), h.h_recsize);
	if (ok != h.h_recsize) errx(EX_DATAERR, "%s records truncated", name);


	std::vector<uint8_t> section_data;
	section_data.resize(h.h_secsize);
	ok = read(fd, section_data.data(), h.h_secsize);
	if (ok != h.h_secsize) errx(EX_DATAERR, "%s sections truncated", name);


	std::vector<uint8_t> symbol_data;
	symbol_data.resize(h.h_symsize);
	ok = read(fd, symbol_data.data(), h.h_symsize);
	if (ok != h.h_symsize) errx(EX_DATAERR, "%s symbols truncated", name);

	if (h.h_optsize) lseek(fd, h.h_optsize, SEEK_CUR);


	zrdz_disassembler d(read_sections(section_data), read_symbols(symbol_data));

	uint8_t op = REC_END;
	unsigned line = 0;


	d.front_matter(std::string(oname.data()));

	auto iter = data.begin();
	while (iter != data.end()) {


		op = read_8(iter);
		if (op == 0) break;
		if (op < 0xf0) {
			auto end = iter + op;
			while (iter != end) {
				d(*iter++);
			}
			continue;
		}

		switch(op) {

			case REC_RELEXP:
			case REC_EXPR:
				{

					// todo -- pass the relative flag to ()
					// so it can verify it's appropriate for the opcode.

					// todo -- move all this stuff to a separate function.
					uint8_t size = read_8(iter);

					std::vector<std::string> stack;

					// todo -- need to keep operation for precedence?
					// this ignores all precedence...

					for(;;) {
						uint8_t op = read_8(iter);
						if (op == OP_END) break;
						switch (op) {
							case OP_LOC: {
								uint8_t section = read_8(iter);
								uint32_t offset = read_32(iter);


								std::string name;
								if (flags.n) {
									name = d.section_name(section) + "+" + d.to_x(offset, 4, '$');
								} else {
									name = d.location_name(section, offset);
								}
								stack.emplace_back(std::move(name));
								break;
							}

							case OP_VAL:
								stack.push_back(d.to_x(read_32(iter), 4, '$'));
								break;

							case OP_SYM: {
								uint16_t symbol = read_16(iter);
								stack.emplace_back(d.symbol_name(symbol));
								break;
							}

							// unary operatos
							case OP_NOT:
							case OP_NEG:
							case OP_FLP: {
								static const std::string ops[] = {
									".NOT.", "-", "\\"
								};

								if (stack.empty()) errx(EX_DATAERR, "%s : stack underflow error", name);
								std::string a = std::move(stack.back()); stack.pop_back();
								std::string b(ops[op-10]);
								stack.emplace_back(b + a);
								break;
							}

							// binary operators
							case OP_EXP:
							case OP_MUL:
							case OP_DIV:
							case OP_MOD:
							case OP_SHR:
							case OP_SHL:
							case OP_ADD:
							case OP_SUB:
							case OP_AND:
							case OP_OR:
							case OP_XOR:
							case OP_EQ:
							case OP_GT:
							case OP_LT:
							case OP_UGT:
							case OP_ULT: {
								static const std::string ops[] = {
									"**", "*", "/", ".MOD.", ">>", "<<", "+", "-", "&", "|", "^", "=", ">", "<", ".UGT.", ".ULT."

								};
								if (stack.size() < 2) errx(EX_DATAERR, "%s : stack underflow error", name);
								std::string a = std::move(stack.back()); stack.pop_back();
								std::string b = std::move(stack.back()); stack.pop_back();
								stack.emplace_back(b + ops[op-20] + a);
								break;
							}
							default:
								errx(EX_DATAERR, "%s: unknown expression opcode %02x", name, op);

						}
					}
					if (stack.size() != 1) errx(EX_DATAERR, "%s stack overflow error.", name);
					d(stack.front(), size);
				}
				break;

			case REC_DEBUG:
				{
					d.flush();
					uint16_t size = read_16(iter);

					auto end = iter + size;
					while (iter < end) {
						uint8_t op = read_8(iter);
						switch(op) {
							case D_LONGA_ON:
								d.set_m(true);
								d.emit("", "longa", "on");
								break;
							case D_LONGA_OFF:
								d.set_m(false);
								d.emit("", "longa", "off");
								break;
							case D_LONGI_ON:
								d.set_x(true);
								d.emit("", "longi", "on");
								break;
							case D_LONGI_OFF:
								d.set_x(false);
								d.emit("", "longi", "off");
								break;
							case D_C_FILE: {
								std::string file = read_cstring(iter);
								line = read_16(iter);
								std::string tmp = file + ", " + std::to_string(line);
								d.emit("", ".file", tmp);
								break;
							}
							case D_C_LINE: {
								line = read_16(iter);
								d.emit("",".line", std::to_string(line));
								break;
							}
							case D_C_BLOCK: {
								uint16_t block = read_16(iter);
								d.emit("",".block", std::to_string(block));
								break;
							}
							case D_C_ENDBLOCK: {
								uint16_t block = read_16(iter);
								d.emit("",".endblock", std::to_string(block));
								break;
							}
							case D_C_FUNC: {
								uint16_t arg = read_16(iter);
								d.emit("",".function", std::to_string(arg));
								break;								
							}
							case D_C_ENDFUNC: {
								uint16_t line = read_16(iter);
								uint16_t local_offset = read_16(iter);
								uint16_t arg_offset = read_16(iter);
								std::string tmp;
								tmp = std::to_string(line) + ", "
									+ std::to_string(local_offset) + ", "
									+ std::to_string(arg_offset);
								d.emit("",".endfunc", tmp);
								break;
							}

							// etag? reserved for enums but not actually used?
							case D_C_STAG:
							case D_C_ETAG:
							case D_C_UTAG: {
								const char *kOpNames[] = { ".stag", ".etag", ".utag" };
								const char *opname = kOpNames[op - D_C_STAG];

								std::string name = read_cstring(iter);
								uint16_t size = read_16(iter);
								uint16_t tag = read_16(iter);

								std::string tmp;
								tmp = name + ", " + std::to_string(size) + ", " + std::to_string(tag);
								d.emit("", opname, tmp);
								break;
							}
							case D_C_EOS: {
								d.emit("", ".eos");
								break; 
							}

							case D_C_MEMBER:
							case D_C_SYM: {
								// warning - i don't fully understand this one..
								std::string name = read_cstring(iter);
								uint8_t version = read_8(iter); //???
								uint32_t value;
								if (version == 0) value = read_16(iter); // symbol
								if (version == 1) value = read_32(iter); // numeric value.
								assert(version == 0 || version == 1);
								uint32_t type = read_32(iter);
								uint8_t klass = read_8(iter);
								uint16_t size = read_16(iter);


								const char *opname = ".sym";
								if (op == D_C_MEMBER) opname = ".member";


								std::string attr;

								if (version == 0) {
									std::string svalue;
									svalue = d.symbol_name(value);

									attr = name + ", " + svalue;
								}

								if (version == 1) {
									attr = name + ", " + std::to_string(value);
								}

								attr += ", " + std::to_string(type);
								attr += ", " + std::to_string(klass);
								attr += ", " + std::to_string(size);


								/*
								 * type bits 1 ... 5 are T_xxxx
								 * then 3 bits of DT_xxx (repeatedly)
								 *
								 * eg, char ** = (DT_PTR << 11) + (DT_PTR << 8) + T_CHAR
								 */
								int t = type & 0x1f;
								if ((t == T_STRUCT) || (t == T_UNION)) {
									uint16_t tag = read_16(iter);
									attr += ", " + std::to_string(tag);
								}

								// need to do it until t == 0 for
								// multidimensional arrays.
								for ( t = type >> 5; t; t >>= 3) {
									if ((t & 0x07) == DT_ARY) {
										uint16_t dim = read_16(iter);
										attr += ", " + std::to_string(dim);
									}
								}


								d.emit("", opname, attr);

								break;
							}

							default:
								errx(EX_DATAERR, "%s: unknown debug opcode %02x (%d)", name, op, op);
								break;

						}
					}
				}
				break;

			case REC_SECT: {
				uint8_t sec = read_8(iter);
				d.set_section(sec);
				break;
			}

			case REC_ORG: {
				d.flush();
				uint32_t org = read_32(iter);
				d.emit("", ".org", d.to_x(org, 4, '$'));
				d.set_pc(org);
				break;
			}

			case REC_SPACE: {
				uint16_t count = read_16(iter);
				d.space(count);
				break;
			}

			case REC_LINE: {
				// bump line counter, no argument.
				d.flush();
				++line;
				break;
			}
			default:
				d.flush();
				errx(EX_DATAERR, "%s: unknown opcode %02x", name, op);
		}
	}


	unsigned f = 0;
	if (flags.S) f |= 0x01;
	d.back_matter(f);

	if (iter != data.end() || op != REC_END) errx(EX_DATAERR, "%s records ended early", name);



	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x12a0, %rsp           # imm = 0x12A0
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl -0x14(%rbp), %edi
leaq -0x2c(%rbp), %rsi
movl $0x18, %edx
callq 0x33a0
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x3a77
movb $0x0, -0x1(%rbp)
jmp 0x7351
cmpq $0x18, -0x38(%rbp)
je 0x3a95
movq -0x10(%rbp), %rdx
movl $0x41, %edi
leaq 0x1765e(%rip), %rsi     # 0x1b0ec
movb $0x0, %al
callq 0x34a0
leaq -0x2c(%rbp), %rdi
callq 0x7e60
leaq -0x2c(%rbp), %rdi
addq $0x4, %rdi
callq 0x7e80
leaq -0x2c(%rbp), %rdi
addq $0x6, %rdi
callq 0x7ea0
leaq -0x2c(%rbp), %rdi
addq $0x7, %rdi
callq 0x7ea0
leaq -0x2c(%rbp), %rdi
addq $0x8, %rdi
callq 0x7e60
leaq -0x2c(%rbp), %rdi
addq $0xc, %rdi
callq 0x7e80
leaq -0x2c(%rbp), %rdi
addq $0xe, %rdi
callq 0x7e60
leaq -0x2c(%rbp), %rdi
addq $0x12, %rdi
callq 0x7e80
leaq -0x2c(%rbp), %rdi
addq $0x14, %rdi
callq 0x7ea0
leaq -0x2c(%rbp), %rdi
addq $0x15, %rdi
callq 0x7ea0
leaq -0x2c(%rbp), %rdi
addq $0x16, %rdi
callq 0x7e80
cmpl $0x5a44525a, -0x2c(%rbp) # imm = 0x5A44525A
jne 0x3b2b
jmp 0x3b4a
leaq 0x175d3(%rip), %rdi     # 0x1b105
leaq 0x175e3(%rip), %rsi     # 0x1b11c
movl $0xd0, %edx
leaq 0x175e3(%rip), %rcx     # 0x1b128
callq 0x31a0
movzwl -0x28(%rbp), %eax
cmpl $0x1, %eax
jne 0x3b55
jmp 0x3b74
leaq 0x175ed(%rip), %rdi     # 0x1b149
leaq 0x175b9(%rip), %rsi     # 0x1b11c
movl $0xd1, %edx
leaq 0x175b9(%rip), %rcx     # 0x1b128
callq 0x31a0
movzbl -0x26(%rbp), %eax
cmpl $0x1, %eax
jne 0x3b7f
jmp 0x3b9e
leaq 0x175d4(%rip), %rdi     # 0x1b15a
leaq 0x1758f(%rip), %rsi     # 0x1b11c
movl $0xd2, %edx
leaq 0x1758f(%rip), %rcx     # 0x1b128
callq 0x31a0
leaq -0x50(%rbp), %rdi
movq %rdi, -0xf00(%rbp)
callq 0x7ec0
movq -0xf00(%rbp), %rdi
movzbl -0x25(%rbp), %eax
movl %eax, %esi
callq 0x7ee0
jmp 0x3bc2
movl -0x14(%rbp), %eax
movl %eax, -0xf0c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x7f70
movl -0xf0c(%rbp), %edi
movq %rax, %rsi
movzbl -0x25(%rbp), %eax
movl %eax, %edx
callq 0x33a0
movq %rax, -0xf08(%rbp)
jmp 0x3bf1
movq -0xf08(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movzbl -0x25(%rbp), %ecx
cmpq %rcx, %rax
je 0x3c33
movq -0x10(%rbp), %rdx
leaq 0x18092(%rip), %rsi     # 0x1bca6
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x3c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7346
leaq -0x78(%rbp), %rdi
movq %rdi, -0xf18(%rbp)
callq 0x7f90
movq -0xf18(%rbp), %rdi
movl -0x24(%rbp), %eax
movl %eax, %esi
callq 0x7fb0
jmp 0x3c56
movl -0x14(%rbp), %eax
movl %eax, -0xf24(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x8040
movl -0xf24(%rbp), %edi
movq %rax, %rsi
movl -0x24(%rbp), %eax
movl %eax, %edx
callq 0x33a0
movq %rax, -0xf20(%rbp)
jmp 0x3c84
movq -0xf20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movl -0x24(%rbp), %ecx
cmpq %rcx, %rax
je 0x3cc5
movq -0x10(%rbp), %rdx
leaq 0x174c4(%rip), %rsi     # 0x1b16a
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x3cb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x733d
leaq -0x90(%rbp), %rdi
movq %rdi, -0xf30(%rbp)
callq 0x7f90
movq -0xf30(%rbp), %rdi
movzwl -0x20(%rbp), %eax
movl %eax, %esi
callq 0x7fb0
jmp 0x3cec
movl -0x14(%rbp), %eax
movl %eax, -0xf3c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x8040
movl -0xf3c(%rbp), %edi
movq %rax, %rsi
movzwl -0x20(%rbp), %eax
movl %eax, %edx
callq 0x33a0
movq %rax, -0xf38(%rbp)
jmp 0x3d1e
movq -0xf38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movzwl -0x20(%rbp), %ecx
cmpq %rcx, %rax
je 0x3d60
movq -0x10(%rbp), %rdx
leaq 0x1743e(%rip), %rsi     # 0x1b17f
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x3d4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7331
leaq -0xa8(%rbp), %rdi
movq %rdi, -0xf48(%rbp)
callq 0x7f90
movq -0xf48(%rbp), %rdi
movl -0x1e(%rbp), %eax
movl %eax, %esi
callq 0x7fb0
jmp 0x3d86
movl -0x14(%rbp), %eax
movl %eax, -0xf54(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x8040
movl -0xf54(%rbp), %edi
movq %rax, %rsi
movl -0x1e(%rbp), %eax
movl %eax, %edx
callq 0x33a0
movq %rax, -0xf50(%rbp)
jmp 0x3db7
movq -0xf50(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movl -0x1e(%rbp), %ecx
cmpq %rcx, %rax
je 0x3df8
movq -0x10(%rbp), %rdx
leaq 0x173bc(%rip), %rsi     # 0x1b195
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x3de7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7325
cmpw $0x0, -0x1a(%rbp)
je 0x3e12
movl -0x14(%rbp), %edi
movzwl -0x1a(%rbp), %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x3490
leaq -0x130(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x3720
jmp 0x3e27
leaq -0x148(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x38a0
jmp 0x3e3c
leaq -0x118(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x148(%rbp), %rdx
callq 0x116b0
jmp 0x3e58
leaq -0x148(%rbp), %rdi
callq 0x7e00
leaq -0x130(%rbp), %rdi
callq 0x7ca0
movb $0x0, -0x149(%rbp)
movl $0x0, -0x150(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x7f70
movq %rax, -0xf68(%rbp)
leaq -0x171(%rbp), %rdi
movq %rdi, -0xf60(%rbp)
callq 0x3460
movq -0xf68(%rbp), %rsi
movq -0xf60(%rbp), %rdx
leaq -0x170(%rbp), %rdi
callq 0x8060
jmp 0x3ec0
leaq -0x118(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x11c50
jmp 0x3ed5
leaq -0x170(%rbp), %rdi
callq 0x3160
leaq -0x171(%rbp), %rdi
callq 0x32b0
leaq -0x78(%rbp), %rdi
callq 0x8110
movq %rax, -0x180(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x8180
movq %rax, -0x188(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x8140
testb $0x1, %al
jne 0x3f29
jmp 0x723d
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0xf69(%rbp)
jmp 0x3f3d
movb -0xf69(%rbp), %al
movb %al, -0x149(%rbp)
movzbl -0x149(%rbp), %eax
cmpl $0x0, %eax
jne 0x3fdd
jmp 0x723d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x3f84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x7e00
leaq -0x130(%rbp), %rdi
callq 0x7ca0
jmp 0x7325
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x3fbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x3160
leaq -0x171(%rbp), %rdi
callq 0x32b0
jmp 0x7319
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7319
movzbl -0x149(%rbp), %eax
cmpl $0xf0, %eax
jge 0x4059
movzbl -0x149(%rbp), %eax
movl %eax, %esi
leaq -0x180(%rbp), %rdi
callq 0x81e0
movq %rax, -0x190(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x8140
testb $0x1, %al
jne 0x4020
jmp 0x4054
leaq -0x180(%rbp), %rdi
xorl %esi, %esi
callq 0x8220
movq %rax, -0x198(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x8260
movzbl (%rax), %esi
leaq -0x118(%rbp), %rdi
callq 0xdf50
jmp 0x4052
jmp 0x4007
jmp 0x3efd
movzbl -0x149(%rbp), %eax
addl $0xffffff10, %eax       # imm = 0xFFFFFF10
movl %eax, %ecx
movq %rcx, -0xf78(%rbp)
subl $0x6, %eax
ja 0x720a
movq -0xf78(%rbp), %rax
leaq 0x16f7f(%rip), %rcx     # 0x1b004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0xf79(%rbp)
jmp 0x40a2
movb -0xf79(%rbp), %al
movb %al, -0x199(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x8280
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0xf7a(%rbp)
jmp 0x40ce
movb -0xf7a(%rbp), %al
movb %al, -0x1b9(%rbp)
movzbl -0x1b9(%rbp), %eax
cmpl $0x0, %eax
jne 0x40fc
jmp 0x504e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x50b0
movzbl -0x1b9(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0xf88(%rbp)
subl $0x22, %eax
ja 0x5029
movq -0xf88(%rbp), %rax
leaq 0x16f3b(%rip), %rcx     # 0x1b060
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0xf89(%rbp)
jmp 0x4142
movb -0xf89(%rbp), %al
movb %al, -0x1ba(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x82a0
movl %eax, -0xf90(%rbp)
jmp 0x4162
movl -0xf90(%rbp), %eax
movl %eax, -0x1c0(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3380
testb $0x1, 0x21131(%rip)     # 0x252b2
je 0x42a0
movzbl -0x1ba(%rbp), %edx
leaq -0x240(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x142b0
jmp 0x41a3
leaq 0x17000(%rip), %rdx     # 0x1b1aa
leaq -0x220(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x8410
jmp 0x41bf
movl -0x1c0(%rbp), %esi
leaq -0x260(%rbp), %rdi
movl $0x4, %edx
movl $0x24, %ecx
callq 0xcb90
jmp 0x41dd
leaq -0x200(%rbp), %rdi
leaq -0x220(%rbp), %rsi
leaq -0x260(%rbp), %rdx
callq 0x8340
jmp 0x41f9
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3310
leaq -0x200(%rbp), %rdi
callq 0x3160
leaq -0x260(%rbp), %rdi
callq 0x3160
leaq -0x220(%rbp), %rdi
callq 0x3160
leaq -0x240(%rbp), %rdi
callq 0x3160
jmp 0x42e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4307
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4292
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4286
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x3160
leaq -0x220(%rbp), %rdi
callq 0x3160
leaq -0x240(%rbp), %rdi
callq 0x3160
jmp 0x4307
movzbl -0x1ba(%rbp), %edx
movl -0x1c0(%rbp), %ecx
leaq -0x280(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x13e10
jmp 0x42c2
leaq -0x1e0(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x3310
leaq -0x280(%rbp), %rdi
callq 0x3160
leaq -0x1b8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x8460
jmp 0x42f6
leaq -0x1e0(%rbp), %rdi
callq 0x3160
jmp 0x5049
leaq -0x1e0(%rbp), %rdi
callq 0x3160
jmp 0x50b0
leaq -0x180(%rbp), %rdi
callq 0x82a0
movl %eax, -0xf94(%rbp)
jmp 0x432c
movl -0xf94(%rbp), %esi
leaq -0x2a0(%rbp), %rdi
movl $0x4, %edx
movl $0x24, %ecx
callq 0xcb90
jmp 0x434a
leaq -0x1b8(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x84e0
jmp 0x435f
leaq -0x2a0(%rbp), %rdi
callq 0x3160
jmp 0x5049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x3160
jmp 0x50b0
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0xf96(%rbp)
jmp 0x43a2
movw -0xf96(%rbp), %ax
movw %ax, -0x2a2(%rbp)
movzwl -0x2a2(%rbp), %edx
leaq -0x2c8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x141e0
jmp 0x43cc
leaq -0x1b8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x8460
jmp 0x43e1
leaq -0x2c8(%rbp), %rdi
callq 0x3160
jmp 0x5049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x3160
jmp 0x50b0
cmpb $0x0, 0x20f0a(%rip)     # 0x25320
jne 0x4552
leaq 0x20efd(%rip), %rdi     # 0x25320
callq 0x3480
cmpl $0x0, %eax
je 0x4552
movb $0x1, -0x2d4(%rbp)
leaq 0x20e81(%rip), %rax     # 0x252c0
movq %rax, -0xfa8(%rbp)
movq %rax, -0x2d0(%rbp)
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0xfa0(%rbp)
callq 0x3460
movq -0xfa8(%rbp), %rdi
movq -0xfa0(%rbp), %rdx
leaq 0x16d37(%rip), %rsi     # 0x1b1ac
callq 0x8060
jmp 0x447c
leaq 0x20e5d(%rip), %rax     # 0x252e0
movq %rax, -0xfb8(%rbp)
movq %rax, -0x2d0(%rbp)
leaq -0x2d2(%rbp), %rdi
movq %rdi, -0xfb0(%rbp)
callq 0x3460
movq -0xfb8(%rbp), %rdi
movq -0xfb0(%rbp), %rdx
leaq 0x16cf9(%rip), %rsi     # 0x1b1b2
callq 0x8060
jmp 0x44c0
leaq 0x20e39(%rip), %rax     # 0x25300
movq %rax, -0xfc8(%rbp)
movq %rax, -0x2d0(%rbp)
leaq -0x2d3(%rbp), %rdi
movq %rdi, -0xfc0(%rbp)
callq 0x3460
movq -0xfc8(%rbp), %rdi
movq -0xfc0(%rbp), %rdx
leaq 0x16cb7(%rip), %rsi     # 0x1b1b4
callq 0x8060
jmp 0x4504
movb $0x0, -0x2d4(%rbp)
leaq -0x2d3(%rbp), %rdi
callq 0x32b0
leaq -0x2d2(%rbp), %rdi
callq 0x32b0
leaq -0x2d1(%rbp), %rdi
callq 0x32b0
leaq -0x1026(%rip), %rdi     # 0x3510
xorl %eax, %eax
movl %eax, %esi
leaq 0x20d47(%rip), %rdx     # 0x25288
callq 0x3240
leaq 0x20dd3(%rip), %rdi     # 0x25320
callq 0x3190
leaq -0x1b8(%rbp), %rdi
callq 0x8570
testb $0x1, %al
jne 0x4567
jmp 0x4635
movq -0x10(%rbp), %rdx
leaq 0x16c44(%rip), %rsi     # 0x1b1b6
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x4580
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x45b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x2d3(%rbp), %rdi
callq 0x32b0
leaq -0x2d2(%rbp), %rdi
callq 0x32b0
leaq -0x2d1(%rbp), %rdi
callq 0x32b0
testb $0x1, -0x2d4(%rbp)
jne 0x45d7
jmp 0x4624
movq -0x2d0(%rbp), %rax
leaq 0x20cdb(%rip), %rcx     # 0x252c0
cmpq %rax, %rcx
movq %rax, -0xfd0(%rbp)
je 0x4622
movq -0xfd0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xfd8(%rbp)
callq 0x3160
movq -0xfd8(%rbp), %rax
leaq 0x20caa(%rip), %rcx     # 0x252c0
cmpq %rcx, %rax
movq %rax, -0xfd0(%rbp)
jne 0x45f1
jmp 0x4624
leaq 0x20cf5(%rip), %rdi     # 0x25320
callq 0x3180
jmp 0x50b0
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0xfe0(%rbp)
callq 0x85b0
movq %rax, %rsi
leaq -0x2f8(%rbp), %rdi
callq 0x3150
movq -0xfe0(%rbp), %rdi
callq 0x85f0
movzbl -0x1b9(%rbp), %eax
shll $0x5, %eax
leaq 0x20c4c(%rip), %rcx     # 0x252c0
leaq -0x140(%rax,%rcx), %rsi
leaq -0x318(%rbp), %rdi
callq 0x3100
jmp 0x468a
leaq -0x338(%rbp), %rdi
leaq -0x318(%rbp), %rsi
leaq -0x2f8(%rbp), %rdx
callq 0x8620
jmp 0x46a6
leaq -0x1b8(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x8460
jmp 0x46bb
leaq -0x338(%rbp), %rdi
callq 0x3160
leaq -0x318(%rbp), %rdi
callq 0x3160
leaq -0x2f8(%rbp), %rdi
callq 0x3160
jmp 0x5049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4724
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4718
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x3160
leaq -0x318(%rbp), %rdi
callq 0x3160
leaq -0x2f8(%rbp), %rdi
callq 0x3160
jmp 0x50b0
cmpb $0x0, 0x20df4(%rip)     # 0x25530
jne 0x4c88
leaq 0x20de7(%rip), %rdi     # 0x25530
callq 0x3480
cmpl $0x0, %eax
je 0x4c88
movb $0x1, -0x351(%rbp)
leaq 0x20bcb(%rip), %rax     # 0x25330
movq %rax, -0xff0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x341(%rbp), %rdi
movq %rdi, -0xfe8(%rbp)
callq 0x3460
movq -0xff0(%rbp), %rdi
movq -0xfe8(%rbp), %rdx
leaq 0x16a36(%rip), %rsi     # 0x1b1d1
callq 0x8060
jmp 0x47a2
leaq 0x20ba7(%rip), %rax     # 0x25350
movq %rax, -0x1000(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x342(%rbp), %rdi
movq %rdi, -0xff8(%rbp)
callq 0x3460
movq -0x1000(%rbp), %rdi
movq -0xff8(%rbp), %rdx
leaq 0x169f3(%rip), %rsi     # 0x1b1d2
callq 0x8060
jmp 0x47e6
leaq 0x20b83(%rip), %rax     # 0x25370
movq %rax, -0x1010(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x343(%rbp), %rdi
movq %rdi, -0x1008(%rbp)
callq 0x3460
movq -0x1010(%rbp), %rdi
movq -0x1008(%rbp), %rdx
leaq 0x169b1(%rip), %rsi     # 0x1b1d4
callq 0x8060
jmp 0x482a
leaq 0x20b5f(%rip), %rax     # 0x25390
movq %rax, -0x1020(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x344(%rbp), %rdi
movq %rdi, -0x1018(%rbp)
callq 0x3460
movq -0x1020(%rbp), %rdi
movq -0x1018(%rbp), %rdx
leaq 0x1696f(%rip), %rsi     # 0x1b1d6
callq 0x8060
jmp 0x486e
leaq 0x20b3b(%rip), %rax     # 0x253b0
movq %rax, -0x1030(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x345(%rbp), %rdi
movq %rdi, -0x1028(%rbp)
callq 0x3460
movq -0x1030(%rbp), %rdi
movq -0x1028(%rbp), %rdx
leaq 0x16931(%rip), %rsi     # 0x1b1dc
callq 0x8060
jmp 0x48b2
leaq 0x20b17(%rip), %rax     # 0x253d0
movq %rax, -0x1040(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x346(%rbp), %rdi
movq %rdi, -0x1038(%rbp)
callq 0x3460
movq -0x1040(%rbp), %rdi
movq -0x1038(%rbp), %rdx
leaq 0x168f0(%rip), %rsi     # 0x1b1df
callq 0x8060
jmp 0x48f6
leaq 0x20af3(%rip), %rax     # 0x253f0
movq %rax, -0x1050(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x347(%rbp), %rdi
movq %rdi, -0x1048(%rbp)
callq 0x3460
movq -0x1050(%rbp), %rdi
movq -0x1048(%rbp), %rdx
leaq 0x16877(%rip), %rsi     # 0x1b1aa
callq 0x8060
jmp 0x493a
leaq 0x20acf(%rip), %rax     # 0x25410
movq %rax, -0x1060(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x348(%rbp), %rdi
movq %rdi, -0x1058(%rbp)
callq 0x3460
movq -0x1060(%rbp), %rdi
movq -0x1058(%rbp), %rdx
leaq 0x1683b(%rip), %rsi     # 0x1b1b2
callq 0x8060
jmp 0x497e
leaq 0x20aab(%rip), %rax     # 0x25430
movq %rax, -0x1070(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x349(%rbp), %rdi
movq %rdi, -0x1068(%rbp)
callq 0x3460
movq -0x1070(%rbp), %rdi
movq -0x1068(%rbp), %rdx
leaq 0x16827(%rip), %rsi     # 0x1b1e2
callq 0x8060
jmp 0x49c2
leaq 0x20a87(%rip), %rax     # 0x25450
movq %rax, -0x1080(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x34a(%rbp), %rdi
movq %rdi, -0x1078(%rbp)
callq 0x3460
movq -0x1080(%rbp), %rdi
movq -0x1078(%rbp), %rdx
leaq 0x167e5(%rip), %rsi     # 0x1b1e4
callq 0x8060
jmp 0x4a06
leaq 0x20a63(%rip), %rax     # 0x25470
movq %rax, -0x1090(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x34b(%rbp), %rdi
movq %rdi, -0x1088(%rbp)
callq 0x3460
movq -0x1090(%rbp), %rdi
movq -0x1088(%rbp), %rdx
leaq 0x167a3(%rip), %rsi     # 0x1b1e6
callq 0x8060
jmp 0x4a4a
leaq 0x20a3f(%rip), %rax     # 0x25490
movq %rax, -0x10a0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x34c(%rbp), %rdi
movq %rdi, -0x1098(%rbp)
callq 0x3460
movq -0x10a0(%rbp), %rdi
movq -0x1098(%rbp), %rdx
leaq 0x16761(%rip), %rsi     # 0x1b1e8
callq 0x8060
jmp 0x4a8e
leaq 0x20a1b(%rip), %rax     # 0x254b0
movq %rax, -0x10b0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x34d(%rbp), %rdi
movq %rdi, -0x10a8(%rbp)
callq 0x3460
movq -0x10b0(%rbp), %rdi
movq -0x10a8(%rbp), %rdx
leaq 0x16712(%rip), %rsi     # 0x1b1dd
callq 0x8060
jmp 0x4ad2
leaq 0x209f7(%rip), %rax     # 0x254d0
movq %rax, -0x10c0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x34e(%rbp), %rdi
movq %rdi, -0x10b8(%rbp)
callq 0x3460
movq -0x10c0(%rbp), %rdi
movq -0x10b8(%rbp), %rdx
leaq 0x1713b(%rip), %rsi     # 0x1bc4a
callq 0x8060
jmp 0x4b16
leaq 0x209d3(%rip), %rax     # 0x254f0
movq %rax, -0x10d0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x34f(%rbp), %rdi
movq %rdi, -0x10c8(%rbp)
callq 0x3460
movq -0x10d0(%rbp), %rdi
movq -0x10c8(%rbp), %rdx
leaq 0x16697(%rip), %rsi     # 0x1b1ea
callq 0x8060
jmp 0x4b5a
leaq 0x209af(%rip), %rax     # 0x25510
movq %rax, -0x10e0(%rbp)
movq %rax, -0x340(%rbp)
leaq -0x350(%rbp), %rdi
movq %rdi, -0x10d8(%rbp)
callq 0x3460
movq -0x10e0(%rbp), %rdi
movq -0x10d8(%rbp), %rdx
leaq 0x16659(%rip), %rsi     # 0x1b1f0
callq 0x8060
jmp 0x4b9e
movb $0x0, -0x351(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x32b0
leaq -0x34f(%rbp), %rdi
callq 0x32b0
leaq -0x34e(%rbp), %rdi
callq 0x32b0
leaq -0x34d(%rbp), %rdi
callq 0x32b0
leaq -0x34c(%rbp), %rdi
callq 0x32b0
leaq -0x34b(%rbp), %rdi
callq 0x32b0
leaq -0x34a(%rbp), %rdi
callq 0x32b0
leaq -0x349(%rbp), %rdi
callq 0x32b0
leaq -0x348(%rbp), %rdi
callq 0x32b0
leaq -0x347(%rbp), %rdi
callq 0x32b0
leaq -0x346(%rbp), %rdi
callq 0x32b0
leaq -0x345(%rbp), %rdi
callq 0x32b0
leaq -0x344(%rbp), %rdi
callq 0x32b0
leaq -0x343(%rbp), %rdi
callq 0x32b0
leaq -0x342(%rbp), %rdi
callq 0x32b0
leaq -0x341(%rbp), %rdi
callq 0x32b0
leaq -0x170c(%rip), %rdi     # 0x3560
xorl %eax, %eax
movl %eax, %esi
leaq 0x20611(%rip), %rdx     # 0x25288
callq 0x3240
leaq 0x208ad(%rip), %rdi     # 0x25530
callq 0x3190
leaq -0x1b8(%rbp), %rdi
callq 0x86a0
cmpq $0x2, %rax
jae 0x4edf
movq -0x10(%rbp), %rdx
leaq 0x1650d(%rip), %rsi     # 0x1b1b6
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x4cb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4e0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4dfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4df2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4de6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4dda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4dce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4dc2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x32b0
leaq -0x34f(%rbp), %rdi
callq 0x32b0
leaq -0x34e(%rbp), %rdi
callq 0x32b0
leaq -0x34d(%rbp), %rdi
callq 0x32b0
leaq -0x34c(%rbp), %rdi
callq 0x32b0
leaq -0x34b(%rbp), %rdi
callq 0x32b0
leaq -0x34a(%rbp), %rdi
callq 0x32b0
leaq -0x349(%rbp), %rdi
callq 0x32b0
leaq -0x348(%rbp), %rdi
callq 0x32b0
leaq -0x347(%rbp), %rdi
callq 0x32b0
leaq -0x346(%rbp), %rdi
callq 0x32b0
leaq -0x345(%rbp), %rdi
callq 0x32b0
leaq -0x344(%rbp), %rdi
callq 0x32b0
leaq -0x343(%rbp), %rdi
callq 0x32b0
leaq -0x342(%rbp), %rdi
callq 0x32b0
leaq -0x341(%rbp), %rdi
callq 0x32b0
testb $0x1, -0x351(%rbp)
jne 0x4e81
jmp 0x4ece
movq -0x340(%rbp), %rax
leaq 0x204a1(%rip), %rcx     # 0x25330
cmpq %rax, %rcx
movq %rax, -0x10e8(%rbp)
je 0x4ecc
movq -0x10e8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x10f0(%rbp)
callq 0x3160
movq -0x10f0(%rbp), %rax
leaq 0x20470(%rip), %rcx     # 0x25330
cmpq %rcx, %rax
movq %rax, -0x10e8(%rbp)
jne 0x4e9b
jmp 0x4ece
leaq 0x2065b(%rip), %rdi     # 0x25530
callq 0x3180
jmp 0x50b0
leaq -0x1b8(%rbp), %rdi
movq %rdi, -0x1100(%rbp)
callq 0x85b0
movq %rax, %rsi
leaq -0x378(%rbp), %rdi
callq 0x3150
movq -0x1100(%rbp), %rdi
callq 0x85f0
movq -0x1100(%rbp), %rdi
callq 0x85b0
movq %rax, %rsi
leaq -0x398(%rbp), %rdi
movq %rdi, -0x10f8(%rbp)
callq 0x3150
movq -0x1100(%rbp), %rdi
callq 0x85f0
movq -0x10f8(%rbp), %rsi
movzbl -0x1b9(%rbp), %eax
shll $0x5, %eax
leaq 0x203dd(%rip), %rcx     # 0x25330
leaq -0x280(%rax,%rcx), %rdx
leaq -0x3d8(%rbp), %rdi
callq 0x8620
jmp 0x4f69
leaq -0x3b8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
leaq -0x378(%rbp), %rdx
callq 0x86c0
jmp 0x4f85
leaq -0x1b8(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0x8460
jmp 0x4f9a
leaq -0x3b8(%rbp), %rdi
callq 0x3160
leaq -0x3d8(%rbp), %rdi
callq 0x3160
leaq -0x398(%rbp), %rdi
callq 0x3160
leaq -0x378(%rbp), %rdi
callq 0x3160
jmp 0x5049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x500c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5000
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x3160
leaq -0x3d8(%rbp), %rdi
callq 0x3160
leaq -0x398(%rbp), %rdi
callq 0x3160
leaq -0x378(%rbp), %rdi
callq 0x3160
jmp 0x50b0
movq -0x10(%rbp), %rdx
movzbl -0x1b9(%rbp), %ecx
leaq 0x161bb(%rip), %rsi     # 0x1b1f6
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x5049
jmp 0x40ba
leaq -0x1b8(%rbp), %rdi
callq 0x86a0
cmpq $0x1, %rax
je 0x5079
movq -0x10(%rbp), %rdx
leaq 0x161ae(%rip), %rsi     # 0x1b219
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x5079
leaq -0x1b8(%rbp), %rdi
callq 0x8710
movq %rax, %rsi
movzbl -0x199(%rbp), %edx
leaq -0x118(%rbp), %rdi
xorl %ecx, %ecx
callq 0xdca0
jmp 0x509f
leaq -0x1b8(%rbp), %rdi
callq 0x8740
jmp 0x7238
leaq -0x1b8(%rbp), %rdi
callq 0x8740
jmp 0x7319
leaq -0x118(%rbp), %rdi
callq 0xd970
jmp 0x50cf
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x1102(%rbp)
jmp 0x50e4
movw -0x1102(%rbp), %ax
movw %ax, -0x3da(%rbp)
movzwl -0x3da(%rbp), %eax
movl %eax, %esi
leaq -0x180(%rbp), %rdi
callq 0x81e0
movq %rax, -0x3e8(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x87a0
testb $0x1, %al
jne 0x512a
jmp 0x6fe0
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0x1103(%rbp)
jmp 0x513e
movb -0x1103(%rbp), %al
movb %al, -0x3e9(%rbp)
movzbl -0x3e9(%rbp), %eax
addl $-0x64, %eax
movl %eax, %ecx
movq %rcx, -0x1110(%rbp)
subl $0xf, %eax
ja 0x6fb7
movq -0x1110(%rbp), %rax
leaq 0x15eac(%rip), %rcx     # 0x1b020
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x118(%rbp), %rdi
movl $0x1, %esi
callq 0x87e0
jmp 0x5190
leaq -0x411(%rbp), %rdi
movq %rdi, -0x1118(%rbp)
callq 0x3460
movq -0x1118(%rbp), %rdx
leaq 0x161c3(%rip), %rsi     # 0x1b374
leaq -0x410(%rbp), %rdi
callq 0x8060
jmp 0x51bf
leaq -0x439(%rbp), %rdi
movq %rdi, -0x1120(%rbp)
callq 0x3460
movq -0x1120(%rbp), %rdx
leaq 0x16052(%rip), %rsi     # 0x1b232
leaq -0x438(%rbp), %rdi
callq 0x8060
jmp 0x51ee
leaq -0x461(%rbp), %rdi
movq %rdi, -0x1128(%rbp)
callq 0x3460
movq -0x1128(%rbp), %rdx
leaq 0x16b92(%rip), %rsi     # 0x1bda1
leaq -0x460(%rbp), %rdi
callq 0x8060
jmp 0x521d
leaq -0x410(%rbp), %rdi
leaq -0x438(%rbp), %rsi
leaq -0x460(%rbp), %rdx
callq 0xce40
jmp 0x5239
leaq -0x460(%rbp), %rdi
callq 0x3160
leaq -0x461(%rbp), %rdi
callq 0x32b0
leaq -0x438(%rbp), %rdi
callq 0x3160
leaq -0x439(%rbp), %rdi
callq 0x32b0
leaq -0x410(%rbp), %rdi
callq 0x3160
leaq -0x411(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x52f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x52e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x52c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x3160
leaq -0x461(%rbp), %rdi
callq 0x32b0
leaq -0x438(%rbp), %rdi
callq 0x3160
leaq -0x439(%rbp), %rdi
callq 0x32b0
leaq -0x410(%rbp), %rdi
callq 0x3160
leaq -0x411(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x118(%rbp), %rdi
xorl %esi, %esi
callq 0x87e0
jmp 0x5319
leaq -0x489(%rbp), %rdi
movq %rdi, -0x1130(%rbp)
callq 0x3460
movq -0x1130(%rbp), %rdx
leaq 0x1603a(%rip), %rsi     # 0x1b374
leaq -0x488(%rbp), %rdi
callq 0x8060
jmp 0x5348
leaq -0x4b1(%rbp), %rdi
movq %rdi, -0x1138(%rbp)
callq 0x3460
movq -0x1138(%rbp), %rdx
leaq 0x15ec9(%rip), %rsi     # 0x1b232
leaq -0x4b0(%rbp), %rdi
callq 0x8060
jmp 0x5377
leaq -0x4d9(%rbp), %rdi
movq %rdi, -0x1140(%rbp)
callq 0x3460
movq -0x1140(%rbp), %rdx
leaq 0x15ea0(%rip), %rsi     # 0x1b238
leaq -0x4d8(%rbp), %rdi
callq 0x8060
jmp 0x53a6
leaq -0x488(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
leaq -0x4d8(%rbp), %rdx
callq 0xce40
jmp 0x53c2
leaq -0x4d8(%rbp), %rdi
callq 0x3160
leaq -0x4d9(%rbp), %rdi
callq 0x32b0
leaq -0x4b0(%rbp), %rdi
callq 0x3160
leaq -0x4b1(%rbp), %rdi
callq 0x32b0
leaq -0x488(%rbp), %rdi
callq 0x3160
leaq -0x489(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5481
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5469
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5451
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x3160
leaq -0x4d9(%rbp), %rdi
callq 0x32b0
leaq -0x4b0(%rbp), %rdi
callq 0x3160
leaq -0x4b1(%rbp), %rdi
callq 0x32b0
leaq -0x488(%rbp), %rdi
callq 0x3160
leaq -0x489(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x118(%rbp), %rdi
movl $0x1, %esi
callq 0x8820
jmp 0x54a5
leaq -0x501(%rbp), %rdi
movq %rdi, -0x1148(%rbp)
callq 0x3460
movq -0x1148(%rbp), %rdx
leaq 0x15eae(%rip), %rsi     # 0x1b374
leaq -0x500(%rbp), %rdi
callq 0x8060
jmp 0x54d4
leaq -0x529(%rbp), %rdi
movq %rdi, -0x1150(%rbp)
callq 0x3460
movq -0x1150(%rbp), %rdx
leaq 0x15d47(%rip), %rsi     # 0x1b23c
leaq -0x528(%rbp), %rdi
callq 0x8060
jmp 0x5503
leaq -0x551(%rbp), %rdi
movq %rdi, -0x1158(%rbp)
callq 0x3460
movq -0x1158(%rbp), %rdx
leaq 0x1687d(%rip), %rsi     # 0x1bda1
leaq -0x550(%rbp), %rdi
callq 0x8060
jmp 0x5532
leaq -0x500(%rbp), %rdi
leaq -0x528(%rbp), %rsi
leaq -0x550(%rbp), %rdx
callq 0xce40
jmp 0x554e
leaq -0x550(%rbp), %rdi
callq 0x3160
leaq -0x551(%rbp), %rdi
callq 0x32b0
leaq -0x528(%rbp), %rdi
callq 0x3160
leaq -0x529(%rbp), %rdi
callq 0x32b0
leaq -0x500(%rbp), %rdi
callq 0x3160
leaq -0x501(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x560d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x55f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x55dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x550(%rbp), %rdi
callq 0x3160
leaq -0x551(%rbp), %rdi
callq 0x32b0
leaq -0x528(%rbp), %rdi
callq 0x3160
leaq -0x529(%rbp), %rdi
callq 0x32b0
leaq -0x500(%rbp), %rdi
callq 0x3160
leaq -0x501(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x118(%rbp), %rdi
xorl %esi, %esi
callq 0x8820
jmp 0x562e
leaq -0x579(%rbp), %rdi
movq %rdi, -0x1160(%rbp)
callq 0x3460
movq -0x1160(%rbp), %rdx
leaq 0x15d25(%rip), %rsi     # 0x1b374
leaq -0x578(%rbp), %rdi
callq 0x8060
jmp 0x565d
leaq -0x5a1(%rbp), %rdi
movq %rdi, -0x1168(%rbp)
callq 0x3460
movq -0x1168(%rbp), %rdx
leaq 0x15bbe(%rip), %rsi     # 0x1b23c
leaq -0x5a0(%rbp), %rdi
callq 0x8060
jmp 0x568c
leaq -0x5c9(%rbp), %rdi
movq %rdi, -0x1170(%rbp)
callq 0x3460
movq -0x1170(%rbp), %rdx
leaq 0x15b8b(%rip), %rsi     # 0x1b238
leaq -0x5c8(%rbp), %rdi
callq 0x8060
jmp 0x56bb
leaq -0x578(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
leaq -0x5c8(%rbp), %rdx
callq 0xce40
jmp 0x56d7
leaq -0x5c8(%rbp), %rdi
callq 0x3160
leaq -0x5c9(%rbp), %rdi
callq 0x32b0
leaq -0x5a0(%rbp), %rdi
callq 0x3160
leaq -0x5a1(%rbp), %rdi
callq 0x32b0
leaq -0x578(%rbp), %rdi
callq 0x3160
leaq -0x579(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5796
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x577e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5766
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x5c8(%rbp), %rdi
callq 0x3160
leaq -0x5c9(%rbp), %rdi
callq 0x32b0
leaq -0x5a0(%rbp), %rdi
callq 0x3160
leaq -0x5a1(%rbp), %rdi
callq 0x32b0
leaq -0x578(%rbp), %rdi
callq 0x3160
leaq -0x579(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x5f0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x8860
jmp 0x57bc
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x1172(%rbp)
jmp 0x57d1
movw -0x1172(%rbp), %ax
movzwl %ax, %eax
movl %eax, -0x150(%rbp)
leaq 0x15a5a(%rip), %rdx     # 0x1b242
leaq -0x630(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
callq 0x8900
jmp 0x57fd
movl -0x150(%rbp), %esi
leaq -0x650(%rbp), %rdi
callq 0x8980
jmp 0x5811
leaq -0x610(%rbp), %rdi
leaq -0x630(%rbp), %rsi
leaq -0x650(%rbp), %rdx
callq 0x8340
jmp 0x582d
leaq -0x650(%rbp), %rdi
callq 0x3160
leaq -0x630(%rbp), %rdi
callq 0x3160
leaq -0x671(%rbp), %rdi
movq %rdi, -0x1180(%rbp)
callq 0x3460
movq -0x1180(%rbp), %rdx
leaq 0x15b0e(%rip), %rsi     # 0x1b374
leaq -0x670(%rbp), %rdi
callq 0x8060
jmp 0x5874
leaq -0x699(%rbp), %rdi
movq %rdi, -0x1188(%rbp)
callq 0x3460
movq -0x1188(%rbp), %rdx
leaq 0x159b0(%rip), %rsi     # 0x1b245
leaq -0x698(%rbp), %rdi
callq 0x8060
jmp 0x58a3
leaq -0x670(%rbp), %rdi
leaq -0x698(%rbp), %rsi
leaq -0x610(%rbp), %rdx
callq 0xce40
jmp 0x58bf
leaq -0x698(%rbp), %rdi
callq 0x3160
leaq -0x699(%rbp), %rdi
callq 0x32b0
leaq -0x670(%rbp), %rdi
callq 0x3160
leaq -0x671(%rbp), %rdi
callq 0x32b0
leaq -0x610(%rbp), %rdi
callq 0x3160
leaq -0x5f0(%rbp), %rdi
callq 0x3160
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x59b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5943
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x650(%rbp), %rdi
callq 0x3160
leaq -0x630(%rbp), %rdi
callq 0x3160
jmp 0x59b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x599d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5985
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x698(%rbp), %rdi
callq 0x3160
leaq -0x699(%rbp), %rdi
callq 0x32b0
leaq -0x670(%rbp), %rdi
callq 0x3160
leaq -0x671(%rbp), %rdi
callq 0x32b0
leaq -0x610(%rbp), %rdi
callq 0x3160
leaq -0x5f0(%rbp), %rdi
callq 0x3160
jmp 0x7319
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x118a(%rbp)
jmp 0x59db
movw -0x118a(%rbp), %ax
movzwl %ax, %eax
movl %eax, -0x150(%rbp)
leaq -0x6c1(%rbp), %rdi
movq %rdi, -0x1198(%rbp)
callq 0x3460
movq -0x1198(%rbp), %rdx
leaq 0x15968(%rip), %rsi     # 0x1b374
leaq -0x6c0(%rbp), %rdi
callq 0x8060
jmp 0x5a1a
leaq -0x6e9(%rbp), %rdi
movq %rdi, -0x11a0(%rbp)
callq 0x3460
movq -0x11a0(%rbp), %rdx
leaq 0x15810(%rip), %rsi     # 0x1b24b
leaq -0x6e8(%rbp), %rdi
callq 0x8060
jmp 0x5a49
movl -0x150(%rbp), %esi
leaq -0x710(%rbp), %rdi
callq 0x8980
jmp 0x5a5d
leaq -0x6c0(%rbp), %rdi
leaq -0x6e8(%rbp), %rsi
leaq -0x710(%rbp), %rdx
callq 0xce40
jmp 0x5a79
leaq -0x710(%rbp), %rdi
callq 0x3160
leaq -0x6e8(%rbp), %rdi
callq 0x3160
leaq -0x6e9(%rbp), %rdi
callq 0x32b0
leaq -0x6c0(%rbp), %rdi
callq 0x3160
leaq -0x6c1(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5b20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5b08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5afc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x710(%rbp), %rdi
callq 0x3160
leaq -0x6e8(%rbp), %rdi
callq 0x3160
leaq -0x6e9(%rbp), %rdi
callq 0x32b0
leaq -0x6c0(%rbp), %rdi
callq 0x3160
leaq -0x6c1(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x11a2(%rbp)
jmp 0x5b46
movw -0x11a2(%rbp), %ax
movw %ax, -0x712(%rbp)
leaq -0x739(%rbp), %rdi
movq %rdi, -0x11b0(%rbp)
callq 0x3460
movq -0x11b0(%rbp), %rdx
leaq 0x157ff(%rip), %rsi     # 0x1b374
leaq -0x738(%rbp), %rdi
callq 0x8060
jmp 0x5b83
leaq -0x761(%rbp), %rdi
movq %rdi, -0x11b8(%rbp)
callq 0x3460
movq -0x11b8(%rbp), %rdx
leaq 0x156ad(%rip), %rsi     # 0x1b251
leaq -0x760(%rbp), %rdi
callq 0x8060
jmp 0x5bb2
movzwl -0x712(%rbp), %esi
leaq -0x788(%rbp), %rdi
callq 0x8a60
jmp 0x5bc7
leaq -0x738(%rbp), %rdi
leaq -0x760(%rbp), %rsi
leaq -0x788(%rbp), %rdx
callq 0xce40
jmp 0x5be3
leaq -0x788(%rbp), %rdi
callq 0x3160
leaq -0x760(%rbp), %rdi
callq 0x3160
leaq -0x761(%rbp), %rdi
callq 0x32b0
leaq -0x738(%rbp), %rdi
callq 0x3160
leaq -0x739(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5c8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5c72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5c66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x788(%rbp), %rdi
callq 0x3160
leaq -0x760(%rbp), %rdi
callq 0x3160
leaq -0x761(%rbp), %rdi
callq 0x32b0
leaq -0x738(%rbp), %rdi
callq 0x3160
leaq -0x739(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x11ba(%rbp)
jmp 0x5cb0
movw -0x11ba(%rbp), %ax
movw %ax, -0x78a(%rbp)
leaq -0x7b1(%rbp), %rdi
movq %rdi, -0x11c8(%rbp)
callq 0x3460
movq -0x11c8(%rbp), %rdx
leaq 0x15695(%rip), %rsi     # 0x1b374
leaq -0x7b0(%rbp), %rdi
callq 0x8060
jmp 0x5ced
leaq -0x7d9(%rbp), %rdi
movq %rdi, -0x11d0(%rbp)
callq 0x3460
movq -0x11d0(%rbp), %rdx
leaq 0x1554a(%rip), %rsi     # 0x1b258
leaq -0x7d8(%rbp), %rdi
callq 0x8060
jmp 0x5d1c
movzwl -0x78a(%rbp), %esi
leaq -0x800(%rbp), %rdi
callq 0x8a60
jmp 0x5d31
leaq -0x7b0(%rbp), %rdi
leaq -0x7d8(%rbp), %rsi
leaq -0x800(%rbp), %rdx
callq 0xce40
jmp 0x5d4d
leaq -0x800(%rbp), %rdi
callq 0x3160
leaq -0x7d8(%rbp), %rdi
callq 0x3160
leaq -0x7d9(%rbp), %rdi
callq 0x32b0
leaq -0x7b0(%rbp), %rdi
callq 0x3160
leaq -0x7b1(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5df4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5ddc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5dd0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x800(%rbp), %rdi
callq 0x3160
leaq -0x7d8(%rbp), %rdi
callq 0x3160
leaq -0x7d9(%rbp), %rdi
callq 0x32b0
leaq -0x7b0(%rbp), %rdi
callq 0x3160
leaq -0x7b1(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x11d2(%rbp)
jmp 0x5e1a
movw -0x11d2(%rbp), %ax
movw %ax, -0x802(%rbp)
leaq -0x829(%rbp), %rdi
movq %rdi, -0x11e0(%rbp)
callq 0x3460
movq -0x11e0(%rbp), %rdx
leaq 0x1552b(%rip), %rsi     # 0x1b374
leaq -0x828(%rbp), %rdi
callq 0x8060
jmp 0x5e57
leaq -0x851(%rbp), %rdi
movq %rdi, -0x11e8(%rbp)
callq 0x3460
movq -0x11e8(%rbp), %rdx
leaq 0x153ea(%rip), %rsi     # 0x1b262
leaq -0x850(%rbp), %rdi
callq 0x8060
jmp 0x5e86
movzwl -0x802(%rbp), %esi
leaq -0x878(%rbp), %rdi
callq 0x8a60
jmp 0x5e9b
leaq -0x828(%rbp), %rdi
leaq -0x850(%rbp), %rsi
leaq -0x878(%rbp), %rdx
callq 0xce40
jmp 0x5eb7
leaq -0x878(%rbp), %rdi
callq 0x3160
leaq -0x850(%rbp), %rdi
callq 0x3160
leaq -0x851(%rbp), %rdi
callq 0x32b0
leaq -0x828(%rbp), %rdi
callq 0x3160
leaq -0x829(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5f5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5f46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5f3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x878(%rbp), %rdi
callq 0x3160
leaq -0x850(%rbp), %rdi
callq 0x3160
leaq -0x851(%rbp), %rdi
callq 0x32b0
leaq -0x828(%rbp), %rdi
callq 0x3160
leaq -0x829(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x11ea(%rbp)
jmp 0x5f84
movw -0x11ea(%rbp), %ax
movw %ax, -0x87a(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x11ec(%rbp)
jmp 0x5fa7
movw -0x11ec(%rbp), %ax
movw %ax, -0x87c(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x11ee(%rbp)
jmp 0x5fca
movw -0x11ee(%rbp), %ax
movw %ax, -0x87e(%rbp)
leaq -0x8a0(%rbp), %rdi
callq 0x3380
movzwl -0x87a(%rbp), %esi
leaq -0x940(%rbp), %rdi
callq 0x8a60
jmp 0x5ff9
leaq 0x15242(%rip), %rdx     # 0x1b242
leaq -0x920(%rbp), %rdi
leaq -0x940(%rbp), %rsi
callq 0x8410
jmp 0x6015
movzwl -0x87c(%rbp), %esi
leaq -0x960(%rbp), %rdi
callq 0x8a60
jmp 0x602a
leaq -0x900(%rbp), %rdi
leaq -0x920(%rbp), %rsi
leaq -0x960(%rbp), %rdx
callq 0x8340
jmp 0x6046
leaq 0x151f5(%rip), %rdx     # 0x1b242
leaq -0x8e0(%rbp), %rdi
leaq -0x900(%rbp), %rsi
callq 0x8410
jmp 0x6062
movzwl -0x87e(%rbp), %esi
leaq -0x980(%rbp), %rdi
callq 0x8a60
jmp 0x6077
leaq -0x8c0(%rbp), %rdi
leaq -0x8e0(%rbp), %rsi
leaq -0x980(%rbp), %rdx
callq 0x8340
jmp 0x6093
leaq -0x8a0(%rbp), %rdi
leaq -0x8c0(%rbp), %rsi
movq %rsi, -0x1200(%rbp)
callq 0x3310
movq -0x1200(%rbp), %rdi
callq 0x3160
leaq -0x980(%rbp), %rdi
callq 0x3160
leaq -0x8e0(%rbp), %rdi
callq 0x3160
leaq -0x900(%rbp), %rdi
callq 0x3160
leaq -0x960(%rbp), %rdi
callq 0x3160
leaq -0x920(%rbp), %rdi
callq 0x3160
leaq -0x940(%rbp), %rdi
callq 0x3160
leaq -0x9a1(%rbp), %rdi
movq %rdi, -0x11f8(%rbp)
callq 0x3460
movq -0x11f8(%rbp), %rdx
leaq 0x15252(%rip), %rsi     # 0x1b374
leaq -0x9a0(%rbp), %rdi
callq 0x8060
jmp 0x6130
leaq -0x9c9(%rbp), %rdi
movq %rdi, -0x1208(%rbp)
callq 0x3460
movq -0x1208(%rbp), %rdx
leaq 0x1511b(%rip), %rsi     # 0x1b26c
leaq -0x9c8(%rbp), %rdi
callq 0x8060
jmp 0x615f
leaq -0x9a0(%rbp), %rdi
leaq -0x9c8(%rbp), %rsi
leaq -0x8a0(%rbp), %rdx
callq 0xce40
jmp 0x617b
leaq -0x9c8(%rbp), %rdi
callq 0x3160
leaq -0x9c9(%rbp), %rdi
callq 0x32b0
leaq -0x9a0(%rbp), %rdi
callq 0x3160
leaq -0x9a1(%rbp), %rdi
callq 0x32b0
leaq -0x8a0(%rbp), %rdi
callq 0x3160
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x62c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x625e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6252
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x623a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x622e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x980(%rbp), %rdi
callq 0x3160
leaq -0x8e0(%rbp), %rdi
callq 0x3160
leaq -0x900(%rbp), %rdi
callq 0x3160
leaq -0x960(%rbp), %rdi
callq 0x3160
leaq -0x920(%rbp), %rdi
callq 0x3160
leaq -0x940(%rbp), %rdi
callq 0x3160
jmp 0x62c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x62b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x62a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x9c8(%rbp), %rdi
callq 0x3160
leaq -0x9c9(%rbp), %rdi
callq 0x32b0
leaq -0x9a0(%rbp), %rdi
callq 0x3160
leaq -0x9a1(%rbp), %rdi
callq 0x32b0
leaq -0x8a0(%rbp), %rdi
callq 0x3160
jmp 0x7319
movq 0x1e9f4(%rip), %rax     # 0x24cd0
movq %rax, -0x9e0(%rbp)
movaps 0x1e9d6(%rip), %xmm0    # 0x24cc0
movaps %xmm0, -0x9f0(%rbp)
movzbl -0x3e9(%rbp), %eax
movq -0xd28(%rbp,%rax,8), %rax
movq %rax, -0x9f8(%rbp)
leaq -0xa18(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x8860
jmp 0x631c
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x120a(%rbp)
jmp 0x6331
movw -0x120a(%rbp), %ax
movw %ax, -0xa1a(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x120c(%rbp)
jmp 0x6354
movw -0x120c(%rbp), %ax
movw %ax, -0xa1c(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x3380
leaq 0x14ecd(%rip), %rdx     # 0x1b242
leaq -0xac0(%rbp), %rdi
leaq -0xa18(%rbp), %rsi
callq 0x8900
jmp 0x638a
movzwl -0xa1a(%rbp), %esi
leaq -0xae0(%rbp), %rdi
callq 0x8a60
jmp 0x639f
leaq -0xaa0(%rbp), %rdi
leaq -0xac0(%rbp), %rsi
leaq -0xae0(%rbp), %rdx
callq 0x8340
jmp 0x63bb
leaq 0x14e80(%rip), %rdx     # 0x1b242
leaq -0xa80(%rbp), %rdi
leaq -0xaa0(%rbp), %rsi
callq 0x8410
jmp 0x63d7
movzwl -0xa1c(%rbp), %esi
leaq -0xb00(%rbp), %rdi
callq 0x8a60
jmp 0x63ec
leaq -0xa60(%rbp), %rdi
leaq -0xa80(%rbp), %rsi
leaq -0xb00(%rbp), %rdx
callq 0x8340
jmp 0x6408
leaq -0xa40(%rbp), %rdi
leaq -0xa60(%rbp), %rsi
movq %rsi, -0x1220(%rbp)
callq 0x3310
movq -0x1220(%rbp), %rdi
callq 0x3160
leaq -0xb00(%rbp), %rdi
callq 0x3160
leaq -0xa80(%rbp), %rdi
callq 0x3160
leaq -0xaa0(%rbp), %rdi
callq 0x3160
leaq -0xae0(%rbp), %rdi
callq 0x3160
leaq -0xac0(%rbp), %rdi
callq 0x3160
leaq -0xb21(%rbp), %rdi
movq %rdi, -0x1218(%rbp)
callq 0x3460
movq -0x1218(%rbp), %rdx
leaq 0x14ee9(%rip), %rsi     # 0x1b374
leaq -0xb20(%rbp), %rdi
callq 0x8060
jmp 0x6499
movq -0x9f8(%rbp), %rax
movq %rax, -0x1230(%rbp)
leaq -0xb49(%rbp), %rdi
movq %rdi, -0x1228(%rbp)
callq 0x3460
movq -0x1230(%rbp), %rsi
movq -0x1228(%rbp), %rdx
leaq -0xb48(%rbp), %rdi
callq 0x8060
jmp 0x64d6
leaq -0xb20(%rbp), %rdi
leaq -0xb48(%rbp), %rsi
leaq -0xa40(%rbp), %rdx
callq 0xce40
jmp 0x64f2
leaq -0xb48(%rbp), %rdi
callq 0x3160
leaq -0xb49(%rbp), %rdi
callq 0x32b0
leaq -0xb20(%rbp), %rdi
callq 0x3160
leaq -0xb21(%rbp), %rdi
callq 0x32b0
leaq -0xa40(%rbp), %rdi
callq 0x3160
leaq -0xa18(%rbp), %rdi
callq 0x3160
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x663b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x65d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x65c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x65bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x65b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb00(%rbp), %rdi
callq 0x3160
leaq -0xa80(%rbp), %rdi
callq 0x3160
leaq -0xaa0(%rbp), %rdi
callq 0x3160
leaq -0xae0(%rbp), %rdi
callq 0x3160
leaq -0xac0(%rbp), %rdi
callq 0x3160
jmp 0x663b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x662f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6617
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb48(%rbp), %rdi
callq 0x3160
leaq -0xb49(%rbp), %rdi
callq 0x32b0
leaq -0xb20(%rbp), %rdi
callq 0x3160
leaq -0xb21(%rbp), %rdi
callq 0x32b0
leaq -0xa40(%rbp), %rdi
callq 0x3160
leaq -0xa18(%rbp), %rdi
callq 0x3160
jmp 0x7319
leaq -0xb71(%rbp), %rdi
movq %rdi, -0x1238(%rbp)
callq 0x3460
movq -0x1238(%rbp), %rdx
leaq 0x14cfb(%rip), %rsi     # 0x1b374
leaq -0xb70(%rbp), %rdi
callq 0x8060
jmp 0x6687
leaq -0xb99(%rbp), %rdi
movq %rdi, -0x1240(%rbp)
callq 0x3460
movq -0x1240(%rbp), %rdx
leaq 0x14bdf(%rip), %rsi     # 0x1b287
leaq -0xb98(%rbp), %rdi
callq 0x8060
jmp 0x66b6
leaq -0xb70(%rbp), %rdi
leaq -0xb98(%rbp), %rsi
callq 0xcd80
jmp 0x66cb
leaq -0xb98(%rbp), %rdi
callq 0x3160
leaq -0xb99(%rbp), %rdi
callq 0x32b0
leaq -0xb70(%rbp), %rdi
callq 0x3160
leaq -0xb71(%rbp), %rdi
callq 0x32b0
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x674c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6734
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xb98(%rbp), %rdi
callq 0x3160
leaq -0xb99(%rbp), %rdi
callq 0x32b0
leaq -0xb70(%rbp), %rdi
callq 0x3160
leaq -0xb71(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0xbc0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x8860
jmp 0x6772
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0x1241(%rbp)
jmp 0x6786
movb -0x1241(%rbp), %al
movb %al, -0xbc1(%rbp)
movzbl -0xbc1(%rbp), %eax
cmpl $0x0, %eax
jne 0x67d6
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x1244(%rbp)
jmp 0x67b3
movw -0x1244(%rbp), %ax
movzwl %ax, %eax
movl %eax, -0xbc8(%rbp)
jmp 0x67d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6fa6
movzbl -0xbc1(%rbp), %eax
cmpl $0x1, %eax
jne 0x6802
leaq -0x180(%rbp), %rdi
callq 0x82a0
movl %eax, -0x1248(%rbp)
jmp 0x67f6
movl -0x1248(%rbp), %eax
movl %eax, -0xbc8(%rbp)
movzbl -0xbc1(%rbp), %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x1249(%rbp)
je 0x6829
movzbl -0xbc1(%rbp), %eax
cmpl $0x1, %eax
sete %al
movb %al, -0x1249(%rbp)
movb -0x1249(%rbp), %al
testb $0x1, %al
jne 0x6835
jmp 0x6837
jmp 0x6856
leaq 0x14a4e(%rip), %rdi     # 0x1b28c
leaq 0x148d7(%rip), %rsi     # 0x1b11c
movl $0x1c6, %edx            # imm = 0x1C6
leaq 0x148d7(%rip), %rcx     # 0x1b128
callq 0x31a0
leaq -0x180(%rbp), %rdi
callq 0x82a0
movl %eax, -0x1250(%rbp)
jmp 0x686a
movl -0x1250(%rbp), %eax
movl %eax, -0xbcc(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0x1251(%rbp)
jmp 0x688a
movb -0x1251(%rbp), %al
movb %al, -0xbcd(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x1254(%rbp)
jmp 0x68ab
movw -0x1254(%rbp), %ax
movw %ax, -0xbd0(%rbp)
leaq 0x149e9(%rip), %rax     # 0x1b2a9
movq %rax, -0xbd8(%rbp)
movzbl -0x3e9(%rbp), %eax
cmpl $0x6a, %eax
jne 0x68e1
leaq 0x149d4(%rip), %rax     # 0x1b2ae
movq %rax, -0xbd8(%rbp)
leaq -0xbf8(%rbp), %rdi
callq 0x3380
movzbl -0xbc1(%rbp), %eax
cmpl $0x0, %eax
jne 0x69f2
leaq -0xc18(%rbp), %rdi
callq 0x3380
movl -0xbc8(%rbp), %edx
leaq -0xc38(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x141e0
jmp 0x6924
leaq -0xc18(%rbp), %rdi
leaq -0xc38(%rbp), %rsi
movq %rsi, -0x1260(%rbp)
callq 0x3310
movq -0x1260(%rbp), %rdi
callq 0x3160
leaq 0x148f1(%rip), %rdx     # 0x1b242
leaq -0xc78(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x8900
jmp 0x6966
leaq -0xc58(%rbp), %rdi
leaq -0xc78(%rbp), %rsi
leaq -0xc18(%rbp), %rdx
callq 0x86c0
jmp 0x6982
leaq -0xbf8(%rbp), %rdi
leaq -0xc58(%rbp), %rsi
callq 0x3310
leaq -0xc58(%rbp), %rdi
callq 0x3160
leaq -0xc78(%rbp), %rdi
callq 0x3160
leaq -0xc18(%rbp), %rdi
callq 0x3160
jmp 0x69f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x69e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc78(%rbp), %rdi
callq 0x3160
leaq -0xc18(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
movzbl -0xbc1(%rbp), %eax
cmpl $0x1, %eax
jne 0x6acf
leaq 0x14839(%rip), %rdx     # 0x1b242
leaq -0xcb8(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
callq 0x8900
jmp 0x6a1e
movl -0xbc8(%rbp), %esi
leaq -0xcd8(%rbp), %rdi
callq 0x8980
jmp 0x6a32
leaq -0xc98(%rbp), %rdi
leaq -0xcb8(%rbp), %rsi
leaq -0xcd8(%rbp), %rdx
callq 0x8340
jmp 0x6a4e
leaq -0xbf8(%rbp), %rdi
leaq -0xc98(%rbp), %rsi
callq 0x3310
leaq -0xc98(%rbp), %rdi
callq 0x3160
leaq -0xcd8(%rbp), %rdi
callq 0x3160
leaq -0xcb8(%rbp), %rdi
callq 0x3160
jmp 0x6acf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6f9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6abe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xcd8(%rbp), %rdi
callq 0x3160
leaq -0xcb8(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
movl -0xbcc(%rbp), %esi
leaq -0xd18(%rbp), %rdi
callq 0x8980
jmp 0x6ae3
leaq 0x14758(%rip), %rsi     # 0x1b242
leaq -0xcf8(%rbp), %rdi
leaq -0xd18(%rbp), %rdx
callq 0x8b80
jmp 0x6aff
leaq -0xbf8(%rbp), %rdi
leaq -0xcf8(%rbp), %rsi
callq 0x3340
jmp 0x6b14
leaq -0xcf8(%rbp), %rdi
callq 0x3160
leaq -0xd18(%rbp), %rdi
callq 0x3160
movzbl -0xbcd(%rbp), %esi
leaq -0xd58(%rbp), %rdi
callq 0x8a60
jmp 0x6b41
leaq 0x146fa(%rip), %rsi     # 0x1b242
leaq -0xd38(%rbp), %rdi
leaq -0xd58(%rbp), %rdx
callq 0x8b80
jmp 0x6b5d
leaq -0xbf8(%rbp), %rdi
leaq -0xd38(%rbp), %rsi
callq 0x3340
jmp 0x6b72
leaq -0xd38(%rbp), %rdi
callq 0x3160
leaq -0xd58(%rbp), %rdi
callq 0x3160
movzwl -0xbd0(%rbp), %esi
leaq -0xd98(%rbp), %rdi
callq 0x8a60
jmp 0x6b9f
leaq 0x1469c(%rip), %rsi     # 0x1b242
leaq -0xd78(%rbp), %rdi
leaq -0xd98(%rbp), %rdx
callq 0x8b80
jmp 0x6bbb
leaq -0xbf8(%rbp), %rdi
leaq -0xd78(%rbp), %rsi
callq 0x3340
jmp 0x6bd0
leaq -0xd78(%rbp), %rdi
callq 0x3160
leaq -0xd98(%rbp), %rdi
callq 0x3160
movl -0xbcc(%rbp), %eax
andl $0x1f, %eax
movl %eax, -0xd9c(%rbp)
cmpl $0xa, -0xd9c(%rbp)
je 0x6c0d
cmpl $0xb, -0xd9c(%rbp)
jne 0x6d6f
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x1262(%rbp)
jmp 0x6c22
movw -0x1262(%rbp), %ax
movw %ax, -0xd9e(%rbp)
movzwl -0xd9e(%rbp), %esi
leaq -0xde0(%rbp), %rdi
callq 0x8a60
jmp 0x6c45
leaq 0x145f6(%rip), %rsi     # 0x1b242
leaq -0xdc0(%rbp), %rdi
leaq -0xde0(%rbp), %rdx
callq 0x8b80
jmp 0x6c61
leaq -0xbf8(%rbp), %rdi
leaq -0xdc0(%rbp), %rsi
callq 0x3340
jmp 0x6c76
leaq -0xdc0(%rbp), %rdi
callq 0x3160
leaq -0xde0(%rbp), %rdi
callq 0x3160
jmp 0x6d6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xcf8(%rbp), %rdi
callq 0x3160
leaq -0xd18(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6cf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xd38(%rbp), %rdi
callq 0x3160
leaq -0xd58(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6d27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xd78(%rbp), %rdi
callq 0x3160
leaq -0xd98(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6d5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xdc0(%rbp), %rdi
callq 0x3160
leaq -0xde0(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
movl -0xbcc(%rbp), %eax
shrl $0x5, %eax
movl %eax, -0xd9c(%rbp)
cmpl $0x0, -0xd9c(%rbp)
je 0x6e6d
movl -0xd9c(%rbp), %eax
andl $0x7, %eax
cmpl $0x3, %eax
jne 0x6e57
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x1264(%rbp)
jmp 0x6db2
movw -0x1264(%rbp), %ax
movw %ax, -0xde2(%rbp)
movzwl -0xde2(%rbp), %esi
leaq -0xe28(%rbp), %rdi
callq 0x8a60
jmp 0x6dd5
leaq 0x14466(%rip), %rsi     # 0x1b242
leaq -0xe08(%rbp), %rdi
leaq -0xe28(%rbp), %rdx
callq 0x8b80
jmp 0x6df1
leaq -0xbf8(%rbp), %rdi
leaq -0xe08(%rbp), %rsi
callq 0x3340
jmp 0x6e06
leaq -0xe08(%rbp), %rdi
callq 0x3160
leaq -0xe28(%rbp), %rdi
callq 0x3160
jmp 0x6e57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xe08(%rbp), %rdi
callq 0x3160
leaq -0xe28(%rbp), %rdi
callq 0x3160
jmp 0x6f9a
jmp 0x6e59
movl -0xd9c(%rbp), %eax
sarl $0x3, %eax
movl %eax, -0xd9c(%rbp)
jmp 0x6d7e
leaq -0xe49(%rbp), %rdi
movq %rdi, -0x1270(%rbp)
callq 0x3460
movq -0x1270(%rbp), %rdx
leaq 0x144e6(%rip), %rsi     # 0x1b374
leaq -0xe48(%rbp), %rdi
callq 0x8060
jmp 0x6e9c
movq -0xbd8(%rbp), %rax
movq %rax, -0x1280(%rbp)
leaq -0xe71(%rbp), %rdi
movq %rdi, -0x1278(%rbp)
callq 0x3460
movq -0x1280(%rbp), %rsi
movq -0x1278(%rbp), %rdx
leaq -0xe70(%rbp), %rdi
callq 0x8060
jmp 0x6ed9
leaq -0xe48(%rbp), %rdi
leaq -0xe70(%rbp), %rsi
leaq -0xbf8(%rbp), %rdx
callq 0xce40
jmp 0x6ef5
leaq -0xe70(%rbp), %rdi
callq 0x3160
leaq -0xe71(%rbp), %rdi
callq 0x32b0
leaq -0xe48(%rbp), %rdi
callq 0x3160
leaq -0xe49(%rbp), %rdi
callq 0x32b0
leaq -0xbf8(%rbp), %rdi
callq 0x3160
leaq -0xbc0(%rbp), %rdi
callq 0x3160
jmp 0x6fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6f8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x6f76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xe70(%rbp), %rdi
callq 0x3160
leaq -0xe71(%rbp), %rdi
callq 0x32b0
leaq -0xe48(%rbp), %rdi
callq 0x3160
leaq -0xe49(%rbp), %rdi
callq 0x32b0
leaq -0xbf8(%rbp), %rdi
callq 0x3160
leaq -0xbc0(%rbp), %rdi
callq 0x3160
jmp 0x7319
movq -0x10(%rbp), %rdx
movzbl -0x3e9(%rbp), %r8d
leaq 0x142ec(%rip), %rsi     # 0x1b2b6
xorl %eax, %eax
movl $0x41, %edi
movl %r8d, %ecx
callq 0x34a0
jmp 0x6fdb
jmp 0x510e
jmp 0x7238
leaq -0x180(%rbp), %rdi
callq 0x81b0
movb %al, -0x1281(%rbp)
jmp 0x6ff9
movb -0x1281(%rbp), %al
movb %al, -0xe72(%rbp)
movzbl -0xe72(%rbp), %esi
leaq -0x118(%rbp), %rdi
callq 0x13400
jmp 0x701a
jmp 0x7238
leaq -0x118(%rbp), %rdi
callq 0xd970
jmp 0x702d
leaq -0x180(%rbp), %rdi
callq 0x82a0
movl %eax, -0x1288(%rbp)
jmp 0x7041
movl -0x1288(%rbp), %eax
movl %eax, -0xe78(%rbp)
leaq -0xe99(%rbp), %rdi
movq %rdi, -0x1290(%rbp)
callq 0x3460
movq -0x1290(%rbp), %rdx
leaq 0x14306(%rip), %rsi     # 0x1b374
leaq -0xe98(%rbp), %rdi
callq 0x8060
jmp 0x707c
leaq -0xec1(%rbp), %rdi
movq %rdi, -0x1298(%rbp)
callq 0x3460
movq -0x1298(%rbp), %rdx
leaq 0x1423c(%rip), %rsi     # 0x1b2d9
leaq -0xec0(%rbp), %rdi
callq 0x8060
jmp 0x70ab
movl -0xe78(%rbp), %esi
leaq -0xee8(%rbp), %rdi
movl $0x4, %edx
movl $0x24, %ecx
callq 0xcb90
jmp 0x70c9
leaq -0xe98(%rbp), %rdi
leaq -0xec0(%rbp), %rsi
leaq -0xee8(%rbp), %rdx
callq 0xce40
jmp 0x70e5
leaq -0xee8(%rbp), %rdi
callq 0x3160
leaq -0xec0(%rbp), %rdi
callq 0x3160
leaq -0xec1(%rbp), %rdi
callq 0x32b0
leaq -0xe98(%rbp), %rdi
callq 0x3160
leaq -0xe99(%rbp), %rdi
callq 0x32b0
movl -0xe78(%rbp), %esi
leaq -0x118(%rbp), %rdi
callq 0x8bd0
jmp 0x7135
jmp 0x7238
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x71a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x7188
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x717c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xee8(%rbp), %rdi
callq 0x3160
leaq -0xec0(%rbp), %rdi
callq 0x3160
leaq -0xec1(%rbp), %rdi
callq 0x32b0
leaq -0xe98(%rbp), %rdi
callq 0x3160
leaq -0xe99(%rbp), %rdi
callq 0x32b0
jmp 0x7319
leaq -0x180(%rbp), %rdi
callq 0x8510
movw %ax, -0x129a(%rbp)
jmp 0x71c6
movw -0x129a(%rbp), %ax
movw %ax, -0xeea(%rbp)
movzwl -0xeea(%rbp), %esi
leaq -0x118(%rbp), %rdi
callq 0xda10
jmp 0x71e9
jmp 0x7238
leaq -0x118(%rbp), %rdi
callq 0xd970
jmp 0x71f9
movl -0x150(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x150(%rbp)
jmp 0x7238
leaq -0x118(%rbp), %rdi
callq 0xd970
jmp 0x7218
movq -0x10(%rbp), %rdx
movzbl -0x149(%rbp), %ecx
leaq 0x140b4(%rip), %rsi     # 0x1b2de
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x7238
jmp 0x3efd
movl $0x0, -0xef0(%rbp)
testb $0x1, 0x1e062(%rip)     # 0x252b0
je 0x725f
movl -0xef0(%rbp), %eax
orl $0x1, %eax
movl %eax, -0xef0(%rbp)
movl -0xef0(%rbp), %esi
leaq -0x118(%rbp), %rdi
callq 0x13650
jmp 0x7273
leaq -0x78(%rbp), %rdi
callq 0x8180
movq %rax, -0xef8(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0xef8(%rbp), %rsi
callq 0x8140
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x129b(%rbp)
jne 0x72b8
movzbl -0x149(%rbp), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x129b(%rbp)
movb -0x129b(%rbp), %al
testb $0x1, %al
jne 0x72c4
jmp 0x72dd
movq -0x10(%rbp), %rdx
leaq 0x14027(%rip), %rsi     # 0x1b2f6
xorl %eax, %eax
movl $0x41, %edi
callq 0x34a0
jmp 0x72dd
movb $0x1, -0x1(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x11be0
leaq -0xa8(%rbp), %rdi
callq 0x8c10
leaq -0x90(%rbp), %rdi
callq 0x8c10
leaq -0x78(%rbp), %rdi
callq 0x8c10
leaq -0x50(%rbp), %rdi
callq 0x8c70
jmp 0x7351
leaq -0x118(%rbp), %rdi
callq 0x11be0
leaq -0xa8(%rbp), %rdi
callq 0x8c10
leaq -0x90(%rbp), %rdi
callq 0x8c10
leaq -0x78(%rbp), %rdi
callq 0x8c10
leaq -0x50(%rbp), %rdi
callq 0x8c70
jmp 0x735f
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x12a0, %rsp           # imm = 0x12A0
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x3440
nopl (%rax,%rax)