// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/bzip2-1.0.6/bzlib.c
// Function: add_pair_to_block
static
void add_pair_to_block ( EState* s )
{
   Int32 i;
   UChar ch = (UChar)(s->state_in_ch);
   for (i = 0; i < s->state_in_len; i++) {
      BZ_UPDATE_CRC( s->blockCRC, ch );
   }
   s->inUse[s->state_in_ch] = True;
   switch (s->state_in_len) {
      case 1:
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         break;
      case 2:
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         break;
      case 3:
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         break;
      default:
         s->inUse[s->state_in_len-4] = True;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = (UChar)ch; s->nblock++;
         s->block[s->nblock] = ((UChar)(s->state_in_len-4));
         s->nblock++;
         break;
   }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
movl 0x5c(%rax), %eax
movb %al, -0xd(%rsp)
movl $0x0, -0xc(%rsp)
movl -0xc(%rsp), %eax
movq -0x8(%rsp), %rcx
cmpl 0x60(%rcx), %eax
jge 0xcc4f0
movq -0x8(%rsp), %rax
movl 0x288(%rax), %ecx
shll $0x8, %ecx
movq -0x8(%rsp), %rax
movl 0x288(%rax), %eax
shrl $0x18, %eax
movzbl -0xd(%rsp), %edx
xorl %edx, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0xe89cb(%rip), %rax     # 0x1b4ea0
xorl (%rax,%rdx,4), %ecx
movq -0x8(%rsp), %rax
movl %ecx, 0x288(%rax)
movl -0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rsp)
jmp 0xcc499
movq -0x8(%rsp), %rax
movl 0x5c(%rax), %ecx
movb $0x1, 0x80(%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x60(%rax), %eax
movl %eax, -0x14(%rsp)
subl $0x1, %eax
je 0xcc530
jmp 0xcc513
movl -0x14(%rsp), %eax
subl $0x2, %eax
je 0xcc55c
jmp 0xcc51e
movl -0x14(%rsp), %eax
subl $0x3, %eax
je 0xcc5af
jmp 0xcc629
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
jmp 0xcc710
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
jmp 0xcc710
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
jmp 0xcc710
movq -0x8(%rsp), %rax
movq -0x8(%rsp), %rcx
movl 0x60(%rcx), %ecx
subl $0x4, %ecx
movslq %ecx, %rcx
movb $0x1, 0x80(%rax,%rcx)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movb -0xd(%rsp), %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movq -0x8(%rsp), %rax
movl 0x60(%rax), %eax
subl $0x4, %eax
movb %al, %dl
movq -0x8(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x8(%rsp), %rcx
movslq 0x6c(%rcx), %rcx
movb %dl, (%rax,%rcx)
movq -0x8(%rsp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)