// File: /workspace/github_cpp_makefile_star2_O2/ctSkennerton[P]fxtract/util/ssearch_dump.c
// Function: ssearch_dump
void
ssearch_dump(SSEARCH*sse, FILE *fp)
{
    int         i, j, maxsym;
    char        symchar[256];
    if (!sse)
	return;

    fprintf(fp, "sse {nstrs=%d suflen=%d symwid=%d}\n",
	sse->nstrs, sse->suflen, sse->symwid);
#if 0
    for (i = 0; i < sse->nstrs; ++i)
        fprintf(fp, "[%d] %s\n", i+1, sse->strv[i].ptr);
#endif
    for (i = maxsym = 0; i < 256; ++i) {
        if (sse->symv[i] >= 0)
            symchar[sse->symv[i]] = i;
        if (maxsym < sse->symv[i])
            maxsym = sse->symv[i];
    }

#   define FMASK "%02X"
    fputs(" __", fp);
    for (j = 0; j <= maxsym; ++j)
        fprintf(fp, isgraph(symchar[j]) ? " _%c" : " "FMASK, symchar[j]);
    putc('\n', fp);

    if (sse->mapv) {
        for (i = 0; i <= maxsym; ++i) {
            fprintf(fp, isgraph(symchar[i]) ? " %c_" : FMASK":", symchar[i]);
            for (j = 0; j <= maxsym; ++j)
                fprintf(fp, " "FMASK, sse->mapv[(j << sse->symwid) + i]);
            putc('\n', fp);
        }
    }
#if 0
    if (sse->suffixh) {
        char        *cp;
        int         *pos;
        for (map_start(sse->suffixh);
		map_next(sse->suffixh,
			     (void const**)(uintptr_t)&cp,
			     (void**)(uintptr_t)&pos);) {

            fprintf(fp, "%.*s %d:\t", sse->suflen, cp,
					(int)(pos - sse->prefixv));
            for (; *pos != NONSTR; ++pos)
                fprintf(stderr, " [%d]%.*s", *pos,
					(int)sse->strv[*pos].len,
					sse->strv[*pos].ptr);
            putc('\n', stderr);
        }
    }
#endif
}

// Assembly:
testq %rdi, %rdi
je 0x4eb3
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rsi, %rbx
movq %rdi, %r14
movl 0x8(%rdi), %edx
movl 0xc(%rdi), %ecx
movl 0x28(%rdi), %r8d
leaq 0x23c7(%rip), %rsi      # 0x713c
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3260
xorl %r13d, %r13d
cmpq $0x100, %r15            # imm = 0x100
je 0x4dad
movswq 0x2c(%r14,%r15,2), %rax
testq %rax, %rax
js 0x4d9e
movb %r15b, 0x10(%rsp,%rax)
cmpl %eax, %r13d
cmovgl %r13d, %eax
incq %r15
movl %eax, %r13d
jmp 0x4d85
leaq 0x23ac(%rip), %rdi      # 0x7160
movq %rbx, %rsi
callq 0x31d0
movl %r13d, %eax
movq %rax, (%rsp)
callq 0x31a0
movq %rax, %r15
leaq 0x2397(%rip), %r12      # 0x7169
xorl %ebp, %ebp
cmpq (%rsp), %rbp
ja 0x4e03
movq (%r15), %rax
movsbq 0x10(%rsp,%rbp), %rdx
cmpw $0x0, (%rax,%rdx,2)
movq %r12, %rsi
jns 0x4df4
leaq 0x2370(%rip), %rsi      # 0x7164
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3260
incq %rbp
jmp 0x4dd4
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x3310
cmpq $0x0, 0x10(%r14)
je 0x4ea2
incl %r13d
callq 0x31a0
movq %rax, 0x8(%rsp)
leaq 0x233c(%rip), %r12      # 0x7169
xorl %r15d, %r15d
cmpq (%rsp), %r15
ja 0x4ea2
movq 0x8(%rsp), %rax
movq (%rax), %rax
movsbq 0x10(%rsp,%r15), %rdx
cmpw $0x0, (%rax,%rdx,2)
leaq 0x231f(%rip), %rsi      # 0x716f
leaq 0x231d(%rip), %rax      # 0x7174
cmovnsq %rax, %rsi
xorl %ebp, %ebp
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3260
cmpl %ebp, %r13d
je 0x4e92
movb 0x28(%r14), %cl
movl %ebp, %eax
shll %cl, %eax
movq 0x10(%r14), %rcx
addl %r15d, %eax
cltq
movzwl (%rcx,%rax,2), %edx
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x3260
incl %ebp
jmp 0x4e67
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x3310
incq %r15
jmp 0x4e30
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq