// File: /workspace/github_c_makefile_star2_O0/rikuu[P]kermit/miniasm/hit.c
// Function: ma_hit_no_cont
sdict_t *ma_hit_no_cont(const char *fn, int min_span, int min_match, int max_hang, float int_frac)
{
	paf_file_t *fp;
	paf_rec_t r;
	sdict_t *d;

	fp = paf_open(fn);
	if (!fp) {
		fprintf(stderr, "[E::%s] could not open PAF file %s\n", __func__, fn);
		exit(1);
	}
	d = sd_init();
	while (paf_read(fp, &r) >= 0) {
		int l5, l3;
		if (r.qe - r.qs < min_span || r.te - r.ts < min_span || r.ml < min_match) continue;
		l5 = r.rev? r.tl - r.te : r.ts;
		l3 = r.rev? r.ts : r.tl - r.te;
		if (r.ql>>1 > r.tl) {
			if (l5 > max_hang>>2 || l3 > max_hang>>2 || r.te - r.ts < r.tl * int_frac) continue; // internal match
			if ((int)r.qs - l5 > max_hang<<1 && (int)(r.ql - r.qe) - l3 > max_hang<<1)
				sd_put(d, r.tn, r.tl);
		} else if (r.ql < r.tl>>1) {
			if (r.qs > max_hang>>2 || r.ql - r.qe > max_hang>>2 || r.qe - r.qs < r.ql * int_frac) continue; // internal
			if (l5 - (int)r.qs > max_hang<<1 && l3 - (int)(r.ql - r.qe) > max_hang<<1)
				sd_put(d, r.qn, r.ql);
		}
	}
	paf_close(fp);
	if (ma_verbose >= 3) fprintf(stderr, "[M::%s::%s] dropped %d contained reads\n", __func__, sys_timestamp(), d->n_seq);
	return d;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movss %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x22e0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x621b
movq 0xce03(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
movq -0x8(%rbp), %rcx
leaq 0x90dd(%rip), %rsi      # 0xf2e0
leaq 0x90fa(%rip), %rdx      # 0xf304
movb $0x0, %al
callq 0x1110
movl $0x1, %edi
callq 0x11f0
callq 0x1490
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2720
cmpl $0x0, %eax
jl 0x63aa
movl -0x38(%rbp), %eax
subl -0x3c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jb 0x625d
movl -0x2c(%rbp), %eax
subl -0x30(%rbp), %eax
cmpl -0xc(%rbp), %eax
jb 0x625d
movl -0x28(%rbp), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
cmpl -0x10(%rbp), %eax
jge 0x625f
jmp 0x6224
movl -0x28(%rbp), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x6275
movl -0x34(%rbp), %eax
subl -0x2c(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x627b
movl -0x30(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x28(%rbp), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x6294
movl -0x30(%rbp), %eax
movl %eax, -0x68(%rbp)
jmp 0x629d
movl -0x34(%rbp), %eax
subl -0x2c(%rbp), %eax
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0x60(%rbp)
movl -0x40(%rbp), %eax
shrl %eax
cmpl -0x34(%rbp), %eax
jbe 0x6321
movl -0x5c(%rbp), %eax
movl -0x14(%rbp), %ecx
sarl $0x2, %ecx
cmpl %ecx, %eax
jg 0x62e6
movl -0x60(%rbp), %eax
movl -0x14(%rbp), %ecx
sarl $0x2, %ecx
cmpl %ecx, %eax
jg 0x62e6
movl -0x2c(%rbp), %ecx
movl -0x34(%rbp), %eax
movl -0x30(%rbp), %edx
subl %edx, %ecx
cvtsi2ss %rcx, %xmm1
cvtsi2ss %rax, %xmm0
mulss -0x18(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x62eb
jmp 0x6224
movl -0x3c(%rbp), %eax
subl -0x5c(%rbp), %eax
movl -0x14(%rbp), %ecx
shll %ecx
cmpl %ecx, %eax
jle 0x631c
movl -0x40(%rbp), %eax
subl -0x38(%rbp), %eax
subl -0x60(%rbp), %eax
movl -0x14(%rbp), %ecx
shll %ecx
cmpl %ecx, %eax
jle 0x631c
movq -0x58(%rbp), %rdi
movq -0x48(%rbp), %rsi
movl -0x34(%rbp), %edx
callq 0x15c0
jmp 0x63a5
movl -0x40(%rbp), %eax
movl -0x34(%rbp), %ecx
shrl %ecx
cmpl %ecx, %eax
jae 0x63a3
movl -0x3c(%rbp), %eax
movl -0x14(%rbp), %ecx
sarl $0x2, %ecx
cmpl %ecx, %eax
ja 0x6369
movl -0x40(%rbp), %eax
subl -0x38(%rbp), %eax
movl -0x14(%rbp), %ecx
sarl $0x2, %ecx
cmpl %ecx, %eax
ja 0x6369
movl -0x38(%rbp), %ecx
movl -0x40(%rbp), %eax
movl -0x3c(%rbp), %edx
subl %edx, %ecx
cvtsi2ss %rcx, %xmm1
cvtsi2ss %rax, %xmm0
mulss -0x18(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x636e
jmp 0x6224
movl -0x5c(%rbp), %eax
subl -0x3c(%rbp), %eax
movl -0x14(%rbp), %ecx
shll %ecx
cmpl %ecx, %eax
jle 0x63a1
movl -0x60(%rbp), %eax
movl -0x40(%rbp), %ecx
subl -0x38(%rbp), %ecx
subl %ecx, %eax
movl -0x14(%rbp), %ecx
shll %ecx
cmpl %ecx, %eax
jle 0x63a1
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
movl -0x40(%rbp), %edx
callq 0x15c0
jmp 0x63a3
jmp 0x63a5
jmp 0x6224
movq -0x20(%rbp), %rdi
callq 0x2400
leaq 0xcd76(%rip), %rax      # 0x13130
cmpl $0x3, (%rax)
jl 0x63f7
movq 0xcc32(%rip), %rax      # 0x12ff8
movq (%rax), %rax
movq %rax, -0x70(%rbp)
movb $0x0, %al
callq 0x1430
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movq -0x58(%rbp), %rax
movl (%rax), %r8d
leaq 0x8f2a(%rip), %rsi      # 0xf313
leaq 0x8f14(%rip), %rdx      # 0xf304
movb $0x0, %al
callq 0x1110
movq -0x58(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)