// File: /workspace/github_c_makefile_star2_O3/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 $0xa8, %rsp
testq %rdi, %rdi
je 0x1c3bac
testq %rdx, %rdx
je 0x1c3bb1
movq %r8, %rbx
movq %rcx, %r15
movl %esi, %r14d
movq %rdx, 0x38(%rsp)
movq %rdi, 0x10(%rsp)
callq 0x1a59f6
movq %rax, %rbp
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0xe7b9c
movq %rax, %r13
movq %rax, 0x8(%rsp)
movq %rbp, %rdi
callq 0xe7bac
movq %rax, 0x68(%rsp)
testq %rbx, %rbx
movq %rbx, 0x88(%rsp)
movl %r14d, 0x84(%rsp)
je 0x1c27d1
movq %rbx, 0x18(%rsp)
leaq 0x1(%rbx), %rax
movq %rax, 0x20(%rsp)
movq 0x8(%rsp), %rsi
jmp 0x1c28d6
movq %rax, %r12
movq %r15, 0x78(%rsp)
leaq 0x1(%r13), %rax
movq %r13, 0x90(%rsp)
shrq $0x6, %r13
cmpq $0x40, %rax
leaq 0x8(,%r13,8), %rax
movl $0x8, %r14d
cmovaeq %rax, %r14
leaq 0x1ea6b7(%rip), %rdx    # 0x3acebd
xorl %r15d, %r15d
xorl %edi, %edi
movq %r14, %rsi
movl $0xb7, %ecx
callq 0x104461
movq %rax, %rbx
movq %rax, 0x30(%rsp)
movq %rax, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x173a0
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x1, %r12
je 0x1c2892
movl $0x1, %r12d
xorl %r14d, %r14d
movq %rbp, %rdi
movq %r12, %rsi
callq 0xeb6ee
movq %rax, %r15
leaq -0x1(%rax), %rcx
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
shrq %cl, %rax
movq %rcx, %rdx
shrq $0x6, %rdx
orq %rax, (%rbx,%rdx,8)
subq %r14, %rcx
cmpq 0x18(%rsp), %rcx
jae 0x1c287f
movq %rcx, 0x18(%rsp)
incq %r12
movq 0x68(%rsp), %rax
decq %rax
movq %r15, %r14
cmpq %rax, %r12
jbe 0x1c2846
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movq 0x8(%rsp), %rsi
movl %esi, %ecx
shrq %cl, %rax
orq %rax, (%rbx,%r13,8)
movq 0x90(%rsp), %rax
subq %r15, %rax
cmpq 0x18(%rsp), %rax
movq 0x88(%rsp), %rbx
movl 0x84(%rsp), %r14d
movq 0x78(%rsp), %r15
jae 0x1c28d6
movq %rax, 0x18(%rsp)
movb %r14b, 0x50(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rsp)
movq %r15, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
testb %r14b, %r14b
je 0x1c2907
leaq 0x58(%rsp), %rdi
movq $0x0, (%rdi)
callq 0x10ba28
testq %rbx, %rbx
je 0x1c2ee6
leaq 0x1ea530(%rip), %rsi    # 0x3ace47
movl $0x18, %edi
movl $0x5f, %edx
callq 0x104226
movq %rax, %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movl $0x20, %edx
xorl %edi, %edi
xorl %esi, %esi
callq 0x1c3d29
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x1c3bca
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 0x10(%rsp), %rdi
callq 0x1a5a46
movq %rax, 0x78(%rsp)
testq %rax, %rax
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
je 0x1c357a
xorl %r12d, %r12d
xorl %r13d, %r13d
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %r9
movb 0x40(%r9), %al
cmpb $0x1, %al
jne 0x1c2a1a
movq (%r9), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0x7(%rsp), %rdi
callq 0x1c3c49
testl %eax, %eax
je 0x1c3687
movzbl 0x7(%rsp), %r14d
cmpq $0xff, %r14
jne 0x1c2a0c
movq 0x10(%rsp), %rax
movq (%rax), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0x98(%rsp), %rdi
callq 0x1c3cb6
testl %eax, %eax
je 0x1c39c9
movq 0xa0(%rsp), %r14
movq 0x10(%rsp), %r9
movb 0x40(%r9), %al
movq (%r9), %rbp
jmp 0x1c2a6c
movq (%r9), %rbp
movq 0x20(%r9), %rcx
cmpq 0x10(%r9), %rcx
jae 0x1c366e
movq 0x60(%rbp), %rdx
leaq 0x1(%rcx), %rsi
movq %rsi, 0x20(%r9)
movzbl (%rdx,%rcx), %r14d
cmpq $0xff, %r14
jne 0x1c2a6c
movq 0x68(%rbp), %rdx
movq 0x28(%r9), %rsi
movq %rsi, %rdi
shlq $0x4, %rdi
cmpq %rcx, (%rdx,%rdi)
jne 0x1c3bbb
addq %rdi, %rdx
incq %rsi
movq %rsi, 0x28(%r9)
movq 0x8(%rdx), %r14
testb $0x1, %al
je 0x1c2b01
movq 0xb0(%rbp), %rcx
testq %rcx, %rcx
je 0x1c2b1a
movl 0xa4(%rbp), %eax
cmpl 0xa0(%rbp), %eax
jb 0x1c2bba
movq 0xa8(%rbp), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0xa0(%rbp)
movq 0xb0(%rbp), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1c2b97
xorl %edi, %edi
leaq 0x19711f(%rip), %rsi    # 0x359bf1
leaq 0x21fe72(%rip), %rdx    # 0x3e294b
xorl %eax, %eax
callq 0xfcb67
movl 0xa4(%rbp), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
jmp 0x1c2bba
movq 0x58(%rbp), %rax
movq 0x18(%r9), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r9)
movq (%rax,%rcx,8), %rbp
jmp 0x1c2c0a
movl 0x8c(%rbp), %eax
cmpl 0x88(%rbp), %eax
jb 0x1c2bf5
movq 0x90(%rbp), %rdi
movq 0x98(%rbp), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0x88(%rbp)
movq 0x98(%rbp), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1c2bd2
xorl %edi, %edi
leaq 0x197086(%rip), %rsi    # 0x359bf1
leaq 0x197489(%rip), %rdx    # 0x359ffb
xorl %eax, %eax
callq 0xfcb67
movl 0x8c(%rbp), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
jmp 0x1c2bf5
movl $0x0, 0xa4(%rbp)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
je 0x1c3b15
movq 0xa8(%rbp), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%rbp)
movl %eax, %eax
movq (%rcx,%rax,8), %rbp
jmp 0x1c2c0a
movl $0x0, 0x8c(%rbp)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
je 0x1c3b15
movq 0x90(%rbp), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%rbp)
movl %eax, %eax
movl (%rcx,%rax,4), %ebp
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1c3b98
movq (%r15), %rdi
leaq (%rax,%rax,2), %rax
movq -0x18(%rdi,%rax,8), %rax
cmpq %rax, %r14
ja 0x1c2cad
cmpq %rax, 0x18(%rsp)
jne 0x1c2ca1
movq %rbp, %rax
xorl %edx, %edx
divq 0x20(%rsp)
testq %rdx, %rdx
jne 0x1c2ca1
movq 0x38(%rsp), %rdx
movq 0x60(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x68(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %rbx, %r8
shrq %cl, %r8
testq %rsi, %r8
jne 0x1c2c83
orq %rsi, %r8
movq %r8, (%rdx,%rax,8)
incq 0x70(%rsp)
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x1c2c94
cmpq 0x40(%rsp), %rcx
jae 0x1c2c99
movq %rcx, 0x40(%rsp)
incq %rax
movq %rax, 0x48(%rsp)
cmpb $0x1, 0x50(%rsp)
jne 0x1c2cad
incq 0x58(%rsp)
testq %r13, %r13
jne 0x1c3b9d
testb $0x1, 0x8(%rsp)
jne 0x1c3599
movq 0x10(%r15), %rsi
leaq (%rsi,%rsi,2), %rax
cmpq -0x18(%rdi,%rax,8), %r14
jae 0x1c2dfa
movq 0x38(%rsp), %rax
leaq -0x30(%rdi), %rdx
leaq -0x18(%rdi), %r8
movq %rsi, %rcx
decq %rsi
movq %rsi, 0x10(%r15)
shlq $0x3, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rdi,%rcx), %r13
addq $-0x18, %r13
movq %r12, 0x10(%r13)
cmpq (%rdx,%rcx), %r14
ja 0x1c2d43
movq 0x18(%rsp), %rcx
cmpq (%r13), %rcx
jne 0x1c2d37
cmpq $0x0, 0x48(%rsp)
je 0x1c2d37
movq 0x40(%rsp), %rcx
movq %rbx, %rsi
shrq %cl, %rsi
notq %rsi
shrq $0x6, %rcx
andq %rsi, (%rax,%rcx,8)
decq 0x70(%rsp)
movq 0x10(%r15), %rsi
movq $0x0, 0x48(%rsp)
xorl %r13d, %r13d
leaq (%rsi,%rsi,2), %rcx
cmpq (%r8,%rcx,8), %r14
jb 0x1c2ce1
jbe 0x1c2ed3
testq %r13, %r13
je 0x1c2e00
movq (%r13), %rbx
movq 0x8(%r13), %r13
cmpq 0x8(%r15), %rsi
jb 0x1c2d96
jne 0x1c3bed
leaq 0x20(%rsi), %rdx
callq 0x1c3d29
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x1c3bf2
movq %rax, %rdi
movq 0x10(%r15), %rsi
movq 0x10(%rsp), %r9
leaq (%rsi,%rsi,2), %rax
movq %r14, (%rdi,%rax,8)
movq %r13, 0x8(%rdi,%rax,8)
incq %rsi
movq %rsi, 0x10(%r15)
movq $-0x1, 0x10(%rdi,%rax,8)
cmpq %rbx, 0x18(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jne 0x1c2dec
cmpq $0x0, 0x48(%rsp)
je 0x1c2dec
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rbx, %rdx
shrq %cl, %rdx
notq %rdx
shrq $0x6, %rcx
andq %rdx, (%rax,%rcx,8)
decq 0x70(%rsp)
movq $0x0, 0x48(%rsp)
jmp 0x1c2ed0
jbe 0x1c2ed0
cmpq 0x8(%r15), %rsi
jb 0x1c2e32
jne 0x1c3bc0
leaq 0x20(%rsi), %rdx
callq 0x1c3d29
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x1c3bc5
movq %rax, %rdi
movq 0x10(%r15), %rsi
movq 0x10(%rsp), %r9
leaq (%rsi,%rsi,2), %rax
movq %r14, (%rdi,%rax,8)
movq %r12, 0x8(%rdi,%rax,8)
incq %rsi
movq %rsi, 0x10(%r15)
movq $-0x1, 0x10(%rdi,%rax,8)
cmpq %r14, 0x18(%rsp)
jne 0x1c2ec4
movq %rbp, %rax
xorl %edx, %edx
divq 0x20(%rsp)
testq %rdx, %rdx
jne 0x1c2ec4
movq 0x38(%rsp), %rdx
movq 0x60(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x68(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %rbx, %rdi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1c2ea6
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x70(%rsp)
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x1c2eb7
cmpq 0x40(%rsp), %rcx
jae 0x1c2ebc
movq %rcx, 0x40(%rsp)
incq %rax
movq %rax, 0x48(%rsp)
cmpb $0x1, 0x50(%rsp)
jne 0x1c2ed0
incq 0x58(%rsp)
xorl %r13d, %r13d
incq %r12
cmpq 0x78(%rsp), %r12
jb 0x1c29ab
jmp 0x1c359c
leaq 0x1e9ef9(%rip), %rsi    # 0x3acde6
movl $0x18, %edi
movl $0x5f, %edx
callq 0x104226
movq %rax, %r15
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movl $0x20, %edx
xorl %edi, %edi
xorl %esi, %esi
callq 0x1c3c06
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x1c3be3
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 0x10(%rsp), %rdi
callq 0x1a5a46
movq %rax, 0x78(%rsp)
xorl %r13d, %r13d
testq %rax, %rax
je 0x1c3588
xorl %r14d, %r14d
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %r9
movb 0x40(%r9), %al
cmpb $0x1, %al
jne 0x1c2ff0
movq (%r9), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0x7(%rsp), %rdi
callq 0x1c3c49
testl %eax, %eax
je 0x1c371b
movzbl 0x7(%rsp), %r12d
cmpq $0xff, %r12
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jne 0x1c2fe2
movq 0x10(%rsp), %rax
movq (%rax), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0x98(%rsp), %rdi
callq 0x1c3cb6
testl %eax, %eax
je 0x1c3a83
movq 0xa0(%rsp), %r12
movq 0x10(%rsp), %r9
movb 0x40(%r9), %al
movq (%r9), %rbp
jmp 0x1c304c
movq (%r9), %rbp
movq 0x20(%r9), %rcx
cmpq 0x10(%r9), %rcx
jae 0x1c37bf
movq 0x60(%rbp), %rdx
leaq 0x1(%rcx), %rsi
movq %rsi, 0x20(%r9)
movzbl (%rdx,%rcx), %r12d
cmpq $0xff, %r12
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jne 0x1c304c
movq 0x68(%rbp), %rdx
movq 0x28(%r9), %rsi
movq %rsi, %rdi
shlq $0x4, %rdi
cmpq %rcx, (%rdx,%rdi)
jne 0x1c3bd4
addq %rdi, %rdx
incq %rsi
movq %rsi, 0x28(%r9)
movq 0x8(%rdx), %r12
testb $0x1, %al
je 0x1c30e1
movq 0xb0(%rbp), %rcx
testq %rcx, %rcx
je 0x1c30fa
movl 0xa4(%rbp), %eax
cmpl 0xa0(%rbp), %eax
jb 0x1c319a
movq 0xa8(%rbp), %rdi
movl $0x8, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0xa0(%rbp)
movq 0xb0(%rbp), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1c3177
xorl %edi, %edi
leaq 0x196b3f(%rip), %rsi    # 0x359bf1
leaq 0x21f892(%rip), %rdx    # 0x3e294b
xorl %eax, %eax
callq 0xfcb67
movl 0xa4(%rbp), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
jmp 0x1c319a
movq 0x58(%rbp), %rax
movq 0x18(%r9), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r9)
movq (%rax,%rcx,8), %rbp
jmp 0x1c31ea
movl 0x8c(%rbp), %eax
cmpl 0x88(%rbp), %eax
jb 0x1c31d5
movq 0x90(%rbp), %rdi
movq 0x98(%rbp), %rcx
movl $0x4, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17b40
movq %rax, %rbx
movl %ebx, 0x88(%rbp)
movq 0x98(%rbp), %rdi
callq 0x17f00
testl %eax, %eax
je 0x1c31b2
xorl %edi, %edi
leaq 0x196aa6(%rip), %rsi    # 0x359bf1
leaq 0x196ea9(%rip), %rdx    # 0x359ffb
xorl %eax, %eax
callq 0xfcb67
movl 0x8c(%rbp), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
jmp 0x1c31d5
movl $0x0, 0xa4(%rbp)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
je 0x1c3b74
movq 0xa8(%rbp), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%rbp)
movl %eax, %eax
movq (%rcx,%rax,8), %rbp
jmp 0x1c31ea
movl $0x0, 0x8c(%rbp)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%rsp), %r9
je 0x1c3b74
movq 0x90(%rbp), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%rbp)
movl %eax, %eax
movl (%rcx,%rax,4), %ebp
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1c3ba2
movq (%r15), %rcx
leaq (%rax,%rax,2), %rax
movq -0x18(%rcx,%rax,8), %rax
cmpq %rax, %r12
ja 0x1c32cb
cmpq %rax, 0x18(%rsp)
ja 0x1c32bf
movq 0x30(%rsp), %rdx
testq %rbp, %rbp
je 0x1c3239
leaq -0x1(%rbp), %rcx
movq %rbx, %rsi
shrq %cl, %rsi
shrq $0x6, %rcx
testq %rsi, (%rdx,%rcx,8)
je 0x1c32bf
addq %rbp, %rax
movq %rbx, %rsi
movl %eax, %ecx
shrq %cl, %rsi
shrq $0x6, %rax
testq %rsi, (%rdx,%rax,8)
je 0x1c32bf
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
callq 0xeb655
movq 0x38(%rsp), %rdx
movq 0x60(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x68(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %rbx, %rdi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1c329c
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x70(%rsp)
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x1c32ad
cmpq 0x40(%rsp), %rcx
jae 0x1c32b2
movq %rcx, 0x40(%rsp)
incq %rax
movq %rax, 0x48(%rsp)
movq 0x10(%rsp), %r9
cmpb $0x1, 0x50(%rsp)
jne 0x1c32cb
incq 0x58(%rsp)
testq %r14, %r14
jne 0x1c3ba7
testb $0x1, 0x8(%rsp)
jne 0x1c3663
movq (%r15), %rax
movq 0x10(%r15), %rsi
leaq (%rsi,%rsi,2), %rcx
cmpq -0x18(%rax,%rcx,8), %r12
jae 0x1c3440
movq 0x38(%rsp), %rdx
leaq -0x30(%rax), %rdi
leaq -0x18(%rax), %r8
movq %rsi, %rcx
decq %rsi
movq %rsi, 0x10(%r15)
shlq $0x3, %rcx
leaq (%rcx,%rcx,2), %rcx
leaq (%rax,%rcx), %r14
addq $-0x18, %r14
movq %r13, 0x10(%r14)
cmpq (%rdi,%rcx), %r12
ja 0x1c3375
movq 0x18(%rsp), %rcx
cmpq (%r14), %rcx
ja 0x1c3369
movq %r13, %rcx
subq 0x8(%r14), %rcx
incq %rcx
cmpq %rcx, 0x48(%rsp)
jne 0x1c3369
testq %rcx, %rcx
je 0x1c3b93
movq 0x40(%rsp), %rcx
movq %rbx, %rsi
shrq %cl, %rsi
notq %rsi
shrq $0x6, %rcx
andq %rsi, (%rdx,%rcx,8)
decq 0x70(%rsp)
movq 0x10(%r15), %rsi
movq $0x0, 0x48(%rsp)
xorl %r14d, %r14d
leaq (%rsi,%rsi,2), %rcx
cmpq (%r8,%rcx,8), %r12
jb 0x1c3302
jbe 0x1c3558
testq %r14, %r14
je 0x1c3446
movq (%r14), %rdx
movq 0x8(%r14), %rbp
movq 0x10(%r14), %rbx
cmpq 0x8(%r15), %rsi
jb 0x1c33d1
jne 0x1c3bf7
movq %rdx, %r14
leaq 0x20(%rsi), %rdx
movq %rax, %rdi
callq 0x1c3c06
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x1c3bfc
movq 0x10(%r15), %rsi
movq 0x10(%rsp), %r9
movq %r14, %rdx
leaq (%rsi,%rsi,2), %rcx
movq %r12, (%rax,%rcx,8)
movq %rbp, 0x8(%rax,%rcx,8)
incq %rsi
movq %rsi, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rcx,8)
cmpq %rdx, 0x18(%rsp)
ja 0x1c3432
subq %rbp, %rbx
incq %rbx
cmpq %rbx, 0x48(%rsp)
jne 0x1c3432
testq %rbx, %rbx
je 0x1c3c01
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
notq %rdx
shrq $0x6, %rcx
andq %rdx, (%rax,%rcx,8)
decq 0x70(%rsp)
movq $0x0, 0x48(%rsp)
jmp 0x1c3555
jbe 0x1c3555
cmpq 0x8(%r15), %rsi
jb 0x1c3478
jne 0x1c3bd9
leaq 0x20(%rsi), %rdx
movq %rax, %rdi
callq 0x1c3c06
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x1c3bde
movq 0x10(%r15), %rsi
movq 0x10(%rsp), %r9
leaq (%rsi,%rsi,2), %rcx
movq %r12, (%rax,%rcx,8)
movq %r13, 0x8(%rax,%rcx,8)
incq %rsi
movq %rsi, 0x10(%r15)
movq $-0x1, 0x10(%rax,%rcx,8)
cmpq %r12, 0x18(%rsp)
ja 0x1c3549
movq 0x30(%rsp), %rax
testq %rbp, %rbp
je 0x1c34c2
leaq -0x1(%rbp), %rcx
movq %rbx, %rdx
shrq %cl, %rdx
shrq $0x6, %rcx
testq %rdx, (%rax,%rcx,8)
je 0x1c3549
addq %rbp, %r12
movq %rbx, %rdx
movl %r12d, %ecx
shrq %cl, %rdx
shrq $0x6, %r12
testq %rdx, (%rax,%r12,8)
je 0x1c3549
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
callq 0xeb655
movq 0x38(%rsp), %rdx
movq 0x60(%rsp), %rsi
decq %rsi
movq %rax, %rcx
notq %rcx
addq 0x68(%rsp), %rcx
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
movq %rbx, %rdi
shrq %cl, %rdi
testq %rsi, %rdi
jne 0x1c3526
orq %rsi, %rdi
movq %rdi, (%rdx,%rax,8)
incq 0x70(%rsp)
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x1c3537
cmpq 0x40(%rsp), %rcx
jae 0x1c353c
movq %rcx, 0x40(%rsp)
incq %rax
movq %rax, 0x48(%rsp)
movq 0x10(%rsp), %r9
cmpb $0x1, 0x50(%rsp)
jne 0x1c3555
incq 0x58(%rsp)
xorl %r14d, %r14d
incq %r13
cmpq 0x78(%rsp), %r13
jne 0x1c2f77
movq 0x78(%rsp), %r13
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jmp 0x1c3666
xorl %r12d, %r12d
movq $0x0, 0x8(%rsp)
jmp 0x1c359c
movq $0x0, 0x8(%rsp)
xorl %r14d, %r14d
jmp 0x1c37d3
incq %r12
xorl %r14d, %r14d
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1c3bcf
movq (%r15), %rdi
testb $0x1, 0x8(%rsp)
jne 0x1c3657
leaq (%rax,%rax,2), %rax
movq -0x18(%rdi,%rax,8), %rax
testq %rax, %rax
je 0x1c3657
cmpq %rax, 0x18(%rsp)
jne 0x1c363e
movq %r14, %rax
xorl %edx, %edx
divq 0x20(%rsp)
testq %rdx, %rdx
jne 0x1c363e
movq 0x38(%rsp), %rdx
movq 0x60(%rsp), %rsi
movq %rax, %rcx
notq %rcx
addq 0x68(%rsp), %rcx
decq %rsi
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
shrq %cl, %rbx
testq %rsi, %rbx
jne 0x1c3620
orq %rsi, %rbx
movq %rbx, (%rdx,%rax,8)
incq 0x70(%rsp)
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x1c3631
cmpq 0x40(%rsp), %rcx
jae 0x1c3636
movq %rcx, 0x40(%rsp)
incq %rax
movq %rax, 0x48(%rsp)
cmpb $0x1, 0x50(%rsp)
jne 0x1c364a
incq 0x58(%rsp)
movq 0x10(%r15), %rax
leaq (%rax,%rax,2), %rax
movq %r12, -0x8(%rdi,%rax,8)
leaq 0x1e97e9(%rip), %rbx    # 0x3ace47
jmp 0x1c38d4
incq %r13
xorl %r14d, %r14d
jmp 0x1c37dd
movq 0x58(%rbp), %rax
movq 0x18(%r9), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r9)
movq (%rax,%rcx,8), %r14
jmp 0x1c359f
movq 0x10(%rsp), %rax
movq (%rax), %r14
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1c3946
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jb 0x1c3ac2
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 0x1c3aa7
leaq 0x196503(%rip), %rsi    # 0x359bf1
leaq 0x21f256(%rip), %rdx    # 0x3e294b
xorl %edi, %edi
xorl %eax, %eax
callq 0xfcb67
movl 0xa4(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jmp 0x1c3ac2
movq 0x10(%rsp), %rax
movq (%rax), %r14
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1c39ed
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jb 0x1c379c
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 0x1c3b34
leaq 0x196473(%rip), %rsi    # 0x359bf1
leaq 0x21f1c6(%rip), %rdx    # 0x3e294b
xorl %edi, %edi
xorl %eax, %eax
callq 0xfcb67
movl 0xa4(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0xa8(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%r14)
movl %eax, %eax
movq (%rcx,%rax,8), %r14
jmp 0x1c37dd
movq 0x58(%rbp), %rax
movq 0x18(%r9), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r9)
movq (%rax,%rcx,8), %r14
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x1c3be8
movq (%r15), %rdi
testb $0x1, 0x8(%rsp)
jne 0x1c38cd
leaq (%rax,%rax,2), %rax
movq -0x18(%rdi,%rax,8), %rax
testq %rax, %rax
je 0x1c38cd
cmpq %rax, 0x18(%rsp)
ja 0x1c38b1
movq 0x30(%rsp), %rdx
testq %r14, %r14
je 0x1c3833
leaq -0x1(%r14), %rcx
movq %rbx, %rsi
shrq %cl, %rsi
shrq $0x6, %rcx
testq %rsi, (%rdx,%rcx,8)
je 0x1c38b1
addq %r14, %rax
movq %rbx, %rsi
movl %eax, %ecx
shrq %cl, %rsi
shrq $0x6, %rax
testq %rsi, (%rdx,%rax,8)
je 0x1c38b1
movq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0xeb655
movq 0x38(%rsp), %rdx
movq 0x60(%rsp), %rsi
movq %rax, %rcx
notq %rcx
addq 0x68(%rsp), %rcx
decq %rsi
cmpq %rax, %rsi
cmovaeq %rax, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdx,%rax,8), %rsi
shrq %cl, %rbx
testq %rsi, %rbx
jne 0x1c3893
orq %rsi, %rbx
movq %rbx, (%rdx,%rax,8)
incq 0x70(%rsp)
movq 0x48(%rsp), %rax
testq %rax, %rax
je 0x1c38a4
cmpq 0x40(%rsp), %rcx
jae 0x1c38a9
movq %rcx, 0x40(%rsp)
incq %rax
movq %rax, 0x48(%rsp)
cmpb $0x1, 0x50(%rsp)
jne 0x1c38bd
incq 0x58(%rsp)
movq (%r15), %rdi
movq 0x10(%r15), %rax
leaq (%rax,%rax,2), %rax
movq %r13, -0x8(%rdi,%rax,8)
leaq 0x1e9512(%rip), %rbx    # 0x3acde6
movq %rbx, %rsi
movl $0x70, %edx
callq 0x1045eb
movq %r15, %rdi
movq %rbx, %rsi
movl $0x71, %edx
callq 0x1045eb
testb $0x1, 0x8(%rsp)
movq 0x88(%rsp), %rbx
movl 0x84(%rsp), %eax
jne 0x1c3bb6
testb %al, %al
je 0x1c3914
callq 0x10bf8a
testq %rbx, %rbx
jne 0x1c392f
movq 0x30(%rsp), %rdi
leaq 0x1e9598(%rip), %rsi    # 0x3acebd
movl $0xf9, %edx
callq 0x1045eb
movq 0x70(%rsp), %rax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jb 0x1c3af9
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 0x1c3ade
leaq 0x196255(%rip), %rsi    # 0x359bf1
leaq 0x196658(%rip), %rdx    # 0x359ffb
xorl %edi, %edi
xorl %eax, %eax
callq 0xfcb67
movl 0x8c(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jmp 0x1c3af9
leaq 0x196175(%rip), %rsi    # 0x359b45
leaq 0x1e9470(%rip), %rdx    # 0x3ace47
xorl %r14d, %r14d
xorl %edi, %edi
movl $0x9b, %ecx
xorl %eax, %eax
callq 0xfcb67
jmp 0x1c3b28
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jb 0x1c3a5d
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 0x1c3b55
leaq 0x1961b2(%rip), %rsi    # 0x359bf1
leaq 0x1965b5(%rip), %rdx    # 0x359ffb
xorl %edi, %edi
xorl %eax, %eax
callq 0xfcb67
movl 0x8c(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x8(%rsp)
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
movq 0x90(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%r14)
movl %eax, %eax
movl (%rcx,%rax,4), %r14d
jmp 0x1c37dd
leaq 0x1960bb(%rip), %rsi    # 0x359b45
leaq 0x1e9355(%rip), %rdx    # 0x3acde6
xorl %r14d, %r14d
xorl %edi, %edi
movl $0x9b, %ecx
xorl %eax, %eax
callq 0xfcb67
jmp 0x1c3b87
movl $0x0, 0xa4(%r14)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
je 0x1c3b15
movq 0xa8(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%r14)
movl %eax, %eax
movq (%rcx,%rax,8), %r14
jmp 0x1c359f
movl $0x0, 0x8c(%r14)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
je 0x1c3b15
movq 0x90(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%r14)
movl %eax, %eax
movl (%rcx,%rax,4), %r14d
jmp 0x1c359f
leaq 0x1964c7(%rip), %rsi    # 0x359fe3
xorl %r14d, %r14d
xorl %edi, %edi
xorl %eax, %eax
callq 0xfcb67
movb $0x1, %al
movq %rax, 0x8(%rsp)
jmp 0x1c359f
movl $0x0, 0xa4(%r14)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jne 0x1c37a6
jmp 0x1c3b74
movl $0x0, 0x8c(%r14)
xorl %eax, %eax
testl %ebx, %ebx
movabsq $-0x8000000000000000, %rbx # imm = 0x8000000000000000
jne 0x1c3a67
leaq 0x196468(%rip), %rsi    # 0x359fe3
xorl %r14d, %r14d
xorl %edi, %edi
xorl %eax, %eax
callq 0xfcb67
movb $0x1, %al
movq %rax, 0x8(%rsp)
jmp 0x1c37dd
callq 0x695df
callq 0x694c2
callq 0x693a5
callq 0x69735
callq 0x695a6
callq 0x69852
callq 0x69819
callq 0x6976e
callq 0x6936c
callq 0x69450
callq 0x69489
callq 0x69534
callq 0x694fb
callq 0x6956d
callq 0x696c3
callq 0x696fc
callq 0x697e0
callq 0x697a7
callq 0x693de
callq 0x69417
callq 0x69618
callq 0x69651
callq 0x6968a