// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/bzip2-1.0.6/bzlib.c
// Function: copy_input_until_stop
static
Bool copy_input_until_stop ( EState* s )
{
   Bool progress_in = False;

   if (s->mode == BZ_M_RUNNING) {

      /*-- fast track the common case --*/
      while (True) {
         /*-- block full? --*/
         if (s->nblock >= s->nblockMAX) break;
         /*-- no input? --*/
         if (s->strm->avail_in == 0) break;
         progress_in = True;
         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
         s->strm->next_in++;
         s->strm->avail_in--;
         s->strm->total_in_lo32++;
         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
      }

   } else {

      /*-- general, uncommon case --*/
      while (True) {
         /*-- block full? --*/
         if (s->nblock >= s->nblockMAX) break;
         /*-- no input? --*/
         if (s->strm->avail_in == 0) break;
         /*-- flush/finish end? --*/
         if (s->avail_in_expect == 0) break;
         progress_in = True;
         ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); 
         s->strm->next_in++;
         s->strm->avail_in--;
         s->strm->total_in_lo32++;
         if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
         s->avail_in_expect--;
      }
   }
   return progress_in;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movb $0x0, 0x1f(%rsp)
movq 0x20(%rsp), %rax
cmpl $0x2, 0x8(%rax)
jne 0xcc26e
jmp 0xcc0bf
movq 0x20(%rsp), %rax
movl 0x6c(%rax), %eax
movq 0x20(%rsp), %rcx
cmpl 0x70(%rcx), %eax
jl 0xcc0d6
jmp 0xcc269
movq 0x20(%rsp), %rax
movq (%rax), %rax
cmpl $0x0, 0x8(%rax)
jne 0xcc0e9
jmp 0xcc269
movb $0x1, 0x1f(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, 0x18(%rsp)
movl 0x18(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x5c(%rcx), %eax
je 0xcc1b3
movq 0x20(%rsp), %rax
cmpl $0x1, 0x60(%rax)
jne 0xcc1b3
movq 0x20(%rsp), %rax
movl 0x5c(%rax), %eax
movb %al, 0x17(%rsp)
movq 0x20(%rsp), %rax
movl 0x288(%rax), %ecx
shll $0x8, %ecx
movq 0x20(%rsp), %rax
movl 0x288(%rax), %eax
shrl $0x18, %eax
movzbl 0x17(%rsp), %edx
xorl %edx, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0xe8d45(%rip), %rax     # 0x1b4ea0
xorl (%rax,%rdx,4), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x288(%rax)
movq 0x20(%rsp), %rax
movq 0x20(%rsp), %rcx
movl 0x5c(%rcx), %ecx
movb $0x1, 0x80(%rax,%rcx)
movb 0x17(%rsp), %dl
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rax
movq 0x20(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq 0x20(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movl 0x18(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x5c(%rax)
jmp 0xcc211
movl 0x18(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x5c(%rcx), %eax
jne 0xcc1cf
movq 0x20(%rsp), %rax
cmpl $0xff, 0x60(%rax)
jne 0xcc201
movq 0x20(%rsp), %rax
cmpl $0x100, 0x5c(%rax)      # imm = 0x100
jae 0xcc1e7
movq 0x20(%rsp), %rdi
callq 0xcc480
movl 0x18(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x5c(%rax)
movq 0x20(%rsp), %rax
movl $0x1, 0x60(%rax)
jmp 0xcc20f
movq 0x20(%rsp), %rax
movl 0x60(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x60(%rax)
jmp 0xcc211
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0x8(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
cmpl $0x0, 0xc(%rax)
jne 0xcc264
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
jmp 0xcc0bf
jmp 0xcc43a
jmp 0xcc270
movq 0x20(%rsp), %rax
movl 0x6c(%rax), %eax
movq 0x20(%rsp), %rcx
cmpl 0x70(%rcx), %eax
jl 0xcc287
jmp 0xcc438
movq 0x20(%rsp), %rax
movq (%rax), %rax
cmpl $0x0, 0x8(%rax)
jne 0xcc29a
jmp 0xcc438
movq 0x20(%rsp), %rax
cmpl $0x0, 0x10(%rax)
jne 0xcc2aa
jmp 0xcc438
movb $0x1, 0x1f(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rax
movzbl (%rax), %eax
movl %eax, 0x10(%rsp)
movl 0x10(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x5c(%rcx), %eax
je 0xcc374
movq 0x20(%rsp), %rax
cmpl $0x1, 0x60(%rax)
jne 0xcc374
movq 0x20(%rsp), %rax
movl 0x5c(%rax), %eax
movb %al, 0xf(%rsp)
movq 0x20(%rsp), %rax
movl 0x288(%rax), %ecx
shll $0x8, %ecx
movq 0x20(%rsp), %rax
movl 0x288(%rax), %eax
shrl $0x18, %eax
movzbl 0xf(%rsp), %edx
xorl %edx, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0xe8b84(%rip), %rax     # 0x1b4ea0
xorl (%rax,%rdx,4), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x288(%rax)
movq 0x20(%rsp), %rax
movq 0x20(%rsp), %rcx
movl 0x5c(%rcx), %ecx
movb $0x1, 0x80(%rax,%rcx)
movb 0xf(%rsp), %dl
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rax
movq 0x20(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq 0x20(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movl 0x10(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x5c(%rax)
jmp 0xcc3d2
movl 0x10(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x5c(%rcx), %eax
jne 0xcc390
movq 0x20(%rsp), %rax
cmpl $0xff, 0x60(%rax)
jne 0xcc3c2
movq 0x20(%rsp), %rax
cmpl $0x100, 0x5c(%rax)      # imm = 0x100
jae 0xcc3a8
movq 0x20(%rsp), %rdi
callq 0xcc480
movl 0x10(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x5c(%rax)
movq 0x20(%rsp), %rax
movl $0x1, 0x60(%rax)
jmp 0xcc3d0
movq 0x20(%rsp), %rax
movl 0x60(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x60(%rax)
jmp 0xcc3d2
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0x8(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
movq 0x20(%rsp), %rax
movq (%rax), %rax
cmpl $0x0, 0xc(%rax)
jne 0xcc425
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq 0x20(%rsp), %rax
movl 0x10(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x10(%rax)
jmp 0xcc270
jmp 0xcc43a
movb 0x1f(%rsp), %al
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)