// File: /workspace/github_c_makefile_star2_O0/lh3[P]minigraph/gmap.c
// Function: worker_pipeline
static void *worker_pipeline(void *shared, int step, void *in)
{
	int i, j, k;
    pipeline_t *p = (pipeline_t*)shared;
    if (step == 0) { // step 0: read sequences
		int with_qual = !(p->opt->flag & MG_M_NO_QUAL);
		int with_comment = !!(p->opt->flag & MG_M_COPY_COMMENT);
		int frag_mode = (p->n_fp > 1 || !!(p->opt->flag & MG_M_FRAG_MODE));
        step_t *s;
        s = (step_t*)calloc(1, sizeof(step_t));
		if (p->n_fp > 1) s->seq = mg_bseq_read_frag(p->n_fp, p->fp, p->mini_batch_size, with_qual, with_comment, &s->n_seq);
		else s->seq = mg_bseq_read(p->fp[0], p->mini_batch_size, with_qual, with_comment, frag_mode, &s->n_seq);
		if (s->seq) {
			s->p = p;
			for (i = 0; i < s->n_seq; ++i)
				mg_toupper(s->seq[i].l_seq, s->seq[i].seq);
			for (i = 0; i < s->n_seq; ++i)
				s->seq[i].rid = p->n_processed++;
			s->buf = (mg_tbuf_t**)calloc(p->n_threads, sizeof(mg_tbuf_t*));
			for (i = 0; i < p->n_threads; ++i)
				s->buf[i] = mg_tbuf_init();
			s->seg_off = (int*)calloc(2 * s->n_seq, sizeof(int));
			s->n_seg = s->seg_off + s->n_seq; // n_seg, rep_len and frag_gap are allocated together with seg_off
			KCALLOC(0, s->gcs, s->n_seq);
			for (i = 1, j = 0; i <= s->n_seq; ++i)
				if (i == s->n_seq || !frag_mode || !mg_qname_same(s->seq[i-1].name, s->seq[i].name)) {
					s->n_seg[s->n_frag] = i - j;
					s->seg_off[s->n_frag++] = j;
					j = i;
				}
			return s;
		} else free(s);
    } else if (step == 1) { // step 1: map
		kt_for(p->n_threads, worker_for, in, ((step_t*)in)->n_frag);
		return in;
    } else if (step == 2) { // step 2: output
		void *km = 0;
        step_t *s = (step_t*)in;
		for (i = 0; i < p->n_threads; ++i) mg_tbuf_destroy(s->buf[i]);
		free(s->buf);
		if (!(mg_dbg_flag & MG_DBG_NO_KALLOC)) km = km_init();
		for (k = 0; k < s->n_frag; ++k) {
			int seg_st = s->seg_off[k], seg_en = s->seg_off[k] + s->n_seg[k];
			if ((p->opt->flag & MG_M_FRAG_MODE) && (p->opt->flag & MG_M_FRAG_MERGE)) {
				mg_bseq1_t *t = &s->seq[seg_st];
				int32_t *qlens;
				KMALLOC(km, qlens, seg_en - seg_st); // TODO: if this is an issue (quite unlikely), preallocate
				for (i = seg_st; i < seg_en; ++i)
					qlens[i - seg_st] = s->seq[i].l_seq;
				if (p->opt->flag & MG_M_CAL_COV)
					mg_cov_map(p->gi->g, s->gcs[seg_st], p->opt->min_cov_mapq, p->opt->min_cov_blen, p->c_seg, p->c_link, t->name);
				else mg_write_gaf(&p->str, p->gi->g, s->gcs[seg_st], seg_en - seg_st, qlens, t->name, p->opt->flag, km);
				kfree(km, qlens);
				if (p->str.l) mg_err_fputs(p->str.s, stdout);
			} else {
				for (i = seg_st; i < seg_en; ++i) {
					mg_bseq1_t *t = &s->seq[i];
					if (p->opt->flag & MG_M_CAL_COV)
						mg_cov_map(p->gi->g, s->gcs[i], p->opt->min_cov_mapq, p->opt->min_cov_blen, p->c_seg, p->c_link, t->name);
					else mg_write_gaf(&p->str, p->gi->g, s->gcs[i], 1, &t->l_seq, t->name, p->opt->flag, km);
					if (p->str.l) mg_err_fputs(p->str.s, stdout);
				}
			}
			for (i = seg_st; i < seg_en; ++i) {
				mg_gchain_free(s->gcs[i]);
				free(s->seq[i].seq); free(s->seq[i].name);
				if (s->seq[i].qual) free(s->seq[i].qual);
				if (s->seq[i].comment) free(s->seq[i].comment);
			}
		}
		free(s->gcs); free(s->seg_off); free(s->seq); // n_seg, rep_len and frag_gap were allocated with seg_off; no memory leak here
		if (km) km_destroy(km);
		if (mg_verbose >= 3)
			fprintf(stderr, "[M::%s::%.3f*%.2f] mapped %d sequences\n", __func__, realtime() - mg_realtime0, cputime() / (realtime() - mg_realtime0), s->n_seq);
		free(s);
	}
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x32bfd
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x3c(%rbp)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x10000, %rax          # imm = 0x10000
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x40(%rbp)
movq -0x38(%rbp), %rcx
movb $0x1, %al
cmpl $0x1, 0x10(%rcx)
movb %al, -0x81(%rbp)
jg 0x32930
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x44(%rbp)
movl $0x1, %edi
movl $0x38, %esi
callq 0x21e0
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
cmpl $0x1, 0x10(%rax)
jle 0x32992
movq -0x38(%rbp), %rax
movl 0x10(%rax), %edi
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x38(%rbp), %rax
movq (%rax), %rdx
movl -0x3c(%rbp), %ecx
movl -0x40(%rbp), %r8d
movq -0x50(%rbp), %r9
addq $0x8, %r9
callq 0x16ef0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x329c6
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
movq -0x38(%rbp), %rax
movq (%rax), %rsi
movl -0x3c(%rbp), %edx
movl -0x40(%rbp), %ecx
movl -0x44(%rbp), %r8d
movq -0x50(%rbp), %r9
addq $0x8, %r9
callq 0x16530
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x50(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x32bef
movq -0x38(%rbp), %rcx
movq -0x50(%rbp), %rax
movq %rcx, (%rax)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x50(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x32a2f
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edi
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rsi
callq 0x33390
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x329e7
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x50(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x32a72
movq -0x38(%rbp), %rax
movl 0x8(%rax), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x8(%rax)
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32a36
movq -0x38(%rbp), %rax
movslq 0xc(%rax), %rdi
movl $0x8, %esi
callq 0x21e0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x30(%rax)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x38(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jge 0x32ac5
callq 0x2c460
movq %rax, %rdx
movq -0x50(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x24(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32a96
movq -0x50(%rbp), %rax
movl 0x8(%rax), %eax
shll %eax
movslq %eax, %rdi
movl $0x4, %esi
callq 0x21e0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x50(%rbp), %rax
movslq 0x8(%rax), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x50(%rbp), %rax
movslq 0x8(%rax), %rsi
xorl %eax, %eax
movl %eax, %edi
movl $0x8, %edx
callq 0x2540
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x28(%rax)
movl $0x1, -0x24(%rbp)
movl $0x0, -0x28(%rbp)
movl -0x24(%rbp), %eax
movq -0x50(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jg 0x32be2
movl -0x24(%rbp), %eax
movq -0x50(%rbp), %rcx
cmpl 0x8(%rcx), %eax
je 0x32b93
cmpl $0x0, -0x44(%rbp)
je 0x32b93
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x24(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x33410
cmpl $0x0, %eax
jne 0x32bd2
movl -0x24(%rbp), %edx
subl -0x28(%rbp), %edx
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x50(%rbp), %rcx
movslq 0xc(%rcx), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x28(%rbp), %edx
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x50(%rbp), %rsi
movl 0xc(%rsi), %ecx
movl %ecx, %edi
addl $0x1, %edi
movl %edi, 0xc(%rsi)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
jmp 0x32bd4
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32b34
movq -0x50(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3316b
movq -0x50(%rbp), %rdi
callq 0x2040
jmp 0x33163
cmpl $0x1, -0x14(%rbp)
jne 0x32c2f
movq -0x38(%rbp), %rax
movl 0xc(%rax), %edi
movq -0x20(%rbp), %rdx
movq -0x20(%rbp), %rax
movslq 0xc(%rax), %rcx
leaq 0x853(%rip), %rsi       # 0x33470
callq 0x2df0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3316b
cmpl $0x2, -0x14(%rbp)
jne 0x3315f
movq $0x0, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x38(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jge 0x32c7c
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x2c4b0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32c50
movq -0x60(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x2040
leaq 0x129f8(%rip), %rax     # 0x45688
movl (%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x32ca3
callq 0x25d0
movq %rax, -0x58(%rbp)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x60(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jge 0x3308f
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x2c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x64(%rbp)
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x2c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq -0x60(%rbp), %rcx
movq 0x20(%rcx), %rcx
movslq -0x2c(%rbp), %rdx
addl (%rcx,%rdx,4), %eax
movl %eax, -0x68(%rbp)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x32e86
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x80, %rax
cmpq $0x0, %rax
je 0x32e86
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x64(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x58(%rbp), %rdi
movl -0x68(%rbp), %eax
subl -0x64(%rbp), %eax
movslq %eax, %rsi
shlq $0x2, %rsi
callq 0x2890
movq %rax, -0x78(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x68(%rbp), %eax
jge 0x32d90
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %edx
movq -0x78(%rbp), %rax
movl -0x24(%rbp), %ecx
subl -0x64(%rbp), %ecx
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32d58
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x4000, %rax           # imm = 0x4000
cmpq $0x0, %rax
je 0x32e01
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x64(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xa0(%rax), %edx
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xa4(%rax), %ecx
movq -0x38(%rbp), %rax
movq 0x40(%rax), %r8
movq -0x38(%rbp), %rax
movq 0x48(%rax), %r9
movq -0x70(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
callq 0x2f760
jmp 0x32e53
movq -0x38(%rbp), %rdi
addq $0x30, %rdi
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x64(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movl -0x68(%rbp), %ecx
subl -0x64(%rbp), %ecx
movq -0x78(%rbp), %r8
movq -0x70(%rbp), %rax
movq 0x8(%rax), %r9
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %r10
movq -0x58(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x31300
movq -0x58(%rbp), %rdi
movq -0x78(%rbp), %rsi
callq 0x2670
movq -0x38(%rbp), %rax
cmpl $0x0, 0x30(%rax)
je 0x32e81
movq -0x38(%rbp), %rax
movq 0x38(%rax), %rdi
movq 0x1215f(%rip), %rax     # 0x44fd8
movq (%rax), %rsi
callq 0x4920
jmp 0x32fa4
movl -0x64(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x68(%rbp), %eax
jge 0x32fa2
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x80(%rbp)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
andq $0x4000, %rax           # imm = 0x4000
cmpq $0x0, %rax
je 0x32f20
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xa0(%rax), %edx
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xa4(%rax), %ecx
movq -0x38(%rbp), %rax
movq 0x40(%rax), %r8
movq -0x38(%rbp), %rax
movq 0x48(%rax), %r9
movq -0x80(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
callq 0x2f760
jmp 0x32f71
movq -0x38(%rbp), %rdi
addq $0x30, %rdi
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rsi
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x80(%rbp), %r8
movq -0x80(%rbp), %rax
movq 0x8(%rax), %r9
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %r10
movq -0x58(%rbp), %rax
movl $0x1, %ecx
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x31300
movq -0x38(%rbp), %rax
cmpl $0x0, 0x30(%rax)
je 0x32f92
movq -0x38(%rbp), %rax
movq 0x38(%rax), %rdi
movq 0x1204e(%rip), %rax     # 0x44fd8
movq (%rax), %rsi
callq 0x4920
jmp 0x32f94
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32e8c
jmp 0x32fa4
movl -0x64(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x68(%rbp), %eax
jge 0x3307f
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x28de0
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
callq 0x2040
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
callq 0x2040
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x18(%rax)
je 0x33039
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdi
callq 0x2040
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpq $0x0, 0x20(%rax)
je 0x3306f
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x20(%rax), %rdi
callq 0x2040
jmp 0x33071
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x32faa
jmp 0x33081
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x32caa
movq -0x60(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x2040
movq -0x60(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x2040
movq -0x60(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x2040
cmpq $0x0, -0x58(%rbp)
je 0x330c6
movq -0x58(%rbp), %rdi
callq 0x25f0
leaq 0x12323(%rip), %rax     # 0x453f0
cmpl $0x3, (%rax)
jl 0x33156
movq 0x11f1b(%rip), %rax     # 0x44ff8
movq (%rax), %rax
movq %rax, -0x98(%rbp)
callq 0x48e0
leaq 0x1259d(%rip), %rax     # 0x45690
subsd (%rax), %xmm0
movsd %xmm0, -0x90(%rbp)
callq 0x4850
movsd %xmm0, -0xa0(%rbp)
callq 0x48e0
movsd -0xa0(%rbp), %xmm1
movq -0x98(%rbp), %rdi
movaps %xmm0, %xmm2
movsd -0x90(%rbp), %xmm0
leaq 0x1255e(%rip), %rax     # 0x45690
subsd (%rax), %xmm2
divsd %xmm2, %xmm1
movq -0x60(%rbp), %rax
movl 0x8(%rax), %ecx
leaq 0xadbb(%rip), %rsi      # 0x3df03
leaq 0xaddc(%rip), %rdx      # 0x3df2b
movb $0x2, %al
callq 0x2210
movq -0x60(%rbp), %rdi
callq 0x2040
jmp 0x33161
jmp 0x33163
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax,%rax)