// File: /workspace/github_c_makefile_star2_O3/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 $0xa98, %rsp            # imm = 0xA98
movq %rsi, %r12
movl %edi, %r13d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, 0xbc(%rsp)
movl %eax, 0x70(%rsp)
movl %eax, 0x2c(%rsp)
leaq 0x290(%rsp), %rdi
xorl %ebp, %ebp
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x21f0
leaq 0x16014(%rip), %rdx     # 0x191fd
movl %r13d, %edi
movq %r12, %rsi
callq 0x2460
testl %eax, %eax
movl %r13d, 0x58(%rsp)
movq %r12, 0x120(%rsp)
js 0x3938
movl $0xffffffff, 0x18(%rsp) # imm = 0xFFFFFFFF
xorl %r14d, %r14d
movsd 0x15e84(%rip), %xmm0    # 0x190a0
movsd %xmm0, 0x30(%rsp)
movsd 0x15e56(%rip), %xmm0    # 0x19080
movsd %xmm0, 0x90(%rsp)
movsd 0x15e55(%rip), %xmm0    # 0x19090
movsd %xmm0, 0xc0(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd 0x15e20(%rip), %xmm0    # 0x19078
movaps %xmm0, 0x110(%rsp)
movsd 0x15e30(%rip), %xmm0    # 0x19098
leaq 0x15f8e(%rip), %r15     # 0x191fd
movsd %xmm0, 0xd0(%rsp)
movsd %xmm0, 0x68(%rsp)
movq $0x0, 0xd8(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x20(%rsp)
movq $0x0, 0xc8(%rsp)
movq $0x0, 0x80(%rsp)
xorl %ebx, %ebx
movq $0x0, 0x78(%rsp)
xorl %ebp, %ebp
movl $0xffffffff, 0x48(%rsp) # imm = 0xFFFFFFFF
addl $-0x31, %eax
cmpl $0x46, %eax
ja 0x38f4
leaq 0x15df9(%rip), %rcx     # 0x190d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x1cce9(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2470
movl %eax, 0x18(%rsp)
jmp 0x38f4
orl $0x4, %ebx
jmp 0x38f4
orl $0x10000, %ebx          # imm = 0x10000
jmp 0x38f4
orl $0x20, %ebx
jmp 0x38f4
movq 0x1ccb6(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xd0(%rsp)
jmp 0x38f4
movq 0x1cc99(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0x68(%rsp)
jmp 0x38f4
orl $0x200, %ebx            # imm = 0x200
jmp 0x38f4
movq 0x1cc74(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0x30(%rsp)
jmp 0x38f4
orl $0x808, %ebx            # imm = 0x808
jmp 0x38f4
orl $0x400, %ebx            # imm = 0x400
jmp 0x38f4
orl $0x8, %ebx
jmp 0x38f4
movq 0x1cc3c(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movapd %xmm0, 0x110(%rsp)
jmp 0x38f4
orl $0x44, %ebx
jmp 0x38f4
orl $0x80000, %ebx          # imm = 0x80000
jmp 0x38f4
orl $0x2, %ebx
jmp 0x38f4
movq 0x1cc04(%rip), %rax     # 0x1ffd8
movq (%rax), %r15
leaq 0x15ec6(%rip), %rsi     # 0x192a4
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x3766
leaq 0x15eb4(%rip), %rsi     # 0x192a9
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x3826
leaq 0x15ea3(%rip), %rsi     # 0x192af
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x390f
movq %r15, %rdi
callq 0x2510
movq %rax, 0xc8(%rsp)
jmp 0x38ed
movq 0x1cba0(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0xa9a5
movq %rax, %r14
testq %rax, %rax
jne 0x38f4
jmp 0x59fe
orl $0x100, %ebx            # imm = 0x100
jmp 0x38f4
orl $0x2000, %ebx           # imm = 0x2000
jmp 0x38f4
movq 0x1cb6a(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
leaq 0x15e2a(%rip), %rsi     # 0x192a2
callq 0x22c0
leaq 0x1cfb4(%rip), %rcx     # 0x20438
movq %rax, (%rcx)
jmp 0x38f4
movq 0x1cb45(%rip), %rax     # 0x1ffd8
movq (%rax), %r15
leaq 0x15da6(%rip), %rsi     # 0x19243
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x3773
leaq 0x15d98(%rip), %rsi     # 0x1924c
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x3833
leaq 0x15d88(%rip), %rsi     # 0x19253
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
je 0x3919
leaq 0x17627(%rip), %rsi     # 0x1ab09
movq %r15, %rdi
callq 0x2270
testl %eax, %eax
jne 0x5a05
orl $0x20000, %ebx          # imm = 0x20000
jmp 0x38ed
movq 0x1cad4(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2470
movq %rax, 0x78(%rsp)
jmp 0x38f4
orl $0x18, %ebx
jmp 0x38f4
movq 0x1cab3(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2510
movq %rax, 0x88(%rsp)
jmp 0x38f4
orl $0x8000, %ebx           # imm = 0x8000
jmp 0x38f4
orl $0x4000, %ebx           # imm = 0x4000
jmp 0x38f4
orl $0x1000, %ebx           # imm = 0x1000
jmp 0x38f4
orl $0x40000, %ebx          # imm = 0x40000
jmp 0x38f4
movq 0x1ca6b(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xc0(%rsp)
jmp 0x38f4
movq 0x1ca4e(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0xe8(%rsp)
jmp 0x38f4
movq 0x1ca31(%rip), %rax     # 0x1ffd8
movq (%rax), %r15
xorpd %xmm0, %xmm0
movapd %xmm0, 0x140(%rsp)
movq $0x0, 0x150(%rsp)
leaq 0x17542(%rip), %rsi     # 0x1ab0c
movq %r15, %rdi
callq 0x22c0
testq %rax, %rax
movl %ebx, 0x40(%rsp)
movq %r14, 0x60(%rsp)
je 0x377a
movq %rax, %r13
movl $0x1, %edi
movl $0x20, %esi
callq 0x2260
movq %rax, %r12
movq %r13, 0x18(%rax)
movl $0x4000, %edi           # imm = 0x4000
callq 0x2360
movq %rax, (%r12)
xorl %ebp, %ebp
leaq 0x140(%rsp), %rdx
leaq 0x1c0(%rsp), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x6722
testl %eax, %eax
js 0x384c
xorl %ebp, %ebp
movq $0x0, 0x20(%rsp)
xorl %r14d, %r14d
movl %r14d, %eax
cmpq %rax, %rbp
jne 0x366c
leal (%r14,%r14), %eax
testl %r14d, %r14d
movl $0x4, %r14d
cmovnel %eax, %r14d
movslq %r14d, %rsi
shlq $0x3, %rsi
movq 0x20(%rsp), %rdi
callq 0x23d0
movq %rax, %r15
jmp 0x3671
movq 0x20(%rsp), %r15
movq 0x140(%rsp), %rbx
leaq 0x2(%rbx), %rdi
callq 0x2360
movq %rax, (%r15,%rbp,8)
movq 0x150(%rsp), %rsi
movq %rax, %rdi
callq 0x20a0
movq %r15, 0x20(%rsp)
movq (%r15,%rbp,8), %rax
incl %ebx
movslq %ebx, %rbx
movb $0x2, (%rax,%rbx)
cmpl $0xa, 0x1c0(%rsp)
je 0x3718
leaq 0x140(%rsp), %rdx
leaq 0x1c0(%rsp), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x6722
testl %eax, %eax
js 0x36f1
movq 0x150(%rsp), %rax
movsbl (%rax), %eax
leal -0x31(%rax), %ecx
cmpl $0x1, %ecx
ja 0x3742
addb $-0x30, %al
movq 0x20(%rsp), %rcx
movq (%rcx,%rbp,8), %rcx
movb %al, (%rcx,%rbx)
cmpl $0xa, 0x1c0(%rsp)
je 0x3718
leaq 0x140(%rsp), %rdx
leaq 0x1c0(%rsp), %rcx
movq %r12, %rdi
movl $0xa, %esi
callq 0x6722
incq %rbp
leaq 0x140(%rsp), %rdx
leaq 0x1c0(%rsp), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x6722
testl %eax, %eax
jns 0x363d
jmp 0x3855
callq 0x25f5
jmp 0x36f1
movq 0x1c888(%rip), %rax     # 0x1ffd8
movq (%rax), %rdi
callq 0x2110
movsd %xmm0, 0x90(%rsp)
jmp 0x38f4
movl $0x1, 0x48(%rsp)
jmp 0x38ed
xorl %edi, %edi
jmp 0x3838
cmpb $0x0, (%r15)
je 0x3928
leaq 0x2(%r15), %r14
leaq 0x1(%r15), %rbx
xorl %ebp, %ebp
movq $0x0, 0x20(%rsp)
movzbl -0x1(%r14), %eax
cmpl $0x2c, %eax
je 0x37a5
testl %eax, %eax
jne 0x3816
movslq %ebp, %rax
movq %rax, 0x38(%rsp)
incl %ebp
movq %rbp, 0xb0(%rsp)
leaq 0x8(,%rax,8), %rsi
movq 0x20(%rsp), %rdi
callq 0x23d0
movq %rax, %r12
movq %r15, %r13
movq %rbx, %r15
subq %r13, %r15
leaq 0x2(%r15), %rdi
callq 0x2360
movq %rax, %rbp
movq %r12, 0x20(%rsp)
movq 0x38(%rsp), %rax
movq %rbp, (%r12,%rax,8)
movq %rbp, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x22e0
subq %r13, %rbp
movw $0x200, (%rbp,%rbx)     # imm = 0x200
movq 0xb0(%rsp), %rbp
movb -0x1(%r14), %al
movq %r14, %r15
incq %r14
incq %rbx
testb %al, %al
jne 0x3797
jmp 0x387b
movl $0x2, 0x48(%rsp)
jmp 0x38ed
movl $0x1, %edi
xorl %esi, %esi
callq 0x17f7c
movq %rax, 0x80(%rsp)
jmp 0x38ed
movq $0x0, 0x20(%rsp)
movq (%r12), %rdi
callq 0x2060
movq %r12, %rdi
callq 0x2060
movq %r13, %rdi
callq 0x2050
movq 0x150(%rsp), %rdi
callq 0x2060
leal 0x1(%rbp), %eax
movslq %eax, %rdi
movl $0x1, %esi
callq 0x2260
movq %rax, %r13
movl $0x0, 0x2c(%rsp)
testl %ebp, %ebp
movq 0x20(%rsp), %r12
jle 0x38c7
movl %ebp, %ebx
xorl %r14d, %r14d
movq (%r12,%r14,8), %r15
movq %r15, %rdi
callq 0x2180
movb 0x1(%r15,%rax), %al
movb %al, (%r13,%r14)
incq %r14
movl %r14d, 0x2c(%rsp)
cmpq %r14, %rbx
jne 0x38a4
movq %r13, 0xd8(%rsp)
movl $0xffffffff, 0x2c(%rsp) # imm = 0xFFFFFFFF
movq 0x60(%rsp), %r14
movq 0x120(%rsp), %r12
movl 0x58(%rsp), %r13d
movl 0x40(%rsp), %ebx
leaq 0x15909(%rip), %r15     # 0x191fd
movl %r13d, %edi
movq %r12, %rsi
movq %r15, %rdx
callq 0x2460
testl %eax, %eax
jns 0x32cc
jmp 0x39f2
movl $0x3, 0x48(%rsp)
jmp 0x38ed
movl $0x1, %edi
movl $0x1, %esi
jmp 0x383a
xorl %ebp, %ebp
movq $0x0, 0x20(%rsp)
jmp 0x387b
movl $0xffffffff, 0x48(%rsp) # imm = 0xFFFFFFFF
movsd 0x15730(%rip), %xmm0    # 0x19078
movaps %xmm0, 0x110(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd 0x1572c(%rip), %xmm0    # 0x19090
movsd %xmm0, 0xc0(%rsp)
movsd 0x15723(%rip), %xmm1    # 0x19098
movsd 0x15703(%rip), %xmm0    # 0x19080
movsd %xmm0, 0x90(%rsp)
movsd 0x15712(%rip), %xmm0    # 0x190a0
movsd %xmm0, 0x30(%rsp)
movl $0xffffffff, 0x18(%rsp) # imm = 0xFFFFFFFF
movq $0x0, 0x78(%rsp)
xorl %ebx, %ebx
movq $0x0, 0x80(%rsp)
movq $0x0, 0xc8(%rsp)
movq $0x0, 0x20(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0xd8(%rsp)
movsd %xmm1, 0x68(%rsp)
movsd %xmm1, 0xd0(%rsp)
xorl %r14d, %r14d
movq 0x1c5d7(%rip), %rax     # 0x1ffd0
cmpl %r13d, (%rax)
je 0x5546
testb $0x20, %bl
je 0x3a23
movl %ebx, %eax
shrb $0x2, %al
cmpq $0x0, 0x88(%rsp)
sete %cl
andb %al, %cl
cmpb $0x1, %cl
je 0x59eb
cmpl $0x0, 0x18(%rsp)
movq %r14, 0x60(%rsp)
movq %rbp, 0xb0(%rsp)
jle 0x3a8b
movq 0x78(%rsp), %rax
testl %eax, %eax
jle 0x3a94
movl %ebx, %r15d
movl %eax, %ebx
leaq (,%rbx,4), %rdi
callq 0x2360
movq %rax, %rbp
xorl %r14d, %r14d
xorl %edi, %edi
callq 0x2300
movq %rax, %rdi
callq 0x23e0
callq 0x23a0
movl %eax, (%rbp,%r14,4)
incq %r14
cmpq %r14, %rbx
jne 0x3a67
movq %rbp, 0xe0(%rsp)
movq 0x60(%rsp), %r14
movl %r15d, %ebx
jmp 0x3aa0
movq $0x0, 0x78(%rsp)
movq $0x0, 0xe0(%rsp)
movl $0x1, %edi
movl $0x68, %esi
callq 0x2260
movq %rax, %r15
movl $0x1, %edi
movl $0x68, %esi
callq 0x2260
movq %rax, 0xf8(%rsp)
movw $0x72, 0x74(%rsp)
testb $0x20, %bl
jne 0x3ae6
leaq 0x74(%rsp), %rdi
callq 0x2180
movw $0x62, 0x74(%rsp,%rax)
movw $0x77, 0x44(%rsp)
testb $0x4, %bl
je 0x3b03
leaq 0x44(%rsp), %rdi
callq 0x2180
movw $0x62, 0x44(%rsp,%rax)
movq %r15, 0x10(%rsp)
testb $0x40, %bl
je 0x3b1e
leaq 0x44(%rsp), %rdi
callq 0x2180
movw $0x75, 0x44(%rsp,%rax)
movl %ebx, %ebp
testb $0x20, %bl
sete %bl
movq 0x1c4a3(%rip), %rax     # 0x1ffd0
movslq (%rax), %rax
movq (%r12,%rax,8), %rdi
leaq 0x74(%rsp), %rsi
callq 0xd736
movq %rax, 0xa8(%rsp)
movq %rax, %rdi
callq 0xd0dc
movq %rax, 0x38(%rsp)
cmpq $0x0, 0x88(%rsp)
sete %al
orb %bl, %al
jne 0x3b7d
movq 0xa8(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x88(%rsp), %rdx
callq 0xd876
leaq 0x15ee6(%rip), %rdi     # 0x19a6a
leaq 0x44(%rsp), %rsi
callq 0xd736
movq %rax, 0x100(%rsp)
btl $0xa, %ebp
jb 0x3bdb
xorl %ebx, %ebx
movq 0xb0(%rsp), %r12
testl %r12d, %r12d
movl %ebp, 0x40(%rsp)
je 0x3bf8
movslq %r12d, %rdi
movl $0x4, %esi
callq 0x2260
movq 0x38(%rsp), %rdi
movl %r12d, %esi
movq 0x20(%rsp), %rdx
movq %rax, %rcx
movq %rax, 0xa0(%rsp)
callq 0xf5a7
jmp 0x3c09
movl %ebp, %ebx
movq $0x0, 0xa0(%rsp)
movq 0x38(%rsp), %rax
movq 0x10(%rsp), %rbp
jmp 0x4be0
movq $0x0, 0xa0(%rsp)
movq 0x38(%rsp), %rax
movl 0x10(%rax), %ecx
subl $0x1, %ecx
cmovbl %ebx, %ecx
movslq %ecx, %r13
leaq 0x1(%r13), %rbx
movq %rax, %r14
movq 0x28(%rax), %r12
leaq 0x15f15(%rip), %rsi     # 0x19b3c
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
movq 0x10(%rsp), %rbp
jne 0x3ca3
leaq 0x43(%r13), %rax
cmpq %rbx, %rax
jb 0x3c84
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ebc(%rip), %rsi     # 0x19b4b
movl $0x42, %edx
callq 0x22e0
movb $0x0, 0x42(%r12,%r13)
addq $0x42, %r13
leaq 0x15ee4(%rip), %rsi     # 0x19b8e
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3d2a
leaq 0x86(%r13), %rax
cmpq %rbx, %rax
jb 0x3d05
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e8e(%rip), %rsi     # 0x19b9e
movl $0x85, %edx
callq 0x22e0
movb $0x0, 0x85(%r12,%r13)
addq $0x85, %r13
leaq 0x15ef3(%rip), %rsi     # 0x19c24
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3da8
leaq 0x67(%r13), %rax
cmpq %rbx, %rax
jb 0x3d89
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e9f(%rip), %rsi     # 0x19c33
movl $0x66, %edx
callq 0x22e0
movb $0x0, 0x66(%r12,%r13)
addq $0x66, %r13
leaq 0x15eeb(%rip), %rsi     # 0x19c9a
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3e26
leaq 0x62(%r13), %rax
cmpq %rbx, %rax
jb 0x3e07
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e97(%rip), %rsi     # 0x19ca9
movl $0x61, %edx
callq 0x22e0
movb $0x0, 0x61(%r12,%r13)
addq $0x61, %r13
leaq 0x15ede(%rip), %rsi     # 0x19d0b
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3ea4
leaq 0x7c(%r13), %rax
cmpq %rbx, %rax
jb 0x3e85
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e8b(%rip), %rsi     # 0x19d1b
movl $0x7b, %edx
callq 0x22e0
movb $0x0, 0x7b(%r12,%r13)
addq $0x7b, %r13
leaq 0x15eec(%rip), %rsi     # 0x19d97
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3f22
leaq 0x7d(%r13), %rax
cmpq %rbx, %rax
jb 0x3f03
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e99(%rip), %rsi     # 0x19da7
movl $0x7c, %edx
callq 0x22e0
movb $0x0, 0x7c(%r12,%r13)
addq $0x7c, %r13
leaq 0x15efb(%rip), %rsi     # 0x19e24
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x3fa0
leaq 0x60(%r13), %rax
cmpq %rbx, %rax
jb 0x3f81
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ea7(%rip), %rsi     # 0x19e33
movl $0x5f, %edx
callq 0x22e0
movb $0x0, 0x5f(%r12,%r13)
addq $0x5f, %r13
leaq 0x15eec(%rip), %rsi     # 0x19e93
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x401e
leaq 0x7a(%r13), %rax
cmpq %rbx, %rax
jb 0x3fff
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e98(%rip), %rsi     # 0x19ea2
movl $0x79, %edx
callq 0x22e0
movb $0x0, 0x79(%r12,%r13)
addq $0x79, %r13
leaq 0x15ef7(%rip), %rsi     # 0x19f1c
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x409c
leaq 0x7f(%r13), %rax
cmpq %rbx, %rax
jb 0x407d
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ea3(%rip), %rsi     # 0x19f2b
movl $0x7e, %edx
callq 0x22e0
movb $0x0, 0x7e(%r12,%r13)
addq $0x7e, %r13
leaq 0x15f07(%rip), %rsi     # 0x19faa
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x411a
leaq 0x56(%r13), %rax
cmpq %rbx, %rax
jb 0x40fb
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15eb3(%rip), %rsi     # 0x19fb9
movl $0x55, %edx
callq 0x22e0
movb $0x0, 0x55(%r12,%r13)
addq $0x55, %r13
leaq 0x15eee(%rip), %rsi     # 0x1a00f
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4198
leaq 0x5c(%r13), %rax
cmpq %rbx, %rax
jb 0x4179
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e9b(%rip), %rsi     # 0x1a01f
movl $0x5b, %edx
callq 0x22e0
movb $0x0, 0x5b(%r12,%r13)
addq $0x5b, %r13
leaq 0x15edc(%rip), %rsi     # 0x1a07b
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4216
leaq 0x77(%r13), %rax
cmpq %rbx, %rax
jb 0x41f7
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e89(%rip), %rsi     # 0x1a08b
movl $0x76, %edx
callq 0x22e0
movb $0x0, 0x76(%r12,%r13)
addq $0x76, %r13
leaq 0x15ee5(%rip), %rsi     # 0x1a102
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4294
leaq 0x77(%r13), %rax
cmpq %rbx, %rax
jb 0x4275
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e92(%rip), %rsi     # 0x1a112
movl $0x76, %edx
callq 0x22e0
movb $0x0, 0x76(%r12,%r13)
addq $0x76, %r13
leaq 0x15eee(%rip), %rsi     # 0x1a189
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4312
leaq 0x75(%r13), %rax
cmpq %rbx, %rax
jb 0x42f3
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e9b(%rip), %rsi     # 0x1a199
movl $0x74, %edx
callq 0x22e0
movb $0x0, 0x74(%r12,%r13)
addq $0x74, %r13
leaq 0x15ef5(%rip), %rsi     # 0x1a20e
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4390
leaq 0x7a(%r13), %rax
cmpq %rbx, %rax
jb 0x4371
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ea2(%rip), %rsi     # 0x1a21e
movl $0x79, %edx
callq 0x22e0
movb $0x0, 0x79(%r12,%r13)
addq $0x79, %r13
leaq 0x15f01(%rip), %rsi     # 0x1a298
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x440e
leaq 0x5c(%r13), %rax
cmpq %rbx, %rax
jb 0x43ef
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15eb0(%rip), %rsi     # 0x1a2aa
movl $0x5b, %edx
callq 0x22e0
movb $0x0, 0x5b(%r12,%r13)
addq $0x5b, %r13
leaq 0x15ef1(%rip), %rsi     # 0x1a306
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4495
leaq 0xa0(%r13), %rax
cmpq %rbx, %rax
jb 0x4470
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e9b(%rip), %rsi     # 0x1a316
movl $0x9f, %edx
callq 0x22e0
movb $0x0, 0x9f(%r12,%r13)
addq $0x9f, %r13
leaq 0x15f1a(%rip), %rsi     # 0x1a3b6
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x451c
leaq 0x95(%r13), %rax
cmpq %rbx, %rax
jb 0x44f7
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ec6(%rip), %rsi     # 0x1a3c8
movl $0x94, %edx
callq 0x22e0
movb $0x0, 0x94(%r12,%r13)
addq $0x94, %r13
leaq 0x15f3a(%rip), %rsi     # 0x1a45d
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x459a
leaq 0x4b(%r13), %rax
cmpq %rbx, %rax
jb 0x457b
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ee9(%rip), %rsi     # 0x1a46f
movl $0x4a, %edx
callq 0x22e0
movb $0x0, 0x4a(%r12,%r13)
addq $0x4a, %r13
leaq 0x15f19(%rip), %rsi     # 0x1a4ba
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4618
leaq 0x5d(%r13), %rax
cmpq %rbx, %rax
jb 0x45f9
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15ec5(%rip), %rsi     # 0x1a4c9
movl $0x5c, %edx
callq 0x22e0
movb $0x0, 0x5c(%r12,%r13)
addq $0x5c, %r13
leaq 0x15f07(%rip), %rsi     # 0x1a526
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4696
leaq 0x51(%r13), %rax
cmpq %rbx, %rax
jb 0x4677
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15eb4(%rip), %rsi     # 0x1a536
movl $0x50, %edx
callq 0x22e0
movb $0x0, 0x50(%r12,%r13)
addq $0x50, %r13
leaq 0x15eea(%rip), %rsi     # 0x1a587
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4714
leaq 0x46(%r13), %rax
cmpq %rbx, %rax
jb 0x46f5
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e97(%rip), %rsi     # 0x1a597
movl $0x45, %edx
callq 0x22e0
movb $0x0, 0x45(%r12,%r13)
addq $0x45, %r13
leaq 0x15ec2(%rip), %rsi     # 0x1a5dd
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4792
leaq 0x6c(%r13), %rax
cmpq %rbx, %rax
jb 0x4773
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e6f(%rip), %rsi     # 0x1a5ed
movl $0x6b, %edx
callq 0x22e0
movb $0x0, 0x6b(%r12,%r13)
addq $0x6b, %r13
leaq 0x15ec0(%rip), %rsi     # 0x1a659
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4819
leaq 0xa5(%r13), %rax
cmpq %rbx, %rax
jb 0x47f4
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e6a(%rip), %rsi     # 0x1a669
movl $0xa4, %edx
callq 0x22e0
movb $0x0, 0xa4(%r12,%r13)
addq $0xa4, %r13
leaq 0x15eee(%rip), %rsi     # 0x1a70e
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x48bb
leaq 0x3e(%r13), %rax
cmpq %rbx, %rax
jb 0x487c
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
movups 0x15ec9(%rip), %xmm0    # 0x1a74c
movups %xmm0, 0x2d(%r12,%r13)
movups 0x15eaf(%rip), %xmm0    # 0x1a73f
movups %xmm0, 0x20(%r12,%r13)
movups 0x15e92(%rip), %xmm0    # 0x1a72f
movups %xmm0, 0x10(%r12,%r13)
movupd 0x15e74(%rip), %xmm0    # 0x1a71f
movupd %xmm0, (%r12,%r13)
movb $0x0, 0x3d(%r12,%r13)
addq $0x3d, %r13
leaq 0x15e9b(%rip), %rsi     # 0x1a75d
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4939
leaq 0x47(%r13), %rax
cmpq %rbx, %rax
jb 0x491a
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e49(%rip), %rsi     # 0x1a76e
movl $0x46, %edx
callq 0x22e0
movb $0x0, 0x46(%r12,%r13)
addq $0x46, %r13
leaq 0x15e75(%rip), %rsi     # 0x1a7b5
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x49b7
leaq 0x65(%r13), %rax
cmpq %rbx, %rax
jb 0x4998
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e23(%rip), %rsi     # 0x1a7c6
movl $0x64, %edx
callq 0x22e0
movb $0x0, 0x64(%r12,%r13)
addq $0x64, %r13
leaq 0x15e6d(%rip), %rsi     # 0x1a82b
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4a35
leaq 0x4b(%r13), %rax
cmpq %rbx, %rax
jb 0x4a16
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15e1b(%rip), %rsi     # 0x1a83c
movl $0x4a, %edx
callq 0x22e0
movb $0x0, 0x4a(%r12,%r13)
addq $0x4a, %r13
leaq 0x15e4b(%rip), %rsi     # 0x1a887
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4ab3
leaq 0x59(%r13), %rax
cmpq %rbx, %rax
jb 0x4a94
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15df9(%rip), %rsi     # 0x1a898
movl $0x58, %edx
callq 0x22e0
movb $0x0, 0x58(%r12,%r13)
addq $0x58, %r13
leaq 0x15e37(%rip), %rsi     # 0x1a8f1
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4b31
leaq 0x57(%r13), %rax
cmpq %rbx, %rax
jb 0x4b12
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, %rbx
shrq $0x10, %rbx
orq %rax, %rbx
incq %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15de5(%rip), %rsi     # 0x1a902
movl $0x56, %edx
callq 0x22e0
movb $0x0, 0x56(%r12,%r13)
addq $0x56, %r13
leaq 0x15e21(%rip), %rsi     # 0x1a959
movq %r12, %rdi
callq 0x2550
testq %rax, %rax
jne 0x4bac
leaq 0x60(%r13), %rax
cmpq %rbx, %rax
jb 0x4b8d
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 %r12, %rdi
callq 0x23d0
movq %rax, %r12
leaq (%r12,%r13), %rdi
leaq 0x15dd2(%rip), %rsi     # 0x1a96a
movl $0x5f, %edx
callq 0x22e0
movb $0x0, 0x5f(%r12,%r13)
addq $0x5f, %r13
incl %r13d
movl %r13d, 0x10(%r14)
movq %r12, 0x28(%r14)
movq 0x100(%rsp), %rdi
movq %r14, %rsi
callq 0xdb22
movq %r14, %rax
movl 0x40(%rsp), %ebx
movq 0x60(%rsp), %r14
movq 0x120(%rsp), %r12
movl 0x58(%rsp), %r13d
testb $0x8, %bl
movq %rax, 0x98(%rsp)
jne 0x4bfb
movq $0x0, 0x50(%rsp)
jmp 0x4c95
movl 0x4(%rax), %edi
movq 0xd8(%rsp), %rsi
callq 0x10711
movq %rax, %r15
movq 0xc8(%rsp), %rsi
movq %rax, %rdi
testq %rsi, %rsi
je 0x4c31
callq 0x10237
testl %eax, %eax
jns 0x4c40
callq 0x2667
jmp 0x59f7
movl 0x48(%rsp), %esi
movsd 0x30(%rsp), %xmm0
callq 0xff84
cmpl $0x0, 0x18(%rsp)
jle 0x4c78
xorpd %xmm0, %xmm0
movapd 0x110(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0x4c78
movq %r15, %rdi
movl 0x18(%rsp), %esi
callq 0x1092c
movq %r15, %rdi
movl 0x48(%rsp), %esi
movsd 0x30(%rsp), %xmm0
callq 0x101e8
xorpd %xmm1, %xmm1
movsd 0x68(%rsp), %xmm0
ucomisd %xmm1, %xmm0
movq %r15, 0x50(%rsp)
jbe 0x4c95
movq %r15, %rdi
callq 0xff44
movl %ebx, %r15d
testb $0x20, %bl
movq 0x1b32e(%rip), %rbx     # 0x1ffd0
jne 0x4d2f
movl (%rbx), %eax
incl %eax
cmpl %r13d, %eax
jge 0x4d2f
movq 0x98(%rsp), %rdi
callq 0xe470
movslq (%rbx), %rcx
movq 0x8(%r12,%rcx,8), %rsi
leaq 0x2c(%rsp), %rdx
leaq 0x70(%rsp), %rcx
leaq 0xbc(%rsp), %r8
movq %rax, %rdi
callq 0x179a0
testl %eax, %eax
js 0x4d2f
movslq (%rbx), %rax
movq (%r12,%rax,8), %rdi
callq 0x1779e
testq %rax, %rax
je 0x4d2f
movq %rax, %rbx
movl 0x2c(%rsp), %esi
movl 0x70(%rsp), %edx
movq %rax, %rdi
callq 0x17b49
testq %rax, %rax
je 0x59f2
movq 0xa8(%rsp), %rcx
movq 0x10(%rcx), %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x8cb8
movq %rbx, %rdi
callq 0x175cc
leaq 0x1b702(%rip), %rbx     # 0x20438
cmpq $0x0, (%rbx)
je 0x4d65
cmpq $0x0, 0x50(%rsp)
je 0x4d65
movq 0x50(%rsp), %rdi
callq 0x10928
leaq 0x140(%rsp), %rsi
movl %eax, (%rsi)
movq (%rbx), %rdi
movl $0x4, %edx
callq 0x23c0
movq 0xa8(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq %rbp, %rdx
callq 0xdc71
testl %eax, %eax
movq 0xa0(%rsp), %r13
movl %r15d, %r12d
jle 0x588d
movl %r12d, %eax
andl $0x8, %eax
shll $0xd, %eax
orl %r12d, %eax
movl %eax, 0x30(%rsp)
movl %r12d, %eax
andl $0x10, %eax
movl %eax, 0x68(%rsp)
movq %rbp, %rax
addq $0x4, %rax
movq %rax, 0x138(%rsp)
xorpd %xmm1, %xmm1
movsd 0xd0(%rsp), %xmm0
ucomisd %xmm1, %xmm0
setb %al
movq 0x78(%rsp), %rdx
testl %edx, %edx
setne %cl
cmpl $0x0, 0x18(%rsp)
setg %sil
andb %cl, %sil
movb %sil, 0x1e(%rsp)
movl %r12d, %ecx
andl $0x108, %ecx            # imm = 0x108
cmpl $0x8, %ecx
setne %cl
orb %al, %cl
movb %cl, 0x1f(%rsp)
movl %edx, %ebx
movl %r12d, %eax
shrl $0xd, %eax
movl %eax, 0x58(%rsp)
pshufd $0xf5, 0x14231(%rip), %xmm0 # xmm0 = mem[1,1,3,3]
movdqa %xmm0, 0x120(%rsp)
movq $0x0, 0x48(%rsp)
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
movq $-0x1, 0x108(%rsp)
cmpl $0x0, 0x68(%rsp)
je 0x4e90
movq 0x28(%rbp), %rax
cmpb $0x58, (%rax)
jne 0x4e4f
cmpb $0x0, 0x1(%rax)
je 0x5025
movsd 0xe8(%rsp), %xmm0
ucomisd 0x14228(%rip), %xmm0    # 0x19088
jbe 0x4e90
movq %rbp, %rdi
callq 0xf12c
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
xorps %xmm1, %xmm1
cvtsi2sdl 0x5c(%rbp), %xmm1
divsd %xmm1, %xmm0
movsd 0xe8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
ja 0x5025
movq 0xb0(%rsp), %rdi
testl %edi, %edi
je 0x4ea7
movq %r13, %rsi
movq %rbp, %rdx
callq 0xf970
movq %rbx, %r15
testw %r12w, %r12w
jns 0x4eb8
movq %rbp, %rdi
callq 0xf01d
movl %r12d, %ebx
btl $0x13, %r12d
setae %r12b
movq %rbp, %rdi
callq 0xd0a2
movl %eax, %ebp
testl %eax, %eax
setne %al
testb %al, 0x58(%rsp)
jne 0x501a
orb %al, %r12b
je 0x501a
testl %ebp, %ebp
setne %al
btl $0x9, %ebx
setae %cl
orb %al, %cl
je 0x5002
testq %r14, %r14
je 0x4f4a
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%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 0x60(%rsp), %rdi
movq %r12, %rsi
movl %r13d, %edx
movq 0xa0(%rsp), %r13
movq 0x60(%rsp), %r14
callq 0xa853
testl %eax, %eax
je 0x501a
movl 0x2c(%rsp), %eax
testl %eax, %eax
js 0x4f92
movq 0x10(%rsp), %rcx
cmpl %eax, (%rcx)
jne 0x588a
movl 0x4(%rcx), %r12d
cmpl 0xbc(%rsp), %r12d
jge 0x588a
movq 0x20(%rcx), %rdi
callq 0x2180
cmpl $0x2, %eax
movl $0x1, %ecx
cmovll %ecx, %eax
addl %r12d, %eax
cmpl 0x70(%rsp), %eax
jle 0x501a
testl %ebp, %ebp
setne %al
movl %ebx, %r12d
btl $0x12, %ebx
setae %cl
orb %al, %cl
movq 0x10(%rsp), %rbp
jne 0x4fc8
movq %rbp, %rdi
callq 0x184c9
testl %eax, %eax
js 0x4fc8
movl $0xff, %ecx
cmpl %ecx, %eax
cmovael %ecx, %eax
incq 0x290(%rsp,%rax,8)
incq 0x48(%rsp)
btl $0xa, %r12d
movq %r15, %rbx
jb 0x5047
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x507d
movq %rbp, %rsi
leaq 0x5c(%rsp), %rdx
leaq 0x108(%rsp), %rcx
callq 0x1816f
jmp 0x5090
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movsbq (%rax), %r12
testq %r12, %r12
je 0x501a
cmpb $0x0, 0x1(%rax)
je 0x5059
movl %ebx, %r12d
movq 0x10(%rsp), %rbp
movq %r15, %rbx
movq 0xa8(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq %rbp, %rdx
callq 0xdc71
testl %eax, %eax
jg 0x4e21
jmp 0x588d
movq 0x98(%rsp), %rdi
movq %rbp, %rsi
callq 0x18570
jmp 0x5025
callq 0x2030
movq (%rax), %rax
movl (%rax,%r12,4), %eax
addl $-0x41, %eax
cmpl $0x13, %eax
ja 0x501a
movl $0x80045, %ecx          # imm = 0x80045
btl %eax, %ecx
jb 0x4efa
jmp 0x501a
btl $0x11, %r12d
jae 0x5090
movq %rbp, %rdi
callq 0x183cf
movl %eax, 0x5c(%rsp)
testl $0x11008, 0x30(%rsp)    # imm = 0x11008
je 0x50a2
movq %rbp, %rdi
callq 0xee09
btl $0x10, 0x30(%rsp)
jb 0x5130
movl $0x1, %eax
movdqa 0x13f65(%rip), %xmm0    # 0x19020
movdqa %xmm0, %xmm1
pxor 0x13f69(%rip), %xmm1    # 0x19030
movdqa 0x13f71(%rip), %xmm2    # 0x19040
pcmpgtd %xmm1, %xmm2
pshufd $0xf5, %xmm1, %xmm1     # xmm1 = xmm1[1,1,3,3]
pcmpeqd 0x120(%rsp), %xmm1
pand %xmm2, %xmm1
movd %xmm1, %ecx
testb $0x1, %cl
je 0x5100
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, 0x238(%rsp,%rax,8)
pextrw $0x4, %xmm1, %ecx
testb $0x1, %cl
je 0x511c
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, 0x240(%rsp,%rax,8)
paddq 0x13f2c(%rip), %xmm0    # 0x19050
addq $0x2, %rax
cmpq $0xb, %rax
jne 0x50bb
jmp 0x5149
movq %rbp, %rdi
movl 0x18(%rsp), %esi
movl $0x1ff, %edx            # imm = 0x1FF
leaq 0x240(%rsp), %rcx
callq 0x15374
cmpb $0x0, 0x1f(%rsp)
je 0x51a0
testb $0x8, %r12b
jne 0x51ee
btl $0x10, 0x30(%rsp)
leaq 0x1c0(%rsp), %r15
jae 0x53b5
movl 0x5c(%rsp), %r9d
movq 0x108(%rsp), %rax
movq %rax, (%rsp)
pxor %xmm0, %xmm0
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl 0x30(%rsp), %ecx
leaq 0x240(%rsp), %r8
callq 0x5a0c
jmp 0x53b5
movq %rbp, %rdi
movq 0x50(%rsp), %rbx
movq %rbx, %rsi
callq 0x10953
movq %rbp, %rdi
movq %rbx, %rsi
movq %r15, %rbx
movsd 0xd0(%rsp), %xmm0
movl 0x68(%rsp), %r15d
movl %r15d, %edx
callq 0x10c96
testl %r15d, %r15d
leaq 0x1c0(%rsp), %r15
je 0x53b5
cmpl $0x1, %eax
jle 0x5025
jmp 0x53b5
leaq 0x1b243(%rip), %rbx     # 0x20438
movq (%rbx), %rdi
movq %rbp, %rsi
movl $0x4, %edx
callq 0x23c0
movq (%rbx), %rdi
movq 0x138(%rsp), %rsi
movl $0x4, %edx
callq 0x23c0
movq (%rbx), %rdi
leaq 0x240(%rsp), %rsi
movl $0x8, %edx
callq 0x23c0
movsd 0x278(%rsp), %xmm0
xorpd %xmm1, %xmm1
cmplepd %xmm0, %xmm1
cmpltpd 0x110(%rsp), %xmm0
andpd %xmm1, %xmm0
movd %xmm0, %esi
andl $0x1, %esi
movq %rbp, %rdi
movq 0x50(%rsp), %rdx
leaq 0x140(%rsp), %rcx
callq 0x1319b
movl %eax, %edx
movq 0x48(%rsp), %rax
movabsq $0x5d4e8fb00bcbe61d, %rcx # imm = 0x5D4E8FB00BCBE61D
imulq %rcx, %rax
rorq $0x5, %rax
movabsq $0xa7c5ac471b47, %rcx   # imm = 0xA7C5AC471B47
cmpq %rcx, %rax
jbe 0x550f
cmpl $0x0, 0x68(%rsp)
movq %r15, %rbx
je 0x52b9
movsd 0x168(%rsp), %xmm0
ucomisd 0x90(%rsp), %xmm0
jae 0x5025
movsd 0xc0(%rsp), %xmm0
ucomisd 0x1a8(%rsp), %xmm0
seta %al
andb 0x1e(%rsp), %al
cmpb $0x1, %al
jne 0x536e
movl %edx, 0xf0(%rsp)
movl %r12d, 0x40(%rsp)
cmpl $0x0, 0x78(%rsp)
jle 0x5347
xorl %r13d, %r13d
xorl %r12d, %r12d
movq 0x50(%rsp), %r14
leaq 0x1c0(%rsp), %rbx
movq 0xe0(%rsp), %rax
movl (%rax,%r13,4), %esi
movq %rbp, %rdi
callq 0xf3f9
movq %rbp, %rdi
movl $0x1, %esi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x1319b
movsd 0x1a8(%rsp), %xmm0
ucomisd 0x228(%rsp), %xmm0
sbbl $-0x1, %r12d
incq %r13
cmpq %r13, %r15
jne 0x5300
jmp 0x534a
xorl %r12d, %r12d
movl %r12d, 0x144(%rsp)
movl 0x40(%rsp), %r12d
movq 0xa0(%rsp), %r13
movq 0x60(%rsp), %r14
movq %r15, %rbx
movl 0xf0(%rsp), %edx
testl %edx, %edx
js 0x53ad
movl 0x5c(%rsp), %r9d
movq 0x108(%rsp), %rax
movq %rax, (%rsp)
movq %rbp, %rdi
movq 0x50(%rsp), %rsi
leaq 0x140(%rsp), %rdx
movsd 0x90(%rsp), %xmm0
movl 0x30(%rsp), %ecx
leaq 0x240(%rsp), %r8
callq 0x5a0c
leaq 0x1c0(%rsp), %r15
btl $0xc, %r12d
jae 0x54ba
movq 0xf8(%rsp), %rdi
movq %rbp, %rsi
leaq 0x140(%rsp), %rdx
callq 0x15c37
ucomisd 0x13ca8(%rip), %xmm0    # 0x19088
jb 0x54aa
movapd %xmm0, %xmm5
xorpd %xmm0, %xmm0
movapd %xmm0, 0x1c0(%rsp)
movq $0x0, 0x1d0(%rsp)
movq 0x38(%rbp), %rax
cmpb $0x0, (%rax)
je 0x544d
movq $0x2, 0x1c8(%rsp)
movl $0x2, %edi
movsd %xmm5, 0xf0(%rsp)
callq 0x2360
movsd 0xf0(%rsp), %xmm5
movq %rax, 0x1d0(%rsp)
movq $0x1, 0x1c0(%rsp)
movw $0x3b, (%rax)
movsd 0x140(%rsp), %xmm1
movq 0x148(%rsp), %xmm2
movsd 0x150(%rsp), %xmm3
movsd 0x158(%rsp), %xmm4
movq %r15, %rdi
leaq 0x14654(%rip), %rsi     # 0x19acf
movapd %xmm5, %xmm0
movb $0x5, %al
callq 0x7260
movq 0x1d0(%rsp), %rsi
movl 0x1c0(%rsp), %edx
movq %rbp, %rdi
callq 0xcdaf
movq 0x1d0(%rsp), %rdi
callq 0x2060
movq 0xf8(%rsp), %rdi
movq %rbp, %rsi
callq 0xcfe8
btl $0xe, %r12d
jae 0x54c9
movq %rbp, %rdi
callq 0xf1d4
testb $0x2, %r12b
jne 0x54d9
movq %rbp, %rdi
callq 0xef09
jmp 0x54f2
movl $0x0, 0x48(%rbp)
movq 0x40(%rbp), %rax
movb $0x0, (%rax)
movl 0x40(%rbp), %eax
subl 0x18(%rbp), %eax
incl %eax
movl %eax, 0x8(%rbp)
movq 0x98(%rsp), %rsi
movq 0x100(%rsp), %rdi
movq %rbp, %rdx
callq 0xdc26
jmp 0x5025
movq 0x1aae2(%rip), %rax     # 0x1fff8
movq (%rax), %rdi
leaq 0x14594(%rip), %rsi     # 0x19ab4
movl %edx, %ebx
leaq 0x13d73(%rip), %rdx     # 0x1929c
movq 0x48(%rsp), %rcx
xorl %eax, %eax
callq 0x2290
movq 0x50(%rsp), %rdi
callq 0x2998
movl %ebx, %edx
jmp 0x5297
movq 0x1aaab(%rip), %rbx     # 0x1fff8
movq (%rbx), %rsi
movl $0xa, %edi
callq 0x2220
movq (%rbx), %rcx
leaq 0x13d50(%rip), %rdi     # 0x192b4
movl $0x2f, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13d67(%rip), %rdi     # 0x192e4
movl $0x17, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13d66(%rip), %rdi     # 0x192fc
movl $0x46, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13d94(%rip), %rdi     # 0x19343
movl $0x2b, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13da7(%rip), %rdi     # 0x1936f
movl $0x44, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13dd3(%rip), %rdi     # 0x193b4
movl $0x4e, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e09(%rip), %rdi     # 0x19403
movl $0x3e, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e2f(%rip), %rdi     # 0x19442
movl $0x50, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e67(%rip), %rdi     # 0x19493
movl $0x31, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e80(%rip), %rdi     # 0x194c5
movl $0x35, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13e9d(%rip), %rdi     # 0x194fb
movl $0x34, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13eb9(%rip), %rdi     # 0x19530
movl $0x36, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13ed7(%rip), %rdi     # 0x19567
movl $0x1e, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13edd(%rip), %rdi     # 0x19586
movl $0x34, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13ef9(%rip), %rdi     # 0x195bb
movl $0x25, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13f06(%rip), %rdi     # 0x195e1
movl $0x28, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13f16(%rip), %rdi     # 0x1960a
movl $0x51, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13f4f(%rip), %rdi     # 0x1965c
movl $0x2b, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13f62(%rip), %rdi     # 0x19688
movl $0x3c, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13f86(%rip), %rsi     # 0x196c5
movsd 0x68(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x13fa4(%rip), %rdi     # 0x196fa
movl $0x1d, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x13fa9(%rip), %rdi     # 0x19718
movl $0x69, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x13ffa(%rip), %rsi     # 0x19782
movsd 0x90(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x14013(%rip), %rdi     # 0x197b5
movl $0x39, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x14034(%rip), %rsi     # 0x197ef
movsd 0x30(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x14058(%rip), %rdi     # 0x1982a
movl $0x68, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x140a8(%rip), %rdi     # 0x19893
movl $0x40, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x140d0(%rip), %rdi     # 0x198d4
movl $0x31, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rcx
leaq 0x140e9(%rip), %rdi     # 0x19906
movl $0x2f, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x14100(%rip), %rsi     # 0x19936
movaps 0x110(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rcx
leaq 0x14131(%rip), %rdi     # 0x19980
movl $0x58, %esi
movl $0x1, %edx
callq 0x24b0
movq (%rbx), %rdi
leaq 0x14171(%rip), %rsi     # 0x199d9
movsd 0xc0(%rsp), %xmm0
movb $0x1, %al
callq 0x2290
movq (%rbx), %rsi
movl $0xa, %edi
callq 0x2220
jmp 0x59f7
movl %ebx, %r12d
leaq 0x1aba4(%rip), %rax     # 0x20438
movq (%rax), %rdi
testq %rdi, %rdi
je 0x58a1
callq 0x2050
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
movq 0x50(%rsp), %rbx
je 0x58b8
callq 0x2060
testb $0x8, %r12b
je 0x58c6
movq %rbx, %rdi
callq 0x2998
movq 0x98(%rsp), %rdi
cmpq %rdi, 0x38(%rsp)
je 0x58da
callq 0xb87a
movl %r12d, %ebp
movq 0x38(%rsp), %rdi
callq 0xb87a
movq 0x10(%rsp), %rdi
callq 0xbdf9
movq 0xf8(%rsp), %rdi
callq 0xbdf9
movq 0xa8(%rsp), %rdi
callq 0xda97
movq 0x100(%rsp), %rdi
callq 0xda97
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x592a
callq 0x2060
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
movq 0xb0(%rsp), %rbx
movq 0x20(%rsp), %r15
movq 0xe0(%rsp), %r12
je 0x5951
callq 0x2060
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x5963
callq 0x2060
testl %ebx, %ebx
je 0x5994
jle 0x597f
movl %ebx, %ebx
xorl %r14d, %r14d
movq (%r15,%r14,8), %rdi
callq 0x2060
incq %r14
cmpq %r14, %rbx
jne 0x596e
movq %r15, %rdi
callq 0x2060
movq %r13, %rdi
callq 0x2060
movq 0x60(%rsp), %r14
testq %r14, %r14
je 0x59a1
movq %r14, %rdi
callq 0xb445
btl $0x12, %ebp
movq 0x50(%rsp), %r14
jb 0x59dc
testq %r12, %r12
je 0x59b9
movq %r12, %rdi
callq 0x2060
xorl %ebx, %ebx
testq %r14, %r14
je 0x59c8
movq %r14, %rdi
callq 0x1095c
movl %ebx, %eax
addq $0xa98, %rsp            # imm = 0xA98
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x290(%rsp), %rdi
callq 0x26b1
jmp 0x59ac
callq 0x2642
jmp 0x59f7
callq 0x268c
movl $0x1, %ebx
jmp 0x59c8
callq 0x261a
jmp 0x59f7
callq 0x25d0
jmp 0x59f7