// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/fullgen.c
// Function: brille_sp_reko
int brille_sp_reko(PLANMAP map,KNOTENTYP *code,KANTE *anfangskante)
{
int i,j, l1, l2, l3, fuenfecke, vergleichsanfang, test;
KANTE *run, *startkante1, *startkante2, *startkante3, *anfang;
KNOTENTYP testcode[6];



l1=code[2]; l3=code[3]; l2=code[0]-l1-l3;

for (i=1; i<=map[0][0].name; i++) for (j=0;j<3; j++) { map[i][j].dummy=map[i][j].noright=0;
						       map[i][j].mininame=1; }

/* markieren der Brille: */

anfangskante->mininame=anfangskante->noright=anfangskante->invers->noright=1;
anfangskante->invers->mininame=l1;

for (i=1, run=anfangskante; i<code[0]; i++)
  { run=run->invers->next; 
    run->noright=run->invers->noright=1;
    run->mininame=i+1;
    run->dummy=run->prev->dummy=run->next->dummy=i;
    run->invers->mininame=i;
    if (i!=l1) run->next->mininame=aussen;
    i++;
    if (i<code[0])
      {
      run=run->invers->prev;
      run->noright=run->invers->noright=1;
      run->dummy=run->prev->dummy=run->next->dummy=i;
      run->mininame=i+1;
      run->invers->mininame=i;
      if (i!=l1) run->prev->mininame=aussen;
      }
  }

/*  reparieren: */ run->mininame=l1+l2;

if (l1%2) { startkante1=anfangskante->invers->prev; 
	    startkante2=anfangskante->invers->next->invers->next; }
   else   { startkante2=anfangskante->invers->prev; 
	    startkante1=anfangskante->invers->next->invers->next; }

if (code[0]%2) /* d.h. der knoten, bei dem run ist, ist gerade */
  { if (l3%2) startkante3=run->prev;
         else startkante3=run->next->invers->next; } 
  else 
  { if (l3%2) startkante3=run->next;
        else  startkante3=run->prev->invers->prev; }


vergleichsanfang=4;
anfang=suchestart_reko_sp( startkante1, &fuenfecke);
reko_patch_sp(anfang,testcode,fuenfecke);
if ((test=codecmp_kn(testcode,code+vergleichsanfang,fuenfecke))<0) return(0);
if (test>0) return(1);
vergleichsanfang+=fuenfecke;
anfang=suchestart_reko_sp( startkante2, &fuenfecke);
reko_patch_sp(anfang,testcode,fuenfecke);
if ((test=codecmp_kn(testcode,code+vergleichsanfang,fuenfecke))<0) return(0);
if (test>0) return(1);
vergleichsanfang+=fuenfecke;
anfang=suchestart_reko_sp( startkante3, &fuenfecke);
reko_patch_sp(anfang,testcode,fuenfecke);
if ((test=codecmp_kn(testcode,code+vergleichsanfang,fuenfecke))<0) return(0);
if (test==0) return(2);

return(1); 
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movzwl 0x4(%rax), %eax
movl %eax, -0x2c(%rbp)
movq -0x18(%rbp), %rax
movzwl 0x6(%rax), %eax
movl %eax, -0x34(%rbp)
movq -0x18(%rbp), %rax
movzwl (%rax), %eax
subl -0x2c(%rbp), %eax
subl -0x34(%rbp), %eax
movl %eax, -0x30(%rbp)
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x10(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
cmpl %ecx, %eax
jg 0xb188
movl $0x0, -0x28(%rbp)
cmpl $0x3, -0x28(%rbp)
jge 0xb178
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x90, %rcx, %rcx
addq %rcx, %rax
movslq -0x28(%rbp), %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movb $0x0, 0x12(%rax)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x90, %rcx, %rcx
addq %rcx, %rax
movslq -0x28(%rbp), %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
imulq $0x90, %rcx, %rcx
addq %rcx, %rax
movslq -0x28(%rbp), %rcx
imulq $0x30, %rcx, %rcx
addq %rcx, %rax
movw $0x1, 0x14(%rax)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0xb0fe
jmp 0xb17a
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xb0e4
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movb $0x1, 0x12(%rax)
movq -0x20(%rbp), %rax
movb $0x1, 0x12(%rax)
movq -0x20(%rbp), %rax
movw $0x1, 0x14(%rax)
movl -0x2c(%rbp), %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movw %cx, 0x14(%rax)
movl $0x1, -0x24(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movl -0x24(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl (%rcx), %ecx
cmpl %ecx, %eax
jge 0xb308
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movb $0x1, 0x12(%rax)
movq -0x48(%rbp), %rax
movb $0x1, 0x12(%rax)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x48(%rbp), %rax
movw %cx, 0x14(%rax)
movslq -0x24(%rbp), %rcx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x24(%rbp), %eax
movw %ax, %cx
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movw %cx, 0x14(%rax)
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
je 0xb25a
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movw $0x246, 0x14(%rax)      # imm = 0x246
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl (%rcx), %ecx
cmpl %ecx, %eax
jge 0xb2f8
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movb $0x1, 0x12(%rax)
movq -0x48(%rbp), %rax
movb $0x1, 0x12(%rax)
movslq -0x24(%rbp), %rcx
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x48(%rbp), %rax
movw %cx, 0x14(%rax)
movl -0x24(%rbp), %eax
movw %ax, %cx
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rax
movw %cx, 0x14(%rax)
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
je 0xb2f6
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movw $0x246, 0x14(%rax)      # imm = 0x246
jmp 0xb2f8
jmp 0xb2fa
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xb1c7
movl -0x2c(%rbp), %eax
addl -0x30(%rbp), %eax
movw %ax, %cx
movq -0x48(%rbp), %rax
movw %cx, 0x14(%rax)
movl -0x2c(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0xb353
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0xb37b
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movzwl (%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0xb3c3
movl -0x34(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0xb3ad
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0xb3c1
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0xb3f7
movl -0x34(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0xb3e1
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0xb3f5
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0xb3f7
movl $0x4, -0x3c(%rbp)
movq -0x50(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xaa70
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
leaq -0x74(%rbp), %rsi
movl -0x38(%rbp), %edx
callq 0xaf20
leaq -0x74(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x3c(%rbp), %rax
shlq %rax
addq %rax, %rsi
movl -0x38(%rbp), %edx
callq 0x2f30
movl %eax, -0x40(%rbp)
cmpl $0x0, %eax
jge 0xb44d
movl $0x0, -0x4(%rbp)
jmp 0xb52e
cmpl $0x0, -0x40(%rbp)
jle 0xb45f
movl $0x1, -0x4(%rbp)
jmp 0xb52e
movl -0x38(%rbp), %eax
addl -0x3c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movq -0x58(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xaa70
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
leaq -0x74(%rbp), %rsi
movl -0x38(%rbp), %edx
callq 0xaf20
leaq -0x74(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x3c(%rbp), %rax
shlq %rax
addq %rax, %rsi
movl -0x38(%rbp), %edx
callq 0x2f30
movl %eax, -0x40(%rbp)
cmpl $0x0, %eax
jge 0xb4b4
movl $0x0, -0x4(%rbp)
jmp 0xb52e
cmpl $0x0, -0x40(%rbp)
jle 0xb4c3
movl $0x1, -0x4(%rbp)
jmp 0xb52e
movl -0x38(%rbp), %eax
addl -0x3c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movq -0x60(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xaa70
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
leaq -0x74(%rbp), %rsi
movl -0x38(%rbp), %edx
callq 0xaf20
leaq -0x74(%rbp), %rdi
movq -0x18(%rbp), %rsi
movslq -0x3c(%rbp), %rax
shlq %rax
addq %rax, %rsi
movl -0x38(%rbp), %edx
callq 0x2f30
movl %eax, -0x40(%rbp)
cmpl $0x0, %eax
jge 0xb518
movl $0x0, -0x4(%rbp)
jmp 0xb52e
cmpl $0x0, -0x40(%rbp)
jne 0xb527
movl $0x2, -0x4(%rbp)
jmp 0xb52e
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)