// File: /workspace/github_c_makefile_star2_O0/lh3[P]fermi2/dfs.c
// Function: dfs_count2
static void dfs_count2(void *data, int tid, int k, char *path, const rldintv_t *ik, const rldintv_t *ok, int *cont)
{
	dfs_count_t *d = (dfs_count_t*)data;
	int c;
	rldintv_t rk[6];
	kstring_t *s = &d->str[tid];
	for (c = 0; c < 6; ++c)
		if (ok[c].x[2] < d->min_occ) *cont &= ~(1<<c);
	if (k < d->len) return;
	rld_extend(d->e, ik, rk, 0);
	if (d->bifur_only) { // check bifurcation
		int n[2];
		n[0] = n[1] = 0;
		for (c = 1; c <= 4; ++c)
			if (rk[c].x[2]) ++n[0];
		for (c = 1; c <= 4; ++c)
			if (ok[c].x[2]) ++n[1];
		if (n[0] < 2 && n[1] < 2) return; // no bifurcation; don't print
	}
	s->l = 0;
	for (c = 0; c < 6; ++c) {
		if (c) kputc(':', s);
		kputl(ok[c].x[2], s);
	}
	kputc('\t', s); kputs(path, s); kputc('\t', s);
	kputl(rk[0].x[2], s);
	for (c = 4; c >= 1; --c) {
		kputc(':', s);
		kputl(rk[c].x[2], s);
	}
	kputc(':', s); kputl(rk[5].x[2], s);
	puts(s->s);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movq %r9, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0xc(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x108(%rbp)
movl $0x0, -0x34(%rbp)
cmpl $0x6, -0x34(%rbp)
jge 0x10908
movq -0x28(%rbp), %rax
movslq -0x34(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq -0x30(%rbp), %rcx
movslq 0xc(%rcx), %rcx
cmpq %rcx, %rax
jae 0x108fb
movl -0x34(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
xorl $-0x1, %ecx
movq 0x10(%rbp), %rax
andl (%rax), %ecx
movl %ecx, (%rax)
jmp 0x108fd
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x108be
movl -0x10(%rbp), %eax
movq -0x30(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x10919
jmp 0x10b0a
movq -0x30(%rbp), %rax
movq (%rax), %rdi
movq -0x20(%rbp), %rsi
leaq -0x100(%rbp), %rdx
xorl %ecx, %ecx
callq 0x49a0
movq -0x30(%rbp), %rax
cmpl $0x0, 0x14(%rax)
je 0x109ee
movl $0x0, -0x10c(%rbp)
movl $0x0, -0x110(%rbp)
movl $0x1, -0x34(%rbp)
cmpl $0x4, -0x34(%rbp)
jg 0x10996
movslq -0x34(%rbp), %rcx
leaq -0x100(%rbp), %rax
shlq $0x5, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x10989
movl -0x110(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x110(%rbp)
jmp 0x1098b
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1095b
movl $0x1, -0x34(%rbp)
cmpl $0x4, -0x34(%rbp)
jg 0x109d5
movq -0x28(%rbp), %rax
movslq -0x34(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
je 0x109c8
movl -0x10c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10c(%rbp)
jmp 0x109ca
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x1099d
cmpl $0x2, -0x110(%rbp)
jge 0x109ec
cmpl $0x2, -0x10c(%rbp)
jge 0x109ec
jmp 0x10b0a
jmp 0x109ee
movq -0x108(%rbp), %rax
movl $0x0, (%rax)
movl $0x0, -0x34(%rbp)
cmpl $0x6, -0x34(%rbp)
jge 0x10a49
cmpl $0x0, -0x34(%rbp)
je 0x10a1f
movq -0x108(%rbp), %rsi
movl $0x3a, %edi
callq 0x10be0
movq -0x28(%rbp), %rax
movslq -0x34(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
movq -0x108(%rbp), %rsi
callq 0x10cf0
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x10a02
movq -0x108(%rbp), %rsi
movl $0x9, %edi
callq 0x10be0
movq -0x18(%rbp), %rdi
movq -0x108(%rbp), %rsi
callq 0x10ee0
movq -0x108(%rbp), %rsi
movl $0x9, %edi
callq 0x10be0
movq -0xf0(%rbp), %rdi
movq -0x108(%rbp), %rsi
callq 0x10cf0
movl $0x4, -0x34(%rbp)
cmpl $0x1, -0x34(%rbp)
jl 0x10ad9
movq -0x108(%rbp), %rsi
movl $0x3a, %edi
callq 0x10be0
movslq -0x34(%rbp), %rcx
leaq -0x100(%rbp), %rax
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rdi
movq -0x108(%rbp), %rsi
callq 0x10cf0
movl -0x34(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x10a95
movq -0x108(%rbp), %rsi
movl $0x3a, %edi
callq 0x10be0
movq -0x50(%rbp), %rdi
movq -0x108(%rbp), %rsi
callq 0x10cf0
movq -0x108(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2090
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopw %cs:(%rax,%rax)