// File: /workspace/github_c_makefile_star2_O0/richarddurbin[P]hash10x/moshasm.c
// Function: printOverlap
void printOverlap (Readset *rs, U32 ix, U32 iy)
{
  Read *x = arrp(rs->reads, ix, Read), *y = arrp(rs->reads, iy, Read) ;
  fprintf (outFile, "RR overlaps_for %u\tlen %d\tnHit %d\tnMiss %d\tnCopy %d %d %d %d\n",
	   ix, x->len, x->nHit, x->nMiss, x->nCopy[0], x->nCopy[1], x->nCopy[2], x->nCopy[3]) ;
  fprintf (outFile, "RR overlaps_for %u\tlen %d\tnHit %d\tnMiss %d\tnCopy %d %d %d %d\n",
	   iy, y->len, y->nHit, y->nMiss, y->nCopy[0], y->nCopy[1], y->nCopy[2], y->nCopy[3]) ;
  int j, k ;	/* j is index in list of read 1 hits, k is index in list of read 2 hits */
  int xPos = 0 ;
  U32 *hx = x->hit ;
  for (j = 0 ; j < x->nHit ; ++j)
    { U32 hxx = *hx & TOPMASK ;
      xPos += x->dx[j] ;
      if (msIsCopy1 (rs->ms, hxx))
	{ U32 *hy = y->hit ;
	  int yPos = 0 ;
	  for (k = 0 ; k < y->nHit ; ++k, ++hy)
	    { U32 hyy = *hy & TOPMASK ;
	      yPos += y->dx[0] ;
	      if (hxx == hyy)
		{ fprintf (outFile, "RO\t%8x %5d %c\t",
			   hxx, rs->ms->depth[hxx], (*hx&TOPBIT) == (*hy&TOPBIT) ? '+' : '-') ;
		  fprintf (outFile, "%u %u %c\t",
			   ix, xPos, (*hx & TOPBIT) ? 'F' : 'R') ;
		  fprintf (outFile, "%u %u %c\n",
			   iy, yPos, (*hy & TOPBIT) ? 'F' : 'R') ;
		}
	    }
	}
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x78, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rdx
movq 0x8(%rdx), %rdx
imull 0x14(%rdx), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl -0x18(%rbp), %ecx
movq -0x10(%rbp), %rdx
movq 0x8(%rdx), %rdx
imull 0x14(%rdx), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq 0xd1f6(%rip), %rdi      # 0x10368
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x20(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x20(%rbp), %rax
movl 0x1c(%rax), %r9d
movq -0x20(%rbp), %rax
movl 0x24(%rax), %ebx
movq -0x20(%rbp), %rax
movl 0x28(%rax), %r11d
movq -0x20(%rbp), %rax
movl 0x2c(%rax), %r10d
movq -0x20(%rbp), %rax
movl 0x30(%rax), %eax
leaq 0x822e(%rip), %rsi      # 0xb3de
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x1120
movq 0xd199(%rip), %rdi      # 0x10368
movl -0x18(%rbp), %edx
movq -0x28(%rbp), %rax
movl (%rax), %ecx
movq -0x28(%rbp), %rax
movl 0x4(%rax), %r8d
movq -0x28(%rbp), %rax
movl 0x1c(%rax), %r9d
movq -0x28(%rbp), %rax
movl 0x24(%rax), %ebx
movq -0x28(%rbp), %rax
movl 0x28(%rax), %r11d
movq -0x28(%rbp), %rax
movl 0x2c(%rax), %r10d
movq -0x28(%rbp), %rax
movl 0x30(%rax), %eax
leaq 0x81d1(%rip), %rsi      # 0xb3de
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x1120
movl $0x0, -0x34(%rbp)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x20(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x33d5
movq -0x40(%rbp), %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x44(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x2c(%rbp), %rcx
movzwl (%rax,%rcx,2), %eax
addl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movl -0x44(%rbp), %esi
callq 0x30b0
cmpb $0x0, %al
je 0x33c5
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x50(%rbp)
movl $0x0, -0x54(%rbp)
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
movq -0x28(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x33c3
movq -0x50(%rbp), %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x58(%rbp)
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movzwl (%rax), %eax
addl -0x54(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x44(%rbp), %eax
cmpl -0x58(%rbp), %eax
jne 0x33a7
movq 0xd082(%rip), %rdi      # 0x10368
movl -0x44(%rbp), %edx
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq 0x30(%rax), %rax
movl -0x44(%rbp), %ecx
movzwl (%rax,%rcx,2), %ecx
movq -0x40(%rbp), %rax
movl (%rax), %esi
andl $0x80000000, %esi       # imm = 0x80000000
movq -0x50(%rbp), %rax
movl (%rax), %r9d
andl $0x80000000, %r9d       # imm = 0x80000000
movl $0x2d, %r8d
movl $0x2b, %eax
cmpl %r9d, %esi
cmovel %eax, %r8d
leaq 0x80ee(%rip), %rsi      # 0xb41c
movb $0x0, %al
callq 0x1120
movq 0xd02c(%rip), %rdi      # 0x10368
movl -0x14(%rbp), %edx
movl -0x34(%rbp), %ecx
movq -0x40(%rbp), %rax
movl (%rax), %esi
andl $0x80000000, %esi       # imm = 0x80000000
movl $0x52, %r8d
movl $0x46, %eax
cmpl $0x0, %esi
cmovnel %eax, %r8d
leaq 0x80c4(%rip), %rsi      # 0xb42b
movb $0x0, %al
callq 0x1120
movq 0xcff3(%rip), %rdi      # 0x10368
movl -0x18(%rbp), %edx
movl -0x54(%rbp), %ecx
movq -0x50(%rbp), %rax
movl (%rax), %esi
andl $0x80000000, %esi       # imm = 0x80000000
movl $0x52, %r8d
movl $0x46, %eax
cmpl $0x0, %esi
cmovnel %eax, %r8d
leaq 0x8095(%rip), %rsi      # 0xb435
movb $0x0, %al
callq 0x1120
jmp 0x33a9
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movq -0x50(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x50(%rbp)
jmp 0x32a4
jmp 0x33c5
jmp 0x33c7
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x323f
addq $0x78, %rsp
popq %rbx
popq %rbp
retq
nopl (%rax)