// File: /workspace/github_c_makefile_star2_O2/josch[P]stride/sheet.c
// Function: PrintPatterns
void PrintPatterns(PATTERN **Pat, int NPat, CHAIN **Chain, int Cn1, int Cn2)
{

  register int i;
  int D1, A1, D2, A2;


  for( i=0; i<NPat; i++ ) {
    if( !Pat[i]->ExistPattern ) continue;

    D1 = Pat[i]->Hb1->Dnr->D_Res;
    A1 = Pat[i]->Hb1->Acc->A_Res;
    D2 = Pat[i]->Hb2->Dnr->D_Res;
    A2 = Pat[i]->Hb2->Acc->A_Res;
    
    fprintf(stdout,"%3d %c %c ",
	    i,Pat[i]->Hb1->Dnr->Chain->Id,Pat[i]->Hb2->Dnr->Chain->Id);
    if( Pat[i]->Hb1->Dnr->Chain->Id == Chain[Cn1]->Id )
      fprintf(stdout,"%3s(%3d) %3s(%3d) %3s(%3d) %3s(%3d)",
	      Chain[Cn1]->Rsd[D1]->PDB_ResNumb,D1,
	      Chain[Cn2]->Rsd[A1]->PDB_ResNumb,A1,
	      Chain[Cn2]->Rsd[D2]->PDB_ResNumb,D2,
	      Chain[Cn1]->Rsd[A2]->PDB_ResNumb,A2);
    else
      fprintf(stdout,"%3s(%3d) %3s(%3d) %3s(%3d) %3s(%3d)",
	      Chain[Cn2]->Rsd[D1]->PDB_ResNumb,D1,
	      Chain[Cn1]->Rsd[A1]->PDB_ResNumb,A1,
	      Chain[Cn1]->Rsd[D2]->PDB_ResNumb,D2,
	      Chain[Cn2]->Rsd[A2]->PDB_ResNumb,A2);
    
    if( Pat[i]->Nei1 != NULL ) {
      D1 = Pat[i]->Nei1->Hb1->Dnr->D_Res;
      A1 = Pat[i]->Nei1->Hb1->Acc->A_Res;
      D2 = Pat[i]->Nei1->Hb2->Dnr->D_Res;
      A2 = Pat[i]->Nei1->Hb2->Acc->A_Res;
      
      fprintf(stdout," N1 %c %c ",
	      Pat[i]->Nei1->Hb1->Dnr->Chain->Id,Pat[i]->Nei1->Hb2->Dnr->Chain->Id);
      if( Pat[i]->Nei1->Hb1->Dnr->Chain->Id == Chain[Cn1]->Id )
	fprintf(stdout,"%3s(%3d) %3s(%3d) %3s(%3d) %3s(%3d) ",
		Chain[Cn1]->Rsd[D1]->PDB_ResNumb,D1,
		Chain[Cn2]->Rsd[A1]->PDB_ResNumb,A1,
		Chain[Cn2]->Rsd[D2]->PDB_ResNumb,D2,
		Chain[Cn1]->Rsd[A2]->PDB_ResNumb,A2);
      else
	fprintf(stdout,"%3s(%3d) %3s(%3d) %3s(%3d) %3s(%3d) ",
		Chain[Cn2]->Rsd[D1]->PDB_ResNumb,D1,
		Chain[Cn1]->Rsd[A1]->PDB_ResNumb,A1,
		Chain[Cn1]->Rsd[D2]->PDB_ResNumb,D2,
		Chain[Cn2]->Rsd[A2]->PDB_ResNumb,A2);
    }
    
    if( Pat[i]->Nei2 != NULL ) {
      D1 = Pat[i]->Nei2->Hb1->Dnr->D_Res;
      A1 = Pat[i]->Nei2->Hb1->Acc->A_Res;
      D2 = Pat[i]->Nei2->Hb2->Dnr->D_Res;
      A2 = Pat[i]->Nei2->Hb2->Acc->A_Res;
      fprintf(stdout," N2 %c %c ",
	      Pat[i]->Nei2->Hb1->Dnr->Chain->Id,Pat[i]->Nei2->Hb2->Dnr->Chain->Id);
      if( Pat[i]->Nei2->Hb1->Dnr->Chain->Id == Chain[Cn1]->Id )
	fprintf(stdout,"%3s(%3d) %3s(%3d) %3s(%3d) %3s(%3d) ",
		Chain[Cn1]->Rsd[D1]->PDB_ResNumb,D1,
		Chain[Cn2]->Rsd[A1]->PDB_ResNumb,A1,
		Chain[Cn2]->Rsd[D2]->PDB_ResNumb,D2,
		Chain[Cn1]->Rsd[A2]->PDB_ResNumb,A2);
      else
	fprintf(stdout,"%3s(%3d) %3s(%3d) %3s(%3d) %3s(%3d) ",
		Chain[Cn2]->Rsd[D1]->PDB_ResNumb,D1,
		Chain[Cn1]->Rsd[A1]->PDB_ResNumb,A1,
		Chain[Cn1]->Rsd[D2]->PDB_ResNumb,D2,
		Chain[Cn2]->Rsd[A2]->PDB_ResNumb,A2);
    }
    fprintf(stdout,"\n");
  }
  
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, 0x28(%rsp)
movq %rdi, %rbx
movslq %ecx, %rax
movq %rax, 0x20(%rsp)
movslq %r8d, %rax
movq %rax, 0x8(%rsp)
xorl %eax, %eax
testl %esi, %esi
cmovlel %eax, %esi
movq %rsi, 0x30(%rsp)
movq 0x19487(%rip), %r15     # 0x1ffd0
xorl %r13d, %r13d
movq %rdi, 0x18(%rsp)
cmpq %r13, 0x30(%rsp)
je 0x6e5b
movq (%rbx,%r13,8), %rax
cmpl $0x0, 0x20(%rax)
je 0x6e53
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq (%rcx), %rdx
movq 0x8(%rcx), %rcx
movslq 0x8(%rdx), %r12
movslq 0x8(%rcx), %rbp
movq (%rax), %rsi
movq 0x8(%rax), %rax
movslq 0x8(%rsi), %rcx
movq %rcx, 0x10(%rsp)
movslq 0x8(%rax), %r14
movq (%r15), %rdi
movq (%rdx), %rax
movsbl 0x40(%rax), %ecx
movq (%rsi), %rax
movsbl 0x40(%rax), %r8d
leaq 0x120bc(%rip), %rsi     # 0x18c69
movl %r13d, %edx
xorl %eax, %eax
callq 0x2160
movq (%rbx,%r13,8), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movb 0x40(%rax), %al
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rcx
movq (%rsi,%rcx,8), %rcx
cmpb 0x40(%rcx), %al
jne 0x6bed
movq 0x68(%rcx), %rax
leaq (%rax,%r12,8), %rdx
movq 0x8(%rsp), %rcx
movq (%rsi,%rcx,8), %rcx
jmp 0x6bfe
movq 0x8(%rsp), %rax
movq (%rsi,%rax,8), %rax
movq 0x68(%rax), %rax
leaq (%rax,%r12,8), %rdx
movq 0x193cb(%rip), %r15     # 0x1ffd0
movq (%r15), %rdi
movq (%rdx), %rdx
addq $0x4, %rdx
movq 0x68(%rcx), %rcx
movq (%rcx,%rbp,8), %r8
addq $0x4, %r8
movq 0x10(%rsp), %rbx
movq (%rcx,%rbx,8), %r10
addq $0x4, %r10
movq (%rax,%r14,8), %r11
addq $0x4, %r11
leaq 0x1203d(%rip), %rsi     # 0x18c74
movl %r12d, %ecx
movl %ebp, %r9d
xorl %eax, %eax
pushq %r14
pushq %r11
pushq %rbx
pushq %r10
callq 0x2160
addq $0x20, %rsp
movq 0x18(%rsp), %rbx
movq (%rbx,%r13,8), %rax
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x6d4e
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq (%rcx), %rdx
movq 0x8(%rcx), %rcx
movslq 0x8(%rdx), %rbp
movslq 0x8(%rcx), %r12
movq (%rax), %rcx
movq 0x8(%rax), %rax
movslq 0x8(%rcx), %rsi
movq %rsi, 0x10(%rsp)
movslq 0x8(%rax), %r14
movq (%r15), %rdi
movq (%rdx), %rax
movsbl 0x40(%rax), %edx
movq (%rcx), %rax
movsbl 0x40(%rax), %ecx
leaq 0x11ff1(%rip), %rsi     # 0x18c98
xorl %eax, %eax
callq 0x2160
movq (%rbx,%r13,8), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movb 0x40(%rax), %al
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rcx
movq (%rsi,%rcx,8), %rcx
cmpb 0x40(%rcx), %al
jne 0x6ce8
movq 0x68(%rcx), %rax
leaq (%rax,%rbp,8), %rdx
movq 0x8(%rsp), %rcx
movq (%rsi,%rcx,8), %rcx
jmp 0x6cf9
movq 0x8(%rsp), %rax
movq (%rsi,%rax,8), %rax
movq 0x68(%rax), %rax
leaq (%rax,%rbp,8), %rdx
movq 0x192d0(%rip), %r15     # 0x1ffd0
movq (%r15), %rdi
movq (%rdx), %rdx
addq $0x4, %rdx
movq 0x68(%rcx), %rcx
movq (%rcx,%r12,8), %r8
addq $0x4, %r8
movq 0x10(%rsp), %rbx
movq (%rcx,%rbx,8), %r10
addq $0x4, %r10
movq (%rax,%r14,8), %r11
addq $0x4, %r11
leaq 0x11f71(%rip), %rsi     # 0x18ca3
movl %ebp, %ecx
movl %r12d, %r9d
xorl %eax, %eax
pushq %r14
pushq %r11
pushq %rbx
pushq %r10
callq 0x2160
addq $0x20, %rsp
movq 0x18(%rsp), %rbx
movq (%rbx,%r13,8), %rax
movq 0x18(%rax), %rax
testq %rax, %rax
je 0x6e48
movq (%rax), %rcx
movq 0x8(%rax), %rax
movq (%rcx), %rdx
movq 0x8(%rcx), %rcx
movslq 0x8(%rdx), %rbp
movslq 0x8(%rcx), %r12
movq (%rax), %rcx
movq 0x8(%rax), %rax
movslq 0x8(%rcx), %rsi
movq %rsi, 0x10(%rsp)
movslq 0x8(%rax), %r14
movq (%r15), %rdi
movq (%rdx), %rax
movsbl 0x40(%rax), %edx
movq (%rcx), %rax
movsbl 0x40(%rax), %ecx
leaq 0x11f27(%rip), %rsi     # 0x18cc8
xorl %eax, %eax
callq 0x2160
movq (%rbx,%r13,8), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movq (%rax), %rax
movb 0x40(%rax), %al
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rcx
movq (%rsi,%rcx,8), %rcx
cmpb 0x40(%rcx), %al
jne 0x6de2
movq 0x68(%rcx), %rax
leaq (%rax,%rbp,8), %rdx
movq 0x8(%rsp), %rcx
movq (%rsi,%rcx,8), %rcx
jmp 0x6df3
movq 0x8(%rsp), %rax
movq (%rsi,%rax,8), %rax
movq 0x68(%rax), %rax
leaq (%rax,%rbp,8), %rdx
movq 0x191d6(%rip), %r15     # 0x1ffd0
movq (%r15), %rdi
movq (%rdx), %rdx
addq $0x4, %rdx
movq 0x68(%rcx), %rcx
movq (%rcx,%r12,8), %r8
addq $0x4, %r8
movq 0x10(%rsp), %rbx
movq (%rcx,%rbx,8), %r10
addq $0x4, %r10
movq (%rax,%r14,8), %r11
addq $0x4, %r11
leaq 0x11e77(%rip), %rsi     # 0x18ca3
movl %ebp, %ecx
movl %r12d, %r9d
xorl %eax, %eax
pushq %r14
pushq %r11
pushq %rbx
pushq %r10
callq 0x2160
addq $0x20, %rsp
movq 0x18(%rsp), %rbx
movq (%r15), %rsi
pushq $0xa
popq %rdi
callq 0x2110
incq %r13
jmp 0x6b51
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq