// File: /workspace/github_c_makefile_star2_O1/felipelouza[P]egap/./blocks.h
// Function: skip
static void skip(solidBlock *this, g_data *g)
{
  if(g->extMem && g->fmergeColor!=NULL) {// this is because merge8 supports extMem but not extMem colors 
    fseek(g->fmergeColor,(this->endsAt-this->beginsAt)*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
        if(g->extMem) 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(g->extMem && c>0 && g->fnewMergeColor!=NULL) {
          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
        if(g->extMem) 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(g->extMem && c>0 && g->fnewMergeColor!=NULL) {
          cwriter_skip(&g->fnewMergeColor[c],this->occ[g->numBwt+c]);
          assert(cwriter_tell(&g->fnewMergeColor[c])==g->F[c]*sizeof(palette));
        }
      }
  }
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
cmpb $0x1, 0x69(%rsi)
jne 0xb99c
movq 0x50c8(%rbx), %rdi
testq %rdi, %rdi
je 0xb99c
movq 0x8(%r14), %rsi
subq (%r14), %rsi
movl $0x1, %edx
callq 0x2260
movq 0x8(%r14), %rcx
subq (%r14), %rcx
movl 0x20(%rbx), %eax
cmpq $0x10000, %rcx          # imm = 0x10000
jae 0xba6e
testl %eax, %eax
jle 0xba03
xorl %r15d, %r15d
movq 0x10(%r14), %rax
movzwl (%rax,%r15,2), %eax
testq %rax, %rax
je 0xb9f7
movq 0x5118(%rbx), %rcx
addq %rax, (%rcx,%r15,8)
cmpb $0x1, 0x69(%rbx)
jne 0xb9f7
movq 0x50a0(%rbx), %rax
movq (%rax,%r15,8), %rdi
movq 0x10(%r14), %rax
movzwl (%rax,%r15,2), %esi
movl $0x1, %edx
callq 0x2260
incq %r15
movslq 0x20(%rbx), %rax
cmpq %rax, %r15
jl 0xb9ba
cmpl $0x0, 0x38(%rbx)
jle 0xbb1e
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0x10(%r14), %rcx
movslq 0x20(%rbx), %rax
addq %r12, %rax
movzwl (%rcx,%rax,2), %ecx
testq %rcx, %rcx
je 0xba59
movq 0x5110(%rbx), %rdx
addq %rcx, (%rdx,%r12,8)
testq %r12, %r12
je 0xba59
cmpb $0x0, 0x69(%rbx)
je 0xba59
movq 0x50d0(%rbx), %rdi
testq %rdi, %rdi
je 0xba59
addq %r15, %rdi
movq 0x10(%r14), %rcx
movzwl (%rcx,%rax,2), %esi
callq 0x5f27
incq %r12
movslq 0x38(%rbx), %rax
addq $0x20, %r15
cmpq %rax, %r12
jl 0xba13
jmp 0xbb1e
testl %eax, %eax
jle 0xbabc
xorl %r15d, %r15d
movq 0x10(%r14), %rax
movq (%rax,%r15,8), %rax
testq %rax, %rax
je 0xbab0
movq 0x5118(%rbx), %rcx
addq %rax, (%rcx,%r15,8)
cmpb $0x1, 0x69(%rbx)
jne 0xbab0
movq 0x50a0(%rbx), %rax
movq (%rax,%r15,8), %rdi
movq 0x10(%r14), %rax
movq (%rax,%r15,8), %rsi
movl $0x1, %edx
callq 0x2260
incq %r15
movslq 0x20(%rbx), %rax
cmpq %rax, %r15
jl 0xba75
cmpl $0x0, 0x38(%rbx)
jle 0xbb1e
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0x10(%r14), %rcx
movslq 0x20(%rbx), %rax
addq %r12, %rax
movq (%rcx,%rax,8), %rcx
testq %rcx, %rcx
je 0xbb0e
movq 0x5110(%rbx), %rdx
addq %rcx, (%rdx,%r12,8)
testq %r12, %r12
je 0xbb0e
cmpb $0x0, 0x69(%rbx)
je 0xbb0e
movq 0x50d0(%rbx), %rdi
testq %rdi, %rdi
je 0xbb0e
addq %r15, %rdi
movq 0x10(%r14), %rcx
movq (%rcx,%rax,8), %rsi
callq 0x5f27
incq %r12
movslq 0x38(%rbx), %rax
addq $0x20, %r15
cmpq %rax, %r12
jl 0xbac8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq