// File: /workspace/github_c_makefile_star2_O2/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
testq %rdi, %rdi
je 0x173c4c
testq %rdx, %rdx
je 0x173c7a
movq %r8, %rbx
movq %rcx, %r13
movl %esi, %r14d
movq %rdx, 0x68(%rsp)
movq %rdi, 0x30(%rsp)
callq 0x151c21
movq %rax, %r12
movq %rax, 0x58(%rsp)
movq %rax, %rdi
callq 0x7055e
movq %rax, %r15
movq %r12, %rdi
callq 0x705a1
movq %rax, 0x98(%rsp)
testq %rbx, %rbx
movq %rbx, 0x20(%rsp)
movl %r14d, 0x44(%rsp)
je 0x172c15
movq %rbx, 0x48(%rsp)
leaq 0x1(%rbx), %rax
movq %rax, 0x50(%rsp)
jmp 0x172d00
movq %rax, %rbp
movq %r13, 0x10(%rsp)
pushq $0x8
popq %rax
leaq 0x1(%r15), %rcx
movq %r15, %rdx
shrq $0x6, %rdx
cmpq $0x40, %rcx
movq %rdx, 0x38(%rsp)
leaq 0x8(,%rdx,8), %rbx
cmovbq %rax, %rbx
leaq 0x1da5d6(%rip), %rdx    # 0x34d21d
xorl %r14d, %r14d
xorl %edi, %edi
movq %rbx, %rsi
movl $0xb7, %ecx
callq 0x93472
movq %rax, %r13
movq %rax, 0x60(%rsp)
movq %rax, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x17380
movq %r15, 0x48(%rsp)
pushq $0x1
popq %rbx
decq %rbp
cmpq %rbp, %rbx
ja 0x172cc5
movq %r12, %rdi
movq %rbx, %rsi
callq 0x74d9c
leaq -0x1(%rax), %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rcx, %rsi
shrq $0x6, %rsi
orq %rdx, (%r13,%rsi,8)
subq %r14, %rcx
cmpq 0x48(%rsp), %rcx
jae 0x172cb5
movq %rcx, 0x48(%rsp)
incq %rbx
movq 0x98(%rsp), %rbp
movq %rax, %r14
jmp 0x172c76
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
movl %r15d, %ecx
shrq %cl, %rax
movq 0x38(%rsp), %rcx
orq %rax, (%r13,%rcx,8)
movq %r15, %rax
subq %r14, %rax
cmpq 0x48(%rsp), %rax
movq 0x20(%rsp), %rbx
movl 0x44(%rsp), %r14d
movq 0x10(%rsp), %r13
jae 0x172d00
movq %rax, 0x48(%rsp)
movb %r14b, 0x80(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x70(%rsp)
movq %r13, 0x90(%rsp)
andq $0x0, 0xa0(%rsp)
testb %r14b, %r14b
je 0x172d3a
leaq 0x88(%rsp), %rdi
andq $0x0, (%rdi)
movq %r15, %rsi
callq 0x9c79c
testq %rbx, %rbx
je 0x172d56
callq 0x172b44
movq %rax, %r15
movq 0x10(%rax), %rsi
cmpq 0x8(%rax), %rsi
jae 0x172d74
movq (%r15), %rax
jmp 0x172d8e
callq 0x172ac5
movq %rax, %r15
movq 0x10(%rax), %rsi
cmpq 0x8(%rax), %rsi
jae 0x173223
movq (%r15), %rax
jmp 0x17323d
jne 0x173e78
movq (%r15), %rdi
leaq 0x20(%rsi), %rdx
callq 0x174122
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
movq 0x30(%rsp), %rdi
je 0x173d52
movq 0x10(%r15), %rcx
imulq $0x18, %rcx, %rdx
incq %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rdx)
movq %rcx, 0x10(%r15)
orq $-0x1, 0x10(%rax,%rdx)
callq 0x151d3d
movq %rax, 0x38(%rsp)
movb $0x1, %r13b
movq $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
xorl %r14d, %r14d
xorl %ebx, %ebx
movq %rbx, %r12
testb $0x1, 0x10(%rsp)
jne 0x173953
cmpq 0x38(%rsp), %r12
jae 0x173953
movq 0x30(%rsp), %r8
movb 0x40(%r8), %al
cmpb $0x1, %al
jne 0x172e68
movq (%r8), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0xf(%rsp), %rdi
callq 0x17400c
testl %eax, %eax
je 0x173686
movzbl 0xf(%rsp), %ebp
cmpq $0xff, %rbp
jne 0x172e5a
movq 0x30(%rsp), %rax
movq (%rax), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0xa8(%rsp), %rdi
callq 0x174094
testl %eax, %eax
je 0x17385f
movq 0xb0(%rsp), %rbp
movq 0x30(%rsp), %r8
movb 0x40(%r8), %al
movq (%r8), %rbx
jmp 0x172eb9
movq (%r8), %rbx
movq 0x20(%r8), %rcx
cmpq 0x10(%r8), %rcx
jae 0x173713
movq 0x60(%rbx), %rdx
leaq 0x1(%rcx), %rsi
movq %rsi, 0x20(%r8)
movzbl (%rdx,%rcx), %ebp
cmpq $0xff, %rbp
jne 0x172eb9
movq 0x68(%rbx), %rdx
movq 0x28(%r8), %rsi
movq %rsi, %rdi
shlq $0x4, %rdi
cmpq %rcx, (%rdx,%rdi)
jne 0x173c21
addq %rdi, %rdx
incq %rsi
movq %rsi, 0x28(%r8)
movq 0x8(%rdx), %rbp
testb $0x1, %al
je 0x172f3b
movq 0xb0(%rbx), %rcx
testq %rcx, %rcx
je 0x172f54
movl 0xa4(%rbx), %eax
cmpl 0xa0(%rbx), %eax
jb 0x172fd6
movq 0xa8(%rbx), %rdi
movl $0x1000, %edx           # imm = 0x1000
pushq $0x8
popq %rsi
callq 0x17ad0
movq %rax, 0x28(%rsp)
movl %eax, 0xa0(%rbx)
movq 0xb0(%rbx), %rdi
callq 0x17e70
testl %eax, %eax
je 0x172fc2
xorl %edi, %edi
leaq 0x186cae(%rip), %rsi    # 0x2f9bc9
leaq 0x20fe09(%rip), %rdx    # 0x382d2b
xorl %eax, %eax
callq 0x89dbb
movl 0xa4(%rbx), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x172fd6
movq 0x58(%rbx), %rax
movq 0x18(%r8), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r8)
movq (%rax,%rcx,8), %rsi
jmp 0x173017
movl 0x8c(%rbx), %eax
cmpl 0x88(%rbx), %eax
jb 0x173002
movq 0x90(%rbx), %rdi
movq 0x98(%rbx), %rcx
movl $0x1000, %edx           # imm = 0x1000
pushq $0x4
popq %rsi
callq 0x17ad0
movq %rax, 0x28(%rsp)
movl %eax, 0x88(%rbx)
movq 0x98(%rbx), %rdi
callq 0x17e70
testl %eax, %eax
je 0x172fee
xorl %edi, %edi
leaq 0x186c24(%rip), %rsi    # 0x2f9bc9
leaq 0x187027(%rip), %rdx    # 0x2f9fd3
xorl %eax, %eax
callq 0x89dbb
movl 0x8c(%rbx), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x173002
andl $0x0, 0xa4(%rbx)
xorl %eax, %eax
cmpl $0x0, 0x28(%rsp)
je 0x173933
movq 0xa8(%rbx), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%rbx)
movl %eax, %eax
movq (%rcx,%rax,8), %rsi
jmp 0x173017
andl $0x0, 0x8c(%rbx)
xorl %eax, %eax
cmpl $0x0, 0x28(%rsp)
je 0x173933
movq 0x90(%rbx), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%rbx)
movl %eax, %eax
movl (%rcx,%rax,4), %esi
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x173b6b
movq (%r15), %rcx
imulq $0x18, %rax, %rax
movq -0x18(%rcx,%rax), %rdi
cmpq %rdi, %rbp
movq %rsi, 0x28(%rsp)
ja 0x17305d
movzbl %r13b, %eax
testb $0x1, %al
movl %eax, %r13d
movl $0x0, %ecx
cmovnel %ecx, %r13d
testq %rdi, %rdi
cmovnel %eax, %r13d
leaq 0x48(%rsp), %rdx
callq 0x172b16
testq %r14, %r14
jne 0x173b93
leaq 0x1(%r12), %rbx
movl $0x0, %r14d
testb $0x1, 0x10(%rsp)
jne 0x172ddc
movq 0x68(%rsp), %rdx
movq (%r15), %rax
leaq -0x18(%rax), %rdi
movq 0x10(%r15), %rsi
imulq $0x18, %rsi, %rcx
addq %rdi, %rcx
xorl %r14d, %r14d
cmpq (%rcx), %rbp
jae 0x173118
movq %rcx, %r8
decq %rsi
movq %rsi, 0x10(%r15)
movq %r12, 0x10(%rcx)
addq $-0x18, %rcx
movq -0x18(%r8), %r9
movq %r8, %r14
cmpq %r9, %rbp
ja 0x173096
movzbl %r13b, %esi
testb $0x1, %sil
movl %esi, %r13d
movl $0x0, %r8d
cmovnel %r8d, %r13d
testq %r9, %r9
cmovnel %esi, %r13d
movq 0x48(%rsp), %rsi
cmpq 0x18(%rcx), %rsi
jne 0x17310d
cmpq $0x0, 0x78(%rsp)
je 0x17310d
movq 0x70(%rsp), %rcx
movabsq $-0x8000000000000000, %rsi # imm = 0x8000000000000000
shrq %cl, %rsi
notq %rsi
shrq $0x6, %rcx
andq %rsi, (%rdx,%rcx,8)
decq 0xa0(%rsp)
andq $0x0, 0x78(%rsp)
jmp 0x173088
jbe 0x172ddc
testq %r14, %r14
je 0x1731bf
movq (%r14), %r12
movq 0x8(%r14), %r14
movq 0x8(%r15), %rcx
cmpq %rcx, %rsi
jb 0x17315e
jne 0x173d0d
leaq 0x20(%rsi), %rdx
movq %rax, %rdi
callq 0x174122
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x173d27
movq 0x10(%r15), %rsi
imulq $0x18, %rsi, %rcx
movq %rbp, (%rax,%rcx)
movq %r14, 0x8(%rax,%rcx)
incq %rsi
movq %rsi, 0x10(%r15)
orq $-0x1, 0x10(%rax,%rcx)
cmpq %r12, 0x48(%rsp)
jne 0x1731b1
cmpq $0x0, 0x78(%rsp)
je 0x1731b1
movq 0x68(%rsp), %rax
movq 0x70(%rsp), %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
notq %rdx
shrq $0x6, %rcx
andq %rdx, (%rax,%rcx,8)
decq 0xa0(%rsp)
andq $0x0, 0x78(%rsp)
xorl %r14d, %r14d
jmp 0x172ddc
movq 0x8(%r15), %rcx
cmpq %rcx, %rsi
jb 0x1731ef
jne 0x173de5
leaq 0x20(%rsi), %rdx
movq %rax, %rdi
callq 0x174122
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x173dff
movq 0x10(%r15), %rsi
imulq $0x18, %rsi, %rcx
movq %rbp, (%rax,%rcx)
movq %r12, 0x8(%rax,%rcx)
incq %rsi
movq %rsi, 0x10(%r15)
orq $-0x1, 0x10(%rax,%rcx)
movq %rbp, %rdi
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x172b16
xorl %r14d, %r14d
jmp 0x172ddc
jne 0x173eeb
movq (%r15), %rdi
leaq 0x20(%rsi), %rdx
callq 0x173f79
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
movq 0x30(%rsp), %rdi
je 0x173e2a
movq 0x10(%r15), %rcx
imulq $0x18, %rcx, %rdx
incq %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax,%rdx)
movq %rcx, 0x10(%r15)
orq $-0x1, 0x10(%rax,%rdx)
callq 0x151d3d
movq %rax, 0x38(%rsp)
movb $0x1, %bpl
movq $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
xorl %r12d, %r12d
xorl %r14d, %r14d
movq %r14, %rbx
testb $0x1, 0x10(%rsp)
jne 0x1739ab
cmpq 0x38(%rsp), %rbx
jae 0x1739ab
movq 0x30(%rsp), %r8
movb 0x40(%r8), %al
cmpb $0x1, %al
jne 0x173319
movq (%r8), %rsi
movl $0xd0, %eax
addq %rax, %rsi
leaq 0xf(%rsp), %rdi
callq 0x17400c
testl %eax, %eax
je 0x173731
movzbl 0xf(%rsp), %r13d
cmpq $0xff, %r13
jne 0x17330b
movq 0x30(%rsp), %rax
movq (%rax), %rsi
movl $0xe8, %eax
addq %rax, %rsi
leaq 0xa8(%rsp), %rdi
callq 0x174094
testl %eax, %eax
je 0x17390c
movq 0xb0(%rsp), %r13
movq 0x30(%rsp), %r8
movb 0x40(%r8), %al
movq (%r8), %r14
jmp 0x17336b
movq (%r8), %r14
movq 0x20(%r8), %rcx
cmpq 0x10(%r8), %rcx
jae 0x1737c5
movq 0x60(%r14), %rdx
leaq 0x1(%rcx), %rsi
movq %rsi, 0x20(%r8)
movzbl (%rdx,%rcx), %r13d
cmpq $0xff, %r13
jne 0x17336b
movq 0x68(%r14), %rdx
movq 0x28(%r8), %rsi
movq %rsi, %rdi
shlq $0x4, %rdi
cmpq %rcx, (%rdx,%rdi)
jne 0x173cdc
addq %rdi, %rdx
incq %rsi
movq %rsi, 0x28(%r8)
movq 0x8(%rdx), %r13
testb $0x1, %al
je 0x1733f5
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x17340e
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
jb 0x173495
movq 0xa8(%r14), %rdi
movl $0x1000, %edx           # imm = 0x1000
pushq $0x8
popq %rsi
callq 0x17ad0
movq %rax, 0x28(%rsp)
movl %eax, 0xa0(%r14)
movq 0xb0(%r14), %rdi
callq 0x17e70
testl %eax, %eax
je 0x173480
xorl %edi, %edi
leaq 0x1867f5(%rip), %rsi    # 0x2f9bc9
leaq 0x20f950(%rip), %rdx    # 0x382d2b
xorl %eax, %eax
callq 0x89dbb
movl 0xa4(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x173495
movq 0x58(%r14), %rax
movq 0x18(%r8), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r8)
movq (%rax,%rcx,8), %rsi
jmp 0x1734d9
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
jb 0x1734c3
movq 0x90(%r14), %rdi
movq 0x98(%r14), %rcx
movl $0x1000, %edx           # imm = 0x1000
pushq $0x4
popq %rsi
callq 0x17ad0
movq %rax, 0x28(%rsp)
movl %eax, 0x88(%r14)
movq 0x98(%r14), %rdi
callq 0x17e70
testl %eax, %eax
je 0x1734ae
xorl %edi, %edi
leaq 0x186767(%rip), %rsi    # 0x2f9bc9
leaq 0x186b6a(%rip), %rdx    # 0x2f9fd3
xorl %eax, %eax
callq 0x89dbb
movl 0x8c(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x1734c3
andl $0x0, 0xa4(%r14)
xorl %eax, %eax
cmpl $0x0, 0x28(%rsp)
je 0x17398b
movq 0xa8(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%r14)
movl %eax, %eax
movq (%rcx,%rax,8), %rsi
jmp 0x1734d9
andl $0x0, 0x8c(%r14)
xorl %eax, %eax
cmpl $0x0, 0x28(%rsp)
je 0x17398b
movq 0x90(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%r14)
movl %eax, %eax
movl (%rcx,%rax,4), %esi
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x173bbb
movq (%r15), %rcx
imulq $0x18, %rax, %rax
movq -0x18(%rcx,%rax), %rdi
cmpq %rdi, %r13
movq %rsi, 0x28(%rsp)
ja 0x17351c
movzbl %bpl, %eax
testb $0x1, %al
movl %eax, %ebp
movl $0x0, %ecx
cmovnel %ecx, %ebp
testq %rdi, %rdi
cmovnel %eax, %ebp
leaq 0x48(%rsp), %rdx
callq 0x1729f0
testq %r12, %r12
jne 0x173be9
leaq 0x1(%rbx), %r14
movl $0x0, %r12d
testb $0x1, 0x10(%rsp)
jne 0x17328c
movq (%r15), %rax
movq 0x10(%r15), %rsi
imulq $0x18, %rsi, %rcx
addq %rax, %rcx
xorl %r12d, %r12d
cmpq -0x18(%rcx), %r13
jae 0x17359a
decq %rsi
movq %rsi, 0x10(%r15)
leaq -0x18(%rcx), %r12
movq %rbx, -0x8(%rcx)
movq -0x30(%rcx), %rdx
movq %r12, %rcx
cmpq %rdx, %r13
ja 0x17354b
movzbl %bpl, %eax
testb $0x1, %al
movl %eax, %ebp
movl $0x0, %ecx
cmovnel %ecx, %ebp
testq %rdx, %rdx
cmovnel %eax, %ebp
movq (%r12), %rdi
movq %r14, %rsi
subq 0x8(%r12), %rsi
leaq 0x48(%rsp), %rdx
callq 0x172a52
jmp 0x17353a
jbe 0x17328c
testq %r12, %r12
je 0x173622
movq (%r12), %rdi
movq 0x8(%r12), %rbx
movq 0x10(%r12), %r12
movq 0x8(%r15), %rcx
cmpq %rcx, %rsi
jb 0x1735ed
movq %rdi, 0x28(%rsp)
jne 0x173d9a
leaq 0x20(%rsi), %rdx
movq %rax, %rdi
callq 0x173f79
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x173db4
movq 0x10(%r15), %rsi
movq 0x28(%rsp), %rdi
imulq $0x18, %rsi, %rcx
movq %r13, (%rax,%rcx)
movq %rbx, 0x8(%rax,%rcx)
incq %rsi
movq %rsi, 0x10(%r15)
orq $-0x1, 0x10(%rax,%rcx)
subq %rbx, %r12
incq %r12
movq %r12, %rsi
leaq 0x48(%rsp), %rdx
callq 0x172a52
xorl %r12d, %r12d
jmp 0x17328c
movq 0x8(%r15), %rcx
cmpq %rcx, %rsi
jb 0x173652
jne 0x173ea0
leaq 0x20(%rsi), %rdx
movq %rax, %rdi
callq 0x173f79
movq %rax, (%r15)
addq $0x20, 0x8(%r15)
testq %rax, %rax
je 0x173eba
movq 0x10(%r15), %rsi
imulq $0x18, %rsi, %rcx
movq %r13, (%rax,%rcx)
movq %rbx, 0x8(%rax,%rcx)
incq %rsi
movq %rsi, 0x10(%r15)
orq $-0x1, 0x10(%rax,%rcx)
movq %r13, %rdi
movq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x1729f0
xorl %r12d, %r12d
jmp 0x17328c
movq 0x30(%rsp), %rax
movq (%rax), %r14
movq 0xb0(%r14), %rcx
testq %rcx, %rcx
je 0x1737e3
movl 0xa4(%r14), %eax
cmpl 0xa0(%r14), %eax
movq 0x20(%rsp), %r13
jb 0x17396f
movq 0xa8(%r14), %rdi
pushq $0x8
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17ad0
movq %rax, %rbx
movl %ebx, 0xa0(%r14)
movq 0xb0(%r14), %rdi
callq 0x17e70
testl %eax, %eax
je 0x17395d
leaq 0x1864d9(%rip), %rsi    # 0x2f9bc9
leaq 0x20f634(%rip), %rdx    # 0x382d2b
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movl 0xa4(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x17396f
movq 0x58(%rbx), %rax
movq 0x18(%r8), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r8)
movq (%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
jmp 0x173953
movq 0x30(%rsp), %rax
movq (%rax), %r12
movq 0xb0(%r12), %rcx
testq %rcx, %rcx
je 0x173889
movl 0xa4(%r12), %eax
cmpl 0xa0(%r12), %eax
movq 0x20(%rsp), %r13
jb 0x1739c9
movq 0xa8(%r12), %rdi
pushq $0x8
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17ad0
movq %rax, %r14
movl %r14d, 0xa0(%r12)
movq 0xb0(%r12), %rdi
callq 0x17e70
testl %eax, %eax
je 0x1739b5
leaq 0x186428(%rip), %rsi    # 0x2f9bc9
leaq 0x20f583(%rip), %rdx    # 0x382d2b
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movl 0xa4(%r12), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x1739c9
movq 0x58(%r14), %rax
movq 0x18(%r8), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%r8)
movq (%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
jmp 0x1739ab
movl 0x8c(%r14), %eax
cmpl 0x88(%r14), %eax
movq 0x20(%rsp), %r13
jb 0x1739f5
movq 0x90(%r14), %rdi
movq 0x98(%r14), %rcx
pushq $0x4
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17ad0
movq %rax, %rbx
movl %ebx, 0x88(%r14)
movq 0x98(%r14), %rdi
callq 0x17e70
testl %eax, %eax
je 0x1739e7
leaq 0x18638d(%rip), %rsi    # 0x2f9bc9
leaq 0x186790(%rip), %rdx    # 0x2f9fd3
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movl 0x8c(%r14), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x1739f5
leaq 0x1862b7(%rip), %rsi    # 0x2f9b1d
leaq 0x1d993a(%rip), %rdx    # 0x34d1a7
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
movl $0x9b, %ecx
xorl %eax, %eax
callq 0x89dbb
jmp 0x17394c
movl 0x8c(%r12), %eax
cmpl 0x88(%r12), %eax
movq 0x20(%rsp), %r13
jb 0x173a94
movq 0x90(%r12), %rdi
movq 0x98(%r12), %rcx
pushq $0x4
popq %rsi
movl $0x1000, %edx           # imm = 0x1000
callq 0x17ad0
movq %rax, %r14
movl %r14d, 0x88(%r12)
movq 0x98(%r12), %rdi
callq 0x17e70
testl %eax, %eax
je 0x173a80
leaq 0x1862e1(%rip), %rsi    # 0x2f9bc9
leaq 0x1866e4(%rip), %rdx    # 0x2f9fd3
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movl 0x8c(%r12), %eax
movb $0x1, %cl
movq %rcx, 0x10(%rsp)
jmp 0x173a94
leaq 0x18620a(%rip), %rsi    # 0x2f9b1d
leaq 0x1d982c(%rip), %rdx    # 0x34d146
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
movl $0x9b, %ecx
xorl %eax, %eax
callq 0x89dbb
jmp 0x1739a4
leaq 0x186681(%rip), %rsi    # 0x2f9fbb
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %al
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %r13
jmp 0x173a10
andl $0x0, 0xa4(%r14)
xorl %eax, %eax
testl %ebx, %ebx
je 0x173a5e
movq 0xa8(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%r14)
movl %eax, %eax
movq (%rcx,%rax,8), %rax
jmp 0x173a0b
leaq 0x186629(%rip), %rsi    # 0x2f9fbb
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %al
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %r13
jmp 0x173ab1
andl $0x0, 0xa4(%r12)
xorl %eax, %eax
testl %r14d, %r14d
je 0x173b46
movq 0xa8(%r12), %rcx
leal 0x1(%rax), %edx
movl %edx, 0xa4(%r12)
movl %eax, %eax
movq (%rcx,%rax,8), %rax
jmp 0x173aac
andl $0x0, 0x8c(%r14)
xorl %eax, %eax
testl %ebx, %ebx
je 0x173a5e
movq 0x90(%r14), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%r14)
movl %eax, %eax
movl (%rcx,%rax,4), %eax
movq %rax, 0x18(%rsp)
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x173d6f
testb $0x1, 0x10(%rsp)
jne 0x173a51
movq (%r15), %rcx
imulq $0x18, %rax, %rax
movq -0x18(%rcx,%rax), %rdi
testq %rdi, %rdi
je 0x173a51
leaq 0x48(%rsp), %rdx
movq 0x18(%rsp), %rsi
callq 0x172b16
movq (%r15), %rax
imulq $0x18, 0x10(%r15), %rcx
movq %r12, -0x8(%rax,%rcx)
movq %r15, %rdi
callq 0x172b64
jmp 0x173afa
leaq 0x186556(%rip), %rsi    # 0x2f9fbb
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %al
movq %rax, 0x10(%rsp)
jmp 0x173a10
andl $0x0, 0x8c(%r12)
xorl %eax, %eax
testl %r14d, %r14d
je 0x173b46
movq 0x90(%r12), %rcx
leal 0x1(%rax), %edx
movl %edx, 0x8c(%r12)
movl %eax, %eax
movl (%rcx,%rax,4), %eax
movq %rax, 0x18(%rsp)
movq 0x10(%r15), %rax
testq %rax, %rax
je 0x173e47
testb $0x1, 0x10(%rsp)
jne 0x173af2
movq (%r15), %rcx
imulq $0x18, %rax, %rax
movq -0x18(%rcx,%rax), %rdi
testq %rdi, %rdi
je 0x173af2
leaq 0x48(%rsp), %rdx
movq 0x18(%rsp), %rsi
callq 0x1729f0
movq (%r15), %rax
imulq $0x18, 0x10(%r15), %rcx
movq %rbx, -0x8(%rax,%rcx)
movq %r15, %rdi
callq 0x172ae5
testb $0x1, 0x10(%rsp)
jne 0x173cab
cmpb $0x0, 0x44(%rsp)
je 0x173b11
callq 0x9cce9
testq %r13, %r13
jne 0x173b2c
movq 0x60(%rsp), %rdi
leaq 0x1d96fb(%rip), %rsi    # 0x34d21d
movl $0xf9, %edx
callq 0x936f9
movq 0xa0(%rsp), %rax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x18646e(%rip), %rsi    # 0x2f9fbb
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
xorl %eax, %eax
callq 0x89dbb
movb $0x1, %al
movq %rax, 0x10(%rsp)
jmp 0x173ab1
movq 0x2c43f6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171497(%rip), %rsi    # 0x2e5013
leaq 0x1d0e87(%rip), %rdx    # 0x344a0a
leaq 0x1d971f(%rip), %rcx    # 0x34d2a9
leaq 0x1d9616(%rip), %r8     # 0x34d1a7
jmp 0x173be1
movq 0x2c43ce(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x17146f(%rip), %rsi    # 0x2e5013
leaq 0x1d0e7e(%rip), %rdx    # 0x344a29
leaq 0x1d96f7(%rip), %rcx    # 0x34d2a9
leaq 0x1d95ee(%rip), %r8     # 0x34d1a7
jmp 0x173c0f
movq 0x2c43a6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171447(%rip), %rsi    # 0x2e5013
leaq 0x1d0e37(%rip), %rdx    # 0x344a0a
leaq 0x1d96a3(%rip), %rcx    # 0x34d27d
leaq 0x1d9565(%rip), %r8     # 0x34d146
movl $0x9d, %r9d
jmp 0x173c15
movq 0x2c4378(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171419(%rip), %rsi    # 0x2e5013
leaq 0x1d0e28(%rip), %rdx    # 0x344a29
leaq 0x1d9675(%rip), %rcx    # 0x34d27d
leaq 0x1d9537(%rip), %r8     # 0x34d146
movl $0xb2, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x2c4340(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1713e1(%rip), %rsi    # 0x2e5013
leaq 0x185f21(%rip), %rdx    # 0x2f9b5a
leaq 0x1d9669(%rip), %rcx    # 0x34d2a9
leaq 0x1d9560(%rip), %r8     # 0x34d1a7
jmp 0x173d02
movq 0x2c4315(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1713b6(%rip), %rsi    # 0x2e5013
leaq 0x1d0cd4(%rip), %rdx    # 0x344938
leaq 0x1d959d(%rip), %rcx    # 0x34d208
leaq 0x1d95ab(%rip), %r8     # 0x34d21d
movl $0xd2, %r9d
jmp 0x173c15
movq 0x2c42e7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171388(%rip), %rsi    # 0x2e5013
leaq 0x1d95ad(%rip), %rdx    # 0x34d23f
leaq 0x1d956f(%rip), %rcx    # 0x34d208
leaq 0x1d957d(%rip), %r8     # 0x34d21d
movl $0xd3, %r9d
jmp 0x173c15
movq 0x2c42b6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171357(%rip), %rsi    # 0x2e5013
leaq 0x194b50(%rip), %rdx    # 0x308813
leaq 0x1d953e(%rip), %rcx    # 0x34d208
leaq 0x1d954c(%rip), %r8     # 0x34d21d
movl $0xf4, %r9d
jmp 0x173c15
movq 0x2c4285(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171326(%rip), %rsi    # 0x2e5013
leaq 0x185e66(%rip), %rdx    # 0x2f9b5a
leaq 0x1d9582(%rip), %rcx    # 0x34d27d
leaq 0x1d9444(%rip), %r8     # 0x34d146
movl $0x9b, %r9d
jmp 0x173c15
movq 0x2c4254(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1712f5(%rip), %rsi    # 0x2e5013
leaq 0x1d0c72(%rip), %rdx    # 0x344997
jmp 0x173d3f
movq 0x2c423a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1712db(%rip), %rsi    # 0x2e5013
leaq 0x1d0cab(%rip), %rdx    # 0x3449ea
leaq 0x1d9563(%rip), %rcx    # 0x34d2a9
leaq 0x1d945a(%rip), %r8     # 0x34d1a7
jmp 0x173dda
movq 0x2c420f(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1712b0(%rip), %rsi    # 0x2e5013
leaq 0x1d0c80(%rip), %rdx    # 0x3449ea
jmp 0x173e90
movq 0x2c41f2(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171293(%rip), %rsi    # 0x2e5013
leaq 0x1d0c83(%rip), %rdx    # 0x344a0a
leaq 0x1d951b(%rip), %rcx    # 0x34d2a9
leaq 0x1d9412(%rip), %r8     # 0x34d1a7
jmp 0x173e6d
movq 0x2c41c7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171268(%rip), %rsi    # 0x2e5013
leaq 0x1d0be5(%rip), %rdx    # 0x344997
jmp 0x173dcc
movq 0x2c41ad(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x17124e(%rip), %rsi    # 0x2e5013
leaq 0x1d0c1e(%rip), %rdx    # 0x3449ea
leaq 0x1d94aa(%rip), %rcx    # 0x34d27d
leaq 0x1d936c(%rip), %r8     # 0x34d146
movl $0xd7, %r9d
jmp 0x173c15
movq 0x2c417c(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x17121d(%rip), %rsi    # 0x2e5013
leaq 0x1d0b9a(%rip), %rdx    # 0x344997
jmp 0x173e17
movq 0x2c4162(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171203(%rip), %rsi    # 0x2e5013
leaq 0x1d0bd3(%rip), %rdx    # 0x3449ea
leaq 0x1d948b(%rip), %rcx    # 0x34d2a9
leaq 0x1d9382(%rip), %r8     # 0x34d1a7
jmp 0x173ee0
movq 0x2c4137(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1711d8(%rip), %rsi    # 0x2e5013
leaq 0x1d0ba8(%rip), %rdx    # 0x3449ea
jmp 0x173f03
movq 0x2c411a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1711bb(%rip), %rsi    # 0x2e5013
leaq 0x1d0bab(%rip), %rdx    # 0x344a0a
leaq 0x1d9417(%rip), %rcx    # 0x34d27d
leaq 0x1d92d9(%rip), %r8     # 0x34d146
movl $0xf3, %r9d
jmp 0x173c15
movq 0x2c40e9(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x17118a(%rip), %rsi    # 0x2e5013
leaq 0x1d0b07(%rip), %rdx    # 0x344997
leaq 0x1d9412(%rip), %rcx    # 0x34d2a9
leaq 0x1d9309(%rip), %r8     # 0x34d1a7
jmp 0x173f11
movq 0x2c40c1(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171162(%rip), %rsi    # 0x2e5013
leaq 0x1d0adf(%rip), %rdx    # 0x344997
jmp 0x173ed2
movq 0x2c40a7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171148(%rip), %rsi    # 0x2e5013
leaq 0x1d0b18(%rip), %rdx    # 0x3449ea
leaq 0x1d93a4(%rip), %rcx    # 0x34d27d
leaq 0x1d9266(%rip), %r8     # 0x34d146
movl $0xe6, %r9d
jmp 0x173c15
movq 0x2c4076(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x171117(%rip), %rsi    # 0x2e5013
leaq 0x1d0a94(%rip), %rdx    # 0x344997
leaq 0x1d9373(%rip), %rcx    # 0x34d27d
leaq 0x1d9235(%rip), %r8     # 0x34d146
movl $0x97, %r9d
jmp 0x173c15