// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movl %esi, %ebx
movq %rdi, %r15
leaq 0x178(%rsp), %rsi
movl $0x18, %edx
movl %ebx, %edi
callq 0x2250
movq %rax, %r12
testq %rax, %rax
je 0x5691
cmpq $0x18, %r12
jne 0x571c
cmpl $0x5a44525a, 0x178(%rsp) # imm = 0x5A44525A
jne 0x5732
cmpw $0x1, 0x17c(%rsp)
jne 0x5751
cmpb $0x1, 0x17e(%rsp)
jne 0x5770
xorps %xmm0, %xmm0
leaq 0x1d0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movzbl 0x17f(%rsp), %r14d
movq %r14, %rsi
callq 0x66c0
movq 0x1d0(%rsp), %rsi
movl %ebx, %edi
movq %r14, %rdx
callq 0x2250
cmpq %r14, %rax
jne 0x578f
xorps %xmm0, %xmm0
leaq 0x150(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movl 0x180(%rsp), %r14d
movq %r14, %rsi
callq 0x66ec
movq 0x150(%rsp), %rsi
movl %ebx, %edi
movq %r14, %rdx
callq 0x2250
cmpq %r14, %rax
jne 0x57a5
xorps %xmm0, %xmm0
leaq 0x1b0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movzwl 0x184(%rsp), %r14d
movq %r14, %rsi
callq 0x66ec
movq 0x1b0(%rsp), %rsi
movl %ebx, %edi
movq %r14, %rdx
callq 0x2250
cmpq %r14, %rax
jne 0x57bb
xorps %xmm0, %xmm0
leaq 0x190(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movl 0x186(%rsp), %r14d
movq %r14, %rsi
callq 0x66ec
movq 0x190(%rsp), %rsi
movl %ebx, %edi
movq %r14, %rdx
callq 0x2250
cmpq %r14, %rax
jne 0x57d1
movzwl 0x18a(%rsp), %esi
testq %rsi, %rsi
je 0x2a91
movl %ebx, %edi
movl $0x1, %edx
callq 0x2300
leaq 0x50(%rsp), %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x25de
leaq 0x30(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0x2776
leaq 0x1f8(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x9814
leaq 0x30(%rsp), %rdi
callq 0x6662
leaq 0x50(%rsp), %rdi
callq 0x658e
movq 0x1d0(%rsp), %rsi
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6718
leaq 0x1f8(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9bba
leaq 0x60(%rsp), %r13
movq -0x10(%r13), %rdi
cmpq %r13, %rdi
je 0x2b24
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x21c0
movq %r12, 0x1e8(%rsp)
movq %r15, 0x130(%rsp)
movq 0x150(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq 0x158(%rsp), %rax
je 0x55d6
leaq 0x40(%rsp), %r14
leaq 0x20(%rsp), %rbx
leaq 0x11710(%rip), %rcx     # 0x14270
movq %rcx, 0xb8(%rsp)
leaq 0x11691(%rip), %rcx     # 0x14200
movq %rcx, 0x170(%rsp)
movzbl (%rax), %r15d
leaq 0x1(%rax), %r12
movq %r12, 0x8(%rsp)
testq %r15, %r15
setne %bpl
je 0x55d6
cmpb $-0x11, %r15b
ja 0x2bc6
addq %r15, %r12
leaq 0x1f8(%rsp), %r15
movq 0x8(%rsp), %rax
cmpq %r12, %rax
je 0x35f5
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl (%rax), %esi
movq %r15, %rdi
callq 0x8728
jmp 0x2ba2
leal -0xf0(%r15), %ecx
cmpl $0x6, %ecx
ja 0x5823
leaq 0xc443(%rip), %rdx      # 0xf020
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movzbl 0x1(%rax), %ecx
movl %ecx, 0x140(%rsp)
addq $0x2, %rax
movq %rax, 0x8(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xc0(%rsp)
movq $0x0, 0xd0(%rsp)
leaq 0x80(%rsp), %rbp
movzbl (%rax), %r15d
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rsp)
leal -0x14(%r15), %r12d
cmpl $0x10, %r12d
jae 0x2c7c
movb 0x1181a(%rip), %al      # 0x14450
testb %al, %al
je 0x3277
movq 0xc8(%rsp), %rax
movq %rax, %rcx
subq 0xc0(%rsp), %rcx
cmpq $0x20, %rcx
jbe 0x56a9
movq %r13, 0x50(%rsp)
movq -0x20(%rax), %rdx
leaq -0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2ce5
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x2ced
cmpl $0xc, %r15d
ja 0x56c4
movl %r15d, %ecx
leaq 0xc3ec(%rip), %rdx      # 0xf07c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movb 0x115a1(%rip), %al      # 0x14240
testb %al, %al
je 0x3531
movq 0xc8(%rsp), %rax
cmpq %rax, 0xc0(%rsp)
je 0x56a9
movq %r13, 0x50(%rsp)
movq -0x20(%rax), %rdx
leaq -0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2e98
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x2ea0
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq -0x18(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, -0x20(%rax)
movq $0x0, -0x18(%rax)
movb $0x0, -0x10(%rax)
movq 0xc8(%rsp), %rcx
leaq -0x20(%rcx), %rax
movq %rax, 0xc8(%rsp)
movq -0x20(%rcx), %rdi
addq $-0x10, %rcx
cmpq %rcx, %rdi
je 0x2d3a
movq (%rcx), %rsi
incq %rsi
callq 0x21c0
movq 0xc8(%rsp), %rax
movq %r14, 0x30(%rsp)
movq -0x20(%rax), %rdx
leaq -0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x2d5b
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x2d62
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq -0x18(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, -0x20(%rax)
movq $0x0, -0x18(%rax)
movb $0x0, -0x10(%rax)
movq 0xc8(%rsp), %rax
leaq -0x20(%rax), %rcx
movq %rcx, 0xc8(%rsp)
movq -0x20(%rax), %rdi
addq $-0x10, %rax
cmpq %rax, %rdi
je 0x2da7
movq (%rax), %rsi
incq %rsi
callq 0x21c0
shlq $0x5, %r12
leaq 0x1149e(%rip), %rax     # 0x14250
addq %rax, %r12
leaq 0x70(%rsp), %r15
movq %r15, %rdi
leaq 0x30(%rsp), %rsi
movq %r12, %rdx
callq 0x67c3
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %r15, %rdi
callq 0x2090
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2dff
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x2e05
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xc0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x6756
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x2e46
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2e60
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x2e77
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x2e8e
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x8(%rsp), %rax
jmp 0x2c19
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq -0x18(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, -0x20(%rax)
movq $0x0, -0x18(%rax)
movb $0x0, -0x10(%rax)
movq 0xc8(%rsp), %rax
leaq -0x20(%rax), %rcx
movq %rcx, 0xc8(%rsp)
movq -0x20(%rax), %rdi
addq $-0x10, %rax
cmpq %rax, %rdi
je 0x2ee5
movq (%rax), %rsi
incq %rsi
callq 0x21c0
addl $-0xa, %r15d
shlq $0x5, %r15
movq %r14, 0x30(%rsp)
leaq 0x112e7(%rip), %rax     # 0x141e0
movq (%r15,%rax), %rsi
movq 0x8(%r15,%rax), %rdx
addq %rsi, %rdx
leaq 0x30(%rsp), %r15
movq %r15, %rdi
callq 0x69ce
leaq 0x10(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
leaq 0x50(%rsp), %rdx
callq 0x67c3
leaq 0xc0(%rsp), %rdi
movq %r12, %rsi
callq 0x6756
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x2e60
movq 0x20(%rsp), %rsi
jmp 0x2e58
movzbl 0x1(%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x2(%rax), %edx
shll $0x8, %edx
orl %ecx, %edx
leaq 0x3(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x3(%rax), %ecx
shll $0x10, %ecx
orl %edx, %ecx
leaq 0x4(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x4(%rax), %esi
shll $0x18, %esi
orl %ecx, %esi
addq $0x5, %rax
movq %rax, 0x8(%rsp)
leaq 0x50(%rsp), %r15
movq %r15, %rdi
movl $0x4, %edx
movl $0x24, %ecx
callq 0x73f8
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
callq 0x6756
jmp 0x2e77
movzbl 0x1(%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x2(%rax), %edx
shll $0x8, %edx
orl %ecx, %edx
addq $0x3, %rax
movq %rax, 0x8(%rsp)
leaq 0x50(%rsp), %r15
movq %r15, %rdi
leaq 0x1f8(%rsp), %rsi
callq 0xb6e6
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
callq 0x6756
jmp 0x2e77
movzbl 0x1(%rax), %edx
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %ecx
leaq 0x3(%rax), %rsi
movq %rsi, 0x8(%rsp)
movzbl 0x3(%rax), %esi
shll $0x8, %esi
orl %ecx, %esi
leaq 0x4(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x4(%rax), %ecx
shll $0x10, %ecx
orl %esi, %ecx
leaq 0x5(%rax), %rsi
movq %rsi, 0x8(%rsp)
movzbl 0x5(%rax), %r15d
shll $0x18, %r15d
orl %ecx, %r15d
addq $0x6, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
movq $0x0, 0x58(%rsp)
movb $0x0, 0x60(%rsp)
cmpb $0x1, 0x1115d(%rip)     # 0x141d1
jne 0x30bd
leaq 0x70(%rsp), %r12
movq %r12, %rdi
leaq 0x1f8(%rsp), %rsi
callq 0xb766
movq %r12, %rdi
leaq 0xc0e5(%rip), %rsi      # 0xf17a
callq 0x2320
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x30fa
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x3100
leaq 0x30(%rsp), %r12
movq %r12, %rdi
leaq 0x1f8(%rsp), %rsi
movl %r15d, %ecx
callq 0xb22c
leaq 0x50(%rsp), %rdi
movq %r12, %rsi
callq 0x2220
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x3260
movq 0x40(%rsp), %rsi
jmp 0x3258
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x98(%rsp), %rdi
movl %r15d, %esi
movl $0x4, %edx
movl $0x24, %ecx
callq 0x73f8
movq 0x10(%rsp), %rcx
movl $0xf, %edi
cmpq %rbx, %rcx
je 0x3146
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %r8
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x3183
movl $0xf, %edi
leaq 0xa8(%rsp), %r9
cmpq %r9, %rsi
je 0x317e
movq 0xa8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x318f
leaq 0x10(%rsp), %rdi
callq 0x2090
jmp 0x31a0
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq %r14, 0x30(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x31c0
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x31c7
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x2220
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x320a
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x322f
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x3246
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x3260
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
leaq 0xc0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x6756
jmp 0x2e77
leaq 0x111d2(%rip), %rdi     # 0x14450
callq 0x22f0
testl %eax, %eax
je 0x2c3e
leaq 0x10fce(%rip), %rax     # 0x14260
movq %rax, 0x10fb7(%rip)     # 0x14250
leaq 0x10fb0(%rip), %rdi     # 0x14250
leaq 0xbefa(%rip), %rsi      # 0xf1a1
leaq 0xbef5(%rip), %rdx      # 0xf1a3
callq 0x6a64
leaq 0x10fc6(%rip), %rax     # 0x14280
movq %rax, 0x10faf(%rip)     # 0x14270
leaq 0x10fa8(%rip), %rdi     # 0x14270
leaq 0xbed3(%rip), %rsi      # 0xf1a2
leaq 0xbecd(%rip), %rdx      # 0xf1a3
callq 0x6a64
leaq 0x10fbe(%rip), %rax     # 0x142a0
movq %rax, 0x10fa7(%rip)     # 0x14290
leaq 0x10fa0(%rip), %rdi     # 0x14290
leaq 0xbead(%rip), %rsi      # 0xf1a4
leaq 0xbea7(%rip), %rdx      # 0xf1a5
callq 0x6a64
leaq 0x10fb6(%rip), %rax     # 0x142c0
movq %rax, 0x10f9f(%rip)     # 0x142b0
leaq 0x10f98(%rip), %rdi     # 0x142b0
leaq 0xbe87(%rip), %rsi      # 0xf1a6
leaq 0xbe85(%rip), %rdx      # 0xf1ab
callq 0x6a64
leaq 0x10fae(%rip), %rax     # 0x142e0
movq %rax, 0x10f97(%rip)     # 0x142d0
leaq 0x10f90(%rip), %rdi     # 0x142d0
leaq 0xbe65(%rip), %rsi      # 0xf1ac
leaq 0xbe60(%rip), %rdx      # 0xf1ae
callq 0x6a64
leaq 0x10fa6(%rip), %rax     # 0x14300
movq %rax, 0x10f8f(%rip)     # 0x142f0
leaq 0x10f88(%rip), %rdi     # 0x142f0
leaq 0xbe40(%rip), %rsi      # 0xf1af
leaq 0xbe3b(%rip), %rdx      # 0xf1b1
callq 0x6a64
leaq 0x10f9e(%rip), %rax     # 0x14320
movq %rax, 0x10f87(%rip)     # 0x14310
leaq 0x10f80(%rip), %rdi     # 0x14310
leaq 0xbde3(%rip), %rsi      # 0xf17a
leaq 0xbddd(%rip), %rdx      # 0xf17b
callq 0x6a64
leaq 0x10f96(%rip), %rax     # 0x14340
movq %rax, 0x10f7f(%rip)     # 0x14330
leaq 0x10f78(%rip), %rdi     # 0x14330
leaq 0xbdc3(%rip), %rsi      # 0xf182
leaq 0xbdbd(%rip), %rdx      # 0xf183
callq 0x6a64
leaq 0x10f8e(%rip), %rax     # 0x14360
movq %rax, 0x10f77(%rip)     # 0x14350
leaq 0x10f70(%rip), %rdi     # 0x14350
leaq 0xbdcb(%rip), %rsi      # 0xf1b2
leaq 0xbdc5(%rip), %rdx      # 0xf1b3
callq 0x6a64
leaq 0x10f86(%rip), %rax     # 0x14380
movq %rax, 0x10f6f(%rip)     # 0x14370
leaq 0x10f68(%rip), %rdi     # 0x14370
leaq 0xbda5(%rip), %rsi      # 0xf1b4
leaq 0xbd9f(%rip), %rdx      # 0xf1b5
callq 0x6a64
leaq 0x10f7e(%rip), %rax     # 0x143a0
movq %rax, 0x10f67(%rip)     # 0x14390
leaq 0x10f60(%rip), %rdi     # 0x14390
leaq 0xbd7f(%rip), %rsi      # 0xf1b6
leaq 0xbd79(%rip), %rdx      # 0xf1b7
callq 0x6a64
leaq 0x10f76(%rip), %rax     # 0x143c0
movq %rax, 0x10f5f(%rip)     # 0x143b0
leaq 0x10f58(%rip), %rdi     # 0x143b0
leaq 0xbd59(%rip), %rsi      # 0xf1b8
leaq 0xbd53(%rip), %rdx      # 0xf1b9
callq 0x6a64
leaq 0x10f6e(%rip), %rax     # 0x143e0
movq %rax, 0x10f57(%rip)     # 0x143d0
leaq 0x10f50(%rip), %rdi     # 0x143d0
leaq 0xbd26(%rip), %rsi      # 0xf1ad
leaq 0xbd20(%rip), %rdx      # 0xf1ae
callq 0x6a64
leaq 0x10f66(%rip), %rax     # 0x14400
movq %rax, 0x10f4f(%rip)     # 0x143f0
leaq 0x10f48(%rip), %rdi     # 0x143f0
leaq 0xc7f3(%rip), %rsi      # 0xfca2
leaq 0xc7ed(%rip), %rdx      # 0xfca3
callq 0x6a64
leaq 0x10f5e(%rip), %rax     # 0x14420
movq %rax, 0x10f47(%rip)     # 0x14410
leaq 0x10f40(%rip), %rdi     # 0x14410
leaq 0xbce3(%rip), %rsi      # 0xf1ba
leaq 0xbce1(%rip), %rdx      # 0xf1bf
callq 0x6a64
leaq 0x10f56(%rip), %rax     # 0x14440
movq %rax, 0x10f3f(%rip)     # 0x14430
leaq 0x10f38(%rip), %rdi     # 0x14430
leaq 0xbcc1(%rip), %rsi      # 0xf1c0
leaq 0xbcbf(%rip), %rdx      # 0xf1c5
callq 0x6a64
leaq -0x1088(%rip), %rdi     # 0x248a
xorl %esi, %esi
leaq 0x10c8d(%rip), %rdx     # 0x141a8
callq 0x2190
leaq 0x10f29(%rip), %rdi     # 0x14450
callq 0x2110
jmp 0x2c3e
leaq 0x10d08(%rip), %rdi     # 0x14240
callq 0x22f0
testl %eax, %eax
je 0x2ca7
leaq 0x10ca4(%rip), %rax     # 0x141f0
movq %rax, 0x10c8d(%rip)     # 0x141e0
leaq 0x10c86(%rip), %rdi     # 0x141e0
leaq 0xbc1b(%rip), %rsi      # 0xf17c
leaq 0xbc19(%rip), %rdx      # 0xf181
callq 0x6a64
leaq 0x10c9c(%rip), %rax     # 0x14210
movq %rax, 0x10c85(%rip)     # 0x14200
leaq 0x10c7e(%rip), %rdi     # 0x14200
leaq 0xbbf9(%rip), %rsi      # 0xf182
leaq 0xbbf3(%rip), %rdx      # 0xf183
callq 0x6a64
leaq 0x10c94(%rip), %rax     # 0x14230
movq %rax, 0x10c7d(%rip)     # 0x14220
leaq 0x10c76(%rip), %rdi     # 0x14220
leaq 0xbbd3(%rip), %rsi      # 0xf184
leaq 0xbbcd(%rip), %rdx      # 0xf185
callq 0x6a64
leaq -0x1175(%rip), %rdi     # 0x244f
xorl %esi, %esi
leaq 0x10bdb(%rip), %rdx     # 0x141a8
callq 0x2190
leaq 0x10c67(%rip), %rdi     # 0x14240
callq 0x2110
leaq 0x80(%rsp), %rbp
leaq 0x60(%rsp), %r13
leaq 0x40(%rsp), %r14
jmp 0x2ca7
cmpq 0x158(%rsp), %r12
jne 0x2b77
jmp 0x55d8
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rax
subq %rsi, %rax
cmpq $0x20, %rax
jne 0x56e2
leaq 0x1f8(%rsp), %rdi
movl 0x140(%rsp), %edx
xorl %ecx, %ecx
callq 0x84ac
leaq 0xc0(%rsp), %rdi
callq 0x681e
jmp 0x55be
movzbl 0x1(%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x2(%rax), %esi
shll $0x8, %esi
orl %ecx, %esi
addq $0x3, %rax
movq %rax, 0x8(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0x8200
jmp 0x55be
movzbl 0x1(%rax), %esi
addq $0x2, %rax
movq %rax, 0x8(%rsp)
leaq 0x1f8(%rsp), %rdi
callq 0xac2e
jmp 0x55be
leaq 0x1f8(%rsp), %rdi
callq 0x81ae
movq 0x8(%rsp), %rcx
movzbl (%rcx), %eax
leaq 0x1(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x1(%rcx), %edx
shll $0x8, %edx
orq %rax, %rdx
leaq 0x2(%rcx), %rax
movq %rax, 0x8(%rsp)
testq %rdx, %rdx
je 0x55be
addq %rdx, %rcx
addq $0x2, %rcx
movq %rcx, 0x140(%rsp)
movzbl (%rax), %r15d
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rsp)
leal -0x64(%r15), %ecx
cmpl $0xf, %ecx
ja 0x5802
leaq 0xb935(%rip), %rdx      # 0xf03c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
addl $-0x67, %r15d
leaq 0xb995(%rip), %rax      # 0xf0b0
movslq (%rax,%r15,4), %rax
movq %rax, 0x138(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x687c
movq 0x8(%rsp), %rax
movzbl (%rax), %r12d
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x1(%rax), %r15d
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %ecx
movl %ecx, 0x94(%rsp)
leaq 0x3(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x3(%rax), %r14d
addq $0x4, %rax
movq %rax, 0x8(%rsp)
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
leaq 0xd0(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0xc0(%rsp), %rbp
movq %rbp, %rdi
callq 0x69ce
movq %rbp, %rdi
leaq 0xba4b(%rip), %rsi      # 0xf212
callq 0x2320
shll $0x8, %r15d
orl %r12d, %r15d
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x380b
movl $0x2, %r12d
cmpl $0x64, %r15d
jb 0x380b
movl $0x3, %r12d
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x380b
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %r12d
sbbl $0x0, %r12d
movl %r12d, %esi
leaq 0x120(%rsp), %rax
movq %rax, 0x110(%rsp)
leaq 0x110(%rsp), %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x110(%rsp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x6961
movq 0xc0(%rsp), %rcx
movl $0xf, %edi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rcx
je 0x3865
movq 0xd0(%rsp), %rdi
movq 0xc8(%rsp), %r8
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x38a9
movl $0xf, %edi
leaq 0x120(%rsp), %r9
cmpq %r9, %rsi
je 0x38a0
movq 0x120(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x4344
leaq 0xc0(%rsp), %rdi
callq 0x2090
jmp 0x4355
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x687c
movq 0x8(%rsp), %rcx
movb (%rcx), %al
leaq 0x1(%rcx), %rdx
movq %rdx, 0x8(%rsp)
testb %al, %al
movq %r15, 0x138(%rsp)
je 0x40ef
cmpb $0x1, %al
jne 0x56fd
movzbl 0x1(%rcx), %edx
leaq 0x2(%rcx), %rsi
movq %rsi, 0x8(%rsp)
movzbl 0x2(%rcx), %esi
shll $0x8, %esi
orl %edx, %esi
leaq 0x3(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x3(%rcx), %edx
shll $0x10, %edx
orl %esi, %edx
leaq 0x4(%rcx), %rsi
movq %rsi, 0x8(%rsp)
movzbl 0x4(%rcx), %r15d
shll $0x18, %r15d
orl %edx, %r15d
movl $0x5, %edx
jmp 0x410d
orb $0x10, 0x214(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb9f2(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb8a1(%rip), %rsi      # 0xf20c
leaq 0xb89f(%rip), %rdx      # 0xf211
callq 0x6a64
leaq 0x10(%rsp), %r15
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
leaq 0xc44a(%rip), %rsi      # 0xfdd5
leaq 0xc445(%rip), %rdx      # 0xfdd7
callq 0x6a64
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r15, %rdx
callq 0x75f4
jmp 0x4c2e
movzbl 0x1(%rax), %ebp
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %r15d
addq $0x3, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb96a(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb835(%rip), %rsi      # 0xf228
leaq 0xb837(%rip), %rdx      # 0xf231
callq 0x6a64
shll $0x8, %r15d
orl %ebp, %r15d
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x3a3e
movl $0x2, %r12d
cmpl $0x64, %r15d
jb 0x3a3e
movl $0x3, %r12d
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x3a3e
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %r12d
sbbl $0x0, %r12d
movl %r12d, %esi
movq %rbx, 0x10(%rsp)
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x10(%rsp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x6961
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %rbp, %rdx
callq 0x75f4
jmp 0x4c2e
orb $0x20, 0x214(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb8ac(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb751(%rip), %rsi      # 0xf202
leaq 0xb74f(%rip), %rdx      # 0xf207
callq 0x6a64
leaq 0x10(%rsp), %r15
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
leaq 0xc304(%rip), %rsi      # 0xfdd5
leaq 0xc2ff(%rip), %rdx      # 0xfdd7
callq 0x6a64
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r15, %rdx
callq 0x75f4
jmp 0x4c2e
movzbl 0x1(%rax), %ecx
leaq 0x2(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x2(%rax), %r12d
shll $0x8, %r12d
orl %ecx, %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x3(%rax), %ecx
movl %ecx, 0x138(%rsp)
leaq 0x4(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x4(%rax), %ecx
movl %ecx, 0x94(%rsp)
leaq 0x5(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x5(%rax), %ecx
movl %ecx, 0xe8(%rsp)
leaq 0x6(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x6(%rax), %ecx
movl %ecx, 0xec(%rsp)
addq $0x7, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
movq $0x0, 0x58(%rsp)
movb $0x0, 0x60(%rsp)
movl $0x1, %r15d
cmpl $0xa, %r12d
jb 0x3bb1
movl $0x2, %r15d
cmpl $0x64, %r12d
jb 0x3bb1
movl $0x3, %r15d
cmpl $0x3e8, %r12d           # imm = 0x3E8
jb 0x3bb1
cmpl $0x2710, %r12d          # imm = 0x2710
movl $0x5, %r15d
sbbl $0x0, %r15d
movl %r15d, %esi
leaq 0xd0(%rsp), %rax
movq %rax, 0xc0(%rsp)
leaq 0xc0(%rsp), %rbp
movq %rbp, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0xc0(%rsp), %rdi
movl %r15d, %esi
movl %r12d, %edx
callq 0x6961
movq %rbp, %rdi
leaq 0xb61c(%rip), %rsi      # 0xf212
callq 0x2320
leaq 0xa8(%rsp), %rsi
movq %rsi, 0x98(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4675
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x467b
andb $-0x11, 0x214(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb6f5(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb5a4(%rip), %rsi      # 0xf20c
leaq 0xb5a2(%rip), %rdx      # 0xf211
callq 0x6a64
leaq 0x10(%rsp), %r15
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
leaq 0xb580(%rip), %rsi      # 0xf208
leaq 0xb57c(%rip), %rdx      # 0xf20b
callq 0x6a64
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r15, %rdx
callq 0x75f4
jmp 0x4c2e
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb688(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %r15
movq %r15, %rdi
leaq 0xb57f(%rip), %rsi      # 0xf257
leaq 0xb57c(%rip), %rdx      # 0xf25b
callq 0x6a64
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x752e
jmp 0x4c45
leaq 0x50(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x687c
movq 0x8(%rsp), %rax
movzbl (%rax), %ebp
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x1(%rax), %r15d
addq $0x2, %rax
movq %rax, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %r12
movq %r12, %rdi
callq 0x69ce
movq %r12, %rdi
leaq 0xb4c5(%rip), %rsi      # 0xf212
callq 0x2320
shll $0x8, %r15d
orl %ebp, %r15d
movl $0x1, %esi
cmpl $0xa, %r15d
jb 0x3d8d
movl $0x2, %esi
cmpl $0x64, %r15d
jb 0x3d8d
movl $0x3, %esi
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x3d8d
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %esi
sbbq $0x0, %rsi
leaq 0x80(%rsp), %r12
movq %r12, 0x70(%rsp)
leaq 0x70(%rsp), %rbp
movq %rbp, %rdi
xorl %edx, %edx
callq 0x2200
movq 0x70(%rsp), %rdi
movl 0x78(%rsp), %esi
movl %r15d, %edx
callq 0x6961
movq 0x10(%rsp), %rcx
movl $0xf, %edi
cmpq %rbx, %rcx
je 0x3dce
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %r8
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x3e01
movl $0xf, %edi
cmpq %r12, %rsi
je 0x3df8
movq 0x80(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x49c1
leaq 0x10(%rsp), %rdi
callq 0x2090
jmp 0x49cd
movzbl 0x1(%rax), %ebp
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %r15d
addq $0x3, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb508(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb3c6(%rip), %rsi      # 0xf21b
leaq 0xb3c4(%rip), %rdx      # 0xf220
callq 0x6a64
shll $0x8, %r15d
orl %ebp, %r15d
movl $0x1, %esi
cmpl $0xa, %r15d
jb 0x3e9c
movl $0x2, %esi
cmpl $0x64, %r15d
jb 0x3e9c
movl $0x3, %esi
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x3e9c
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %esi
sbbq $0x0, %rsi
movq %rbx, 0x10(%rsp)
leaq 0x10(%rsp), %r12
movq %r12, %rdi
xorl %edx, %edx
callq 0x2200
movq 0x10(%rsp), %rdi
movl 0x18(%rsp), %esi
movl %r15d, %edx
callq 0x6961
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r12, %rdx
callq 0x75f4
jmp 0x4c2e
andb $-0x21, 0x214(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb453(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb2f8(%rip), %rsi      # 0xf202
leaq 0xb2f6(%rip), %rdx      # 0xf207
callq 0x6a64
leaq 0x10(%rsp), %r15
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
leaq 0xb2de(%rip), %rsi      # 0xf208
leaq 0xb2da(%rip), %rdx      # 0xf20b
callq 0x6a64
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r15, %rdx
callq 0x75f4
jmp 0x4c2e
movzbl 0x1(%rax), %ebp
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %r15d
addq $0x3, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb3cb(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb28f(%rip), %rsi      # 0xf221
leaq 0xb28e(%rip), %rdx      # 0xf227
callq 0x6a64
shll $0x8, %r15d
orl %ebp, %r15d
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x3fdd
movl $0x2, %r12d
cmpl $0x64, %r15d
jb 0x3fdd
movl $0x3, %r12d
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x3fdd
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %r12d
sbbl $0x0, %r12d
movl %r12d, %esi
movq %rbx, 0x10(%rsp)
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x10(%rsp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x6961
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %rbp, %rdx
callq 0x75f4
jmp 0x4c2e
movzbl 0x1(%rax), %ebp
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %r15d
addq $0x3, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0xb2fa(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xb1cf(%rip), %rsi      # 0xf232
leaq 0xb1d1(%rip), %rdx      # 0xf23b
callq 0x6a64
shll $0x8, %r15d
orl %ebp, %r15d
movl $0x1, %r12d
cmpl $0xa, %r15d
jb 0x40ae
movl $0x2, %r12d
cmpl $0x64, %r15d
jb 0x40ae
movl $0x3, %r12d
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x40ae
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %r12d
sbbl $0x0, %r12d
movl %r12d, %esi
movq %rbx, 0x10(%rsp)
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x10(%rsp), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x6961
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %rbp, %rdx
callq 0x75f4
jmp 0x4c2e
movzbl 0x1(%rcx), %edx
leaq 0x2(%rcx), %rsi
movq %rsi, 0x8(%rsp)
movzbl 0x2(%rcx), %r15d
shll $0x8, %r15d
orl %edx, %r15d
movl $0x3, %edx
leaq (%rcx,%rdx), %rsi
movq %rsi, 0x8(%rsp)
leaq (%rcx,%rdx), %rsi
incq %rsi
movzbl -0x1(%rsi), %edi
movl %edi, 0x94(%rsp)
movq %rsi, 0x8(%rsp)
movzbl (%rsi), %esi
movl %esi, 0xe8(%rsp)
leaq 0x2(%rcx,%rdx), %rsi
movq %rsi, 0x8(%rsp)
movzbl (%rsi), %ebp
leaq 0x3(%rcx,%rdx), %rsi
movq %rsi, 0x8(%rsp)
movzbl (%rsi), %r12d
leaq 0x4(%rcx,%rdx), %rsi
movq %rsi, 0x8(%rsp)
movzbl (%rsi), %esi
movl %esi, 0xec(%rsp)
leaq 0x5(%rcx,%rdx), %rsi
movq %rsi, 0x8(%rsp)
movzbl (%rsi), %esi
movl %esi, 0x148(%rsp)
leaq 0x6(%rcx,%rdx), %rsi
movq %rsi, 0x8(%rsp)
movzbl (%rsi), %esi
movl %esi, 0x14c(%rsp)
cmpl $0x6a, 0x138(%rsp)
leaq 0xb0dc(%rip), %rdi      # 0xf279
leaq 0xb0da(%rip), %rsi      # 0xf27e
cmoveq %rsi, %rdi
movq %rdi, 0x1f0(%rsp)
leaq 0x7(%rcx,%rdx), %rcx
movq %rcx, 0x8(%rsp)
movq %r14, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
testb %al, %al
je 0x4267
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r13
movq %r13, %rdi
callq 0x69ce
movq %r13, %rdi
leaq 0xb00c(%rip), %rsi      # 0xf212
callq 0x2320
movl $0x1, %eax
cmpl $0xa, %r15d
jb 0x4c92
movl $0x4, %eax
movl %r15d, %ecx
cmpl $0x63, %ecx
jbe 0x4c8b
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x4c90
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x4c92
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x4222
addl $-0x3, %eax
jmp 0x4c92
movq %rbx, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movb $0x0, 0x20(%rsp)
leaq 0x70(%rsp), %r13
movq %r13, %rdi
leaq 0x1f8(%rsp), %rsi
movl %r15d, %edx
callq 0xb6e6
leaq 0x10(%rsp), %rdi
movq %r13, %rsi
callq 0x2220
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x42c1
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
leaq 0xa8(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
addq %rsi, %rdx
leaq 0x98(%rsp), %r15
movq %r15, %rdi
callq 0x69ce
movq %r15, %rdi
leaq 0xaf1a(%rip), %rsi      # 0xf212
callq 0x2320
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r15, %rdi
callq 0x2090
leaq 0x80(%rsp), %r15
movq %r15, 0x70(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x47a3
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x47aa
leaq 0x110(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
leaq 0xa8(%rsp), %rsi
movq %rsi, 0x98(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x4386
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x438c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x98(%rsp), %rdi
leaq 0xae57(%rip), %rsi      # 0xf212
callq 0x2320
leaq 0x80(%rsp), %rsi
movq %rsi, 0x70(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x43ee
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x43f4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
shll $0x8, %r14d
addl 0x94(%rsp), %r14d
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r15d
cmpl $0xa, %r14d
jb 0x4450
movl $0x2, %r15d
cmpl $0x64, %r14d
jb 0x4450
movl $0x3, %r15d
cmpl $0x3e8, %r14d           # imm = 0x3E8
jb 0x4450
cmpl $0x2710, %r14d          # imm = 0x2710
movl $0x5, %r15d
sbbl $0x0, %r15d
movl %r15d, %esi
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
leaq 0xf0(%rsp), %rdi
movl $0x2d, %edx
leaq 0x80(%rsp), %r12
leaq 0xa8(%rsp), %rbp
callq 0x2200
movq 0xf0(%rsp), %rdi
movl %r15d, %esi
movl %r14d, %edx
callq 0x6961
movq 0x70(%rsp), %rcx
movl $0xf, %edi
cmpq %r12, %rcx
je 0x44af
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0xf0(%rsp), %rsi
movq 0xf8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq 0x40(%rsp), %r14
jbe 0x44f1
movl $0xf, %edi
leaq 0x100(%rsp), %r9
cmpq %r9, %rsi
je 0x44ec
movq 0x100(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x44fd
leaq 0x70(%rsp), %rdi
callq 0x2090
jmp 0x450e
leaq 0xf0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x452e
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x4534
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2220
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4577
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x459c
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x45b6
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0x45d3
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
leaq 0x70(%rsp), %r15
leaq 0x10(%rsp), %rbp
je 0x4602
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x4627
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x21c0
movq %rbx, 0x10(%rsp)
movq %rbp, %rdi
leaq 0xad0e(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
leaq 0xaa6b(%rip), %rax      # 0xf0b0
movq 0x138(%rsp), %rsi
addq %rax, %rsi
movq %r15, %rdi
leaq 0x98(%rsp), %rdx
callq 0x6718
movq %rbp, %rdi
movq %r15, %rsi
leaq 0x30(%rsp), %rdx
callq 0x75f4
jmp 0x4a88
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movl 0x94(%rsp), %r15d
shll $0x8, %r15d
addl 0x138(%rsp), %r15d
movq 0x8(%rax), %rdx
movq %rdx, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %eax
cmpl $0xa, %r15d
jb 0x46dd
movl $0x2, %eax
cmpl $0x64, %r15d
jb 0x46dd
movl $0x3, %eax
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x46dd
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %eax
sbbl $0x0, %eax
movl %r15d, 0x94(%rsp)
movl %eax, %r15d
movl %eax, %esi
leaq 0x120(%rsp), %rax
movq %rax, 0x110(%rsp)
leaq 0x110(%rsp), %rdi
movl $0x2d, %edx
leaq 0xa8(%rsp), %rbp
callq 0x2200
leaq 0x80(%rsp), %r12
movq 0x110(%rsp), %rdi
movl %r15d, %esi
movl 0x94(%rsp), %edx
callq 0x6961
movq 0x98(%rsp), %rcx
movl $0xf, %edi
cmpq %rbp, %rcx
je 0x474d
movq 0xa8(%rsp), %rdi
movq 0xa0(%rsp), %r8
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x4791
movl $0xf, %edi
leaq 0x120(%rsp), %r9
cmpq %r9, %rsi
je 0x4788
movq 0x120(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x4828
leaq 0x98(%rsp), %rdi
callq 0x2090
jmp 0x4839
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2220
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x47eb
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x4810
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4df3
movq 0x20(%rsp), %rsi
jmp 0x4deb
leaq 0x110(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq %r12, 0x70(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x485c
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x4864
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x78(%rsp)
movq %rcx, (%rax)
movq %rbp, %r12
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x70(%rsp), %rdi
leaq 0xa982(%rip), %rsi      # 0xf212
callq 0x2320
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movl 0xec(%rsp), %ebp
je 0x48bf
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x48c5
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
shll $0x8, %ebp
addl 0xe8(%rsp), %ebp
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0x491b
movl $0x2, %r15d
cmpl $0x64, %ebp
jb 0x491b
movl $0x3, %r15d
cmpl $0x3e8, %ebp            # imm = 0x3E8
jb 0x491b
cmpl $0x2710, %ebp           # imm = 0x2710
movl $0x5, %r15d
sbbl $0x0, %r15d
movl %r15d, %esi
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
leaq 0xf0(%rsp), %rdi
movl $0x2d, %edx
callq 0x2200
movq 0xf0(%rsp), %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x6961
movq 0x10(%rsp), %rcx
movl $0xf, %edi
cmpq %rbx, %rcx
je 0x4966
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %r8
movq 0xf0(%rsp), %rsi
movq 0xf8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movq %r12, %r15
leaq 0x80(%rsp), %r12
jbe 0x49b2
movl $0xf, %edi
leaq 0x100(%rsp), %r9
cmpq %r9, %rsi
je 0x49a9
movq 0x100(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x4aab
leaq 0x10(%rsp), %rdi
callq 0x2090
jmp 0x4abc
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq %r14, 0x30(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x49ed
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x49f4
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x4a2b
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4a42
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq %rbx, 0x10(%rsp)
leaq 0x10(%rsp), %rdi
leaq 0xa8f1(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r12, 0x70(%rsp)
movq %rbp, %rdi
leaq 0xa7ab(%rip), %rsi      # 0xf215
leaq 0xa7a9(%rip), %rdx      # 0xf21a
callq 0x6a64
leaq 0x10(%rsp), %rdi
movq %rbp, %rsi
leaq 0x30(%rsp), %rdx
callq 0x75f4
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x4c2e
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x4c2e
leaq 0xf0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq %r14, 0x30(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x4adc
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x4ae3
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x2220
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x4b26
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x4b4b
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4b62
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x4b7c
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x4ba1
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
cmpq %r15, %rdi
je 0x4bbe
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
leaq 0x10(%rsp), %r15
je 0x4be8
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x21c0
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0xa74b(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %rbx, 0x10(%rsp)
movq %r15, %rdi
leaq 0xa62c(%rip), %rsi      # 0xf23c
leaq 0xa62d(%rip), %rdx      # 0xf244
callq 0x6a64
leaq 0x30(%rsp), %rdi
movq %r15, %rsi
leaq 0x50(%rsp), %rdx
callq 0x75f4
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4c45
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x4c5c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x4c73
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x8(%rsp), %rax
cmpq 0x140(%rsp), %rax
jb 0x36e6
jmp 0x55be
addl $-0x2, %eax
jmp 0x4c92
decl %eax
movl %eax, %esi
leaq 0xa8(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x98(%rsp), %rdi
xorl %edx, %edx
callq 0x2200
movq 0x98(%rsp), %rdi
movl 0xa0(%rsp), %esi
movl %r15d, %edx
callq 0x6961
movq 0x70(%rsp), %rcx
movl $0xf, %edi
leaq 0x80(%rsp), %rax
cmpq %rax, %rcx
je 0x4ce9
movq 0x80(%rsp), %rdi
movq 0x78(%rsp), %r8
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x4d26
movl $0xf, %edi
leaq 0xa8(%rsp), %r9
cmpq %r9, %rsi
je 0x4d21
movq 0xa8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x4d32
leaq 0x70(%rsp), %rdi
callq 0x2090
jmp 0x4d43
leaq 0x98(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x4d63
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x4d69
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x2220
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4dac
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x4dd1
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x4df3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movl 0xe8(%rsp), %eax
shll $0x8, %eax
shll $0x10, %ebp
orl %eax, %ebp
shll $0x18, %r12d
orl %ebp, %r12d
addl 0x94(%rsp), %r12d
movl $0x1, %eax
cmpl $0xa, %r12d
leaq 0x80(%rsp), %rbp
movl 0xec(%rsp), %r13d
jb 0x4e71
movl $0x4, %eax
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0x4e6a
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x4e6f
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x4e71
movl %ecx, %edx
movl $0xd1b71759, %esi       # imm = 0xD1B71759
imulq %rsi, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x4e34
addl $-0x3, %eax
jmp 0x4e71
addl $-0x2, %eax
jmp 0x4e71
decl %eax
movl %eax, %esi
movq %rbp, 0x70(%rsp)
leaq 0x70(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x2200
movq 0x70(%rsp), %rdi
movl 0x78(%rsp), %esi
movl %r12d, %edx
callq 0x6961
movl $0x2, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xa366(%rip), %rcx      # 0xf212
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x4ed4
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x4eda
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x4f1d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x4f37
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
cmpb $0x64, %r13b
movl $0x3, %r15d
sbbl $0x0, %r15d
cmpb $0xa, %r13b
movl $0x1, %eax
cmovbl %eax, %r15d
movq %rbp, 0x70(%rsp)
leaq 0x70(%rsp), %rbp
movq %rbp, %rdi
movq %r15, %rsi
movl $0x2d, %edx
callq 0x2200
movq 0x70(%rsp), %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x6961
movl $0x2, %r8d
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xa282(%rip), %rcx      # 0xf212
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x80(%rsp), %r15
je 0x4fc0
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x4fc6
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5009
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x5023
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movl 0x14c(%rsp), %r13d
shll $0x8, %r13d
addl 0x148(%rsp), %r13d
movl $0x1, %r15d
cmpl $0xa, %r13d
jb 0x506f
movl $0x2, %r15d
cmpl $0x64, %r13d
jb 0x506f
movl $0x3, %r15d
cmpl $0x3e8, %r13d           # imm = 0x3E8
jb 0x506f
cmpl $0x2710, %r13d          # imm = 0x2710
movl $0x5, %r15d
sbbl $0x0, %r15d
movl %r15d, %esi
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x70(%rsp), %rbp
movq %rbp, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x70(%rsp), %rdi
movl %r15d, %esi
movl %r13d, %edx
callq 0x6961
movl $0x2, %r8d
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xa15d(%rip), %rcx      # 0xf212
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x10(%rsp), %rbp
leaq 0x80(%rsp), %r13
je 0x50ea
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x50f0
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5133
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x514d
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movl 0x94(%rsp), %eax
andl $0x1e, %eax
cmpl $0xa, %eax
jne 0x5291
movq 0x8(%rsp), %rax
movzbl (%rax), %ecx
leaq 0x1(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x1(%rax), %r15d
shll $0x8, %r15d
orl %ecx, %r15d
addq $0x2, %rax
movq %rax, 0x8(%rsp)
movl $0x1, %eax
cmpl $0xa, %r15d
jb 0x51b9
movl $0x2, %eax
cmpl $0x64, %r15d
jb 0x51b9
movl $0x3, %eax
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x51b9
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %eax
sbbl $0x0, %eax
movl %eax, 0x94(%rsp)
movl %eax, %esi
movq %r13, 0x70(%rsp)
leaq 0x70(%rsp), %rbp
movq %rbp, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x70(%rsp), %rdi
movl 0x94(%rsp), %esi
movl %r15d, %edx
callq 0x6961
movl $0x2, %r8d
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xa011(%rip), %rcx      # 0xf212
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x10(%rsp), %rbp
je 0x522e
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5234
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5277
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x5291
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
cmpl $0x20, %r12d
jb 0x53f6
shrl $0x5, %r12d
movl %r12d, %eax
andl $0x7, %eax
cmpl $0x3, %eax
jne 0x53e3
movq 0x8(%rsp), %rax
movzbl (%rax), %ecx
leaq 0x1(%rax), %rdx
movq %rdx, 0x8(%rsp)
movzbl 0x1(%rax), %r15d
shll $0x8, %r15d
orl %ecx, %r15d
addq $0x2, %rax
movq %rax, 0x8(%rsp)
movl $0x1, %ebp
cmpl $0xa, %r15d
jb 0x5307
movl $0x2, %ebp
cmpl $0x64, %r15d
jb 0x5307
movl $0x3, %ebp
cmpl $0x3e8, %r15d           # imm = 0x3E8
jb 0x5307
cmpl $0x2710, %r15d          # imm = 0x2710
movl $0x5, %ebp
sbbl $0x0, %ebp
movl %ebp, %esi
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x70(%rsp), %r13
movq %r13, %rdi
movl $0x2d, %edx
callq 0x2200
movq 0x70(%rsp), %rdi
movl %ebp, %esi
movl %r15d, %edx
callq 0x6961
movl $0x2, %r8d
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x9ec7(%rip), %rcx      # 0xf212
callq 0x21f0
movq %rbx, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x80(%rsp), %r13
je 0x537b
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5381
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
leaq 0x10(%rsp), %rbp
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x53c9
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x53e3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movl %r12d, %eax
shrl $0x3, %eax
cmpl $0x7, %r12d
movl %eax, %r12d
ja 0x529f
movq %rbx, 0x10(%rsp)
movq %rbp, %rdi
leaq 0x9f3f(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
xorl %eax, %eax
cmpb $0x6a, 0x138(%rsp)
sete %al
movq %r13, 0x70(%rsp)
leaq (%rax,%rax,2), %rax
movq 0x1f0(%rsp), %rsi
leaq 0x4(%rsi,%rax), %rdx
leaq 0x70(%rsp), %r15
movq %r15, %rdi
callq 0x6a64
movq %rbp, %rdi
movq %r15, %rsi
leaq 0x30(%rsp), %rdx
callq 0x75f4
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
je 0x5467
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
leaq 0x60(%rsp), %r13
jne 0x4c38
jmp 0x4c45
leaq 0x1f8(%rsp), %rdi
callq 0x81ae
jmp 0x55be
leaq 0x1f8(%rsp), %rdi
callq 0x81ae
movq 0x8(%rsp), %rax
movzbl (%rax), %ecx
movl %ecx, 0x140(%rsp)
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x1(%rax), %r12d
leaq 0x2(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x2(%rax), %ebp
leaq 0x3(%rax), %rcx
movq %rcx, 0x8(%rsp)
movzbl 0x3(%rax), %r15d
addq $0x4, %rax
movq %rax, 0x8(%rsp)
movq %r13, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x9e54(%rip), %rdx      # 0xf344
movq %rdx, %rsi
callq 0x6a64
movq %r14, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x9da0(%rip), %rsi      # 0xf2a9
leaq 0x9d9d(%rip), %rdx      # 0xf2ad
callq 0x6a64
shll $0x8, %r12d
addl 0x140(%rsp), %r12d
shll $0x10, %ebp
orl %r12d, %ebp
shll $0x18, %r15d
orl %ebp, %r15d
leaq 0x10(%rsp), %r12
movq %r12, %rdi
movl %r15d, %esi
movl $0x4, %edx
movl $0x24, %ecx
callq 0x73f8
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
movq %r12, %rdx
callq 0x75f4
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5571
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x5588
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x559f
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x21c0
cmpl %r15d, 0x218(%rsp)
je 0x55be
leaq 0x1f8(%rsp), %rdi
callq 0x81ae
movl %r15d, 0x218(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x158(%rsp), %rax
jne 0x2b77
movb $0x1, %bpl
jmp 0x55d8
xorl %ebp, %ebp
movzbl 0xebf1(%rip), %esi      # 0x141d0
leaq 0x1f8(%rsp), %rdi
callq 0xae0a
movq 0x8(%rsp), %rax
cmpq 0x158(%rsp), %rax
sete %al
notb %bpl
testb %al, %bpl
je 0x57e7
leaq 0x1f8(%rsp), %rdi
callq 0x9b6e
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
movq 0x1e8(%rsp), %r12
je 0x563a
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq 0x1b0(%rsp), %rdi
testq %rdi, %rdi
je 0x5657
movq 0x1c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x5674
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x5691
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
testq %r12, %r12
setne %al
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9ad6(%rip), %rsi      # 0xf186
movl $0x41, %edi
movq 0x130(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x9afb(%rip), %rsi      # 0xf1c6
movl $0x41, %edi
movq 0x130(%rsp), %rdx
movl %r15d, %ecx
xorl %eax, %eax
callq 0x2310
leaq 0x9b00(%rip), %rsi      # 0xf1e9
movl $0x41, %edi
movq 0x130(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x9b58(%rip), %rdi      # 0xf25c
leaq 0x99e1(%rip), %rsi      # 0xf0ec
leaq 0x99e6(%rip), %rcx      # 0xf0f8
movl $0x1c6, %edx            # imm = 0x1C6
callq 0x2120
leaq 0x9999(%rip), %rsi      # 0xf0bc
movl $0x41, %edi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x999c(%rip), %rdi      # 0xf0d5
leaq 0x99ac(%rip), %rsi      # 0xf0ec
leaq 0x99b1(%rip), %rcx      # 0xf0f8
movl $0xd0, %edx
callq 0x2120
leaq 0x99c1(%rip), %rdi      # 0xf119
leaq 0x998d(%rip), %rsi      # 0xf0ec
leaq 0x9992(%rip), %rcx      # 0xf0f8
movl $0xd1, %edx
callq 0x2120
leaq 0x99b3(%rip), %rdi      # 0xf12a
leaq 0x996e(%rip), %rsi      # 0xf0ec
leaq 0x9973(%rip), %rcx      # 0xf0f8
movl $0xd2, %edx
callq 0x2120
leaq 0xa544(%rip), %rsi      # 0xfcda
movl $0x41, %edi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x998e(%rip), %rsi      # 0xf13a
movl $0x41, %edi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x998d(%rip), %rsi      # 0xf14f
movl $0x41, %edi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x998d(%rip), %rsi      # 0xf165
movl $0x41, %edi
movq %r15, %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x9ad8(%rip), %rsi      # 0xf2c6
movl $0x41, %edi
movq 0x130(%rsp), %rdx
xorl %eax, %eax
callq 0x2310
leaq 0x9a7d(%rip), %rsi      # 0xf286
movl $0x41, %edi
movq 0x130(%rsp), %rdx
movl %r15d, %ecx
movl %r15d, %r8d
xorl %eax, %eax
callq 0x2310
leaq 0x1f8(%rsp), %rdi
callq 0x81ae
leaq 0x9a77(%rip), %rsi      # 0xf2ae
movl $0x41, %edi
movq 0x130(%rsp), %rdx
movl %r15d, %ecx
xorl %eax, %eax
callq 0x2310
movq %rax, %r15
leaq 0xe9c8(%rip), %rax      # 0x14220
movq %rax, 0x170(%rsp)
jmp 0x5865
movq %rax, %r15
movq 0x170(%rsp), %rbx
addq $-0x10, %rbx
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x5885
movq (%rbx), %rsi
incq %rsi
callq 0x21c0
leaq -0x20(%rbx), %rax
addq $-0x10, %rbx
leaq 0xe94c(%rip), %rcx      # 0x141e0
cmpq %rcx, %rbx
movq %rax, %rbx
jne 0x5871
jmp 0x58a1
movq %rax, %r15
leaq 0xe998(%rip), %rdi      # 0x14240
jmp 0x59aa
movq %rax, %r15
leaq 0xeb59(%rip), %rax      # 0x14410
jmp 0x5964
movq %rax, %r15
jmp 0x59a3
movq %rax, %r15
leaq 0xeb22(%rip), %rax      # 0x143f0
jmp 0x5964
movq %rax, %r15
leaq 0xeaf3(%rip), %rax      # 0x143d0
jmp 0x5964
movq %rax, %r15
leaq 0xeac4(%rip), %rax      # 0x143b0
jmp 0x5964
movq %rax, %r15
leaq 0xea98(%rip), %rax      # 0x14390
jmp 0x5964
movq %rax, %r15
leaq 0xea6c(%rip), %rax      # 0x14370
jmp 0x5964
movq %rax, %r15
leaq 0xea40(%rip), %rax      # 0x14350
jmp 0x5964
movq %rax, %r15
leaq 0xea14(%rip), %rax      # 0x14330
jmp 0x5964
movq %rax, %r15
leaq 0xe9e8(%rip), %rax      # 0x14310
jmp 0x5964
movq %rax, %r15
leaq 0xe9bc(%rip), %rax      # 0x142f0
jmp 0x5964
movq %rax, %r15
leaq 0xe990(%rip), %rax      # 0x142d0
jmp 0x5964
movq %rax, %r15
leaq 0xe964(%rip), %rax      # 0x142b0
jmp 0x5964
movq %rax, %r15
leaq 0xe938(%rip), %rax      # 0x14290
jmp 0x5964
movq %rax, %r15
leaq 0xeacc(%rip), %rax      # 0x14430
movq %rax, 0xb8(%rsp)
movq 0xb8(%rsp), %rbx
addq $-0x10, %rbx
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x598c
movq (%rbx), %rsi
incq %rsi
callq 0x21c0
leaq -0x20(%rbx), %rax
addq $-0x10, %rbx
leaq 0xe8b5(%rip), %rcx      # 0x14250
cmpq %rcx, %rbx
movq %rax, %rbx
jne 0x5978
leaq 0xeaa6(%rip), %rdi      # 0x14450
callq 0x2100
jmp 0x5ff6
movq %rax, %r15
jmp 0x596c
jmp 0x5f80
jmp 0x59c5
jmp 0x5d4f
movq %rax, %r15
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5d52
movq 0xa8(%rsp), %rsi
jmp 0x5d34
jmp 0x5d4f
jmp 0x5c3d
jmp 0x5d4f
jmp 0x5e4f
jmp 0x5f80
jmp 0x5f80
jmp 0x5f80
jmp 0x5f80
jmp 0x5afa
jmp 0x5f80
jmp 0x5e4f
jmp 0x5e4f
jmp 0x5d4f
jmp 0x5c3d
jmp 0x5d4f
jmp 0x5d4f
movq %rax, %r15
jmp 0x5b81
jmp 0x5f80
jmp 0x5f80
jmp 0x5f80
movq %rax, %r15
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x5afd
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5afd
movq %rax, %r15
jmp 0x5ba6
jmp 0x5c3d
jmp 0x5c3d
jmp 0x5c3d
jmp 0x5d1f
jmp 0x5f80
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
jne 0x5ea4
jmp 0x5eb1
jmp 0x5e4f
jmp 0x5e4f
jmp 0x5c3d
movq %rax, %r15
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x5b34
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5b34
jmp 0x5e4f
jmp 0x5c3d
jmp 0x5d4f
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5eb1
movq 0x20(%rsp), %rsi
jmp 0x5ea9
movq %rax, %r15
jmp 0x5bcb
jmp 0x5c3d
jmp 0x5e4f
jmp 0x5e4f
jmp 0x5f80
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5b5f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5b5f
jmp 0x5d4f
jmp 0x5c3d
jmp 0x5d4f
movq %rax, %r15
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5b81
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x5ba6
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5bcb
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x5eb1
movq 0xd0(%rsp), %rsi
jmp 0x5ea9
jmp 0x5f80
jmp 0x5e4f
jmp 0x5e4f
jmp 0x5f80
jmp 0x5d4f
jmp 0x5f80
jmp 0x5c3d
jmp 0x5e70
jmp 0x5d4f
jmp 0x5e4f
jmp 0x5d4f
jmp 0x5c3d
jmp 0x5c3d
jmp 0x5e4f
jmp 0x5f80
jmp 0x5e54
jmp 0x5d4f
movq %rax, %r15
jmp 0x5eb1
jmp 0x5f80
movq %rax, %r15
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x5ebb
jmp 0x5f80
movq %rax, %r15
leaq 0x30(%rsp), %rdi
callq 0x6662
jmp 0x5c72
movq %rax, %r15
leaq 0x50(%rsp), %rdi
callq 0x658e
jmp 0x6010
jmp 0x5e2f
jmp 0x5e4f
jmp 0x5e70
movq %rax, %r15
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5e73
movq 0xa8(%rsp), %rsi
jmp 0x5e66
jmp 0x5e70
jmp 0x5ff3
jmp 0x5ff3
jmp 0x5e4f
jmp 0x5e4f
jmp 0x5e70
jmp 0x5e54
jmp 0x5d4f
jmp 0x5f80
jmp 0x5e54
jmp 0x5e70
jmp 0x5e4f
jmp 0x5e54
jmp 0x5e4f
jmp 0x5e70
movq %rax, %r15
movq 0x70(%rsp), %rdi
cmpq %r13, %rdi
jne 0x5d2c
jmp 0x5d52
jmp 0x5f80
jmp 0x5f80
jmp 0x5e4f
movq %rax, %r15
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x5d52
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5d52
jmp 0x5e4f
jmp 0x5f80
jmp 0x5d74
movq %rax, %r15
jmp 0x5dc6
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5e95
movq 0x20(%rsp), %rsi
jmp 0x5e8d
movq %rax, %r15
jmp 0x5da4
movq %rax, %r15
jmp 0x5deb
movq %rax, %r15
jmp 0x5e10
movq %rax, %r15
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x5da4
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5dc6
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5deb
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x5e10
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x5e95
movq 0xd0(%rsp), %rsi
jmp 0x5e8d
movq %rax, %r15
jmp 0x6010
movq %rax, %r15
jmp 0x602d
movq %rax, %r15
jmp 0x604a
movq %rax, %r15
jmp 0x6067
movq %rax, %r15
jmp 0x5e95
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5e73
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5e73
movq %rax, %r15
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5e95
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x5eb1
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x6003
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x6003
movq %rax, %r15
jmp 0x5f4b
jmp 0x5f65
movq %rax, %r15
jmp 0x5f0d
movq %rax, %r15
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5f0d
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5f29
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5f29
movq %rax, %r15
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x5f4b
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
leaq 0x60(%rsp), %r13
jmp 0x5fda
jmp 0x5ff3
jmp 0x5f65
jmp 0x5ff3
jmp 0x5f65
jmp 0x5f65
movq %rax, %r15
jmp 0x5fda
jmp 0x5fc0
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5fc3
movq 0x20(%rsp), %rsi
jmp 0x5fb6
movq %rax, %r15
jmp 0x6003
movq %rax, %r15
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5fa4
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5fa4
movq %rax, %r15
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5fc3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5fc3
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x5fda
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x21c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x5ff6
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x21c0
jmp 0x5ff6
movq %rax, %r15
leaq 0xc0(%rsp), %rdi
callq 0x681e
leaq 0x1f8(%rsp), %rdi
callq 0x9b6e
movq 0x190(%rsp), %rdi
testq %rdi, %rdi
je 0x602d
movq 0x1a0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq 0x1b0(%rsp), %rdi
testq %rdi, %rdi
je 0x604a
movq 0x1c0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq 0x150(%rsp), %rdi
testq %rdi, %rdi
je 0x6067
movq 0x160(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq 0x1d0(%rsp), %rdi
testq %rdi, %rdi
je 0x6084
movq 0x1e0(%rsp), %rsi
subq %rdi, %rsi
callq 0x21c0
movq %r15, %rdi
callq 0x22c0