// File: /workspace/github_c_makefile_star2_O3/mincebert[P]maketzx/maketzx.c
// Function: FindEdge2
dword FindEdge2(void)
{
  byte good=0;
  dword hp1=0,hp2=0,total=0;

  if (FindingPause)
     {
       hp1=FindEdge1();
       if (!blocktype)
          {
            if (!FindingPause && hp1>(int)(samprate/500))
	       {
	         mspause=(hp1/samprate)*1000;
	         hp2=hp1=0;
	         EndBlock=1;
	         return hp2;
	       }
            else return hp1;
          }
       hp2=FindEdge1();
       if (!FindingPause && hp2>(int)(samprate/500))
	  {
	    mspause=((hp2-hp1)/samprate)*1000;
	    hp2=hp1;
	    EndBlock=1;
	  }
     }
  else {
	 do {
	      hp1+=FindEdge1();
	      //
	      if (!blocktype)
	         {
	           if (!FindingPause && hp1>(int)(samprate/500))
		      {
		        mspause=(hp1/samprate)*1000;
		        hp2=hp1=0;
		        EndBlock=1;
		        return hp2;
		      }
	           else return hp1;
	         }
	      //
	      if (currpulse<2 && bit0.samples>3)
		 {
		   PushFilePointers();
		   FindEdge1();
		   if (currpulse<2) { RemoveFilePointers(); good=0; }
		   else {
			  PopFilePointers();
			  lseek(inpfile.handle,filepos,SEEK_SET);
			  inpfile.bufpoint=0;
			  good=1;
			}
		 }
	      else good=1;
	    }
	 while (!good && blocktype);
	 do {
	      hp2+=FindEdge1();
	      //
	      if (!FindingPause && hp2>(int)(samprate/500))
		 {
		   mspause=((hp2-hp1)/samprate)*1000;
		   hp2=hp1;
		   EndBlock=1;
		 }
	      //
	      if (currpulse<2 && bit0.samples>3)
		 {
		   PushFilePointers();
		   FindEdge1();
		   if (currpulse<2) { RemoveFilePointers(); good=0; }
		   else {
			  PopFilePointers();
			  lseek(inpfile.handle,filepos,SEEK_SET);
			  inpfile.bufpoint=0;
			  good=1;
			}
		 }
	      else good=1;
	    }
	  while (!good && blocktype);

       }
  total=(hp1+hp2);
  return total;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
cmpb $0x0, 0xcb9f(%rip)      # 0xf1ba
je 0x267f
callq 0x249f
movq %rax, %rbx
cmpb $0x0, 0x19095(%rip)     # 0x1b6c1
je 0x26e0
callq 0x249f
movq %rax, %r14
cmpb $0x0, 0xcb79(%rip)      # 0xf1ba
jne 0x287e
movss 0xcba1(%rip), %xmm0     # 0xf1f0
movaps %xmm0, %xmm1
divss 0x8d86(%rip), %xmm1     # 0xb3e0
cvttss2si %xmm1, %eax
cltq
cmpq %rax, %r14
jbe 0x287e
subq %rbx, %r14
js 0x2840
xorps %xmm1, %xmm1
cvtsi2ss %r14, %xmm1
jmp 0x2859
xorl %ebx, %ebx
movq %rbx, %r14
callq 0x249f
movq %rax, %rbx
addq %r14, %rbx
cmpb $0x0, 0x1902b(%rip)     # 0x1b6c1
je 0x26e0
cmpq $0x1, 0x19038(%rip)     # 0x1b6d8
ja 0x2749
movsd 0x190da(%rip), %xmm0    # 0x1b788
ucomisd 0x8bd2(%rip), %xmm0     # 0xb288
jbe 0x2749
callq 0x1659
callq 0x249f
cmpq $0x2, 0x1900a(%rip)     # 0x1b6d8
jae 0x2725
callq 0x178b
cmpb $0x0, 0x18fe5(%rip)     # 0x1b6c1
jne 0x2681
jmp 0x2749
cmpb $0x0, 0xcad3(%rip)      # 0xf1ba
jne 0x2881
movss 0xcafb(%rip), %xmm0     # 0xf1f0
movaps %xmm0, %xmm1
divss 0x8ce0(%rip), %xmm1     # 0xb3e0
cvttss2si %xmm1, %eax
cltq
cmpq %rax, %rbx
jbe 0x2881
testq %rbx, %rbx
js 0x288a
xorps %xmm1, %xmm1
cvtsi2ss %rbx, %xmm1
jmp 0x28a2
callq 0x16fa
movzbl 0xcb4f(%rip), %edi      # 0xf280
movq 0xcab0(%rip), %rsi      # 0xf1e8
xorl %edx, %edx
callq 0x10d0
movl $0x0, 0xcc37(%rip)      # 0xf380
xorl %r14d, %r14d
movq %r14, %r15
callq 0x249f
movq %rax, %r14
addq %r15, %r14
cmpb $0x0, 0xca59(%rip)      # 0xf1ba
jne 0x27ce
movss 0xca85(%rip), %xmm0     # 0xf1f0
movaps %xmm0, %xmm1
divss 0x8c6a(%rip), %xmm1     # 0xb3e0
cvttss2si %xmm1, %eax
cltq
cmpq %rax, %r14
jbe 0x27ce
subq %rbx, %r14
js 0x2790
xorps %xmm1, %xmm1
cvtsi2ss %r14, %xmm1
jmp 0x27a9
movq %r14, %rax
shrq %rax
andl $0x1, %r14d
orq %rax, %r14
xorps %xmm1, %xmm1
cvtsi2ss %r14, %xmm1
addss %xmm1, %xmm1
divss %xmm0, %xmm1
mulss 0x8c2f(%rip), %xmm1     # 0xb3e4
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd %xmm0, 0xca5c(%rip)     # 0xf220
movb $0x1, 0x18fed(%rip)     # 0x1b7b8
movq %rbx, %r14
cmpq $0x1, 0x18f02(%rip)     # 0x1b6d8
ja 0x287e
movsd 0x18fa4(%rip), %xmm0    # 0x1b788
ucomisd 0x8a9c(%rip), %xmm0     # 0xb288
jbe 0x287e
callq 0x1659
callq 0x249f
cmpq $0x2, 0x18ed4(%rip)     # 0x1b6d8
jae 0x281a
callq 0x178b
cmpb $0x0, 0x18eaf(%rip)     # 0x1b6c1
jne 0x274c
jmp 0x287e
callq 0x16fa
movzbl 0xca5a(%rip), %edi      # 0xf280
movq 0xc9bb(%rip), %rsi      # 0xf1e8
xorl %edx, %edx
callq 0x10d0
movl $0x0, 0xcb42(%rip)      # 0xf380
jmp 0x287e
movq %r14, %rax
shrq %rax
andl $0x1, %r14d
orq %rax, %r14
xorps %xmm1, %xmm1
cvtsi2ss %r14, %xmm1
addss %xmm1, %xmm1
divss %xmm0, %xmm1
mulss 0x8b7f(%rip), %xmm1     # 0xb3e4
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd %xmm0, 0xc9ac(%rip)     # 0xf220
movb $0x1, 0x18f3d(%rip)     # 0x1b7b8
movq %rbx, %r14
addq %r14, %rbx
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq
movq %rbx, %rax
shrq %rax
andl $0x1, %ebx
orq %rax, %rbx
xorps %xmm1, %xmm1
cvtsi2ss %rbx, %xmm1
addss %xmm1, %xmm1
divss %xmm0, %xmm1
mulss 0x8b36(%rip), %xmm1     # 0xb3e4
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd %xmm0, 0xc963(%rip)     # 0xf220
movb $0x1, 0x18ef4(%rip)     # 0x1b7b8
xorl %ebx, %ebx
jmp 0x2881