// File: /workspace/github_c_makefile_star2_O0/felipelouza[P]egap/./blocks.h
// Function: skip128ext
static void skip128ext(solidBlock *this, bitfile *b, g_data *g)
{
  // we have already read the color at position this->beginsAt (we needed the bit value) 
  fseek(g->fmergeColor,((this->endsAt-this->beginsAt)-1)*sizeof(palette),SEEK_CUR);
  assert(ftell(g->fmergeColor)==this->endsAt*sizeof(palette));
  
  if(this->endsAt - this->beginsAt <= SMALLSOLID_LIMIT){
    // skip in bwt array 
    for (int col = 0; col < g->numBwt; col++) 
      if(this->smallOcc[col]>0) {
        g->inCnt[col] += this->smallOcc[col];    //skipping this
        fseek(g->bwf[col], this->smallOcc[col]*sizeof(symbol), SEEK_CUR);
      }
    // skip in new_merge array  
    for (int c = 0; c < g->sizeOfAlpha; ++c)
      if(this->smallOcc[g->numBwt+c]>0) {
        g->F[c]+= this->smallOcc[g->numBwt+c];
        if(c>0) {
          cwriter_skip(&g->fnewMergeColor[c],this->smallOcc[g->numBwt+c]);
          assert(cwriter_tell(&g->fnewMergeColor[c])==g->F[c]*sizeof(palette));
        }
      }
  } 
  else { 
    for (int col = 0; col < g->numBwt; col++) 
      if(this->occ[col]>0) {
        g->inCnt[col] += this->occ[col];        //skipping this
        fseek(g->bwf[col], this->occ[col]*sizeof(symbol), SEEK_CUR);
      }
    for (int c = 0; c < g->sizeOfAlpha; ++c) 
      if(this->occ[g->numBwt+c]>0) {
        g->F[c] += this->occ[g->numBwt+c];
        if(c>0) {
          cwriter_skip(&g->fnewMergeColor[c],this->occ[g->numBwt+c]);
          assert(cwriter_tell(&g->fnewMergeColor[c])==g->F[c]*sizeof(palette));
        }
      }
  }
  // skip in Bit array
  size_t oldt = bitfile_tell(b);
  bitfile_skip(b,(this->endsAt-this->beginsAt)-1);
  if(bitfile_tell(b)!=this->endsAt) 
    printf("oldt: %zu, tell: %zu, start %zu, end: %zu\n",oldt,bitfile_tell(b),this->beginsAt,this->endsAt);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x50c8(%rax), %rdi
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x30(%rsp), %rax
subq (%rax), %rsi
subq $0x1, %rsi
shlq $0x0, %rsi
movl $0x1, %edx
callq 0x2250
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x30(%rsp), %rcx
subq (%rcx), %rax
cmpq $0xffff, %rax           # imm = 0xFFFF
ja 0x117a3
movl $0x0, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x20(%rcx), %eax
jge 0x116d6
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x1c(%rsp), %rcx
movzwl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x116c4
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x1c(%rsp), %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %edx
movq 0x20(%rsp), %rax
movq 0x5118(%rax), %rax
movslq 0x1c(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x20(%rsp), %rax
movq 0x50a0(%rax), %rax
movslq 0x1c(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x1c(%rsp), %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %esi
shlq $0x0, %rsi
movl $0x1, %edx
callq 0x2250
jmp 0x116c6
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x11637
movl $0x0, 0x18(%rsp)
movl 0x18(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x38(%rcx), %eax
jge 0x1179e
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x18(%rsp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x1178c
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x18(%rsp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %edx
movq 0x20(%rsp), %rax
movq 0x5110(%rax), %rax
movslq 0x18(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
cmpl $0x0, 0x18(%rsp)
jle 0x1178a
movq 0x20(%rsp), %rax
movq 0x50d0(%rax), %rdi
movslq 0x18(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x18(%rsp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %esi
callq 0x7a20
jmp 0x1178c
jmp 0x1178e
movl 0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x18(%rsp)
jmp 0x116de
jmp 0x11908
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x20(%rcx), %eax
jge 0x11844
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x14(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x11832
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x20(%rsp), %rax
movq 0x5118(%rax), %rax
movslq 0x14(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x20(%rsp), %rax
movq 0x50a0(%rax), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
shlq $0x0, %rsi
movl $0x1, %edx
callq 0x2250
jmp 0x11834
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x117ab
movl $0x0, 0x10(%rsp)
movl 0x10(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x38(%rcx), %eax
jge 0x11906
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x10(%rsp), %ecx
movslq %ecx, %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x118f4
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x10(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movq 0x20(%rsp), %rax
movq 0x5110(%rax), %rax
movslq 0x10(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
cmpl $0x0, 0x10(%rsp)
jle 0x118f2
movq 0x20(%rsp), %rax
movq 0x50d0(%rax), %rdi
movslq 0x10(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x10(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
callq 0x7a20
jmp 0x118f4
jmp 0x118f6
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x1184c
jmp 0x11908
movq 0x28(%rsp), %rdi
callq 0x80d0
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x30(%rsp), %rax
subq (%rax), %rsi
subq $0x1, %rsi
callq 0x7f90
movq 0x28(%rsp), %rdi
callq 0x80d0
movq 0x30(%rsp), %rcx
cmpq 0x8(%rcx), %rax
je 0x11984
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
callq 0x80d0
movq (%rsp), %rsi
movq %rax, %rdx
movq 0x30(%rsp), %rax
movq (%rax), %rcx
movq 0x30(%rsp), %rax
movq 0x8(%rax), %r8
leaq 0x48fe(%rip), %rdi      # 0x1627b
movb $0x0, %al
callq 0x20f0
addq $0x38, %rsp
retq
nopl (%rax)