// File: /workspace/github_c_makefile_star2_O0/ToniWestbrook[P]paladin/align.c
// Function: command_align
int command_align(int argc, char *argv[]) {
	mem_opt_t *opt, opt0;
	int fd, fd2, i, c, ignore_alt = 0, no_mt_io = 0;
	int fixed_chunk_size = -1;
	gzFile fp, fp2 = 0;
	char *p, *rg_line = 0, *hdr_line = 0;
	const char *mode = 0;
	void *ko = 0, *ko2 = 0;
	mem_pestat_t pes[VALUE_DOMAIN];
	ktp_aux_t aux;
	FILE * reportPriStream = 0, * reportSecStream = 0;
	char * readsProName = 0, * indexProName = 0, * prefixName = 0;
	char * samName = 0, * reportPriName = 0, * reportSecName = 0;
    const char * proxyAddress;

	memset(&aux, 0, sizeof(ktp_aux_t));
	memset(pes, 0, VALUE_DOMAIN * sizeof(mem_pestat_t));
	for (i = 0; i < VALUE_DOMAIN; ++i) pes[i].failed = 1;

	aux.opt = opt = mem_opt_init();
	memset(&opt0, 0, sizeof(mem_opt_t));
    proxyAddress = NULL;

	while ((c = getopt(argc, argv, "1epqabgnMCSVYJjf:F:z:u:k:o:c:v:s:r:t:R:A:B:O:E:U:w:L:d:T:Q:D:m:I:N:W:x:G:h:y:K:X:H:P:")) >= 0) {
		if (c == 'k') opt->min_seed_len = atoi(optarg), opt0.min_seed_len = 1;
		else if (c == 'u') opt->outputType = atoi(optarg);
		else if (c == 'f') opt->min_orf_len = atoi(optarg);
		else if (c == 'F') opt->min_orf_percent = atof(optarg);
        else if (c == 'z') opt->translations = convertTransArgs(optarg);
		else if (c == 'o') prefixName = optarg;
		else if (c == '1') no_mt_io = 1;
		else if (c == 'x') mode = optarg;
		else if (c == 'w') opt->w = atoi(optarg), opt0.w = 1;
		else if (c == 'A') opt->a = atoi(optarg), opt0.a = 1;
		else if (c == 'B') opt->b = atoi(optarg), opt0.b = 1;
		else if (c == 'T') opt->T = atoi(optarg), opt0.T = 1;
		else if (c == 'U') opt->pen_unpaired = atoi(optarg), opt0.pen_unpaired = 1;
		else if (c == 't') opt->n_threads = atoi(optarg), opt->n_threads = opt->n_threads > 1? opt->n_threads : 1;
		//else if (c == 'P') opt->flag |= MEM_F_NOPAIRING;
		else if (c == 'a') opt->flag |= MEM_F_ALL;
		//else if (c == 'p') opt->flag |= MEM_F_PE | MEM_F_SMARTPE;
		else if (c == 'M') opt->flag |= MEM_F_NO_MULTI;
		else if (c == 'S') opt->flag |= MEM_F_NO_RESCUE;
		else if (c == 'e') opt->flag |= MEM_F_SELF_OVLP;
		else if (c == 'F') opt->flag |= MEM_F_ALN_REG;
		else if (c == 'Y') opt->flag |= MEM_F_SOFTCLIP;
		else if (c == 'V') opt->flag |= MEM_F_REF_HDR;
		else if (c == 'b') opt->proteinFlag &= ~ALIGN_FLAG_BRUTE_ORF;
		else if (c == 'g') opt->proteinFlag |= ALIGN_FLAG_GEN_NT;
		else if (c == 'n') opt->proteinFlag |= ALIGN_FLAG_KEEP_PRO;
		else if (c == 'J') opt->proteinFlag &= ~ALIGN_FLAG_ADJUST_ORF;
        else if (c == 'p') opt->proteinFlag |= ALIGN_FLAG_MANUAL_PRO;
        else if (c == 'q') opt->proteinFlag |= ALIGN_FLAG_MANUAL_TRANSCRIPT;
		else if (c == 'c') opt->max_occ = atoi(optarg), opt0.max_occ = 1;
		else if (c == 'd') opt->zdrop = atoi(optarg), opt0.zdrop = 1;
		else if (c == 'v') bwa_verbose = atoi(optarg);
		else if (c == 'j') ignore_alt = 1;
		else if (c == 'r') opt->split_factor = atof(optarg), opt0.split_factor = 1.;
		else if (c == 'D') opt->drop_ratio = atof(optarg), opt0.drop_ratio = 1.;
		else if (c == 'm') opt->max_matesw = atoi(optarg), opt0.max_matesw = 1;
		else if (c == 's') opt->split_width = atoi(optarg), opt0.split_width = 1;
		else if (c == 'G') opt->max_chain_gap = atoi(optarg), opt0.max_chain_gap = 1;
		else if (c == 'N') opt->max_chain_extend = atoi(optarg), opt0.max_chain_extend = 1;
		else if (c == 'W') opt->min_chain_weight = atoi(optarg), opt0.min_chain_weight = 1;
		else if (c == 'y') opt->max_mem_intv = atol(optarg), opt0.max_mem_intv = 1;
		else if (c == 'C') aux.copy_comment = 1;
		else if (c == 'K') fixed_chunk_size = atoi(optarg);
		else if (c == 'X') opt->mask_level = atof(optarg);
        else if (c == 'P') proxyAddress = optarg;
		else if (c == 'h') {
			opt0.max_XA_hits = opt0.max_XA_hits_alt = 1;
			opt->max_XA_hits = opt->max_XA_hits_alt = strtol(optarg, &p, 10);
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				opt->max_XA_hits_alt = strtol(p+1, &p, 10);
		}
		else if (c == 'Q') {
			opt0.mapQ_coef_len = 1;
			opt->mapQ_coef_len = atoi(optarg);
			opt->mapQ_coef_fac = opt->mapQ_coef_len > 0? log(opt->mapQ_coef_len) : 0;
		} else if (c == 'O') {
			opt0.o_del = opt0.o_ins = 1;
			opt->o_del = opt->o_ins = strtol(optarg, &p, 10);
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				opt->o_ins = strtol(p+1, &p, 10);
		} else if (c == 'E') {
			opt0.e_del = opt0.e_ins = 1;
			opt->e_del = opt->e_ins = strtol(optarg, &p, 10);
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				opt->e_ins = strtol(p+1, &p, 10);
		} else if (c == 'L') {
			opt0.pen_clip5 = opt0.pen_clip3 = 1;
			opt->pen_clip5 = opt->pen_clip3 = strtol(optarg, &p, 10);
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				opt->pen_clip3 = strtol(p+1, &p, 10);
		} else if (c == 'R') {
			if ((rg_line = bwa_set_rg(optarg)) == 0) return 1; // FIXME: memory leak
		} else if (c == 'H') {
			if (optarg[0] != '@') {
				FILE *fp;
				if ((fp = fopen(optarg, "r")) != 0) {
					char *buf;
					buf = calloc(1, 0x10000);
					while (fgets(buf, 0xffff, fp)) {
						i = strlen(buf);
						assert(buf[i-1] == '\n'); // a long line
						buf[i-1] = 0;
						hdr_line = bwa_insert_header(buf, hdr_line);
					}
					free(buf);
					fclose(fp);
				}
			} else hdr_line = bwa_insert_header(optarg, hdr_line);
		} else if (c == 'I') { // specify the insert size distribution
			aux.pes0 = pes;
			pes[1].failed = 0;
			pes[1].avg = strtod(optarg, &p);
			pes[1].std = pes[1].avg * .1;
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				pes[1].std = strtod(p+1, &p);
			pes[1].high = (int)(pes[1].avg + 4. * pes[1].std + .499);
			pes[1].low  = (int)(pes[1].avg - 4. * pes[1].std + .499);
			if (pes[1].low < 1) pes[1].low = 1;
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				pes[1].high = (int)(strtod(p+1, &p) + .499);
			if (*p != 0 && ispunct(*p) && isdigit(p[1]))
				pes[1].low  = (int)(strtod(p+1, &p) + .499);

			logMessage(__func__, LOG_LEVEL_MESSAGE, "mean insert size: %.3f, stddev: %.3f, max: %d, min: %d\n",
			   									     pes[1].avg, pes[1].std, pes[1].high, pes[1].low);

		}
		else return 1;
	}

	if (rg_line) {
		hdr_line = bwa_insert_header(rg_line, hdr_line);
		free(rg_line);
	}

	if (opt->n_threads < 1) opt->n_threads = 1;
	if (optind + 1 >= argc || optind + 3 < argc) {
		renderAlignUsage(opt);
		free(opt);
		return 1;
	}

	if (mode) {
		if (strcmp(mode, "intractg") == 0) {
			if (!opt0.o_del) opt->o_del = 16;
			if (!opt0.o_ins) opt->o_ins = 16;
			if (!opt0.b) opt->b = 9;
			if (!opt0.pen_clip5) opt->pen_clip5 = 5;
			if (!opt0.pen_clip3) opt->pen_clip3 = 5;
		} else if (strcmp(mode, "pacbio") == 0 || strcmp(mode, "pbref") == 0 || strcmp(mode, "pbread") == 0 || strcmp(mode, "ont2d") == 0) {
			if (!opt0.o_del) opt->o_del = 1;
			if (!opt0.e_del) opt->e_del = 1;
			if (!opt0.o_ins) opt->o_ins = 1;
			if (!opt0.e_ins) opt->e_ins = 1;
			if (!opt0.b) opt->b = 1;
			if (opt0.split_factor == 0.) opt->split_factor = 10.;
			if (strcmp(mode, "pbread") == 0) { // pacbio read-to-read setting; NOT working well!
				opt->flag |= MEM_F_ALL | MEM_F_SELF_OVLP | MEM_F_ALN_REG;
				if (!opt0.min_chain_weight) opt->min_chain_weight = 40;
				if (!opt0.max_occ) opt->max_occ = 1000;
				if (!opt0.min_seed_len) opt->min_seed_len = 13;
				if (!opt0.max_chain_extend) opt->max_chain_extend = 25;
				if (opt0.drop_ratio == 0.) opt->drop_ratio = .001;
			} else if (strcmp(mode, "ont2d") == 0) {
				if (!opt0.min_chain_weight) opt->min_chain_weight = 20;
				if (!opt0.min_seed_len) opt->min_seed_len = 14;
				if (!opt0.pen_clip5) opt->pen_clip5 = 0;
				if (!opt0.pen_clip3) opt->pen_clip3 = 0;
			} else {
				if (!opt0.min_chain_weight) opt->min_chain_weight = 40;
				if (!opt0.min_seed_len) opt->min_seed_len = 17;
				if (!opt0.pen_clip5) opt->pen_clip5 = 0;
				if (!opt0.pen_clip3) opt->pen_clip3 = 0;
			}
		} else {
			logMessage(__func__, LOG_LEVEL_ERROR, "Unknown read type '%s'\n", mode);
			return 1; // FIXME memory leak
		}
	} else update_a(opt, &opt0);

    // Check for incompatible options
    if ((opt->proteinFlag & ALIGN_FLAG_MANUAL_PRO) && (opt->proteinFlag & ALIGN_FLAG_MANUAL_TRANSCRIPT)) {
		logMessage(__func__, LOG_LEVEL_ERROR, "Both protein and transcriptome mode selected.\n");
        return 1;
    }

    // Default to standard genetic code for translations
    if (!opt->translations) opt->translations = convertTransArgs("");

	// Create scoring weight matrix
	bwa_fill_scmat(opt->a, opt->b, opt->mat);

	// Prepare header check and filenames
	indexProName = malloc(strlen(argv[optind]) + 5);
	readsProName = malloc(strlen(argv[optind + 1]) + 5);
	sprintf(indexProName, "%s.pro", argv[optind]);
	sprintf(readsProName, "%s.pro", argv[optind + 1]);
	opt->indexInfo = getIndexHeader(indexProName);

	// Before loading index, ensure it's compatible
	switch (getIndexCompatible(opt->indexInfo)) {
		case INDEX_COMPATIBILITY_NONE:
			logMessage(__func__, LOG_LEVEL_ERROR,
					   "Index version %d.%d.%d is incompatible, please reindex the reference.\n",
						opt->indexInfo.version[0],
						opt->indexInfo.version[1],
						opt->indexInfo.version[2]);

			return 1;

		case INDEX_COMPATBILITY_FUTURE:
			logMessage(__func__, LOG_LEVEL_WARNING,
					   "Index version %d.%d.%d is newer than program version, compatibility not guaranteed.\n",
						opt->indexInfo.version[0],
						opt->indexInfo.version[1],
						opt->indexInfo.version[2]);

			break;
		default:
			break;
	}

	// Load index
	aux.idx = index_load_from_shm(argv[optind]);
	if (aux.idx == 0) {
		logMessage(__func__, LOG_LEVEL_MESSAGE, "Loading the index for reference '%s'...\n", argv[optind]);
		if ((aux.idx = index_load(argv[optind], BWA_IDX_ALL)) == 0) return 1; // FIXME: memory leak
	}
	else {
		logMessage(__func__, LOG_LEVEL_MESSAGE, "Loading the index from shared memory...\n");
	}

	if (ignore_alt)
		for (i = 0; i < aux.idx->bns->n_seqs; ++i)
			aux.idx->bns->anns[i].is_alt = 0;

	// Ready output files if requested (else stdout)
	if (prefixName != NULL) {
		if (opt->indexInfo.referenceType == 0) {
			logMessage(__func__, LOG_LEVEL_ERROR, "Reporting can only be used on prepared indices.\n");
 			return 1;
		}

		samName = malloc(strlen(prefixName) + 5);
		reportPriName = malloc(strlen(prefixName) + 23);
		reportSecName = malloc(strlen(prefixName) + 23);
		sprintf(samName, "%s.sam", prefixName);
		sprintf(reportPriName, "%s_uniprot.tsv", prefixName);

		if (opt->flag & MEM_F_ALL) {
			sprintf(reportPriName, "%s_uniprot_primary.tsv", prefixName);
			sprintf(reportSecName, "%s_uniprot_secondary.tsv", prefixName);
		}

		// Open files
		opt->outputStream = err_xopen_core(__func__, samName, "w");
		reportPriStream = err_xopen_core(__func__, reportPriName, "w");
		if (opt->flag & MEM_F_ALL) reportSecStream = err_xopen_core(__func__, reportSecName, "w");

	}

    if (opt->proteinFlag & ALIGN_FLAG_MANUAL_PRO) {
        // Protein input given, skip ORF detection
        sprintf(readsProName, "%s", argv[optind + 1]);
    }
    else {
        // Detect ORFs and write protein file
        writeReadsProtein(argv[optind + 1], readsProName, opt);
    }

	// Open ORFs sequence
	ko = kopen(readsProName, &fd);
	if (ko == 0) {
		logMessage(__func__, LOG_LEVEL_ERROR, "Failed to open file `%s'.\n", argv[optind + 1]);
		return 1;
	}

	fp = gzdopen(fd, "r");
	aux.ks = kseq_init(fp);
	if (optind + 2 < argc) {
		if (opt->flag&MEM_F_PE) {
			logMessage(__func__, LOG_LEVEL_WARNING, "When '-p' is in use, the second query file is ignored.\n");
		} else {
			ko2 = kopen(argv[optind + 2], &fd2);
			if (ko2 == 0) {
				logMessage(__func__, LOG_LEVEL_ERROR, "Failed to open file `%s'.\n", argv[optind + 2]);
				return 1;
			}
			fp2 = gzdopen(fd2, "r");
			aux.ks2 = kseq_init(fp2);
			opt->flag |= MEM_F_PE;
		}
	}

	// Render SAM header
	if (!(opt->flag & MEM_F_ALN_REG)) {
		bwa_print_sam_hdr(aux.idx->bns, hdr_line, opt->outputStream);
	}

	// Align and render
	aux.actual_chunk_size = fixed_chunk_size > 0? fixed_chunk_size : opt->chunk_size * opt->n_threads;
	kt_pipeline(no_mt_io? 1 : 2, process, &aux, 3);

	// Report number aligned
	renderNumberAligned(opt);

	// Generate UniProt report if requested
	if (prefixName != NULL) {
		renderUniprotReport(opt->outputType, 1, reportPriStream, proxyAddress);
		if (opt->flag & MEM_F_ALL) {
			renderUniprotReport(opt->outputType, 0, reportSecStream, proxyAddress);
		}
	}

	// Delete generated protein file unless requested otherwise
	if (!(opt->proteinFlag & ALIGN_FLAG_KEEP_PRO) && !(opt->proteinFlag & ALIGN_FLAG_MANUAL_PRO)) {
		remove(readsProName);
	}

	// Cleanup
	if (opt->outputStream != stdout) fclose (opt->outputStream);
	if (reportPriStream) fclose(reportPriStream);
	if (reportSecStream) fclose(reportSecStream);

	free(indexProName);
	free(readsProName);
	free(samName);
	free(reportPriName);
	free(reportSecName);
	free(hdr_line);
	free(opt);

	index_destroy(aux.idx);
	kseq_destroy(aux.ks);
	err_gzclose(fp); kclose(ko);
	if (aux.ks2) {
		kseq_destroy(aux.ks2);
		err_gzclose(fp2); kclose(ko2);
	}

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x830, %rsp            # imm = 0x830
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x2d4(%rbp)
movl $0x0, -0x2d8(%rbp)
movl $0xffffffff, -0x2dc(%rbp) # imm = 0xFFFFFFFF
movq $0x0, -0x2f0(%rbp)
movq $0x0, -0x300(%rbp)
movq $0x0, -0x308(%rbp)
movq $0x0, -0x310(%rbp)
movq $0x0, -0x318(%rbp)
movq $0x0, -0x320(%rbp)
movq $0x0, -0x760(%rbp)
movq $0x0, -0x768(%rbp)
movq $0x0, -0x770(%rbp)
movq $0x0, -0x778(%rbp)
movq $0x0, -0x780(%rbp)
movq $0x0, -0x788(%rbp)
movq $0x0, -0x790(%rbp)
movq $0x0, -0x798(%rbp)
leaq -0x758(%rbp), %rdi
xorl %esi, %esi
movl $0x38, %edx
callq 0x3130
leaq -0x720(%rbp), %rdi
xorl %esi, %esi
movl $0x400, %edx            # imm = 0x400
callq 0x3130
movl $0x0, -0x2cc(%rbp)
cmpl $0x20, -0x2cc(%rbp)
jge 0x78b0
movslq -0x2cc(%rbp), %rcx
leaq -0x720(%rbp), %rax
shlq $0x5, %rcx
addq %rcx, %rax
movl $0x1, 0x8(%rax)
movl -0x2cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2cc(%rbp)
jmp 0x787a
callq 0x1ae20
movq %rax, -0x18(%rbp)
movq %rax, -0x748(%rbp)
leaq -0x2c0(%rbp), %rdi
xorl %esi, %esi
movl $0x2a8, %edx            # imm = 0x2A8
callq 0x3130
movq $0x0, -0x7a0(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x2fed4(%rip), %rdx     # 0x377c0
callq 0x3090
movl %eax, -0x2d0(%rbp)
cmpl $0x0, %eax
jl 0x8804
cmpl $0x6b, -0x2d0(%rbp)
jne 0x7930
movq 0x386b0(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x78(%rax)
movl $0x1, -0x248(%rbp)
jmp 0x87ff
cmpl $0x75, -0x2d0(%rbp)
jne 0x7956
movq 0x38680(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x40(%rax)
jmp 0x87fd
cmpl $0x66, -0x2d0(%rbp)
jne 0x797c
movq 0x3865a(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x68(%rax)
jmp 0x87fb
cmpl $0x46, -0x2d0(%rbp)
jne 0x79a6
movq 0x38634(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x33d0
cvtsd2ss %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x6c(%rax)
jmp 0x87f9
cmpl $0x7a, -0x2d0(%rbp)
jne 0x79ce
movq 0x3860a(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0xa220
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x70(%rax)
jmp 0x87f7
cmpl $0x6f, -0x2d0(%rbp)
jne 0x79ed
movq 0x385e2(%rip), %rax     # 0x3ffc0
movq (%rax), %rax
movq %rax, -0x780(%rbp)
jmp 0x87f5
cmpl $0x31, -0x2d0(%rbp)
jne 0x7a05
movl $0x1, -0x2d8(%rbp)
jmp 0x87f3
cmpl $0x78, -0x2d0(%rbp)
jne 0x7a24
movq 0x385ab(%rip), %rax     # 0x3ffc0
movq (%rax), %rax
movq %rax, -0x310(%rbp)
jmp 0x87f1
cmpl $0x77, -0x2d0(%rbp)
jne 0x7a54
movq 0x3858c(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x24(%rax)
movl $0x1, -0x29c(%rbp)
jmp 0x87ef
cmpl $0x41, -0x2d0(%rbp)
jne 0x7a83
movq 0x3855c(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl $0x1, -0x2c0(%rbp)
jmp 0x87ed
cmpl $0x42, -0x2d0(%rbp)
jne 0x7ab3
movq 0x3852d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x4(%rax)
movl $0x1, -0x2bc(%rbp)
jmp 0x87eb
cmpl $0x54, -0x2d0(%rbp)
jne 0x7ae3
movq 0x384fd(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x44(%rax)
movl $0x1, -0x27c(%rbp)
jmp 0x87e9
cmpl $0x55, -0x2d0(%rbp)
jne 0x7b13
movq 0x384cd(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x18(%rax)
movl $0x1, -0x2a8(%rbp)
jmp 0x87e7
cmpl $0x74, -0x2d0(%rbp)
jne 0x7b78
movq 0x3849d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x94(%rax)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x94(%rax)
jle 0x7b56
movq -0x18(%rbp), %rax
movl 0x94(%rax), %eax
movl %eax, -0x7cc(%rbp)
jmp 0x7b63
movl $0x1, %eax
movl %eax, -0x7cc(%rbp)
jmp 0x7b63
movl -0x7cc(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x94(%rax)
jmp 0x87e5
cmpl $0x61, -0x2d0(%rbp)
jne 0x7b93
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x8, %ecx
movl %ecx, 0x48(%rax)
jmp 0x87e3
cmpl $0x4d, -0x2d0(%rbp)
jne 0x7bae
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x10, %ecx
movl %ecx, 0x48(%rax)
jmp 0x87e1
cmpl $0x53, -0x2d0(%rbp)
jne 0x7bc9
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x20, %ecx
movl %ecx, 0x48(%rax)
jmp 0x87df
cmpl $0x65, -0x2d0(%rbp)
jne 0x7be4
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x40, %ecx
movl %ecx, 0x48(%rax)
jmp 0x87dd
cmpl $0x46, -0x2d0(%rbp)
jne 0x7c02
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x80, %ecx
movl %ecx, 0x48(%rax)
jmp 0x87db
cmpl $0x59, -0x2d0(%rbp)
jne 0x7c20
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x200, %ecx            # imm = 0x200
movl %ecx, 0x48(%rax)
jmp 0x87d9
cmpl $0x56, -0x2d0(%rbp)
jne 0x7c3e
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x100, %ecx            # imm = 0x100
movl %ecx, 0x48(%rax)
jmp 0x87d7
cmpl $0x62, -0x2d0(%rbp)
jne 0x7c59
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %ecx
andl $-0x2, %ecx
movl %ecx, 0x4c(%rax)
jmp 0x87d5
cmpl $0x67, -0x2d0(%rbp)
jne 0x7c74
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %ecx
orl $0x2, %ecx
movl %ecx, 0x4c(%rax)
jmp 0x87d3
cmpl $0x6e, -0x2d0(%rbp)
jne 0x7c8f
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %ecx
orl $0x4, %ecx
movl %ecx, 0x4c(%rax)
jmp 0x87d1
cmpl $0x4a, -0x2d0(%rbp)
jne 0x7caa
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %ecx
andl $-0x9, %ecx
movl %ecx, 0x4c(%rax)
jmp 0x87cf
cmpl $0x70, -0x2d0(%rbp)
jne 0x7cc5
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %ecx
orl $0x10, %ecx
movl %ecx, 0x4c(%rax)
jmp 0x87cd
cmpl $0x71, -0x2d0(%rbp)
jne 0x7ce0
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %ecx
orl $0x20, %ecx
movl %ecx, 0x4c(%rax)
jmp 0x87cb
cmpl $0x63, -0x2d0(%rbp)
jne 0x7d13
movq 0x382d0(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x8c(%rax)
movl $0x1, -0x234(%rbp)
jmp 0x87c9
cmpl $0x64, -0x2d0(%rbp)
jne 0x7d43
movq 0x3829d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x28(%rax)
movl $0x1, -0x298(%rbp)
jmp 0x87c7
cmpl $0x76, -0x2d0(%rbp)
jne 0x7d6b
movq 0x3826d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
leaq 0x390cc(%rip), %rax     # 0x40e30
movl %ecx, (%rax)
jmp 0x87c5
cmpl $0x6a, -0x2d0(%rbp)
jne 0x7d83
movl $0x1, -0x2d4(%rbp)
jmp 0x87c3
cmpl $0x72, -0x2d0(%rbp)
jne 0x7dc0
movq 0x3822d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x33d0
cvtsd2ss %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x84(%rax)
movss 0x2f9e5(%rip), %xmm0    # 0x37798
movss %xmm0, -0x23c(%rbp)
jmp 0x87c1
cmpl $0x44, -0x2d0(%rbp)
jne 0x7dfd
movq 0x381f0(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x33d0
cvtsd2ss %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0xa0(%rax)
movss 0x2f9a8(%rip), %xmm0    # 0x37798
movss %xmm0, -0x220(%rbp)
jmp 0x87bf
cmpl $0x6d, -0x2d0(%rbp)
jne 0x7e30
movq 0x381b3(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0xb8(%rax)
movl $0x1, -0x208(%rbp)
jmp 0x87bd
cmpl $0x73, -0x2d0(%rbp)
jne 0x7e63
movq 0x38180(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x88(%rax)
movl $0x1, -0x238(%rbp)
jmp 0x87bb
cmpl $0x47, -0x2d0(%rbp)
jne 0x7e96
movq 0x3814d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x90(%rax)
movl $0x1, -0x230(%rbp)
jmp 0x87b9
cmpl $0x4e, -0x2d0(%rbp)
jne 0x7ec9
movq 0x3811a(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x80(%rax)
movl $0x1, -0x240(%rbp)
jmp 0x87b7
cmpl $0x57, -0x2d0(%rbp)
jne 0x7ef9
movq 0x380e7(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x7c(%rax)
movl $0x1, -0x244(%rbp)
jmp 0x87b5
cmpl $0x79, -0x2d0(%rbp)
jne 0x7f2c
movq 0x380b7(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3390
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x30(%rax)
movq $0x1, -0x290(%rbp)
jmp 0x87b3
cmpl $0x43, -0x2d0(%rbp)
jne 0x7f44
movl $0x1, -0x730(%rbp)
jmp 0x87b1
cmpl $0x4b, -0x2d0(%rbp)
jne 0x7f67
movq 0x3806c(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
movl %eax, -0x2dc(%rbp)
jmp 0x87af
cmpl $0x58, -0x2d0(%rbp)
jne 0x7f94
movq 0x38049(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x33d0
cvtsd2ss %xmm0, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x9c(%rax)
jmp 0x87ad
cmpl $0x50, -0x2d0(%rbp)
jne 0x7fb3
movq 0x3801c(%rip), %rax     # 0x3ffc0
movq (%rax), %rax
movq %rax, -0x7a0(%rbp)
jmp 0x87ab
cmpl $0x68, -0x2d0(%rbp)
jne 0x8086
movl $0x1, -0x200(%rbp)
movl $0x1, -0x204(%rbp)
movq 0x37fe5(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0xc0(%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0xbc(%rax)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x8081
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x8081
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x8081
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0xc0(%rax)
jmp 0x87a9
cmpl $0x51, -0x2d0(%rbp)
jne 0x811d
movss 0x2f6fd(%rip), %xmm0    # 0x37798
movss %xmm0, -0x214(%rbp)
movq 0x37f16(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x3590
cvtsi2ss %eax, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0xac(%rax)
movq -0x18(%rbp), %rax
movss 0xac(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0x80f5
movq -0x18(%rbp), %rax
movss 0xac(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x3240
movsd %xmm0, -0x7d8(%rbp)
jmp 0x8102
xorps %xmm0, %xmm0
movsd %xmm0, -0x7d8(%rbp)
jmp 0x8102
movsd -0x7d8(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0xb0(%rax)
jmp 0x87a7
cmpl $0x4f, -0x2d0(%rbp)
jne 0x81e7
movl $0x1, -0x2b0(%rbp)
movl $0x1, -0x2b8(%rbp)
movq 0x37e7b(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x81e2
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x81e2
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x81e2
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x10(%rax)
jmp 0x87a5
cmpl $0x45, -0x2d0(%rbp)
jne 0x82b1
movl $0x1, -0x2ac(%rbp)
movl $0x1, -0x2b4(%rbp)
movq 0x37db1(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x14(%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x82ac
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x82ac
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x82ac
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x14(%rax)
jmp 0x87a3
cmpl $0x4c, -0x2d0(%rbp)
jne 0x837b
movl $0x1, -0x2a0(%rbp)
movl $0x1, -0x2a4(%rbp)
movq 0x37ce7(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x8376
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x8376
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x8376
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
movl $0xa, %edx
callq 0x34c0
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x20(%rax)
jmp 0x87a1
cmpl $0x52, -0x2d0(%rbp)
jne 0x83b1
movq 0x37c35(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
callq 0x1aa30
movq %rax, -0x300(%rbp)
cmpq $0x0, %rax
jne 0x83ac
movl $0x1, -0x4(%rbp)
jmp 0x94ea
jmp 0x879f
cmpl $0x48, -0x2d0(%rbp)
jne 0x8507
movq 0x37bfb(%rip), %rax     # 0x3ffc0
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
je 0x84e5
movq 0x37be5(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
leaq 0x3091d(%rip), %rsi     # 0x38d02
callq 0x3370
movq %rax, -0x7a8(%rbp)
cmpq $0x0, %rax
je 0x84e3
movl $0x1, %edi
movl $0x10000, %esi          # imm = 0x10000
leaq 0x2f40a(%rip), %rdx     # 0x37816
movl $0xc7, %ecx
leaq 0x2f406(%rip), %r8      # 0x3781e
callq 0x31bf0
movq %rax, -0x7b0(%rbp)
movq -0x7b0(%rbp), %rdi
movq -0x7a8(%rbp), %rdx
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x35b0
cmpq $0x0, %rax
je 0x84cb
movq -0x7b0(%rbp), %rdi
callq 0x30f0
movl %eax, -0x2cc(%rbp)
movq -0x7b0(%rbp), %rax
movl -0x2cc(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x8476
jmp 0x8495
leaq 0x2f3af(%rip), %rdi     # 0x3782c
leaq 0x2f392(%rip), %rsi     # 0x37816
movl $0xca, %edx
leaq 0x2f3ad(%rip), %rcx     # 0x3783d
callq 0x3190
movq -0x7b0(%rbp), %rax
movl -0x2cc(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movb $0x0, (%rax,%rcx)
movq -0x7b0(%rbp), %rdi
movq -0x308(%rbp), %rsi
callq 0x1ad20
movq %rax, -0x308(%rbp)
jmp 0x8424
movq -0x7b0(%rbp), %rdi
callq 0x3380
movq -0x7a8(%rbp), %rdi
callq 0x32e0
jmp 0x8502
movq 0x37ad4(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
movq -0x308(%rbp), %rsi
callq 0x1ad20
movq %rax, -0x308(%rbp)
jmp 0x879d
cmpl $0x49, -0x2d0(%rbp)
jne 0x878f
leaq -0x720(%rbp), %rax
movq %rax, -0x740(%rbp)
movl $0x0, -0x6f8(%rbp)
movq 0x37a8d(%rip), %rax     # 0x3ffc0
movq (%rax), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3200
movsd %xmm0, -0x6f0(%rbp)
movsd 0x2f24e(%rip), %xmm0    # 0x377a0
mulsd -0x6f0(%rbp), %xmm0
movsd %xmm0, -0x6e8(%rbp)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x85d5
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x85d5
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x85d5
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3200
movsd %xmm0, -0x6e8(%rbp)
movsd -0x6f0(%rbp), %xmm1
movsd -0x6e8(%rbp), %xmm0
movsd 0x2f1cb(%rip), %xmm2    # 0x377b8
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x2f1ab(%rip), %xmm1    # 0x377a8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x6fc(%rbp)
movsd -0x6f0(%rbp), %xmm1
movsd -0x6e8(%rbp), %xmm0
movsd 0x2f18d(%rip), %xmm2    # 0x377b0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x2f175(%rip), %xmm1    # 0x377a8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x700(%rbp)
cmpl $0x1, -0x700(%rbp)
jge 0x8654
movl $0x1, -0x700(%rbp)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x86d5
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x86d5
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x86d5
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3200
movsd 0x2f0e1(%rip), %xmm1    # 0x377a8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x6fc(%rbp)
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x8756
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x8756
callq 0x3310
movq (%rax), %rax
movq -0x2f8(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x8756
movq -0x2f8(%rbp), %rdi
addq $0x1, %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3200
movsd 0x2f060(%rip), %xmm1    # 0x377a8
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x700(%rbp)
movsd -0x6f0(%rbp), %xmm0
movsd -0x6e8(%rbp), %xmm1
movl -0x6fc(%rbp), %ecx
movl -0x700(%rbp), %r8d
leaq 0x2f0a4(%rip), %rdi     # 0x3781e
movl $0x3, %esi
leaq 0x2f0d7(%rip), %rdx     # 0x3785d
movb $0x2, %al
callq 0x12510
jmp 0x879b
movl $0x1, -0x4(%rbp)
jmp 0x94ea
jmp 0x879d
jmp 0x879f
jmp 0x87a1
jmp 0x87a3
jmp 0x87a5
jmp 0x87a7
jmp 0x87a9
jmp 0x87ab
jmp 0x87ad
jmp 0x87af
jmp 0x87b1
jmp 0x87b3
jmp 0x87b5
jmp 0x87b7
jmp 0x87b9
jmp 0x87bb
jmp 0x87bd
jmp 0x87bf
jmp 0x87c1
jmp 0x87c3
jmp 0x87c5
jmp 0x87c7
jmp 0x87c9
jmp 0x87cb
jmp 0x87cd
jmp 0x87cf
jmp 0x87d1
jmp 0x87d3
jmp 0x87d5
jmp 0x87d7
jmp 0x87d9
jmp 0x87db
jmp 0x87dd
jmp 0x87df
jmp 0x87e1
jmp 0x87e3
jmp 0x87e5
jmp 0x87e7
jmp 0x87e9
jmp 0x87eb
jmp 0x87ed
jmp 0x87ef
jmp 0x87f1
jmp 0x87f3
jmp 0x87f5
jmp 0x87f7
jmp 0x87f9
jmp 0x87fb
jmp 0x87fd
jmp 0x87ff
jmp 0x78de
cmpq $0x0, -0x300(%rbp)
je 0x8834
movq -0x300(%rbp), %rdi
movq -0x308(%rbp), %rsi
callq 0x1ad20
movq %rax, -0x308(%rbp)
movq -0x300(%rbp), %rdi
callq 0x3380
movq -0x18(%rbp), %rax
cmpl $0x1, 0x94(%rax)
jge 0x884f
movq -0x18(%rbp), %rax
movl $0x1, 0x94(%rax)
movq 0x3778a(%rip), %rax     # 0x3ffe0
movl (%rax), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jge 0x8871
movq 0x37779(%rip), %rax     # 0x3ffe0
movl (%rax), %eax
addl $0x3, %eax
cmpl -0x8(%rbp), %eax
jge 0x888f
movq -0x18(%rbp), %rdi
callq 0x9500
movq -0x18(%rbp), %rdi
callq 0x3380
movl $0x1, -0x4(%rbp)
jmp 0x94ea
cmpq $0x0, -0x310(%rbp)
je 0x8bb4
movq -0x310(%rbp), %rdi
leaq 0x2efea(%rip), %rsi     # 0x37895
callq 0x34b0
cmpl $0x0, %eax
jne 0x891e
cmpl $0x0, -0x2b8(%rbp)
jne 0x88c9
movq -0x18(%rbp), %rax
movl $0x10, 0x8(%rax)
cmpl $0x0, -0x2b0(%rbp)
jne 0x88dd
movq -0x18(%rbp), %rax
movl $0x10, 0x10(%rax)
cmpl $0x0, -0x2bc(%rbp)
jne 0x88f1
movq -0x18(%rbp), %rax
movl $0x9, 0x4(%rax)
cmpl $0x0, -0x2a4(%rbp)
jne 0x8905
movq -0x18(%rbp), %rax
movl $0x5, 0x1c(%rax)
cmpl $0x0, -0x2a0(%rbp)
jne 0x8919
movq -0x18(%rbp), %rax
movl $0x5, 0x20(%rax)
jmp 0x8bb2
movq -0x310(%rbp), %rdi
leaq 0x2ef72(%rip), %rsi     # 0x3789e
callq 0x34b0
cmpl $0x0, %eax
je 0x8982
movq -0x310(%rbp), %rdi
leaq 0x2ef61(%rip), %rsi     # 0x378a5
callq 0x34b0
cmpl $0x0, %eax
je 0x8982
movq -0x310(%rbp), %rdi
leaq 0x2ef4f(%rip), %rsi     # 0x378ab
callq 0x34b0
cmpl $0x0, %eax
je 0x8982
movq -0x310(%rbp), %rdi
leaq 0x2ef3e(%rip), %rsi     # 0x378b2
callq 0x34b0
cmpl $0x0, %eax
jne 0x8b83
cmpl $0x0, -0x2b8(%rbp)
jne 0x8996
movq -0x18(%rbp), %rax
movl $0x1, 0x8(%rax)
cmpl $0x0, -0x2b4(%rbp)
jne 0x89aa
movq -0x18(%rbp), %rax
movl $0x1, 0xc(%rax)
cmpl $0x0, -0x2b0(%rbp)
jne 0x89be
movq -0x18(%rbp), %rax
movl $0x1, 0x10(%rax)
cmpl $0x0, -0x2ac(%rbp)
jne 0x89d2
movq -0x18(%rbp), %rax
movl $0x1, 0x14(%rax)
cmpl $0x0, -0x2bc(%rbp)
jne 0x89e6
movq -0x18(%rbp), %rax
movl $0x1, 0x4(%rax)
movss -0x23c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x8a11
jp 0x8a11
movq -0x18(%rbp), %rax
movss 0x2ed87(%rip), %xmm0    # 0x37790
movss %xmm0, 0x84(%rax)
movq -0x310(%rbp), %rdi
leaq 0x2ee8c(%rip), %rsi     # 0x378ab
callq 0x34b0
cmpl $0x0, %eax
jne 0x8ac3
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0xc8, %ecx
movl %ecx, 0x48(%rax)
cmpl $0x0, -0x244(%rbp)
jne 0x8a51
movq -0x18(%rbp), %rax
movl $0x28, 0x7c(%rax)
cmpl $0x0, -0x234(%rbp)
jne 0x8a68
movq -0x18(%rbp), %rax
movl $0x3e8, 0x8c(%rax)      # imm = 0x3E8
cmpl $0x0, -0x248(%rbp)
jne 0x8a7c
movq -0x18(%rbp), %rax
movl $0xd, 0x78(%rax)
cmpl $0x0, -0x240(%rbp)
jne 0x8a93
movq -0x18(%rbp), %rax
movl $0x19, 0x80(%rax)
movss -0x220(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x8abe
jp 0x8abe
movq -0x18(%rbp), %rax
movss 0x2ecde(%rip), %xmm0    # 0x37794
movss %xmm0, 0xa0(%rax)
jmp 0x8b81
movq -0x310(%rbp), %rdi
leaq 0x2ede1(%rip), %rsi     # 0x378b2
callq 0x34b0
cmpl $0x0, %eax
jne 0x8b2d
cmpl $0x0, -0x244(%rbp)
jne 0x8aef
movq -0x18(%rbp), %rax
movl $0x14, 0x7c(%rax)
cmpl $0x0, -0x248(%rbp)
jne 0x8b03
movq -0x18(%rbp), %rax
movl $0xe, 0x78(%rax)
cmpl $0x0, -0x2a4(%rbp)
jne 0x8b17
movq -0x18(%rbp), %rax
movl $0x0, 0x1c(%rax)
cmpl $0x0, -0x2a0(%rbp)
jne 0x8b2b
movq -0x18(%rbp), %rax
movl $0x0, 0x20(%rax)
jmp 0x8b7f
cmpl $0x0, -0x244(%rbp)
jne 0x8b41
movq -0x18(%rbp), %rax
movl $0x28, 0x7c(%rax)
cmpl $0x0, -0x248(%rbp)
jne 0x8b55
movq -0x18(%rbp), %rax
movl $0x11, 0x78(%rax)
cmpl $0x0, -0x2a4(%rbp)
jne 0x8b69
movq -0x18(%rbp), %rax
movl $0x0, 0x1c(%rax)
cmpl $0x0, -0x2a0(%rbp)
jne 0x8b7d
movq -0x18(%rbp), %rax
movl $0x0, 0x20(%rax)
jmp 0x8b7f
jmp 0x8b81
jmp 0x8bb0
movq -0x310(%rbp), %rcx
leaq 0x2ec8d(%rip), %rdi     # 0x3781e
movl $0x1, %esi
leaq 0x2ed1b(%rip), %rdx     # 0x378b8
movb $0x0, %al
callq 0x12510
movl $0x1, -0x4(%rbp)
jmp 0x94ea
jmp 0x8bb2
jmp 0x8bc4
movq -0x18(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x9bd0
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x8c08
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x8c08
leaq 0x2ec35(%rip), %rdi     # 0x3781e
movl $0x1, %esi
leaq 0x2ecdb(%rip), %rdx     # 0x378d0
movb $0x0, %al
callq 0x12510
movl $0x1, -0x4(%rbp)
jmp 0x94ea
movq -0x18(%rbp), %rax
cmpq $0x0, 0x70(%rax)
jne 0x8c2a
leaq 0x31904(%rip), %rdi     # 0x3a51e
callq 0xa220
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x70(%rax)
movq -0x18(%rbp), %rdx
movl (%rdx), %edi
movl 0x4(%rdx), %esi
addq $0xc4, %rdx
callq 0x18ea0
movq -0x10(%rbp), %rax
movq 0x37396(%rip), %rcx     # 0x3ffe0
movq %rcx, -0x800(%rbp)
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x30f0
movq %rax, %rdi
addq $0x5, %rdi
leaq 0x2ebab(%rip), %rsi     # 0x37816
movq %rsi, -0x810(%rbp)
leaq 0x2eba5(%rip), %rcx     # 0x3781e
movq %rcx, -0x808(%rbp)
movl $0x127, %edx            # imm = 0x127
callq 0x31ca0
movq -0x800(%rbp), %rcx
movq %rax, -0x778(%rbp)
movq -0x10(%rbp), %rax
movslq (%rcx), %rcx
movq 0x8(%rax,%rcx,8), %rdi
callq 0x30f0
movq -0x810(%rbp), %rsi
movq -0x808(%rbp), %rcx
movq %rax, %rdi
addq $0x5, %rdi
movl $0x128, %edx            # imm = 0x128
callq 0x31ca0
movq -0x800(%rbp), %rcx
movq %rax, -0x770(%rbp)
movq -0x778(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x2e70c(%rip), %rsi     # 0x373fb
movq %rsi, -0x7f8(%rbp)
xorl %eax, %eax
movb %al, -0x7e9(%rbp)
callq 0x3070
movq -0x800(%rbp), %rdx
movq -0x7f8(%rbp), %rsi
movb -0x7e9(%rbp), %al
movq -0x770(%rbp), %rdi
movq -0x10(%rbp), %rcx
movslq (%rdx), %rdx
movq 0x8(%rcx,%rdx,8), %rdx
callq 0x3070
movq -0x18(%rbp), %rax
movq %rax, -0x7e8(%rbp)
movq -0x778(%rbp), %rsi
leaq -0x7c8(%rbp), %rdi
callq 0x4c30
movq -0x7e8(%rbp), %rax
movq -0x7b8(%rbp), %rcx
movq %rcx, 0x60(%rax)
movups -0x7c8(%rbp), %xmm0
movups %xmm0, 0x50(%rax)
movq -0x18(%rbp), %rcx
movq 0x60(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x10(%rax)
movups 0x50(%rcx), %xmm0
movups %xmm0, (%rax)
callq 0x4d50
movl %eax, %ecx
movl %ecx, -0x7dc(%rbp)
testl %eax, %eax
je 0x8da0
jmp 0x8d93
movl -0x7dc(%rbp), %eax
subl $0x2, %eax
je 0x8ddd
jmp 0x8e10
movq -0x18(%rbp), %rax
movl 0x5c(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x60(%rax), %r8d
movq -0x18(%rbp), %rax
movl 0x64(%rax), %r9d
leaq 0x2ea60(%rip), %rdi     # 0x3781e
movl $0x1, %esi
leaq 0x2eb35(%rip), %rdx     # 0x378ff
movb $0x0, %al
callq 0x12510
movl $0x1, -0x4(%rbp)
jmp 0x94ea
movq -0x18(%rbp), %rax
movl 0x5c(%rax), %ecx
movq -0x18(%rbp), %rax
movl 0x60(%rax), %r8d
movq -0x18(%rbp), %rax
movl 0x64(%rax), %r9d
leaq 0x2ea23(%rip), %rdi     # 0x3781e
movl $0x2, %esi
leaq 0x2eb3f(%rip), %rdx     # 0x37946
movb $0x0, %al
callq 0x12510
jmp 0x8e12
jmp 0x8e12
movq -0x10(%rbp), %rax
movq 0x371c3(%rip), %rcx     # 0x3ffe0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xe840
movq %rax, -0x728(%rbp)
cmpq $0x0, -0x728(%rbp)
jne 0x8e9d
movq -0x10(%rbp), %rax
movq 0x3719b(%rip), %rcx     # 0x3ffe0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x2e9cb(%rip), %rdi     # 0x3781e
movl $0x3, %esi
leaq 0x2eb3c(%rip), %rdx     # 0x3799b
movb $0x0, %al
callq 0x12510
movq -0x10(%rbp), %rax
movq 0x3716f(%rip), %rcx     # 0x3ffe0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
movl $0x7, %esi
callq 0x1a020
movq %rax, -0x728(%rbp)
cmpq $0x0, %rax
jne 0x8e9b
movl $0x1, -0x4(%rbp)
jmp 0x94ea
jmp 0x8eb7
leaq 0x2e97a(%rip), %rdi     # 0x3781e
movl $0x3, %esi
leaq 0x2eb14(%rip), %rdx     # 0x379c4
movb $0x0, %al
callq 0x12510
cmpl $0x0, -0x2d4(%rbp)
je 0x8f17
movl $0x0, -0x2cc(%rbp)
movl -0x2cc(%rbp), %eax
movq -0x728(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jge 0x8f15
movq -0x728(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movslq -0x2cc(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl $0x0, 0x14(%rax)
movl -0x2cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2cc(%rbp)
jmp 0x8eca
jmp 0x8f17
cmpq $0x0, -0x780(%rbp)
je 0x90e2
movq -0x18(%rbp), %rax
cmpl $0x0, 0x58(%rax)
jne 0x8f55
leaq 0x2e8e8(%rip), %rdi     # 0x3781e
movl $0x1, %esi
leaq 0x2eaab(%rip), %rdx     # 0x379ed
movb $0x0, %al
callq 0x12510
movl $0x1, -0x4(%rbp)
jmp 0x94ea
movq -0x780(%rbp), %rdi
callq 0x30f0
movq %rax, %rdi
addq $0x5, %rdi
leaq 0x2e8a7(%rip), %rsi     # 0x37816
movl $0x159, %edx            # imm = 0x159
leaq 0x2e8a3(%rip), %rcx     # 0x3781e
callq 0x31ca0
movq %rax, -0x788(%rbp)
movq -0x780(%rbp), %rdi
callq 0x30f0
movq %rax, %rdi
addq $0x17, %rdi
leaq 0x2e875(%rip), %rsi     # 0x37816
movl $0x15a, %edx            # imm = 0x15A
leaq 0x2e871(%rip), %rcx     # 0x3781e
callq 0x31ca0
movq %rax, -0x790(%rbp)
movq -0x780(%rbp), %rdi
callq 0x30f0
movq %rax, %rdi
addq $0x17, %rdi
leaq 0x2e843(%rip), %rsi     # 0x37816
movl $0x15b, %edx            # imm = 0x15B
leaq 0x2e83f(%rip), %rcx     # 0x3781e
callq 0x31ca0
movq %rax, -0x798(%rbp)
movq -0x788(%rbp), %rdi
movq -0x780(%rbp), %rdx
leaq 0x2ea1e(%rip), %rsi     # 0x37a1e
movb $0x0, %al
callq 0x3070
movq -0x790(%rbp), %rdi
movq -0x780(%rbp), %rdx
leaq 0x2ea09(%rip), %rsi     # 0x37a25
movb $0x0, %al
callq 0x3070
movq -0x18(%rbp), %rax
movl 0x48(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x906a
movq -0x790(%rbp), %rdi
movq -0x780(%rbp), %rdx
leaq 0x2e9ed(%rip), %rsi     # 0x37a34
movb $0x0, %al
callq 0x3070
movq -0x798(%rbp), %rdi
movq -0x780(%rbp), %rdx
leaq 0x2e9e8(%rip), %rsi     # 0x37a4b
movb $0x0, %al
callq 0x3070
movq -0x788(%rbp), %rsi
leaq 0x2e7a6(%rip), %rdi     # 0x3781e
leaq 0x32299(%rip), %rdx     # 0x3b318
callq 0x12740
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x790(%rbp), %rsi
leaq 0x2e781(%rip), %rdi     # 0x3781e
leaq 0x32274(%rip), %rdx     # 0x3b318
callq 0x12740
movq %rax, -0x760(%rbp)
movq -0x18(%rbp), %rax
movl 0x48(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x90e0
movq -0x798(%rbp), %rsi
leaq 0x2e751(%rip), %rdi     # 0x3781e
leaq 0x32244(%rip), %rdx     # 0x3b318
callq 0x12740
movq %rax, -0x768(%rbp)
jmp 0x90e2
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x911f
movq -0x770(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x36edd(%rip), %rcx     # 0x3ffe0
movl (%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x30e14(%rip), %rsi     # 0x39f2a
movb $0x0, %al
callq 0x3070
jmp 0x9146
movq -0x10(%rbp), %rax
movq 0x36eb6(%rip), %rcx     # 0x3ffe0
movl (%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
movq -0x770(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xb9d0
movq -0x770(%rbp), %rdi
leaq -0x2c4(%rbp), %rsi
callq 0x6170
movq %rax, -0x318(%rbp)
cmpq $0x0, -0x318(%rbp)
jne 0x91a7
movq -0x10(%rbp), %rax
movq 0x36e6b(%rip), %rcx     # 0x3ffe0
movl (%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x2e696(%rip), %rdi     # 0x3781e
movl $0x1, %esi
leaq 0x2e8d0(%rip), %rdx     # 0x37a64
movb $0x0, %al
callq 0x12510
movl $0x1, -0x4(%rbp)
jmp 0x94ea
movl -0x2c4(%rbp), %edi
leaq 0x2fb4e(%rip), %rsi     # 0x38d02
callq 0x36d0
movq %rax, -0x2e8(%rbp)
movq -0x2e8(%rbp), %rdi
callq 0x11a10
movq %rax, -0x758(%rbp)
movq 0x36e06(%rip), %rax     # 0x3ffe0
movl (%rax), %eax
addl $0x2, %eax
cmpl -0x8(%rbp), %eax
jge 0x92c2
movq -0x18(%rbp), %rax
movl 0x48(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x9216
leaq 0x2e620(%rip), %rdi     # 0x3781e
movl $0x2, %esi
leaq 0x2e875(%rip), %rdx     # 0x37a7f
movb $0x0, %al
callq 0x12510
jmp 0x92c0
movq -0x10(%rbp), %rax
movq 0x36dbf(%rip), %rcx     # 0x3ffe0
movl (%rcx), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x6170
movq %rax, -0x320(%rbp)
cmpq $0x0, -0x320(%rbp)
jne 0x9287
movq -0x10(%rbp), %rax
movq 0x36d8b(%rip), %rcx     # 0x3ffe0
movl (%rcx), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rcx
leaq 0x2e5b6(%rip), %rdi     # 0x3781e
movl $0x1, %esi
leaq 0x2e7f0(%rip), %rdx     # 0x37a64
movb $0x0, %al
callq 0x12510
movl $0x1, -0x4(%rbp)
jmp 0x94ea
movl -0x2c8(%rbp), %edi
leaq 0x2fa6e(%rip), %rsi     # 0x38d02
callq 0x36d0
movq %rax, -0x2f0(%rbp)
movq -0x2f0(%rbp), %rdi
callq 0x11a10
movq %rax, -0x750(%rbp)
movq -0x18(%rbp), %rax
movl 0x48(%rax), %ecx
orl $0x2, %ecx
movl %ecx, 0x48(%rax)
jmp 0x92c2
movq -0x18(%rbp), %rax
movl 0x48(%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0x92f2
movq -0x728(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x308(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rdx
callq 0x1a8d0
cmpl $0x0, -0x2dc(%rbp)
jle 0x9309
movl -0x2dc(%rbp), %eax
movl %eax, -0x814(%rbp)
jmp 0x9324
movq -0x18(%rbp), %rax
movl 0x98(%rax), %eax
movq -0x18(%rbp), %rcx
imull 0x94(%rcx), %eax
movl %eax, -0x814(%rbp)
movl -0x814(%rbp), %eax
movl %eax, -0x72c(%rbp)
movl -0x2d8(%rbp), %ecx
movl $0x2, %edi
movl $0x1, %eax
cmpl $0x0, %ecx
cmovnel %eax, %edi
leaq 0x9b3(%rip), %rsi       # 0x9d00
leaq -0x758(%rbp), %rdx
movl $0x3, %ecx
callq 0x13500
movq -0x18(%rbp), %rdi
callq 0xd690
cmpq $0x0, -0x780(%rbp)
je 0x93bd
movq -0x18(%rbp), %rax
movl 0x40(%rax), %edi
movq -0x760(%rbp), %rdx
movq -0x7a0(%rbp), %rcx
movl $0x1, %esi
callq 0xc9c0
movq -0x18(%rbp), %rax
movl 0x48(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x93bb
movq -0x18(%rbp), %rax
movl 0x40(%rax), %edi
movq -0x768(%rbp), %rdx
movq -0x7a0(%rbp), %rcx
xorl %esi, %esi
callq 0xc9c0
jmp 0x93bd
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x93e7
movq -0x18(%rbp), %rax
movl 0x4c(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x93e7
movq -0x770(%rbp), %rdi
callq 0x36c0
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x36bba(%rip), %rcx     # 0x3ffb0
cmpq (%rcx), %rax
je 0x9408
movq -0x18(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x32e0
cmpq $0x0, -0x760(%rbp)
je 0x941e
movq -0x760(%rbp), %rdi
callq 0x32e0
cmpq $0x0, -0x768(%rbp)
je 0x9434
movq -0x768(%rbp), %rdi
callq 0x32e0
movq -0x778(%rbp), %rdi
callq 0x3380
movq -0x770(%rbp), %rdi
callq 0x3380
movq -0x788(%rbp), %rdi
callq 0x3380
movq -0x790(%rbp), %rdi
callq 0x3380
movq -0x798(%rbp), %rdi
callq 0x3380
movq -0x308(%rbp), %rdi
callq 0x3380
movq -0x18(%rbp), %rdi
callq 0x3380
movq -0x728(%rbp), %rdi
callq 0x1a050
movq -0x758(%rbp), %rdi
callq 0x11ad0
movq -0x2e8(%rbp), %rdi
callq 0x13200
movq -0x318(%rbp), %rdi
callq 0x7120
cmpq $0x0, -0x750(%rbp)
je 0x94e3
movq -0x750(%rbp), %rdi
callq 0x11ad0
movq -0x2f0(%rbp), %rdi
callq 0x13200
movq -0x320(%rbp), %rdi
callq 0x7120
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x830, %rsp            # imm = 0x830
popq %rbp
retq
nopw %cs:(%rax,%rax)