// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/rdj-contfind-bottomup.c
// Function: gt_contfind_bottomup
GtUword gt_contfind_bottomup(Sequentialsuffixarrayreader *ssar,
                     bool show_progressbar, GtBitsequence *contained,
                     GtUword firstrevcompl,
                     GtUword read_length /* 0 = variable */)
{
  ContfindBUstate state;
  GtUword totallength;
  GT_UNUSED int retval;

  gt_assert(ssar != NULL);
  gt_assert(contained != NULL);

  state.contained = contained;
  state.encseq = gt_encseqSequentialsuffixarrayreader(ssar);
  totallength = gt_encseq_total_length(state.encseq);
  state.nofsequences = gt_encseq_num_of_sequences(state.encseq);

  if (read_length == 0)
  {
    prepare_sspbittab_and_shortest(totallength, &state);
  }
  else
  {
    state.shortest = read_length;
    state.spacing = read_length + 1;
  }

  state.show_progressbar = show_progressbar;
  state.csize            = 0;
  state.cmin             = 0;
  state.firstrevcompl    = firstrevcompl;
  state.counter          = 0;

  if (show_progressbar)
  {
    state.progress = 0;
    gt_progressbar_start(&(state.progress),
        (GtUint64)totallength);
  }

  retval = (read_length == 0)
      ? gt_esa_bottomup_rdjcv(ssar, &state, NULL)
      : gt_esa_bottomup_rdjce(ssar, &state, NULL);
  gt_assert(retval == 0);

  if (show_progressbar)
    gt_progressbar_stop();
  if (read_length == 0)
    gt_free(state.sspbittab);
  return state.counter;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdi, 0x20(%rsp)
testq %rdi, %rdi
je 0x1cccd0
testq %rdx, %rdx
je 0x1cccd5
movq %r8, %rbx
movq %rcx, %r14
movl %esi, %ebp
movq %rdx, 0x50(%rsp)
movq 0x20(%rsp), %rdi
callq 0x1ae549
movq %rax, 0x40(%rsp)
movq %rax, %rdi
callq 0xec1d8
movq %rax, %r13
movq %rax, %r12
movq 0x40(%rsp), %rdi
callq 0xec1e8
movq %rax, 0x80(%rsp)
testq %rbx, %rbx
movq %rbx, 0x98(%rsp)
movl %ebp, 0x94(%rsp)
je 0x1cb657
movq %rbx, 0x30(%rsp)
leaq 0x1(%rbx), %rax
movq %rax, 0x38(%rsp)
jmp 0x1cb750
movq %r14, 0x10(%rsp)
leaq 0x1(%r13), %rax
movq %r13, %r14
shrq $0x6, %r14
cmpq $0x40, %rax
leaq 0x8(,%r14,8), %rax
movl $0x8, %ebx
cmovaeq %rax, %rbx
leaq 0x1eae4a(%rip), %rdx    # 0x3b64cd
xorl %r15d, %r15d
xorl %edi, %edi
movq %rbx, %rsi
movl $0xb7, %ecx
callq 0x1094e6
movq %rax, 0x48(%rsp)
movq %rax, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x173a0
movq %r12, 0x30(%rsp)
cmpq $0x1, 0x80(%rsp)
je 0x1cb714
movl $0x1, %ebx
xorl %ebp, %ebp
movq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0xefce0
movq %rax, %r15
leaq -0x1(%rax), %rcx
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
shrq %cl, %rax
movq 0x48(%rsp), %rdx
movq %rcx, %rsi
shrq $0x6, %rsi
orq %rax, (%rdx,%rsi,8)
subq %rbp, %rcx
cmpq 0x30(%rsp), %rcx
jae 0x1cb6fe
movq %rcx, 0x30(%rsp)
incq %rbx
movq 0x80(%rsp), %rax
decq %rax
movq %r15, %rbp
cmpq %rax, %rbx
jbe 0x1cb6be
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movl %r12d, %ecx
shrq %cl, %rax
movq 0x48(%rsp), %rcx
orq %rax, (%rcx,%r14,8)
subq %r15, %r13
cmpq 0x30(%rsp), %r13
movq 0x98(%rsp), %rbx
movl 0x94(%rsp), %ebp
movq 0x10(%rsp), %r14
jae 0x1cb750
movq %r13, 0x30(%rsp)
movb %bpl, 0x68(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x58(%rsp)
movq %r14, 0x78(%rsp)
movq $0x0, 0x88(%rsp)
testb %bpl, %bpl
je 0x1cb787
leaq 0x70(%rsp), %rdi
movq $0x0, (%rdi)
movq %r12, %rsi
callq 0x110c6c
testq %rbx, %rbx
je 0x1cc05f
leaq 0x1eacc0(%rip), %rsi    # 0x3b6457
movl $0x18, %edi
movl $0x5f, %edx
callq 0x1092b2
movq %rax, %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq 0x8(%rax), %rsi
testq %rsi, %rsi
jne 0x1cb7da
jne 0x1ccd07
movq (%r15), %rdi
leaq 0x20(%rsi), %rdx
callq 0x1cce5f
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
movq (%r15), %rax
testq %rax, %rax
je 0x1cccdf
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rdx
incq %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rdx,8)
movq %rcx, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rdx,8)
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x1ae599
movq %rax, 0xa0(%rsp)
testq %rax, %rax
je 0x1cca17
movq $0x0, 0x18(%rsp)
xorl %r12d, %r12d
movq $0x0, 0x28(%rsp)
xorl %ebp, %ebp
xorl %r10d, %r10d
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
cmpb $0x1, 0x40(%rbx)
jne 0x1cb89a
movq %r10, 0x10(%rsp)
movq (%rbx), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0xf(%rsp), %rdi
callq 0x1ccd77
testl %eax, %eax
je 0x1cb914
movzbl 0xf(%rsp), %ecx
cmpq $0xff, %rcx
movq 0x10(%rsp), %r10
je 0x1cb947
xorl %eax, %eax
movq %rcx, %r13
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
jmp 0x1cbb24
movq (%rbx), %rcx
movq 0x20(%rbx), %rax
cmpq 0x10(%rbx), %rax
jae 0x1cb8f4
movq 0x60(%rcx), %rdx
leaq 0x1(%rax), %rsi
movq %rsi, 0x20(%rbx)
movzbl (%rdx,%rax), %r13d
movb %r13b, 0xf(%rsp)
cmpq $0xff, %r13
jne 0x1cb8ed
movq 0x68(%rcx), %rcx
movq 0x28(%rbx), %rdx
movq %rdx, %rsi
shlq $0x4, %rsi
cmpq %rax, (%rcx,%rsi)
jne 0x1cccee
addq %rsi, %rcx
incq %rdx
movq %rdx, 0x28(%rbx)
movq 0x8(%rcx), %r13
movb $0x1, %al
jmp 0x1cbb29
movq 0x58(%rcx), %rax
movq 0x18(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%rbx)
movq (%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
xorl %eax, %eax
jmp 0x1cbb29
movq (%rbx), %r14
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1cb985
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jae 0x1cb9ad
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
jmp 0x1cbab2
movq (%rbx), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0xa8(%rsp), %rdi
callq 0x1ccde8
testl %eax, %eax
je 0x1cba0a
xorl %eax, %eax
movq 0xb0(%rsp), %r13
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
jmp 0x1cbb24
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jae 0x1cba33
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
jmp 0x1cbaf2
movq 0xa8(%r14), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0xa0(%r14)
movq 0xb0(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cba90
xorl %edi, %edi
leaq 0x197264(%rip), %rsi    # 0x362c4e
leaq 0x22067e(%rip), %rdx    # 0x3ec06f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r10b
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
jmp 0x1cbab2
xorl %edi, %edi
leaq 0x19718f(%rip), %rsi    # 0x362ba2
leaq 0x1eaa3d(%rip), %rdx    # 0x3b6457
movl $0x9b, %ecx
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r10b
movl $0x6, %eax
jmp 0x1cb88b
movq 0x90(%r14), %rdi
movq 0x98(%r14), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0x88(%r14)
movq 0x98(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cbad0
xorl %edi, %edi
leaq 0x1971db(%rip), %rsi    # 0x362c4e
leaq 0x1975f5(%rip), %rdx    # 0x36306f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r10b
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
jmp 0x1cbaf2
movl $0x0, 0xa4(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
je 0x1cc036
movq 0xa8(%r14), %rax
movl 0xa4(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0xa4(%r14)
movq (%rax,%rcx,8), %rax
jmp 0x1cbb0d
movl $0x0, 0x8c(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
je 0x1cc036
movq 0x90(%r14), %rax
movl 0x8c(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0x8c(%r14)
movl (%rax,%rcx,4), %eax
movq %rax, 0x28(%rsp)
xorl %eax, %eax
movb $0x1, %bl
testb %bl, %bl
je 0x1cbb1f
movl $0x6, %eax
movq 0x20(%rsp), %rbx
testl %eax, %eax
sete %al
testb %al, %al
je 0x1cca30
movq (%rbx), %r14
cmpb $0x1, 0x40(%rbx)
jne 0x1cbbc4
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1cbbe2
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jb 0x1cbc7a
movq %r10, 0x10(%rsp)
movq 0xa8(%r14), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0xa0(%r14)
movq 0xb0(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cbc58
xorl %edi, %edi
leaq 0x1970aa(%rip), %rsi    # 0x362c4e
leaq 0x2204c4(%rip), %rdx    # 0x3ec06f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r10b
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
jmp 0x1cbc7a
movq 0x58(%r14), %rax
movq 0x18(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%rbx)
movq (%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
jmp 0x1cbce9
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jb 0x1cbcba
movq %r10, 0x10(%rsp)
movq 0x90(%r14), %rdi
movq 0x98(%r14), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0x88(%r14)
movq 0x98(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cbc98
xorl %edi, %edi
leaq 0x197013(%rip), %rsi    # 0x362c4e
leaq 0x19742d(%rip), %rdx    # 0x36306f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r10b
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
jmp 0x1cbcba
movl $0x0, 0xa4(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
je 0x1cc012
movq 0xa8(%r14), %rax
movl 0xa4(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0xa4(%r14)
movq (%rax,%rcx,8), %rax
jmp 0x1cbcd5
movl $0x0, 0x8c(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%rsp), %r10
je 0x1cc012
movq 0x90(%r14), %rax
movl 0x8c(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0x8c(%r14)
movl (%rax,%rcx,4), %eax
movq %rax, 0x18(%rsp)
movb $0x1, %bl
testb %bl, %bl
movq 0x20(%rsp), %rbx
je 0x1cca30
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1cccbc
movq (%r15), %rdi
leaq (%rax,%rax,2), %rax
movq -0x18(%rdi,%rax,8), %rax
cmpq %rax, %r13
ja 0x1cbd94
cmpq %rax, 0x30(%rsp)
jne 0x1cbd88
movq 0x18(%rsp), %rax
xorl %edx, %edx
divq 0x38(%rsp)
testq %rdx, %rdx
jne 0x1cbd88
movq 0x50(%rsp), %rdx
movq 0x78(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x80(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %r9, %r8
shrq %cl, %r8
testq %rsi, %r8
jne 0x1cbd6a
orq %rsi, %r8
movq %r8, (%rdx,%rax,8)
incq 0x88(%rsp)
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1cbd7b
cmpq 0x58(%rsp), %rcx
jae 0x1cbd80
movq %rcx, 0x58(%rsp)
incq %rax
movq %rax, 0x60(%rsp)
cmpb $0x1, 0x68(%rsp)
jne 0x1cbd94
incq 0x70(%rsp)
testq %rbp, %rbp
jne 0x1cccb7
testb $0x1, %r10b
je 0x1cbdaa
xorl %ebp, %ebp
jmp 0x1cbf03
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rax
movq -0x18(%rdi,%rax,8), %r8
cmpq %r8, %r13
jae 0x1cbe48
movq 0x50(%rsp), %rax
leaq -0x30(%rdi), %rdx
leaq -0x18(%rdi), %rsi
leaq -0x1(%rcx), %r8
movq %r8, 0x10(%r15)
shlq $0x3, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rdi,%rcx), %rbp
addq $-0x18, %rbp
movq %r12, 0x10(%rbp)
cmpq (%rdx,%rcx), %r13
ja 0x1cbe2b
movq 0x30(%rsp), %rcx
cmpq (%rbp), %rcx
jne 0x1cbe20
cmpq $0x0, 0x60(%rsp)
je 0x1cbe20
movq 0x58(%rsp), %rcx
movq %r9, %r8
shrq %cl, %r8
notq %r8
shrq $0x6, %rcx
andq %r8, (%rax,%rcx,8)
decq 0x88(%rsp)
movq $0x0, 0x60(%rsp)
xorl %ebp, %ebp
testb $0x1, %r10b
jne 0x1cbf03
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %r8
movq (%rsi,%r8,8), %r8
cmpq %r8, %r13
jb 0x1cbdcd
jmp 0x1cbe4a
xorl %ebp, %ebp
cmpq %r8, %r13
jbe 0x1cbf03
testq %rbp, %rbp
je 0x1cbf23
movq (%rbp), %rbx
movq 0x8(%rbp), %r14
movq 0x8(%r15), %rsi
cmpq %rsi, %rcx
jb 0x1cbe94
jne 0x1ccd11
movq %r10, %rbp
leaq 0x20(%rsi), %rdx
callq 0x1cce5f
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq %rbp, %r10
movq (%r15), %rax
testq %rax, %rax
je 0x1ccce9
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rdx
movq %r13, (%rax,%rdx,8)
movq %r14, 0x8(%rax,%rdx,8)
incq %rcx
movq %rcx, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rdx,8)
cmpq %rbx, 0x30(%rsp)
jne 0x1cbef3
cmpq $0x0, 0x60(%rsp)
je 0x1cbef3
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
movq %r9, %rdx
shrq %cl, %rdx
notq %rdx
shrq $0x6, %rcx
andq %rdx, (%rax,%rcx,8)
decq 0x88(%rsp)
movq $0x0, 0x60(%rsp)
xorl %ebp, %ebp
movq 0x20(%rsp), %rbx
incq %r12
testb $0x1, %r10b
jne 0x1cca30
cmpq 0xa0(%rsp), %r12
jb 0x1cb847
jmp 0x1cca30
movq 0x8(%r15), %rsi
cmpq %rsi, %rcx
jb 0x1cbf53
jne 0x1ccd25
movq %r10, %r14
leaq 0x20(%rsi), %rdx
callq 0x1cce5f
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq %r14, %r10
movq (%r15), %rax
testq %rax, %rax
je 0x1ccd02
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rdx
movq %r13, (%rax,%rdx,8)
movq %r12, 0x8(%rax,%rdx,8)
incq %rcx
movq %rcx, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rdx,8)
cmpq %r13, 0x30(%rsp)
jne 0x1cbffd
movq 0x18(%rsp), %rax
xorl %edx, %edx
divq 0x38(%rsp)
testq %rdx, %rdx
jne 0x1cbffd
movq 0x50(%rsp), %rdx
movq 0x78(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x80(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %r9, %rdi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1cbfdf
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x88(%rsp)
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1cbff0
cmpq 0x58(%rsp), %rcx
jae 0x1cbff5
movq %rcx, 0x58(%rsp)
incq %rax
movq %rax, 0x60(%rsp)
cmpb $0x1, 0x68(%rsp)
jne 0x1cbda3
incq 0x70(%rsp)
jmp 0x1cbda3
xorl %ebx, %ebx
xorl %edi, %edi
leaq 0x19703a(%rip), %rsi    # 0x363057
xorl %eax, %eax
callq 0x1019cf
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movb $0x1, %r10b
jmp 0x1cbcdc
xorl %ebx, %ebx
xorl %edi, %edi
leaq 0x197016(%rip), %rsi    # 0x363057
xorl %eax, %eax
callq 0x1019cf
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movb $0x1, %r10b
movl $0x6, %eax
jmp 0x1cbb16
leaq 0x1ea390(%rip), %rsi    # 0x3b63f6
movl $0x18, %edi
movl $0x5f, %edx
callq 0x1092b2
movq %rax, %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq 0x8(%rax), %rsi
testq %rsi, %rsi
jne 0x1cc0a9
jne 0x1ccd20
movq (%r15), %rdi
leaq 0x20(%rsi), %rdx
callq 0x1ccd34
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
movq (%r15), %rax
testq %rax, %rax
je 0x1cccf8
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rdx
incq %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rdx,8)
movq %rcx, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rdx,8)
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x1ae599
movq %rax, 0xa0(%rsp)
testq %rax, %rax
je 0x1ccb10
movq $0x0, 0x18(%rsp)
xorl %r13d, %r13d
movq $0x0, 0x28(%rsp)
xorl %ebp, %ebp
xorl %r11d, %r11d
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
cmpb $0x1, 0x40(%rbx)
jne 0x1cc169
movq %r11, 0x10(%rsp)
movq (%rbx), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0xf(%rsp), %rdi
callq 0x1ccd77
testl %eax, %eax
je 0x1cc1e3
movzbl 0xf(%rsp), %ecx
cmpq $0xff, %rcx
movq 0x10(%rsp), %r11
je 0x1cc216
xorl %eax, %eax
movq %rcx, %r12
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
jmp 0x1cc3f3
movq (%rbx), %rcx
movq 0x20(%rbx), %rax
cmpq 0x10(%rbx), %rax
jae 0x1cc1c3
movq 0x60(%rcx), %rdx
leaq 0x1(%rax), %rsi
movq %rsi, 0x20(%rbx)
movzbl (%rdx,%rax), %r12d
movb %r12b, 0xf(%rsp)
cmpq $0xff, %r12
jne 0x1cc1bc
movq 0x68(%rcx), %rcx
movq 0x28(%rbx), %rdx
movq %rdx, %rsi
shlq $0x4, %rsi
cmpq %rax, (%rcx,%rsi)
jne 0x1ccd0c
addq %rsi, %rcx
incq %rdx
movq %rdx, 0x28(%rbx)
movq 0x8(%rcx), %r12
movb $0x1, %al
jmp 0x1cc3f8
movq 0x58(%rcx), %rax
movq 0x18(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%rbx)
movq (%rax,%rcx,8), %rax
movq %rax, 0x28(%rsp)
xorl %eax, %eax
jmp 0x1cc3f8
movq (%rbx), %r14
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1cc254
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jae 0x1cc27c
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
jmp 0x1cc381
movq (%rbx), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0xa8(%rsp), %rdi
callq 0x1ccde8
testl %eax, %eax
je 0x1cc2d9
xorl %eax, %eax
movq 0xb0(%rsp), %r12
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
jmp 0x1cc3f3
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jae 0x1cc302
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
jmp 0x1cc3c1
movq 0xa8(%r14), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0xa0(%r14)
movq 0xb0(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cc35f
xorl %edi, %edi
leaq 0x196995(%rip), %rsi    # 0x362c4e
leaq 0x21fdaf(%rip), %rdx    # 0x3ec06f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r11b
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
jmp 0x1cc381
xorl %edi, %edi
leaq 0x1968c0(%rip), %rsi    # 0x362ba2
leaq 0x1ea10d(%rip), %rdx    # 0x3b63f6
movl $0x9b, %ecx
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r11b
movl $0x6, %eax
jmp 0x1cc15a
movq 0x90(%r14), %rdi
movq 0x98(%r14), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0x88(%r14)
movq 0x98(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cc39f
xorl %edi, %edi
leaq 0x19690c(%rip), %rsi    # 0x362c4e
leaq 0x196d26(%rip), %rdx    # 0x36306f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r11b
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
jmp 0x1cc3c1
movl $0x0, 0xa4(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
je 0x1cc9ee
movq 0xa8(%r14), %rax
movl 0xa4(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0xa4(%r14)
movq (%rax,%rcx,8), %rax
jmp 0x1cc3dc
movl $0x0, 0x8c(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
je 0x1cc9ee
movq 0x90(%r14), %rax
movl 0x8c(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0x8c(%r14)
movl (%rax,%rcx,4), %eax
movq %rax, 0x28(%rsp)
xorl %eax, %eax
movb $0x1, %bl
testb %bl, %bl
je 0x1cc3ee
movl $0x6, %eax
movq 0x20(%rsp), %rbx
testl %eax, %eax
sete %al
testb %al, %al
je 0x1ccb29
movq (%rbx), %r14
cmpb $0x1, 0x40(%rbx)
jne 0x1cc493
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1cc4b1
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jb 0x1cc549
movq %r11, 0x10(%rsp)
movq 0xa8(%r14), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0xa0(%r14)
movq 0xb0(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cc527
xorl %edi, %edi
leaq 0x1967db(%rip), %rsi    # 0x362c4e
leaq 0x21fbf5(%rip), %rdx    # 0x3ec06f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r11b
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
jmp 0x1cc549
movq 0x58(%r14), %rax
movq 0x18(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%rbx)
movq (%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
jmp 0x1cc5b8
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jb 0x1cc589
movq %r11, 0x10(%rsp)
movq 0x90(%r14), %rdi
movq 0x98(%r14), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0x88(%r14)
movq 0x98(%r14), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1cc567
xorl %edi, %edi
leaq 0x196744(%rip), %rsi    # 0x362c4e
leaq 0x196b5e(%rip), %rdx    # 0x36306f
xorl %eax, %eax
callq 0x1019cf
movb $0x1, %r11b
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
jmp 0x1cc589
movl $0x0, 0xa4(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
je 0x1cc9ca
movq 0xa8(%r14), %rax
movl 0xa4(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0xa4(%r14)
movq (%rax,%rcx,8), %rax
jmp 0x1cc5a4
movl $0x0, 0x8c(%r14)
testl %ebx, %ebx
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%rsp), %r11
je 0x1cc9ca
movq 0x90(%r14), %rax
movl 0x8c(%r14), %ecx
leal 0x1(%rcx), %edx
movl %edx, 0x8c(%r14)
movl (%rax,%rcx,4), %eax
movq %rax, 0x18(%rsp)
movb $0x1, %bl
testb %bl, %bl
movq 0x20(%rsp), %rbx
je 0x1ccb29
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1cccc6
movq (%r15), %rcx
leaq (%rax,%rax,2), %rax
movq -0x18(%rcx,%rax,8), %rax
cmpq %rax, %r12
ja 0x1cc6be
cmpq %rax, 0x30(%rsp)
ja 0x1cc6b2
cmpq $0x0, 0x18(%rsp)
je 0x1cc60e
movq 0x48(%rsp), %rdx
movq 0x18(%rsp), %rcx
decq %rcx
movq %r10, %rsi
shrq %cl, %rsi
shrq $0x6, %rcx
testq %rsi, (%rdx,%rcx,8)
je 0x1cc6b2
movq 0x48(%rsp), %rdx
addq 0x18(%rsp), %rax
movq %r10, %rsi
movl %eax, %ecx
shrq %cl, %rsi
shrq $0x6, %rax
testq %rsi, (%rdx,%rax,8)
je 0x1cc6b2
movq %r11, %r14
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xefc48
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x50(%rsp), %rdx
movq 0x78(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x80(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %r10, %rdi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1cc691
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x88(%rsp)
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1cc6a2
cmpq 0x58(%rsp), %rcx
jae 0x1cc6a7
movq %rcx, 0x58(%rsp)
incq %rax
movq %rax, 0x60(%rsp)
movq %r14, %r11
cmpb $0x1, 0x68(%rsp)
jne 0x1cc6be
incq 0x70(%rsp)
testq %rbp, %rbp
jne 0x1ccccb
testb $0x1, %r11b
je 0x1cc6d4
xorl %ebp, %ebp
jmp 0x1cc85f
movq (%r15), %rdi
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rax
movq -0x18(%rdi,%rax,8), %r9
cmpq %r9, %r12
jae 0x1cc785
leaq 0x1(%r13), %rax
movq 0x50(%rsp), %rdx
leaq -0x30(%rdi), %rsi
leaq -0x18(%rdi), %r8
leaq -0x1(%rcx), %r9
movq %r9, 0x10(%r15)
shlq $0x3, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rdi,%rcx), %rbp
addq $-0x18, %rbp
movq %r13, 0x10(%rbp)
cmpq (%rsi,%rcx), %r12
ja 0x1cc76e
movq 0x30(%rsp), %rcx
cmpq (%rbp), %rcx
ja 0x1cc763
movq %rax, %r9
subq 0x8(%rbp), %r9
movq 0x60(%rsp), %rcx
cmpq %r9, %rcx
jne 0x1cc763
testq %rcx, %rcx
je 0x1cccc1
movq 0x58(%rsp), %rcx
movq %r10, %r9
shrq %cl, %r9
notq %r9
shrq $0x6, %rcx
andq %r9, (%rdx,%rcx,8)
decq 0x88(%rsp)
movq $0x0, 0x60(%rsp)
xorl %ebp, %ebp
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %r9
movq (%r8,%r9,8), %r9
cmpq %r9, %r12
jb 0x1cc6fe
jmp 0x1cc787
xorl %ebp, %ebp
cmpq %r9, %r12
jbe 0x1cc85f
testq %rbp, %rbp
je 0x1cc87f
movq (%rbp), %r14
movq 0x8(%rbp), %r9
movq 0x10(%rbp), %rbx
movq 0x8(%r15), %rsi
cmpq %rsi, %rcx
jb 0x1cc7df
movq %r9, 0x10(%rsp)
jne 0x1ccd1b
movq %r11, %rbp
leaq 0x20(%rsi), %rdx
callq 0x1ccd34
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq %rbp, %r11
movq 0x10(%rsp), %r9
movq (%r15), %rax
testq %rax, %rax
je 0x1cccf3
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rdx
movq %r12, (%rax,%rdx,8)
movq %r9, 0x8(%rax,%rdx,8)
incq %rcx
movq %rcx, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rdx,8)
cmpq %r14, 0x30(%rsp)
ja 0x1cc84f
subq %r9, %rbx
incq %rbx
movq 0x60(%rsp), %rax
cmpq %rbx, %rax
jne 0x1cc84f
testq %rax, %rax
je 0x1ccd2f
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
movq %r10, %rdx
shrq %cl, %rdx
notq %rdx
shrq $0x6, %rcx
andq %rdx, (%rax,%rcx,8)
decq 0x88(%rsp)
movq $0x0, 0x60(%rsp)
xorl %ebp, %ebp
movq 0x20(%rsp), %rbx
incq %r13
testb $0x1, %r11b
jne 0x1ccb29
cmpq 0xa0(%rsp), %r13
jb 0x1cc116
jmp 0x1ccb29
movq 0x8(%r15), %rsi
cmpq %rsi, %rcx
jb 0x1cc8af
jne 0x1ccd2a
movq %r11, %r14
leaq 0x20(%rsi), %rdx
callq 0x1ccd34
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq %r14, %r11
movq (%r15), %rax
testq %rax, %rax
je 0x1ccd16
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rdx
movq %r12, (%rax,%rdx,8)
movq %r13, 0x8(%rax,%rdx,8)
incq %rcx
movq %rcx, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rdx,8)
cmpq %r12, 0x30(%rsp)
ja 0x1cc9b5
cmpq $0x0, 0x18(%rsp)
je 0x1cc910
movq 0x48(%rsp), %rax
movq 0x18(%rsp), %rcx
decq %rcx
movq %r10, %rdx
shrq %cl, %rdx
shrq $0x6, %rcx
testq %rdx, (%rax,%rcx,8)
je 0x1cc9b5
movq 0x48(%rsp), %rax
movq 0x18(%rsp), %rcx
addq %r12, %rcx
movq %r10, %rdx
shrq %cl, %rdx
shrq $0x6, %rcx
testq %rdx, (%rax,%rcx,8)
je 0x1cc9b5
movq %r11, %r14
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xefc48
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x50(%rsp), %rdx
movq 0x78(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x80(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %r10, %rdi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1cc994
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x88(%rsp)
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1cc9a5
cmpq 0x58(%rsp), %rcx
jae 0x1cc9aa
movq %rcx, 0x58(%rsp)
incq %rax
movq %rax, 0x60(%rsp)
movq %r14, %r11
cmpb $0x1, 0x68(%rsp)
jne 0x1cc6cd
incq 0x70(%rsp)
jmp 0x1cc6cd
xorl %ebx, %ebx
xorl %edi, %edi
leaq 0x196682(%rip), %rsi    # 0x363057
xorl %eax, %eax
callq 0x1019cf
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movb $0x1, %r11b
jmp 0x1cc5ab
xorl %ebx, %ebx
xorl %edi, %edi
leaq 0x19665e(%rip), %rsi    # 0x363057
xorl %eax, %eax
callq 0x1019cf
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movb $0x1, %r11b
movl $0x6, %eax
jmp 0x1cc3e5
xorl %r12d, %r12d
xorl %r10d, %r10d
movq $0x0, 0x28(%rsp)
movabsq $-0x8000000000000000, %r9 # imm = 0x8000000000000000
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1ccce4
testb $0x1, %r10b
movq 0x98(%rsp), %r14
movl 0x94(%rsp), %ebp
jne 0x1ccafe
movq (%r15), %rsi
leaq (%rax,%rax,2), %rax
movq -0x18(%rsi,%rax,8), %rax
testq %rax, %rax
je 0x1ccafe
cmpq %rax, 0x30(%rsp)
jne 0x1ccae5
movq 0x28(%rsp), %rax
xorl %edx, %edx
divq 0x38(%rsp)
testq %rdx, %rdx
jne 0x1ccae5
movq 0x50(%rsp), %rdx
movq 0x78(%rsp), %rdi
movq %rax, %rcx
notq %rcx
addq 0x80(%rsp), %rcx
decq %rdi
cmpq %rax, %rdi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rdi
shrq %cl, %r9
testq %rdi, %r9
jne 0x1ccac7
orq %rdi, %r9
movq %r9, (%rdx,%rax,8)
incq 0x88(%rsp)
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1ccad8
cmpq 0x58(%rsp), %rcx
jae 0x1ccadd
movq %rcx, 0x58(%rsp)
incq %rax
movq %rax, 0x60(%rsp)
cmpb $0x1, 0x68(%rsp)
jne 0x1ccaf1
incq 0x70(%rsp)
movq 0x10(%r15), %rax
leaq (%rax,%rax,2), %rax
movq %r12, -0x8(%rsi,%rax,8)
movq %r10, %r12
movq (%r15), %rdi
leaq 0x1e994c(%rip), %rbx    # 0x3b6457
jmp 0x1ccc55
xorl %r13d, %r13d
xorl %r11d, %r11d
movq $0x0, 0x28(%rsp)
movabsq $-0x8000000000000000, %r10 # imm = 0x8000000000000000
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1cccfd
testb $0x1, %r11b
movq 0x98(%rsp), %r14
movl 0x94(%rsp), %ebp
movq 0x28(%rsp), %rsi
jne 0x1ccc48
movq (%r15), %rcx
leaq (%rax,%rax,2), %rax
movq -0x18(%rcx,%rax,8), %rax
testq %rax, %rax
je 0x1ccc48
cmpq %rax, 0x30(%rsp)
ja 0x1ccc2c
testq %rsi, %rsi
je 0x1ccb96
movq 0x48(%rsp), %rdx
leaq -0x1(%rsi), %rcx
movq %r10, %rdi
shrq %cl, %rdi
shrq $0x6, %rcx
testq %rdi, (%rdx,%rcx,8)
je 0x1ccc2c
movq 0x48(%rsp), %rdx
addq %rsi, %rax
movq %r10, %rdi
movl %eax, %ecx
shrq %cl, %rdi
shrq $0x6, %rax
testq %rdi, (%rdx,%rax,8)
je 0x1ccc2c
movq %r11, %rbx
movq 0x40(%rsp), %rdi
callq 0xefc48
movabsq $-0x8000000000000000, %rdi # imm = 0x8000000000000000
movq 0x50(%rsp), %rdx
movq 0x78(%rsp), %rsi
movq %rax, %rcx
notq %rcx
addq 0x80(%rsp), %rcx
decq %rsi
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1ccc0b
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x88(%rsp)
movq 0x60(%rsp), %rax
testq %rax, %rax
je 0x1ccc1c
cmpq 0x58(%rsp), %rcx
jae 0x1ccc21
movq %rcx, 0x58(%rsp)
incq %rax
movq %rax, 0x60(%rsp)
movq %rbx, %r11
cmpb $0x1, 0x68(%rsp)
jne 0x1ccc38
incq 0x70(%rsp)
movq (%r15), %rax
movq 0x10(%r15), %rcx
leaq (%rcx,%rcx,2), %rcx
movq %r13, -0x8(%rax,%rcx,8)
movq %r11, %r12
movq (%r15), %rdi
leaq 0x1e97a1(%rip), %rbx    # 0x3b63f6
movq %rbx, %rsi
movl $0x70, %edx
callq 0x109670
movq %r15, %rdi
movq %rbx, %rsi
movl $0x71, %edx
callq 0x109670
testb $0x1, %r12b
jne 0x1cccda
testb %bpl, %bpl
je 0x1ccc82
callq 0x111189
testq %r14, %r14
jne 0x1ccc9d
movq 0x48(%rsp), %rdi
leaq 0x1e983a(%rip), %rsi    # 0x3b64cd
movl $0xf9, %edx
callq 0x109670
movq 0x88(%rsp), %rax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x6ac7f
callq 0x6ad9c
callq 0x6aef2
callq 0x6b048
callq 0x6aeb9
callq 0x6b165
callq 0x6b12c
callq 0x6b081
callq 0x6ae0e
callq 0x6add5
callq 0x6acf1
callq 0x6ac46
callq 0x6af9d
callq 0x6b0f3
callq 0x6b0ba
callq 0x6ad63
callq 0x6ac0d
callq 0x6ae80
callq 0x6acb8
callq 0x6b00f
callq 0x6af2b
callq 0x6ae47
callq 0x6ad2a
callq 0x6afd6
callq 0x6af64