// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x18(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x10ad3
movq 0x18(%rsp), %rax
cmpq $0x0, 0x50c8(%rax)
je 0x10ad3
movq 0x18(%rsp), %rax
movq 0x50c8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x20(%rsp), %rax
subq (%rax), %rsi
shlq $0x0, %rsi
movl $0x1, %edx
callq 0x2250
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
subq (%rcx), %rax
cmpq $0xffff, %rax           # imm = 0xFFFF
ja 0x10c8f
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movq 0x18(%rsp), %rcx
cmpl 0x20(%rcx), %eax
jge 0x10ba4
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x14(%rsp), %rcx
movzwl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x10b92
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x14(%rsp), %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %edx
movq 0x18(%rsp), %rax
movq 0x5118(%rax), %rax
movslq 0x14(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x10b90
movq 0x18(%rsp), %rax
movq 0x50a0(%rax), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x14(%rsp), %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %esi
shlq $0x0, %rsi
movl $0x1, %edx
callq 0x2250
jmp 0x10b92
jmp 0x10b94
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x10af8
movl $0x0, 0x10(%rsp)
movl 0x10(%rsp), %eax
movq 0x18(%rsp), %rcx
cmpl 0x38(%rcx), %eax
jge 0x10c8a
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x10(%rsp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x10c78
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x10(%rsp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %edx
movq 0x18(%rsp), %rax
movq 0x5110(%rax), %rax
movslq 0x10(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x10c76
cmpl $0x0, 0x10(%rsp)
jle 0x10c76
movq 0x18(%rsp), %rax
cmpq $0x0, 0x50d0(%rax)
je 0x10c76
movq 0x18(%rsp), %rax
movq 0x50d0(%rax), %rdi
movslq 0x10(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x10(%rsp), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
movl %eax, %esi
callq 0x7a20
jmp 0x10c78
jmp 0x10c7a
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x10bac
jmp 0x10e1f
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq 0x18(%rsp), %rcx
cmpl 0x20(%rcx), %eax
jge 0x10d3d
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0xc(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x10d2b
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x18(%rsp), %rax
movq 0x5118(%rax), %rax
movslq 0xc(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x10d29
movq 0x18(%rsp), %rax
movq 0x50a0(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0xc(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
shlq $0x0, %rsi
movl $0x1, %edx
callq 0x2250
jmp 0x10d2b
jmp 0x10d2d
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x10c97
movl $0x0, 0x8(%rsp)
movl 0x8(%rsp), %eax
movq 0x18(%rsp), %rcx
cmpl 0x38(%rcx), %eax
jge 0x10e1d
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x8(%rsp), %ecx
movslq %ecx, %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x10e0b
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x8(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
movq 0x18(%rsp), %rax
movq 0x5110(%rax), %rax
movslq 0x8(%rsp), %rcx
addq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
testb $0x1, 0x69(%rax)
je 0x10e09
cmpl $0x0, 0x8(%rsp)
jle 0x10e09
movq 0x18(%rsp), %rax
cmpq $0x0, 0x50d0(%rax)
je 0x10e09
movq 0x18(%rsp), %rax
movq 0x50d0(%rax), %rdi
movslq 0x8(%rsp), %rax
shlq $0x5, %rax
addq %rax, %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rcx
movl 0x20(%rcx), %ecx
addl 0x8(%rsp), %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
callq 0x7a20
jmp 0x10e0b
jmp 0x10e0d
movl 0x8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x10d45
jmp 0x10e1f
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)