// File: /workspace/github_c_makefile_star2_O1/xiongxu[P]bam2bedGraph2/samtools-0.1.19/bcftools/call1.c
// Function: bcfview
int bcfview(int argc, char *argv[])
{
	extern int bcf_2qcall(bcf_hdr_t *h, bcf1_t *b);
	extern void bcf_p1_indel_prior(bcf_p1aux_t *ma, double x);
	extern int bcf_fix_gt(bcf1_t *b);
	extern int bcf_anno_max(bcf1_t *b);
	extern int bcf_shuffle(bcf1_t *b, int seed);
	extern uint32_t *bcf_trio_prep(int is_x, int is_son);
	extern int bcf_trio_call(uint32_t *prep, const bcf1_t *b, int *llr, int64_t *gt);
	extern int bcf_pair_call(const bcf1_t *b);
	extern int bcf_min_diff(const bcf1_t *b);
	extern int bcf_p1_get_M(bcf_p1aux_t *b);

	extern gzFile bcf_p1_fp_lk;

	bcf_t *bp, *bout = 0;
	bcf1_t *b, *blast;
	int c, *seeds = 0;
	uint64_t n_processed = 0, qcnt[256];
	viewconf_t vc;
	bcf_p1aux_t *p1 = 0;
	bcf_hdr_t *hin, *hout;
	int tid, begin, end;
	char moder[4], modew[4];

	tid = begin = end = -1;
	memset(&vc, 0, sizeof(viewconf_t));
	vc.prior_type = vc.n1 = -1; vc.theta = 1e-3; vc.pref = 0.5; vc.indel_frac = -1.; vc.n_perm = 0; vc.min_perm_p = 0.01; vc.min_smpl_frac = 0; vc.min_lrt = 1; vc.min_ma_lrt = -1;
	memset(qcnt, 0, 8 * 256);
	while ((c = getopt(argc, argv, "FN1:l:cC:eHAGvbSuP:t:p:QgLi:IMs:D:U:X:d:T:Ywm:K:")) >= 0) {
		switch (c) {
		case '1': vc.n1 = atoi(optarg); break;
		case 'l': vc.bed = bed_read(optarg); if (!vc.bed) { fprintf(stderr,"Could not read \"%s\"\n", optarg); return 1; } break;
		case 'D': vc.fn_dict = strdup(optarg); break;
		case 'F': vc.flag |= VC_FIX_PL; break;
		case 'N': vc.flag |= VC_ACGT_ONLY; break;
		case 'G': vc.flag |= VC_NO_GENO; break;
		case 'A': vc.flag |= VC_KEEPALT; break;
		case 'b': vc.flag |= VC_BCFOUT; break;
		case 'S': vc.flag |= VC_VCFIN; break;
		case 'c': vc.flag |= VC_CALL; break;
		case 'e': vc.flag |= VC_EM; break;
		case 'v': vc.flag |= VC_VARONLY | VC_CALL; break;
		case 'u': vc.flag |= VC_UNCOMP | VC_BCFOUT; break;
		case 'g': vc.flag |= VC_CALL_GT | VC_CALL; break;
		case 'I': vc.flag |= VC_NO_INDEL; break;
		case 'w': vc.flag |= VC_INDEL_ONLY; break;
		case 'M': vc.flag |= VC_ANNO_MAX; break;
		case 'Y': vc.flag |= VC_QCNT; break;
        case 'm': vc.min_ma_lrt = atof(optarg); break;
		case 't': vc.theta = atof(optarg); break;
		case 'p': vc.pref = atof(optarg); break;
		case 'i': vc.indel_frac = atof(optarg); break;
		case 'Q': vc.flag |= VC_QCALL; break;
		case 'L': vc.flag |= VC_ADJLD; break;
		case 'U': vc.n_perm = atoi(optarg); break;
		case 'C': vc.min_lrt = atof(optarg); break;
		case 'X': vc.min_perm_p = atof(optarg); break;
		case 'd': vc.min_smpl_frac = atof(optarg); break;
		case 'K': bcf_p1_fp_lk = gzopen(optarg, "w"); break;
		case 's': vc.subsam = read_samples(optarg, &vc.n_sub);
			vc.ploidy = calloc(vc.n_sub + 1, 1);
			for (tid = 0; tid < vc.n_sub; ++tid) vc.ploidy[tid] = vc.subsam[tid][strlen(vc.subsam[tid]) + 1];
			tid = -1;
			break;
		case 'T':
			if (strcmp(optarg, "trioauto") == 0) vc.trio_aux = bcf_trio_prep(0, 0);
			else if (strcmp(optarg, "trioxd") == 0) vc.trio_aux = bcf_trio_prep(1, 0);
			else if (strcmp(optarg, "trioxs") == 0) vc.trio_aux = bcf_trio_prep(1, 1);
			else if (strcmp(optarg, "pair") == 0) vc.flag |= VC_PAIRCALL;
			else {
				fprintf(stderr, "[%s] Option '-T' can only take value trioauto, trioxd or trioxs.\n", __func__);
				return 1;
			}
			break;
		case 'P':
			if (strcmp(optarg, "full") == 0) vc.prior_type = MC_PTYPE_FULL;
			else if (strcmp(optarg, "cond2") == 0) vc.prior_type = MC_PTYPE_COND2;
			else if (strcmp(optarg, "flat") == 0) vc.prior_type = MC_PTYPE_FLAT;
			else vc.prior_file = strdup(optarg);
			break;
		}
	}
	if (argc == optind) {
		fprintf(stderr, "\n");
		fprintf(stderr, "Usage: bcftools view [options] <in.bcf> [reg]\n\n");
		fprintf(stderr, "Input/output options:\n\n");
		fprintf(stderr, "       -A        keep all possible alternate alleles at variant sites\n");
		fprintf(stderr, "       -b        output BCF instead of VCF\n");
		fprintf(stderr, "       -D FILE   sequence dictionary for VCF->BCF conversion [null]\n");
		fprintf(stderr, "       -F        PL generated by r921 or before (which generate old ordering)\n");
		fprintf(stderr, "       -G        suppress all individual genotype information\n");
		fprintf(stderr, "       -l FILE   list of sites (chr pos) or regions (BED) to output [all sites]\n");
		fprintf(stderr, "       -L        calculate LD for adjacent sites\n");
		fprintf(stderr, "       -N        skip sites where REF is not A/C/G/T\n");
		fprintf(stderr, "       -Q        output the QCALL likelihood format\n");
		fprintf(stderr, "       -s FILE   list of samples to use [all samples]\n");
		fprintf(stderr, "       -S        input is VCF\n");
		fprintf(stderr, "       -u        uncompressed BCF output (force -b)\n");
		fprintf(stderr, "\nConsensus/variant calling options:\n\n");
		fprintf(stderr, "       -c        SNP calling (force -e)\n");
		fprintf(stderr, "       -d FLOAT  skip loci where less than FLOAT fraction of samples covered [0]\n");
		fprintf(stderr, "       -e        likelihood based analyses\n");
		fprintf(stderr, "       -g        call genotypes at variant sites (force -c)\n");
		fprintf(stderr, "       -i FLOAT  indel-to-substitution ratio [%.4g]\n", vc.indel_frac);
		fprintf(stderr, "       -I        skip indels\n");
		fprintf(stderr, "       -m FLOAT  alternative model for multiallelic and rare-variant calling, include if P(chi^2)>=FLOAT\n");
		fprintf(stderr, "       -p FLOAT  variant if P(ref|D)<FLOAT [%.3g]\n", vc.pref);
		fprintf(stderr, "       -P STR    type of prior: full, cond2, flat [full]\n");
		fprintf(stderr, "       -t FLOAT  scaled substitution mutation rate [%.4g]\n", vc.theta);
		fprintf(stderr, "       -T STR    constrained calling; STR can be: pair, trioauto, trioxd and trioxs (see manual) [null]\n");
		fprintf(stderr, "       -v        output potential variant sites only (force -c)\n");
		fprintf(stderr, "\nContrast calling and association test options:\n\n");
		fprintf(stderr, "       -1 INT    number of group-1 samples [0]\n");
		fprintf(stderr, "       -C FLOAT  posterior constrast for LRT<FLOAT and P(ref|D)<0.5 [%g]\n", vc.min_lrt);
		fprintf(stderr, "       -U INT    number of permutations for association testing (effective with -1) [0]\n");
		fprintf(stderr, "       -X FLOAT  only perform permutations for P(chi^2)<FLOAT [%g]\n", vc.min_perm_p);
		fprintf(stderr, "\n");
		return 1;
	}

	if (vc.flag & VC_CALL) vc.flag |= VC_EM;
	if ((vc.flag & VC_VCFIN) && (vc.flag & VC_BCFOUT) && vc.fn_dict == 0) {
		fprintf(stderr, "[%s] For VCF->BCF conversion please specify the sequence dictionary with -D\n", __func__);
		return 1;
	}
	if (vc.n1 <= 0) vc.n_perm = 0; // TODO: give a warning here!
	if (vc.n_perm > 0) {
		seeds = malloc(vc.n_perm * sizeof(int));
		srand48(time(0));
		for (c = 0; c < vc.n_perm; ++c) seeds[c] = lrand48();
	}
	b = calloc(1, sizeof(bcf1_t));
	blast = calloc(1, sizeof(bcf1_t));
	strcpy(moder, "r");
	if (!(vc.flag & VC_VCFIN)) strcat(moder, "b");
	strcpy(modew, "w");
	if (vc.flag & VC_BCFOUT) strcat(modew, "b");
	if (vc.flag & VC_UNCOMP) strcat(modew, "u");
	bp = vcf_open(argv[optind], moder);
	hin = hout = vcf_hdr_read(bp);
	if (vc.fn_dict && (vc.flag & VC_VCFIN))
		vcf_dictread(bp, hin, vc.fn_dict);
	bout = vcf_open("-", modew);
	if (!(vc.flag & VC_QCALL)) {
		if (vc.n_sub) {
			vc.sublist = calloc(vc.n_sub, sizeof(int));
			hout = bcf_hdr_subsam(hin, vc.n_sub, vc.subsam, vc.sublist);
		}
		write_header(hout); // always print the header
		vcf_hdr_write(bout, hout);
	}
	if (vc.flag & VC_CALL) {
		p1 = bcf_p1_init(hout->n_smpl, vc.ploidy);
		if (vc.prior_file) {
			if (bcf_p1_read_prior(p1, vc.prior_file) < 0) {
				fprintf(stderr, "[%s] fail to read the prior AFS.\n", __func__);
				return 1;
			}
		} else bcf_p1_init_prior(p1, vc.prior_type, vc.theta);
		if (vc.n1 > 0 && vc.min_lrt > 0.) { // set n1
			bcf_p1_set_n1(p1, vc.n1);
			bcf_p1_init_subprior(p1, vc.prior_type, vc.theta);
		}
		if (vc.indel_frac > 0.) bcf_p1_indel_prior(p1, vc.indel_frac); // otherwise use the default indel_frac
	}
	if (optind + 1 < argc && !(vc.flag&VC_VCFIN)) {
		void *str2id = bcf_build_refhash(hout);
		if (bcf_parse_region(str2id, argv[optind+1], &tid, &begin, &end) >= 0) {
			bcf_idx_t *idx;
			idx = bcf_idx_load(argv[optind]);
			if (idx) {
				uint64_t off;
				off = bcf_idx_query(idx, tid, begin);
				if (off == 0) {
					fprintf(stderr, "[%s] no records in the query region.\n", __func__);
					return 1; // FIXME: a lot of memory leaks...
				}
				bgzf_seek(bp->fp, off, SEEK_SET);
				bcf_idx_destroy(idx);
			}
		}
	}
	if (bcf_p1_fp_lk && p1) {
		int32_t M = bcf_p1_get_M(p1);
		gzwrite(bcf_p1_fp_lk, &M, 4);
	}
	while (vcf_read(bp, hin, b) > 0) {
		int is_indel, cons_llr = -1;
		int64_t cons_gt = -1;
		double em[10];
		if ((vc.flag & VC_VARONLY) && strcmp(b->alt, "X") == 0) continue;
		if ((vc.flag & VC_VARONLY) && vc.min_smpl_frac > 0.) {
			extern int bcf_smpl_covered(const bcf1_t *b);
			int n = bcf_smpl_covered(b);
			if ((double)n / b->n_smpl < vc.min_smpl_frac) continue;
		}
		if (vc.n_sub) bcf_subsam(vc.n_sub, vc.sublist, b);
		if (vc.flag & VC_FIX_PL) bcf_fix_pl(b);
		is_indel = bcf_is_indel(b);
		if ((vc.flag & VC_NO_INDEL) && is_indel) continue;
		if ((vc.flag & VC_INDEL_ONLY) && !is_indel) continue;
		if ((vc.flag & VC_ACGT_ONLY) && !is_indel) {
			int x;
			if (b->ref[0] == 0 || b->ref[1] != 0) continue;
			x = toupper(b->ref[0]);
			if (x != 'A' && x != 'C' && x != 'G' && x != 'T') continue;
		}
		if (vc.bed && !bed_overlap(vc.bed, hin->ns[b->tid], b->pos, b->pos + strlen(b->ref))) continue;
		if (tid >= 0) {
			int l = strlen(b->ref);
			l = b->pos + (l > 0? l : 1);
			if (b->tid != tid || b->pos >= end) break;
			if (!(l > begin && end > b->pos)) continue;
		}
		++n_processed;
		if ((vc.flag & VC_QCNT) && !is_indel) { // summarize the difference
			int x = bcf_min_diff(b);
			if (x > 255) x = 255;
			if (x >= 0) ++qcnt[x];
		}
		if (vc.flag & VC_QCALL) { // output QCALL format; STOP here
			bcf_2qcall(hout, b);
			continue;
		}
		if (vc.trio_aux) // do trio calling
			bcf_trio_call(vc.trio_aux, b, &cons_llr, &cons_gt);
		else if (vc.flag & VC_PAIRCALL)
			cons_llr = bcf_pair_call(b);
		if (vc.flag & (VC_CALL|VC_ADJLD|VC_EM)) bcf_gl2pl(b);
		if (vc.flag & VC_EM) bcf_em1(b, vc.n1, 0x1ff, em);
		else {
			int i;
			for (i = 0; i < 9; ++i) em[i] = -1.;
		}
        if ( !(vc.flag&VC_KEEPALT) && (vc.flag&VC_CALL) && vc.min_ma_lrt>=0 )
        {
            bcf_p1_set_ploidy(b, p1); // could be improved: do this per site to allow pseudo-autosomal regions
            int gts = call_multiallelic_gt(b, p1, vc.min_ma_lrt, vc.flag&VC_VARONLY);
            if ( gts<=1 && vc.flag & VC_VARONLY ) continue;
        }
		else if (vc.flag & VC_CALL) { // call variants
			bcf_p1rst_t pr;
			int calret;
			gzwrite(bcf_p1_fp_lk, &b->tid, 4);
			gzwrite(bcf_p1_fp_lk, &b->pos, 4);
			gzwrite(bcf_p1_fp_lk, &em[0], sizeof(double));
			calret = bcf_p1_cal(b, (em[7] >= 0 && em[7] < vc.min_lrt), p1, &pr);
			if (n_processed % 100000 == 0) {
				fprintf(stderr, "[%s] %ld sites processed.\n", __func__, (long)n_processed);
				bcf_p1_dump_afs(p1);
			}
			if (pr.p_ref >= vc.pref && (vc.flag & VC_VARONLY)) continue;
			if (vc.n_perm && vc.n1 > 0 && pr.p_chi2 < vc.min_perm_p) { // permutation test
				bcf_p1rst_t r;
				int i, n = 0;
				for (i = 0; i < vc.n_perm; ++i) {
#ifdef BCF_PERM_LRT // LRT based permutation is much faster but less robust to artifacts
					double x[10];
					bcf_shuffle(b, seeds[i]);
					bcf_em1(b, vc.n1, 1<<7, x);
					if (x[7] < em[7]) ++n;
#else
					bcf_shuffle(b, seeds[i]);
					bcf_p1_cal(b, 1, p1, &r);
					if (pr.p_chi2 >= r.p_chi2) ++n;
#endif
				}
				pr.perm_rank = n;
			}
			if (calret >= 0) update_bcf1(b, p1, &pr, vc.pref, vc.flag, em, cons_llr, cons_gt);
		} else if (vc.flag & VC_EM) update_bcf1(b, 0, 0, 0, vc.flag, em, cons_llr, cons_gt);
		if (vc.flag & VC_ADJLD) { // compute LD
			double f[4], r2;
			if ((r2 = bcf_pair_freq(blast, b, f)) >= 0) {
				kstring_t s;
				s.m = s.l = 0; s.s = 0;
				if (*b->info) kputc(';', &s);
				ksprintf(&s, "NEIR=%.3f;NEIF4=%.3f,%.3f,%.3f,%.3f", r2, f[0], f[1], f[2], f[3]);
				bcf_append_info(b, s.s, s.l);
				free(s.s);
			}
			bcf_cpy(blast, b);
		}
		if (vc.flag & VC_ANNO_MAX) bcf_anno_max(b);
		if (vc.flag & VC_NO_GENO) { // do not output GENO fields
			b->n_gi = 0;
			b->fmt[0] = '\0';
			b->l_str = b->fmt - b->str + 1;
		} else bcf_fix_gt(b);
		vcf_write(bout, hout, b);
	}

	if (bcf_p1_fp_lk) gzclose(bcf_p1_fp_lk);
	if (vc.prior_file) free(vc.prior_file);
	if (vc.flag & VC_CALL) bcf_p1_dump_afs(p1);
	if (hin != hout) bcf_hdr_destroy(hout);
	bcf_hdr_destroy(hin);
	bcf_destroy(b); bcf_destroy(blast);
	vcf_close(bp); vcf_close(bout);
	if (vc.fn_dict) free(vc.fn_dict);
	if (vc.ploidy) free(vc.ploidy);
	if (vc.trio_aux) free(vc.trio_aux);
	if (vc.n_sub) {
		int i;
		for (i = 0; i < vc.n_sub; ++i) free(vc.subsam[i]);
		free(vc.subsam); free(vc.sublist);
	}
	if (vc.bed) bed_destroy(vc.bed);
	if (vc.flag & VC_QCNT)
		for (c = 0; c < 256; ++c)
			fprintf(stderr, "QT\t%d\t%lld\n", c, (long long)qcnt[c]);
	if (seeds) free(seeds);
	if (p1) bcf_p1_destroy(p1);
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa88, %rsp            # imm = 0xA88
movq %rsi, %r12
movl %edi, %r14d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, 0xbc(%rsp)
movl %eax, 0x78(%rsp)
movl %eax, 0x34(%rsp)
leaq 0x280(%rsp), %rdi
xorl %ebp, %ebp
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x21f0
leaq 0x15fa7(%rip), %rdx     # 0x191a5
movl %r14d, %edi
movq %r12, %rsi
callq 0x2460
testl %eax, %eax
movl %r14d, 0x24(%rsp)
movq %r12, 0x98(%rsp)
js 0x398e
movl $0xffffffff, 0x28(%rsp) # imm = 0xFFFFFFFF
movq $0x0, 0xd8(%rsp)
movsd 0x15dfe(%rip), %xmm0    # 0x19038
movsd %xmm0, 0x60(%rsp)
movsd 0x15dd0(%rip), %xmm0    # 0x19018
movsd %xmm0, 0xa8(%rsp)
movsd 0x15dcf(%rip), %xmm0    # 0x19028
movsd %xmm0, 0xc0(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd 0x15d9a(%rip), %xmm0    # 0x19010
movaps %xmm0, 0x110(%rsp)
movsd 0x15daa(%rip), %xmm0    # 0x19030
leaq 0x15f18(%rip), %rbx     # 0x191a5
leaq 0x15dec(%rip), %r15     # 0x19080
movsd %xmm0, 0xd0(%rsp)
movsd %xmm0, 0xa0(%rsp)
movq $0x0, 0xb0(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0xc8(%rsp)
movq $0x0, 0x80(%rsp)
xorl %r13d, %r13d
movl $0x0, 0x30(%rsp)
xorl %ebp, %ebp
movl $0xffffffff, 0x14(%rsp) # imm = 0xFFFFFFFF
addl $-0x31, %eax
cmpl $0x46, %eax
ja 0x394a
movslq (%r15,%rax,4), %rax
addq %r15, %rax
jmpq *%rax
movq 0x1ccc8(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2470
movl %eax, 0x28(%rsp)
jmp 0x394a
orl $0x4, %r13d
jmp 0x394a
orl $0x10000, %r13d         # imm = 0x10000
jmp 0x394a
orl $0x20, %r13d
jmp 0x394a
movq 0x1cc92(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xd0(%rsp)
jmp 0x394a
movq 0x1cc75(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xa0(%rsp)
jmp 0x394a
orl $0x200, %r13d           # imm = 0x200
jmp 0x394a
movq 0x1cc4c(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0x60(%rsp)
jmp 0x394a
orl $0x808, %r13d           # imm = 0x808
jmp 0x394a
orl $0x400, %r13d           # imm = 0x400
jmp 0x394a
orl $0x8, %r13d
jmp 0x394a
movq 0x1cc11(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movapd %xmm0, 0x110(%rsp)
jmp 0x394a
orl $0x44, %r13d
jmp 0x394a
orl $0x80000, %r13d         # imm = 0x80000
jmp 0x394a
orl $0x2, %r13d
jmp 0x394a
movq 0x1cbd6(%rip), %rax     # 0x1ffd8
movq (%rax), %r15
leaq 0x15e40(%rip), %rsi     # 0x1924c
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x37a3
leaq 0x15e2e(%rip), %rsi     # 0x19251
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x386d
leaq 0x15e1d(%rip), %rsi     # 0x19257
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x3965
movq %r15, %rdi
callq 0x2510
movq %rax, 0xc8(%rsp)
jmp 0x3943
movq 0x1cb72(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0xa8d2
movq %rax, 0xd8(%rsp)
testq %rax, %rax
jne 0x394a
jmp 0x5ac1
orl $0x100, %r13d           # imm = 0x100
jmp 0x394a
orl $0x2000, %r13d          # imm = 0x2000
jmp 0x394a
movq 0x1cb35(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
leaq 0x15d9d(%rip), %rsi     # 0x1924a
callq 0x22c0
leaq 0x1cf7f(%rip), %rcx     # 0x20438
movq %rax, (%rcx)
jmp 0x394a
movq 0x1cb10(%rip), %rax     # 0x1ffd8
movq (%rax), %r15
leaq 0x15d19(%rip), %rsi     # 0x191eb
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x37b0
leaq 0x15d0b(%rip), %rsi     # 0x191f4
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x387a
leaq 0x15cfb(%rip), %rsi     # 0x191fb
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x396f
leaq 0x1759e(%rip), %rsi     # 0x1aab5
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
jne 0x5ac8
orl $0x20000, %r13d         # imm = 0x20000
jmp 0x3943
movq 0x1ca9e(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2470
movl %eax, 0x30(%rsp)
jmp 0x394a
orl $0x18, %r13d
jmp 0x394a
movq 0x1ca7d(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2510
movq %rax, 0x88(%rsp)
jmp 0x394a
orl $0x8000, %r13d          # imm = 0x8000
jmp 0x394a
orl $0x4000, %r13d          # imm = 0x4000
jmp 0x394a
orl $0x1000, %r13d          # imm = 0x1000
jmp 0x394a
orl $0x40000, %r13d         # imm = 0x40000
jmp 0x394a
movq 0x1ca31(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xc0(%rsp)
jmp 0x394a
movq 0x1ca14(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xe8(%rsp)
jmp 0x394a
movq 0x1c9f7(%rip), %rax     # 0x1ffd8
movq (%rax), %r15
xorpd %xmm0, %xmm0
movapd %xmm0, 0x130(%rsp)
movq $0x0, 0x140(%rsp)
leaq 0x174b4(%rip), %rsi     # 0x1aab8
movq %r15, %rdi
callq 0x22c0
testq %rax, %rax
je 0x37b7
movq %rax, %rbx
movl $0x1, %edi
movl $0x20, %esi
callq 0x2260
movq %rax, %r12
movq %rbx, 0x18(%rax)
movl $0x4000, %edi           # imm = 0x4000
callq 0x2360
movq %rax, (%r12)
xorl %ebp, %ebp
leaq 0x130(%rsp), %rdx
leaq 0x1b0(%rsp), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x67e5
testl %eax, %eax
js 0x3893
movq %rbx, 0x38(%rsp)
xorl %ebp, %ebp
movq $0x0, 0x18(%rsp)
xorl %r14d, %r14d
movl %r14d, %eax
cmpq %rax, %rbp
jne 0x36a2
leal (%r14,%r14), %eax
testl %r14d, %r14d
movl $0x4, %r14d
cmovnel %eax, %r14d
movslq %r14d, %rsi
shlq $0x3, %rsi
movq 0x18(%rsp), %rdi
callq 0x23d0
movq %rax, %r15
jmp 0x36a7
movq 0x18(%rsp), %r15
movq 0x130(%rsp), %rbx
leaq 0x2(%rbx), %rdi
callq 0x2360
movq %rax, (%r15,%rbp,8)
movq 0x140(%rsp), %rsi
movq %rax, %rdi
callq 0x20a0
movq %r15, 0x18(%rsp)
movq (%r15,%rbp,8), %rax
incl %ebx
movslq %ebx, %rbx
movb $0x2, (%rax,%rbx)
cmpl $0xa, 0x1b0(%rsp)
je 0x374e
leaq 0x130(%rsp), %rdx
leaq 0x1b0(%rsp), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x67e5
testl %eax, %eax
js 0x3727
movq 0x140(%rsp), %rax
movsbl (%rax), %eax
leal -0x31(%rax), %ecx
cmpl $0x1, %ecx
ja 0x3775
addb $-0x30, %al
movq 0x18(%rsp), %rcx
movq (%rcx,%rbp,8), %rcx
movb %al, (%rcx,%rbx)
cmpl $0xa, 0x1b0(%rsp)
je 0x374e
leaq 0x130(%rsp), %rdx
leaq 0x1b0(%rsp), %rcx
movq %r12, %rdi
movl $0xa, %esi
callq 0x67e5
incq %rbp
leaq 0x130(%rsp), %rdx
leaq 0x1b0(%rsp), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x67e5
testl %eax, %eax
jns 0x3673
jmp 0x3799
callq 0x25f5
jmp 0x3727
movq 0x1c855(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xa8(%rsp)
jmp 0x394a
movq 0x38(%rsp), %rbx
jmp 0x389c
movl $0x1, 0x14(%rsp)
jmp 0x3943
xorl %edi, %edi
jmp 0x387f
cmpb $0x0, (%r15)
je 0x397e
leaq 0x2(%r15), %r12
leaq 0x1(%r15), %r14
xorl %ebp, %ebp
movq $0x0, 0x18(%rsp)
movl %r13d, 0x20(%rsp)
movzbl -0x1(%r12), %eax
cmpl $0x2c, %eax
je 0x37e8
testl %eax, %eax
jne 0x3857
movslq %ebp, %rax
movq %rax, 0x38(%rsp)
incl %ebp
movq %rbp, 0x50(%rsp)
leaq 0x8(,%rax,8), %rsi
movq 0x18(%rsp), %rdi
callq 0x23d0
movq %rax, %rbx
movq %r15, %r13
movq %r14, %r15
subq %r13, %r15
leaq 0x2(%r15), %rdi
callq 0x2360
movq %rax, %rbp
movq %rbx, 0x18(%rsp)
movq 0x38(%rsp), %rax
movq %rbp, (%rbx,%rax,8)
movl 0x20(%rsp), %ebx
movq %rbp, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x22e0
subq %r13, %rbp
movl %ebx, %r13d
movw $0x200, (%rbp,%r14)     # imm = 0x200
movq 0x50(%rsp), %rbp
movq %r12, %r15
incq %r14
cmpb $0x0, -0x1(%r12)
leaq 0x1(%r12), %r12
jne 0x37d9
jmp 0x38c2
movl $0x2, 0x14(%rsp)
jmp 0x3943
movl $0x1, %edi
xorl %esi, %esi
callq 0x17c4c
movq %rax, 0x80(%rsp)
jmp 0x3943
movq $0x0, 0x18(%rsp)
movq (%r12), %rdi
callq 0x2060
movq %r12, %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x2050
movq 0x140(%rsp), %rdi
callq 0x2060
leal 0x1(%rbp), %eax
movslq %eax, %rdi
movl $0x1, %esi
callq 0x2260
movq %rax, %r12
movl $0x0, 0x34(%rsp)
movq %rbp, 0x50(%rsp)
testl %ebp, %ebp
movq 0x18(%rsp), %rbp
jle 0x3915
movl 0x50(%rsp), %ebx
xorl %r14d, %r14d
movq (%rbp,%r14,8), %r15
movq %r15, %rdi
callq 0x2180
movb 0x1(%r15,%rax), %al
movb %al, (%r12,%r14)
incq %r14
movl %r14d, 0x34(%rsp)
cmpq %r14, %rbx
jne 0x38f2
movq %rbp, 0x18(%rsp)
movq %r12, 0xb0(%rsp)
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
movq 0x98(%rsp), %r12
movl 0x24(%rsp), %r14d
movq 0x50(%rsp), %rbp
leaq 0x15862(%rip), %rbx     # 0x191a5
leaq 0x15736(%rip), %r15     # 0x19080
movl %r14d, %edi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x2460
testl %eax, %eax
jns 0x32f4
jmp 0x3a54
movl $0x3, 0x14(%rsp)
jmp 0x3943
movl $0x1, %edi
movl $0x1, %esi
jmp 0x3881
xorl %ebp, %ebp
movq $0x0, 0x18(%rsp)
jmp 0x38c2
movl $0xffffffff, 0x14(%rsp) # imm = 0xFFFFFFFF
movsd 0x15672(%rip), %xmm0    # 0x19010
movaps %xmm0, 0x110(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd 0x1566e(%rip), %xmm0    # 0x19028
movsd %xmm0, 0xc0(%rsp)
movsd 0x15665(%rip), %xmm1    # 0x19030
movsd 0x15645(%rip), %xmm0    # 0x19018
movsd %xmm0, 0xa8(%rsp)
movsd 0x15654(%rip), %xmm0    # 0x19038
movsd %xmm0, 0x60(%rsp)
movl $0xffffffff, 0x28(%rsp) # imm = 0xFFFFFFFF
movl $0x0, 0x30(%rsp)
xorl %r13d, %r13d
movq $0x0, 0x80(%rsp)
movq $0x0, 0xc8(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0xb0(%rsp)
movsd %xmm1, 0xa0(%rsp)
movsd %xmm1, 0xd0(%rsp)
movq $0x0, 0xd8(%rsp)
movq 0x1c575(%rip), %rax     # 0x1ffd0
cmpl %r14d, (%rax)
je 0x5743
testb $0x20, %r13b
je 0x3a87
movl %r13d, %eax
shrb $0x2, %al
cmpq $0x0, 0x88(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x5a99
xorl %r15d, %r15d
cmpl $0x0, 0x28(%rsp)
movl 0x30(%rsp), %eax
cmovlel %r15d, %eax
movl %eax, %ebx
movl %eax, 0x30(%rsp)
testl %eax, %eax
movq %rbx, 0x120(%rsp)
jle 0x3adc
leaq (,%rbx,4), %rdi
callq 0x2360
movq %rax, %r15
xorl %r14d, %r14d
xorl %edi, %edi
callq 0x2300
movq %rax, %rdi
callq 0x23e0
callq 0x23a0
movl %eax, (%r15,%r14,4)
incq %r14
cmpq %r14, %rbx
jne 0x3acb
movl $0x1, %edi
movl $0x68, %esi
callq 0x2260
movq %rax, %rbx
movl $0x1, %edi
movl $0x68, %esi
callq 0x2260
movq %rax, 0xf8(%rsp)
movw $0x72, 0x7c(%rsp)
testb $0x20, %r13b
jne 0x3b23
leaq 0x7c(%rsp), %rdi
callq 0x2180
movw $0x62, 0x7c(%rsp,%rax)
movw $0x77, 0x44(%rsp)
testb $0x4, %r13b
je 0x3b41
leaq 0x44(%rsp), %rdi
callq 0x2180
movw $0x62, 0x44(%rsp,%rax)
testb $0x40, %r13b
je 0x3b58
leaq 0x44(%rsp), %rdi
callq 0x2180
movw $0x75, 0x44(%rsp,%rax)
testb $0x20, %r13b
sete %r14b
movq 0x1c469(%rip), %rax     # 0x1ffd0
movslq (%rax), %rax
movq (%r12,%rax,8), %rdi
leaq 0x7c(%rsp), %rsi
callq 0xd583
movq %rax, 0xf0(%rsp)
movq %rax, %rdi
callq 0xcf30
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x88(%rsp)
sete %al
orb %r14b, %al
jne 0x3bb8
movq 0xf0(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x88(%rsp), %rdx
callq 0xd6c8
leaq 0x15e53(%rip), %rdi     # 0x19a12
leaq 0x44(%rsp), %rsi
callq 0xd583
movq %rax, 0x100(%rsp)
btl $0xa, %r13d
movl %r13d, 0x20(%rsp)
movq %r15, 0x58(%rsp)
jb 0x3c14
xorl %r14d, %r14d
testl %ebp, %ebp
je 0x3c37
movslq %ebp, %rdi
movl $0x4, %esi
callq 0x2260
movq 0x38(%rsp), %rdi
movl %ebp, %esi
movq 0x18(%rsp), %rdx
movq %rax, %rcx
movq %rax, 0xe0(%rsp)
callq 0xf300
jmp 0x3c48
movq $0x0, 0xe0(%rsp)
movq 0x38(%rsp), %rax
movq 0xb0(%rsp), %rsi
movl 0x24(%rsp), %r14d
jmp 0x4c3b
movq $0x0, 0xe0(%rsp)
movq 0x38(%rsp), %rax
movl 0x10(%rax), %ecx
subl $0x1, %ecx
cmovbl %r14d, %ecx
movslq %ecx, %r13
leaq 0x1(%r13), %r12
movq %rax, 0x68(%rsp)
movq 0x28(%rax), %r15
leaq 0x15e7d(%rip), %rsi     # 0x19ae6
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
je 0x3c7d
movl 0x24(%rsp), %r14d
jmp 0x3cec
leaq 0x43(%r13), %rax
cmpq %r12, %rax
movl 0x24(%rsp), %r14d
jb 0x3ccd
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e1d(%rip), %rsi     # 0x19af5
movl $0x42, %edx
callq 0x22e0
movb $0x0, 0x42(%r15,%r13)
addq $0x42, %r13
leaq 0x15e45(%rip), %rsi     # 0x19b38
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3d73
leaq 0x86(%r13), %rax
cmpq %r12, %rax
jb 0x3d4e
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15def(%rip), %rsi     # 0x19b48
movl $0x85, %edx
callq 0x22e0
movb $0x0, 0x85(%r15,%r13)
addq $0x85, %r13
leaq 0x15e54(%rip), %rsi     # 0x19bce
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3df1
leaq 0x67(%r13), %rax
cmpq %r12, %rax
jb 0x3dd2
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e00(%rip), %rsi     # 0x19bdd
movl $0x66, %edx
callq 0x22e0
movb $0x0, 0x66(%r15,%r13)
addq $0x66, %r13
leaq 0x15e4c(%rip), %rsi     # 0x19c44
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3e6f
leaq 0x62(%r13), %rax
cmpq %r12, %rax
jb 0x3e50
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15df8(%rip), %rsi     # 0x19c53
movl $0x61, %edx
callq 0x22e0
movb $0x0, 0x61(%r15,%r13)
addq $0x61, %r13
leaq 0x15e3f(%rip), %rsi     # 0x19cb5
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3eed
leaq 0x7c(%r13), %rax
cmpq %r12, %rax
jb 0x3ece
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dec(%rip), %rsi     # 0x19cc5
movl $0x7b, %edx
callq 0x22e0
movb $0x0, 0x7b(%r15,%r13)
addq $0x7b, %r13
leaq 0x15e4d(%rip), %rsi     # 0x19d41
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3f6b
leaq 0x7d(%r13), %rax
cmpq %r12, %rax
jb 0x3f4c
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dfa(%rip), %rsi     # 0x19d51
movl $0x7c, %edx
callq 0x22e0
movb $0x0, 0x7c(%r15,%r13)
addq $0x7c, %r13
leaq 0x15e5c(%rip), %rsi     # 0x19dce
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3fe9
leaq 0x60(%r13), %rax
cmpq %r12, %rax
jb 0x3fca
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e08(%rip), %rsi     # 0x19ddd
movl $0x5f, %edx
callq 0x22e0
movb $0x0, 0x5f(%r15,%r13)
addq $0x5f, %r13
leaq 0x15e4d(%rip), %rsi     # 0x19e3d
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4067
leaq 0x7a(%r13), %rax
cmpq %r12, %rax
jb 0x4048
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15df9(%rip), %rsi     # 0x19e4c
movl $0x79, %edx
callq 0x22e0
movb $0x0, 0x79(%r15,%r13)
addq $0x79, %r13
leaq 0x15e58(%rip), %rsi     # 0x19ec6
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x40e5
leaq 0x7f(%r13), %rax
cmpq %r12, %rax
jb 0x40c6
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e04(%rip), %rsi     # 0x19ed5
movl $0x7e, %edx
callq 0x22e0
movb $0x0, 0x7e(%r15,%r13)
addq $0x7e, %r13
leaq 0x15e68(%rip), %rsi     # 0x19f54
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4163
leaq 0x56(%r13), %rax
cmpq %r12, %rax
jb 0x4144
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e14(%rip), %rsi     # 0x19f63
movl $0x55, %edx
callq 0x22e0
movb $0x0, 0x55(%r15,%r13)
addq $0x55, %r13
leaq 0x15e4f(%rip), %rsi     # 0x19fb9
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x41e1
leaq 0x5c(%r13), %rax
cmpq %r12, %rax
jb 0x41c2
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dfc(%rip), %rsi     # 0x19fc9
movl $0x5b, %edx
callq 0x22e0
movb $0x0, 0x5b(%r15,%r13)
addq $0x5b, %r13
leaq 0x15e3d(%rip), %rsi     # 0x1a025
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x425f
leaq 0x77(%r13), %rax
cmpq %r12, %rax
jb 0x4240
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dea(%rip), %rsi     # 0x1a035
movl $0x76, %edx
callq 0x22e0
movb $0x0, 0x76(%r15,%r13)
addq $0x76, %r13
leaq 0x15e46(%rip), %rsi     # 0x1a0ac
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x42dd
leaq 0x77(%r13), %rax
cmpq %r12, %rax
jb 0x42be
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15df3(%rip), %rsi     # 0x1a0bc
movl $0x76, %edx
callq 0x22e0
movb $0x0, 0x76(%r15,%r13)
addq $0x76, %r13
leaq 0x15e4f(%rip), %rsi     # 0x1a133
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x435b
leaq 0x75(%r13), %rax
cmpq %r12, %rax
jb 0x433c
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dfc(%rip), %rsi     # 0x1a143
movl $0x74, %edx
callq 0x22e0
movb $0x0, 0x74(%r15,%r13)
addq $0x74, %r13
leaq 0x15e56(%rip), %rsi     # 0x1a1b8
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x43d9
leaq 0x7a(%r13), %rax
cmpq %r12, %rax
jb 0x43ba
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e03(%rip), %rsi     # 0x1a1c8
movl $0x79, %edx
callq 0x22e0
movb $0x0, 0x79(%r15,%r13)
addq $0x79, %r13
leaq 0x15e62(%rip), %rsi     # 0x1a242
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4457
leaq 0x5c(%r13), %rax
cmpq %r12, %rax
jb 0x4438
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e11(%rip), %rsi     # 0x1a254
movl $0x5b, %edx
callq 0x22e0
movb $0x0, 0x5b(%r15,%r13)
addq $0x5b, %r13
leaq 0x15e52(%rip), %rsi     # 0x1a2b0
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x44de
leaq 0xa0(%r13), %rax
cmpq %r12, %rax
jb 0x44b9
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dfc(%rip), %rsi     # 0x1a2c0
movl $0x9f, %edx
callq 0x22e0
movb $0x0, 0x9f(%r15,%r13)
addq $0x9f, %r13
leaq 0x15e7b(%rip), %rsi     # 0x1a360
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4565
leaq 0x95(%r13), %rax
cmpq %r12, %rax
jb 0x4540
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e27(%rip), %rsi     # 0x1a372
movl $0x94, %edx
callq 0x22e0
movb $0x0, 0x94(%r15,%r13)
addq $0x94, %r13
leaq 0x15e9b(%rip), %rsi     # 0x1a407
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x45e3
leaq 0x4b(%r13), %rax
cmpq %r12, %rax
jb 0x45c4
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e4a(%rip), %rsi     # 0x1a419
movl $0x4a, %edx
callq 0x22e0
movb $0x0, 0x4a(%r15,%r13)
addq $0x4a, %r13
leaq 0x15e7a(%rip), %rsi     # 0x1a464
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4661
leaq 0x5d(%r13), %rax
cmpq %r12, %rax
jb 0x4642
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e26(%rip), %rsi     # 0x1a473
movl $0x5c, %edx
callq 0x22e0
movb $0x0, 0x5c(%r15,%r13)
addq $0x5c, %r13
leaq 0x15e68(%rip), %rsi     # 0x1a4d0
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x46df
leaq 0x51(%r13), %rax
cmpq %r12, %rax
jb 0x46c0
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15e15(%rip), %rsi     # 0x1a4e0
movl $0x50, %edx
callq 0x22e0
movb $0x0, 0x50(%r15,%r13)
addq $0x50, %r13
leaq 0x15e4b(%rip), %rsi     # 0x1a531
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x475d
leaq 0x46(%r13), %rax
cmpq %r12, %rax
jb 0x473e
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15df8(%rip), %rsi     # 0x1a541
movl $0x45, %edx
callq 0x22e0
movb $0x0, 0x45(%r15,%r13)
addq $0x45, %r13
leaq 0x15e23(%rip), %rsi     # 0x1a587
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x47db
leaq 0x6c(%r13), %rax
cmpq %r12, %rax
jb 0x47bc
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dd0(%rip), %rsi     # 0x1a597
movl $0x6b, %edx
callq 0x22e0
movb $0x0, 0x6b(%r15,%r13)
addq $0x6b, %r13
leaq 0x15e21(%rip), %rsi     # 0x1a603
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4862
leaq 0xa5(%r13), %rax
cmpq %r12, %rax
jb 0x483d
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15dcb(%rip), %rsi     # 0x1a613
movl $0xa4, %edx
callq 0x22e0
movb $0x0, 0xa4(%r15,%r13)
addq $0xa4, %r13
leaq 0x15e4f(%rip), %rsi     # 0x1a6b8
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4904
leaq 0x3e(%r13), %rax
cmpq %r12, %rax
jb 0x48c5
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
movups 0x15e2a(%rip), %xmm0    # 0x1a6f6
movups %xmm0, 0x2d(%r15,%r13)
movups 0x15e10(%rip), %xmm0    # 0x1a6e9
movups %xmm0, 0x20(%r15,%r13)
movups 0x15df3(%rip), %xmm0    # 0x1a6d9
movups %xmm0, 0x10(%r15,%r13)
movupd 0x15dd5(%rip), %xmm0    # 0x1a6c9
movupd %xmm0, (%r15,%r13)
movb $0x0, 0x3d(%r15,%r13)
addq $0x3d, %r13
leaq 0x15dfc(%rip), %rsi     # 0x1a707
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4982
leaq 0x47(%r13), %rax
cmpq %r12, %rax
jb 0x4963
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15daa(%rip), %rsi     # 0x1a718
movl $0x46, %edx
callq 0x22e0
movb $0x0, 0x46(%r15,%r13)
addq $0x46, %r13
leaq 0x15dd6(%rip), %rsi     # 0x1a75f
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4a00
leaq 0x65(%r13), %rax
cmpq %r12, %rax
jb 0x49e1
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15d84(%rip), %rsi     # 0x1a770
movl $0x64, %edx
callq 0x22e0
movb $0x0, 0x64(%r15,%r13)
addq $0x64, %r13
leaq 0x15dce(%rip), %rsi     # 0x1a7d5
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4a7e
leaq 0x4b(%r13), %rax
cmpq %r12, %rax
jb 0x4a5f
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15d7c(%rip), %rsi     # 0x1a7e6
movl $0x4a, %edx
callq 0x22e0
movb $0x0, 0x4a(%r15,%r13)
addq $0x4a, %r13
leaq 0x15dac(%rip), %rsi     # 0x1a831
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4afc
leaq 0x59(%r13), %rax
cmpq %r12, %rax
jb 0x4add
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15d5a(%rip), %rsi     # 0x1a842
movl $0x58, %edx
callq 0x22e0
movb $0x0, 0x58(%r15,%r13)
addq $0x58, %r13
leaq 0x15d98(%rip), %rsi     # 0x1a89b
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4b7a
leaq 0x57(%r13), %rax
cmpq %r12, %rax
jb 0x4b5b
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %r12
shrq $0x10, %r12
orq %rax, %r12
incq %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x23d0
movq %rax, %r15
leaq (%r15,%r13), %rdi
leaq 0x15d46(%rip), %rsi     # 0x1a8ac
movl $0x56, %edx
callq 0x22e0
movb $0x0, 0x56(%r15,%r13)
addq $0x56, %r13
leaq 0x15d82(%rip), %rsi     # 0x1a903
movq %r15, %rdi
callq 0x2550
testq %rax, %rax
je 0x4b98
movq 0x98(%rsp), %r12
jmp 0x4c07
leaq 0x60(%r13), %rax
cmpq %r12, %rax
jb 0x4be0
movq %rax, %rcx
shrq %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x2, %rax
orq %rcx, %rax
movq %rax, %rcx
shrq $0x4, %rcx
orq %rax, %rcx
movq %rcx, %rax
shrq $0x8, %rax
orq %rcx, %rax
movq %rax, %rsi
shrq $0x10, %rsi
orq %rax, %rsi
incq %rsi
movq %r15, %rdi
callq 0x23d0
movq %rax, %r15
movq 0x98(%rsp), %r12
leaq (%r15,%r13), %rdi
leaq 0x15d21(%rip), %rsi     # 0x1a914
movl $0x5f, %edx
callq 0x22e0
movb $0x0, 0x5f(%r15,%r13)
addq $0x5f, %r13
movq 0x68(%rsp), %rsi
incl %r13d
movl %r13d, 0x10(%rsi)
movq %r15, 0x28(%rsi)
movq 0x100(%rsp), %rdi
callq 0xd972
movq 0x68(%rsp), %rax
movl 0x20(%rsp), %r13d
movq 0xb0(%rsp), %rsi
movq 0x58(%rsp), %r15
testb $0x8, %r13b
movq %rbx, 0x90(%rsp)
movq %rax, 0x68(%rsp)
jne 0x4c63
movq $0x0, 0x48(%rsp)
movq 0x1b372(%rip), %rbx     # 0x1ffd0
jmp 0x4d0e
movl 0x4(%rax), %edi
callq 0x10326
movq 0xc8(%rsp), %rsi
testq %rsi, %rsi
movq 0x1b353(%rip), %rbx     # 0x1ffd0
movq %rax, 0x48(%rsp)
movq %rax, %rdi
je 0x4c9a
callq 0xfe32
testl %eax, %eax
jns 0x4ca9
callq 0x2667
jmp 0x5a9e
movl 0x14(%rsp), %esi
movsd 0x60(%rsp), %xmm0
callq 0xfcbc
cmpl $0x0, 0x28(%rsp)
jle 0x4cf1
xorpd %xmm0, %xmm0
movapd 0x110(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0x4cf1
movq %rbp, %r14
movq 0x48(%rsp), %rbp
movq %rbp, %rdi
movl 0x28(%rsp), %esi
callq 0x10539
movq %rbp, %rdi
movq %r14, %rbp
movl 0x24(%rsp), %r14d
movl 0x14(%rsp), %esi
movsd 0x60(%rsp), %xmm0
callq 0xfde3
xorpd %xmm1, %xmm1
movsd 0xa0(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x4d0e
movq 0x48(%rsp), %rdi
callq 0xfc74
testb $0x20, %r13b
jne 0x4db1
movl (%rbx), %eax
incl %eax
cmpl %r14d, %eax
jge 0x4db1
movq 0x68(%rsp), %rdi
callq 0xe2ac
movslq (%rbx), %rcx
movq 0x8(%r12,%rcx,8), %rsi
leaq 0x34(%rsp), %rdx
leaq 0x78(%rsp), %rcx
leaq 0xbc(%rsp), %r8
movq %rax, %rdi
callq 0x17693
testl %eax, %eax
js 0x4db1
movslq (%rbx), %rax
movq (%r12,%rax,8), %rdi
callq 0x17486
testq %rax, %rax
je 0x4db1
movq %rax, %rbx
movl 0x34(%rsp), %esi
movl 0x78(%rsp), %edx
movq %rax, %rdi
callq 0x17835
movq %rax, %r15
testq %rax, %rax
je 0x5ab7
movq 0xf0(%rsp), %rax
movq 0x10(%rax), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x8945
movq %rbx, %rdi
callq 0x172b4
testq %r15, %r15
movq 0x58(%rsp), %r15
je 0x5a9e
movl %r13d, %ebx
andl $0x8, %ebx
shll $0xd, %ebx
leaq 0x1b677(%rip), %r14     # 0x20438
cmpq $0x0, (%r14)
movq 0x48(%rsp), %rdi
je 0x4ded
testq %rdi, %rdi
je 0x4ded
callq 0x10535
leaq 0x130(%rsp), %rsi
movl %eax, (%rsi)
movq (%r14), %rdi
movl $0x4, %edx
callq 0x23c0
orl %r13d, %ebx
movl %ebx, 0x14(%rsp)
movl %r13d, %eax
andl $0x10, %eax
movl %eax, 0x24(%rsp)
movl %r13d, %eax
shrb $0x4, %al
xorpd %xmm1, %xmm1
movsd 0xe8(%rsp), %xmm0
ucomisd %xmm1, %xmm0
seta %cl
andb %al, %cl
movb %cl, 0xa0(%rsp)
movsd 0xd0(%rsp), %xmm0
ucomisd %xmm1, %xmm0
setb %al
movq 0x90(%rsp), %rbx
movq %rbx, %rcx
addq $0x4, %rcx
movq %rcx, 0x128(%rsp)
cmpl $0x0, 0x30(%rsp)
setne %cl
cmpl $0x0, 0x28(%rsp)
setg %dl
andb %cl, %dl
movb %dl, 0x2e(%rsp)
movl %r13d, %ecx
andl $0x108, %ecx            # imm = 0x108
cmpl $0x8, %ecx
setne %cl
orb %al, %cl
movb %cl, 0x2f(%rsp)
movl %r13d, %eax
shrl $0xd, %eax
movl %eax, 0x98(%rsp)
movq $0x0, 0x60(%rsp)
movq 0x18(%rsp), %r12
movq 0xf0(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq %rbx, %rdx
callq 0xdabe
testl %eax, %eax
jle 0x5615
movl $0xffffffff, 0x70(%rsp) # imm = 0xFFFFFFFF
movq $-0x1, 0x108(%rsp)
cmpl $0x0, 0x24(%rsp)
je 0x4ede
movq 0x28(%rbx), %rdi
leaq 0x14b8b(%rip), %rsi     # 0x19a5c
callq 0x2270
testl %eax, %eax
je 0x50e5
cmpb $0x0, 0xa0(%rsp)
je 0x4f25
movq %rbx, %rdi
callq 0xeec9
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x5c(%rbx), %xmm1
divsd %xmm1, %xmm0
movsd 0xe8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
movl $0xb, %r14d
movl $0x0, %eax
cmovbel %eax, %r14d
ja 0x510e
testl %ebp, %ebp
je 0x4f3b
movl %ebp, %edi
movq 0xe0(%rsp), %rsi
movq %rbx, %rdx
callq 0xf69f
testw %r13w, %r13w
jns 0x4f49
movq %rbx, %rdi
callq 0xedda
btl $0x13, %r13d
setae %r12b
movq %rbx, %rdi
callq 0xcef4
movl %eax, %r15d
testl %eax, %eax
setne %al
movl $0xb, %r14d
testb %al, 0x98(%rsp)
jne 0x5104
orb %al, %r12b
je 0x5104
testl %r15d, %r15d
setne %al
btl $0x9, %r13d
setae %cl
orb %al, %cl
jne 0x4fbc
movq 0x20(%rbx), %rax
movsbq (%rax), %r13
movl $0xb, %r12d
testq %r13, %r13
je 0x4fad
cmpb $0x0, 0x1(%rax)
je 0x5134
xorl %eax, %eax
movl 0x20(%rsp), %r13d
testb %al, %al
je 0x50ed
movq %rbp, %rbx
movq 0xd8(%rsp), %rbp
testq %rbp, %rbp
je 0x5010
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x90(%rsp), %rdx
movslq (%rdx), %rcx
movq (%rax,%rcx,8), %r12
movl 0x4(%rdx), %r13d
movq 0x20(%rdx), %rdi
callq 0x2180
leal (%rax,%r13), %ecx
movq %rbp, %rdi
movq %r12, %rsi
movl %r13d, %edx
movl 0x20(%rsp), %r13d
callq 0xa784
testl %eax, %eax
je 0x511d
movl 0x34(%rsp), %edx
testl %edx, %edx
movq %rbx, %rbp
movq 0x90(%rsp), %rbx
js 0x506f
xorl %eax, %eax
movl $0xc, %ecx
cmpl %edx, (%rbx)
jne 0x5067
movl 0x4(%rbx), %r12d
cmpl 0xbc(%rsp), %r12d
jge 0x5067
movq 0x20(%rbx), %rdi
callq 0x2180
cmpl $0x2, %eax
movl $0x1, %ecx
cmovll %ecx, %eax
addl %r12d, %eax
cmpl 0x78(%rsp), %eax
setg %al
movl $0xb, %ecx
movl $0x0, %edx
cmovgl %edx, %ecx
testb %al, %al
je 0x5101
testl %r15d, %r15d
setne %al
btl $0x12, %r13d
setae %cl
orb %al, %cl
movq 0x18(%rsp), %r12
jne 0x50a4
movq %rbx, %rdi
callq 0x180ee
testl %eax, %eax
js 0x50a4
movl $0xff, %ecx
cmpl %ecx, %eax
cmovgel %ecx, %eax
incq 0x280(%rsp,%rax,8)
incq 0x60(%rsp)
btl $0xa, %r13d
movq 0x58(%rsp), %r15
jb 0x50f2
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x516b
movq %rbx, %rsi
leaq 0x70(%rsp), %rdx
leaq 0x108(%rsp), %rcx
callq 0x17d8e
movl 0x14(%rsp), %r14d
jmp 0x5183
movl $0xb, %r14d
jmp 0x510e
movl %r12d, %r14d
jmp 0x5104
movq 0x68(%rsp), %rdi
movq %rbx, %rsi
callq 0x18194
jmp 0x510e
movl %ecx, %r14d
movq 0x18(%rsp), %r12
movq 0x58(%rsp), %r15
cmpl $0xc, %r14d
jne 0x4e8e
jmp 0x5615
movq %rbx, %rbp
movq 0x18(%rsp), %r12
movq 0x58(%rsp), %r15
movq 0x90(%rsp), %rbx
jmp 0x510e
callq 0x2030
movq (%rax), %rax
movl (%rax,%r13,4), %ecx
xorl %eax, %eax
addl $-0x41, %ecx
cmpl $0x13, %ecx
ja 0x4faf
movl $0x80045, %edx          # imm = 0x80045
btl %ecx, %edx
movl 0x20(%rsp), %r13d
jae 0x4fb4
xorl %r12d, %r12d
movb $0x1, %al
jmp 0x4fb4
btl $0x11, %r13d
movl 0x14(%rsp), %r14d
jae 0x5183
movq %rbx, %rdi
callq 0x17fff
movl %eax, 0x70(%rsp)
testl $0x11008, %r14d         # imm = 0x11008
je 0x5194
movq %rbx, %rdi
callq 0xebd9
btl $0x10, %r14d
jb 0x51ba
xorl %eax, %eax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, 0x230(%rsp,%rax,8)
incq %rax
cmpq $0x9, %rax
jne 0x51a7
jmp 0x51d3
movq %rbx, %rdi
movl 0x28(%rsp), %esi
movl $0x1ff, %edx            # imm = 0x1FF
leaq 0x230(%rsp), %rcx
callq 0x14f38
cmpb $0x0, 0x2f(%rsp)
je 0x5221
testb $0x8, %r13b
jne 0x5283
btl $0x10, %r14d
jae 0x547f
movl 0x70(%rsp), %r9d
movq 0x108(%rsp), %rax
movq %rax, (%rsp)
xorpd %xmm0, %xmm0
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl 0x14(%rsp), %ecx
leaq 0x230(%rsp), %r8
callq 0x5acf
jmp 0x547f
movl 0x24(%rsp), %r14d
testl %r14d, %r14d
sete 0x74(%rsp)
movq %rbx, %rdi
movq %rbp, 0x50(%rsp)
movq 0x48(%rsp), %rbp
movq %rbp, %rsi
callq 0x10560
movq %rbx, %rdi
movq %rbp, %rsi
movq 0x50(%rsp), %rbp
movsd 0xd0(%rsp), %xmm0
movl %r14d, %edx
callq 0x108b3
cmpl $0x2, %eax
setge %al
orb 0x74(%rsp), %al
movl $0xb, %r14d
movl $0x0, %eax
cmovnel %eax, %r14d
je 0x510e
jmp 0x547f
leaq 0x1b1ae(%rip), %r14     # 0x20438
movq (%r14), %rdi
movq %rbx, %rsi
movl $0x4, %edx
callq 0x23c0
movq (%r14), %rdi
movq 0x128(%rsp), %rsi
movl $0x4, %edx
callq 0x23c0
movq (%r14), %rdi
leaq 0x230(%rsp), %rsi
movl $0x8, %edx
callq 0x23c0
movsd 0x268(%rsp), %xmm0
xorpd %xmm1, %xmm1
cmplepd %xmm0, %xmm1
cmpltpd 0x110(%rsp), %xmm0
andpd %xmm1, %xmm0
movd %xmm0, %esi
andl $0x1, %esi
movq %rbx, %rdi
movq 0x48(%rsp), %r15
movq %r15, %rdx
leaq 0x130(%rsp), %rcx
callq 0x12d13
movl %eax, %r12d
movq 0x60(%rsp), %rax
movabsq $0x5d4e8fb00bcbe61d, %rcx # imm = 0x5D4E8FB00BCBE61D
imulq %rcx, %rax
rorq $0x5, %rax
movabsq $0xa7c5ac471b47, %rcx   # imm = 0xA7C5AC471B47
cmpq %rcx, %rax
jbe 0x55e4
cmpl $0x0, 0x24(%rsp)
sete %al
movsd 0x158(%rsp), %xmm0
ucomisd 0xa8(%rsp), %xmm0
setb %cl
orb %al, %cl
movl $0xb, %r14d
cmpb $0x1, %cl
jne 0x546d
movsd 0xc0(%rsp), %xmm0
ucomisd 0x198(%rsp), %xmm0
seta %al
andb 0x2e(%rsp), %al
cmpb $0x1, %al
jne 0x5426
movb %cl, 0x2d(%rsp)
movl %r12d, 0x74(%rsp)
movq %rbp, 0x50(%rsp)
cmpl $0x0, 0x30(%rsp)
jle 0x53f8
xorl %r13d, %r13d
xorl %r14d, %r14d
movq 0x58(%rsp), %r12
movq 0x120(%rsp), %r15
movq 0x90(%rsp), %rbx
movq 0x48(%rsp), %rbp
movl (%r12,%r13,4), %esi
movq %rbx, %rdi
callq 0xf1db
movq %rbx, %rdi
movl $0x1, %esi
movq %rbp, %rdx
leaq 0x1b0(%rsp), %rcx
callq 0x12d13
movsd 0x198(%rsp), %xmm0
ucomisd 0x218(%rsp), %xmm0
sbbl $-0x1, %r14d
incq %r13
cmpq %r13, %r15
jne 0x53b4
jmp 0x5408
xorl %r14d, %r14d
movq 0x90(%rsp), %rbx
movq 0x48(%rsp), %rbp
movl %r14d, 0x134(%rsp)
movl 0x20(%rsp), %r13d
movq %rbp, %r15
movq 0x50(%rsp), %rbp
movl 0x74(%rsp), %r12d
movb 0x2d(%rsp), %cl
xorl %r14d, %r14d
testl %r12d, %r12d
js 0x546d
movl 0x70(%rsp), %r9d
movq 0x108(%rsp), %rax
movq %rax, (%rsp)
movq %rbx, %rdi
movq %r15, %rsi
leaq 0x130(%rsp), %rdx
movsd 0xa8(%rsp), %xmm0
movl %ecx, %r15d
movl 0x14(%rsp), %ecx
leaq 0x230(%rsp), %r8
callq 0x5acf
movl %r15d, %ecx
testb %cl, %cl
movq 0x18(%rsp), %r12
movq 0x58(%rsp), %r15
je 0x510e
btl $0xc, %r13d
leaq 0x1b0(%rsp), %r14
jae 0x558f
movq 0xf8(%rsp), %rdi
movq %rbx, %rsi
leaq 0x130(%rsp), %rdx
callq 0x1586e
ucomisd 0x13b6e(%rip), %xmm0    # 0x19020
jb 0x557f
movapd %xmm0, %xmm5
xorpd %xmm0, %xmm0
movapd %xmm0, 0x1b0(%rsp)
movq $0x0, 0x1c0(%rsp)
movq 0x38(%rbx), %rax
cmpb $0x0, (%rax)
je 0x5522
movq $0x2, 0x1b8(%rsp)
movl $0x2, %edi
movsd %xmm5, 0x50(%rsp)
callq 0x2360
movsd 0x50(%rsp), %xmm5
movq %rax, 0x1c0(%rsp)
movq 0x1b0(%rsp), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x1b0(%rsp)
movw $0x3b, (%rax,%rcx)
movsd 0x130(%rsp), %xmm1
movsd 0x138(%rsp), %xmm2
movsd 0x140(%rsp), %xmm3
movsd 0x148(%rsp), %xmm4
movq %r14, %rdi
leaq 0x14529(%rip), %rsi     # 0x19a79
movapd %xmm5, %xmm0
movb $0x5, %al
callq 0x7328
movq 0x1c0(%rsp), %rsi
movl 0x1b0(%rsp), %edx
movq %rbx, %rdi
callq 0xcbe0
movq 0x1c0(%rsp), %rdi
callq 0x2060
movq 0xf8(%rsp), %rdi
movq %rbx, %rsi
callq 0xce3a
btl $0xe, %r13d
jae 0x559e
movq %rbx, %rdi
callq 0xef72
testb $0x2, %r13b
jne 0x55ae
movq %rbx, %rdi
callq 0xecde
jmp 0x55c7
movl $0x0, 0x48(%rbx)
movq 0x40(%rbx), %rax
movb $0x0, (%rax)
movl 0x40(%rbx), %eax
subl 0x18(%rbx), %eax
incl %eax
movl %eax, 0x8(%rbx)
movq 0x68(%rsp), %rsi
movq 0x100(%rsp), %rdi
movq %rbx, %rdx
callq 0xda73
xorl %r14d, %r14d
jmp 0x510e
movq 0x1aa0d(%rip), %rax     # 0x1fff8
movq (%rax), %rdi
leaq 0x14469(%rip), %rsi     # 0x19a5e
leaq 0x13c48(%rip), %rdx     # 0x19244
movq 0x60(%rsp), %rcx
xorl %eax, %eax
callq 0x2290
movq %r15, %rdi
callq 0x2998
jmp 0x5330
leaq 0x1ae1c(%rip), %rax     # 0x20438
movq (%rax), %rdi
testq %rdi, %rdi
je 0x5629
callq 0x2050
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x563b
callq 0x2060
testb $0x8, %r13b
je 0x564b
movq 0x48(%rsp), %rdi
callq 0x2998
movq 0x68(%rsp), %rdi
cmpq %rdi, 0x38(%rsp)
je 0x565c
callq 0xb73e
movq 0x38(%rsp), %rdi
callq 0xb73e
movq %rbx, %rdi
callq 0xbc91
movq 0xf8(%rsp), %rdi
callq 0xbc91
movq 0xf0(%rsp), %rdi
callq 0xd8e9
movq 0x100(%rsp), %rdi
callq 0xd8e9
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x56a7
callq 0x2060
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0x56b9
callq 0x2060
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x56cb
callq 0x2060
testl %ebp, %ebp
je 0x56fc
jle 0x56e7
movl %ebp, %ebx
xorl %r14d, %r14d
movq (%r12,%r14,8), %rdi
callq 0x2060
incq %r14
cmpq %r14, %rbx
jne 0x56d6
movq %r12, %rdi
callq 0x2060
movq 0xe0(%rsp), %rdi
callq 0x2060
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x570e
callq 0xb04f
btl $0x12, %r13d
movq 0x48(%rsp), %r14
jb 0x5a87
testq %r15, %r15
je 0x572b
movq %r15, %rdi
callq 0x2060
xorl %ebx, %ebx
testq %r14, %r14
je 0x5aa3
movq %r14, %rdi
callq 0x10569
jmp 0x5aa3
movq 0x1a8ae(%rip), %rbx     # 0x1fff8
movq (%rbx), %rsi
movl $0xa, %edi
callq 0x2220
movq (%rbx), %rcx
leaq 0x13afb(%rip), %rdi     # 0x1925c
movl $0x2f, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13b12(%rip), %rdi     # 0x1928c
movl $0x17, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13b11(%rip), %rdi     # 0x192a4
movl $0x46, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13b3f(%rip), %rdi     # 0x192eb
movl $0x2b, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13b52(%rip), %rdi     # 0x19317
movl $0x44, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13b7e(%rip), %rdi     # 0x1935c
movl $0x4e, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13bb4(%rip), %rdi     # 0x193ab
movl $0x3e, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13bda(%rip), %rdi     # 0x193ea
movl $0x50, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13c12(%rip), %rdi     # 0x1943b
movl $0x31, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13c2b(%rip), %rdi     # 0x1946d
movl $0x35, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13c48(%rip), %rdi     # 0x194a3
movl $0x34, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13c64(%rip), %rdi     # 0x194d8
movl $0x36, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13c82(%rip), %rdi     # 0x1950f
movl $0x1e, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13c88(%rip), %rdi     # 0x1952e
movl $0x34, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13ca4(%rip), %rdi     # 0x19563
movl $0x25, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13cb1(%rip), %rdi     # 0x19589
movl $0x28, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13cc1(%rip), %rdi     # 0x195b2
movl $0x51, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13cfa(%rip), %rdi     # 0x19604
movl $0x2b, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13d0d(%rip), %rdi     # 0x19630
movl $0x3c, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13d31(%rip), %rsi     # 0x1966d
movsd 0xa0(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x13d4c(%rip), %rdi     # 0x196a2
movl $0x1d, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13d51(%rip), %rdi     # 0x196c0
movl $0x69, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13da2(%rip), %rsi     # 0x1972a
movsd 0xa8(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x13dbb(%rip), %rdi     # 0x1975d
movl $0x39, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13ddc(%rip), %rsi     # 0x19797
movsd 0x60(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x13e00(%rip), %rdi     # 0x197d2
movl $0x68, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e50(%rip), %rdi     # 0x1983b
movl $0x40, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e78(%rip), %rdi     # 0x1987c
movl $0x31, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e91(%rip), %rdi     # 0x198ae
movl $0x2f, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13ea8(%rip), %rsi     # 0x198de
movaps 0x110(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x13ed9(%rip), %rdi     # 0x19928
movl $0x58, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13f19(%rip), %rsi     # 0x19981
movsd 0xc0(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rsi
movl $0xa, %edi
callq 0x2220
jmp 0x5a9e
leaq 0x280(%rsp), %rdi
callq 0x26b1
jmp 0x571e
callq 0x2642
movl $0x1, %ebx
movl %ebx, %eax
addq $0xa88, %rsp            # imm = 0xA88
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x268c
jmp 0x4da3
callq 0x261a
jmp 0x5a9e
callq 0x25d0
jmp 0x5a9e