// File: /workspace/github_c_makefile_star2_O0/richarddurbin[P]hash10x/hash10x.c
// Function: exploreHash
void exploreHash (int x)
{
  if (!hashWithinRange)
    { fprintf (stderr, "exploreHash called without hashDepthRange\n") ; return ; }
  Array shared = hashNeighbours (x) ; if (!shared) return ;
  fprintf (outFile, "  %d hashes sharing codes with %s\n", arrayMax(shared), cribText(x)) ;
  arraySort (shared, compareClusterRead) ;
  int i, count = 1, n = 0 ;
  ClusterHash *d = arrp(shared, 0, ClusterHash) ;
  for (i = 0 ; i <= arrayMax(shared) ; ++i, ++d)
    if (d->read != count || i == arrayMax(shared))
      { fprintf (outFile, "    %d sharing %d codes", n, count) ;
	if (n > 7) { fprintf (outFile, "  ...") ; n = 7 ; }
	while (n) { fprintf (outFile, " %s", cribText(d[-n].hash)) ; --n ; }
	fprintf (outFile, "\n") ;
	count = d->read ; n = 1 ;
      }
    else ++n ;
  
  arrayDestroy (shared) ;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x4(%rbp)
cmpq $0x0, 0x1096d(%rip)     # 0x14440
jne 0x3af2
movq 0xf51c(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0xab43(%rip), %rsi      # 0xe629
movb $0x0, %al
callq 0x1150
jmp 0x3c9a
movl -0x4(%rbp), %edi
callq 0x3660
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x3b0a
jmp 0x3c9a
movq 0x108bf(%rip), %rax     # 0x143d0
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x2c(%rbp)
movl -0x4(%rbp), %edi
callq 0x3440
movq -0x38(%rbp), %rdi
movl -0x2c(%rbp), %edx
movq %rax, %rcx
leaq 0xab1c(%rip), %rsi      # 0xe654
movb $0x0, %al
callq 0x1150
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rax
movslq 0x18(%rax), %rsi
movq -0x10(%rbp), %rax
movslq 0x14(%rax), %rdx
leaq -0x277e(%rip), %rcx     # 0x13e0
callq 0x1090
movl $0x1, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x10(%rbp), %rcx
imull $0x0, 0x14(%rcx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jg 0x3c91
movq -0x28(%rbp), %rax
movzwl 0x4(%rax), %eax
cmpl -0x18(%rbp), %eax
jne 0x3bbf
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jne 0x3c6c
movq 0x1080a(%rip), %rdi     # 0x143d0
movl -0x1c(%rbp), %edx
movl -0x18(%rbp), %ecx
leaq 0xaaa4(%rip), %rsi      # 0xe677
movb $0x0, %al
callq 0x1150
cmpl $0x7, -0x1c(%rbp)
jle 0x3bfc
movq 0x107e9(%rip), %rdi     # 0x143d0
leaq 0xaaa1(%rip), %rsi      # 0xe68f
movb $0x0, %al
callq 0x1150
movl $0x7, -0x1c(%rbp)
jmp 0x3bfe
cmpl $0x0, -0x1c(%rbp)
je 0x3c43
movq 0x107c5(%rip), %rax     # 0x143d0
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rax
xorl %ecx, %ecx
subl -0x1c(%rbp), %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,8), %edi
callq 0x3440
movq -0x40(%rbp), %rdi
movq %rax, %rdx
leaq 0xaaf1(%rip), %rsi      # 0xe722
movb $0x0, %al
callq 0x1150
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3bfe
movq 0x10786(%rip), %rdi     # 0x143d0
leaq 0xaf1c(%rip), %rsi      # 0xeb6d
movb $0x0, %al
callq 0x1150
movq -0x28(%rbp), %rax
movzwl 0x4(%rax), %eax
movl %eax, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
jmp 0x3c75
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3c77
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
jmp 0x3b92
movq -0x10(%rbp), %rdi
callq 0xc3e0
addq $0x40, %rsp
popq %rbp
retq