// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/extended/compressed_bitsequence.c
// Function: gt_compressed_bitsequence_unit_test
int gt_compressed_bitsequence_unit_test(GtError *err)
{
  const unsigned int sample_testratio = 32U;
  int had_err = 0;
  const GtUword bitseq_testsize = 256UL,
                cbs_testsize = (GT_LOGWORDSIZE == 6) ?
                               16380UL :
                               8192UL;
  GtUword idx;
  GtBitsequence *bitseq;
  GtCompressedBitsequence *cbs;

  gt_error_check(err);

  bitseq = gt_malloc((size_t) bitseq_testsize * sizeof (*bitseq));

  for (idx = 0; idx < bitseq_testsize; idx++) {
    bitseq[idx] = (GtBitsequence) ((GT_LOGWORDSIZE == 6) ?
                                   (GtBitsequence) 0xaaaaccccaaaaccccULL :
                                   (GtBitsequence) 0xaaaaccccULL);
  }

  had_err =
    gt_compressed_bitsequence_unit_test_variable_field(err, bitseq,
                                                       bitseq_testsize);

  if (!had_err) {
    for (idx = 0; idx < bitseq_testsize; idx++) {
      bitseq[idx] = (GtBitsequence) ((GT_LOGWORDSIZE == 6) ?
                                     (GtBitsequence) 0xaaaaccccaaaaccccULL :
                                     (GtBitsequence) 0xaaaaccccUL);
    }
    had_err =
      gt_compressed_bitsequence_unit_test_block_identical(err, bitseq,
                                                          sample_testratio,
                                                          cbs_testsize);
  }

  if (!had_err) {
    cbs = gt_compressed_bitsequence_new(bitseq, sample_testratio, cbs_testsize);
    gt_ensure(cbs != NULL);

    if (cbs != NULL) {

      for (idx = 1UL; !had_err && idx < cbs_testsize; idx += 32UL) {
        gt_ensure(1 == gt_compressed_bitsequence_access(cbs, idx - 1));
        gt_ensure(0 == gt_compressed_bitsequence_access(cbs, idx));
      }
      gt_compressed_bitsequence_delete(cbs);
    }
  }

  /* set some blocks to 0  or ~0 to see if correct block ist found */
  bitseq[GT_DIV2(bitseq_testsize)] = (GtBitsequence) 0;
  bitseq[GT_DIV2(bitseq_testsize)+1] = (GtBitsequence) ~0ULL;
  if (!had_err) {
    cbs = gt_compressed_bitsequence_new(bitseq, sample_testratio, cbs_testsize);
    gt_ensure(cbs != NULL);

    if (cbs != NULL) {
      GtUword rank1, rank0;

      rank1 = gt_compressed_bitsequence_rank_1(cbs,
                               (GtUword) GT_INTWORDSIZE - 1UL);
      gt_ensure(rank1 == (GtUword) GT_DIV2(GT_INTWORDSIZE));
      for (idx = (GtUword) GT_INTWORDSIZE - 1UL;
           !had_err && idx < cbs_testsize;
           idx += idx + 1) {
        rank1 = gt_compressed_bitsequence_rank_1(cbs, idx);
        rank0 = gt_compressed_bitsequence_rank_0(cbs, idx);
        gt_ensure(rank1 + rank0 == idx+1);
      }
      rank1 = gt_compressed_bitsequence_rank_1(cbs, cbs_testsize-1);
      rank0 = gt_compressed_bitsequence_rank_0(cbs, cbs_testsize-1);
      gt_ensure(rank1 + rank0 == cbs_testsize);
      gt_compressed_bitsequence_delete(cbs);
    }
  }

  if (!had_err) {
    cbs = gt_compressed_bitsequence_new(bitseq, sample_testratio, cbs_testsize);
    if (cbs != NULL) {
      GtUword ranktotal1, select1, rank1, select0, rank0;
      ranktotal1 = gt_compressed_bitsequence_rank_1(cbs, cbs_testsize - 1);
      for (idx = 1UL; !had_err && idx <= ranktotal1; idx++) {
        select1 = gt_compressed_bitsequence_select_1(cbs, idx);
        gt_ensure(gt_compressed_bitsequence_access(cbs, select1) == 1);
        rank1 = gt_compressed_bitsequence_rank_1(cbs, select1);
        gt_ensure(idx == rank1);
      }
      for (idx = 1UL; !had_err && idx <= cbs_testsize - ranktotal1; idx++) {
        select0 = gt_compressed_bitsequence_select_0(cbs, idx);
        gt_ensure(gt_compressed_bitsequence_access(cbs, select0) == 0);
        rank0 = gt_compressed_bitsequence_rank_0(cbs, select0);
        gt_ensure(idx == rank0);
      }
    }
    gt_compressed_bitsequence_delete(cbs);
  }

  gt_free(bitseq);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %r13
testq %rdi, %rdi
je 0x130f8d
movq %r13, %rdi
callq 0x101a9a
testb %al, %al
jne 0x131b54
leaq 0x250872(%rip), %rsi    # 0x381806
movl $0x800, %edi            # imm = 0x800
movl $0x4af, %edx            # imm = 0x4AF
callq 0x1092b2
movq %rax, %r14
xorl %eax, %eax
movaps 0x2505e1(%rip), %xmm0   # 0x381590
movups %xmm0, (%r14,%rax,8)
addq $0x2, %rax
cmpq $0x100, %rax            # imm = 0x100
jne 0x130faf
testq %r13, %r13
je 0x130fd5
movq %r13, %rdi
callq 0x101a9a
testb %al, %al
jne 0x131b59
movabsq $-0xffffffff0001, %rbx  # imm = 0xFFFF00000000FFFF
leaq -0xffff(%rbx), %r15
andq (%r14), %r15
xorl %ebp, %ebp
movabsq $-0x5556000000000000, %r12 # imm = 0xAAAA000000000000
cmpq %r12, %r15
je 0x13102b
leaq 0x236539(%rip), %rsi    # 0x36753a
leaq 0x250d21(%rip), %rdx    # 0x381d29
leaq 0x250ce7(%rip), %rcx    # 0x381cf6
leaq 0x2507f0(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x43f, %r9d            # imm = 0x43F
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpq %r12, %r15
jne 0x131079
movzwl 0x4(%r14), %eax
shlq $0x20, %rax
movabsq $0xcccc00000000, %rcx   # imm = 0xCCCC00000000
cmpq %rcx, %rax
je 0x131079
leaq 0x2364eb(%rip), %rsi    # 0x36753a
leaq 0x250cf4(%rip), %rdx    # 0x381d4a
leaq 0x250c99(%rip), %rcx    # 0x381cf6
leaq 0x2507a2(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x441, %r9d            # imm = 0x441
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl $0xaaaacccc, %r15d      # imm = 0xAAAACCCC
testl %ebp, %ebp
jne 0x1310bc
movl (%r14), %eax
cmpl %r15d, %eax
je 0x1310bc
leaq 0x2364a8(%rip), %rsi    # 0x36753a
leaq 0x250cd2(%rip), %rdx    # 0x381d6b
leaq 0x250c56(%rip), %rcx    # 0x381cf6
leaq 0x25075f(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x443, %r9d            # imm = 0x443
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %ebp, %ebp
jne 0x13110c
movq (%r14), %rax
movq 0x8(%r14), %rcx
shrdq $0x20, %rax, %rcx
movabsq $-0x5555333355553334, %rax # imm = 0xAAAACCCCAAAACCCC
cmpq %rax, %rcx
je 0x13110c
leaq 0x236458(%rip), %rsi    # 0x36753a
leaq 0x250ca9(%rip), %rdx    # 0x381d92
leaq 0x250c06(%rip), %rcx    # 0x381cf6
leaq 0x25070f(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x446, %r9d            # imm = 0x446
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%r14), %rcx
andq %rbx, %rcx
movabsq $0xff0000000, %rax      # imm = 0xFF0000000
orq %rcx, %rax
movq %rax, (%r14)
testl %ebp, %ebp
jne 0x131173
movabsq $-0xfff100000000, %rcx  # imm = 0xFFFF000F00000000
andq %rcx, %rax
movabsq $-0x5555fff100000000, %rcx # imm = 0xAAAA000F00000000
cmpq %rcx, %rax
je 0x131173
leaq 0x2363f1(%rip), %rsi    # 0x36753a
leaq 0x250c72(%rip), %rdx    # 0x381dc2
leaq 0x250b9f(%rip), %rcx    # 0x381cf6
leaq 0x2506a8(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x44b, %r9d            # imm = 0x44B
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %ebp, %ebp
jne 0x1311b7
movl (%r14), %eax
addq $0x45560000, %r15       # imm = 0x45560000
cmpq %r15, %rax
je 0x1311b7
leaq 0x2363ad(%rip), %rsi    # 0x36753a
leaq 0x250c55(%rip), %rdx    # 0x381de9
leaq 0x250b5b(%rip), %rcx    # 0x381cf6
leaq 0x250664(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x44d, %r9d            # imm = 0x44D
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
andq (%r14), %rbx
movabsq $0xccccaaaa0000, %rax   # imm = 0xCCCCAAAA0000
orq %rbx, %rax
movq %rax, (%r14)
movabsq $-0x100000000000000, %rax # imm = 0xFF00000000000000
orq 0x10(%r14), %rax
movq %rax, 0x10(%r14)
testl %ebp, %ebp
jne 0x13122d
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
andq %rcx, %rax
movabsq $-0x55333400000000, %rcx # imm = 0xFFAACCCC00000000
cmpq %rcx, %rax
je 0x13122d
leaq 0x236337(%rip), %rsi    # 0x36753a
leaq 0x250c06(%rip), %rdx    # 0x381e10
leaq 0x250ae5(%rip), %rcx    # 0x381cf6
leaq 0x2505ee(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x454, %r9d            # imm = 0x454
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movdqu (%r14), %xmm0
pand 0x250366(%rip), %xmm0   # 0x3815a0
movdqa 0x25036e(%rip), %xmm1   # 0x3815b0
por %xmm0, %xmm1
movdqu %xmm1, (%r14)
testl %ebp, %ebp
setne %al
movq %xmm0, %rcx
movabsq $-0x5555333400000000, %rdx # imm = 0xAAAACCCC00000000
cmpq %rdx, %rcx
sete %cl
orb %al, %cl
jne 0x13129a
leaq 0x2362ca(%rip), %rsi    # 0x36753a
leaq 0x250bc0(%rip), %rdx    # 0x381e37
leaq 0x250a78(%rip), %rcx    # 0x381cf6
leaq 0x250581(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x45b, %r9d            # imm = 0x45B
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %ebp, %ebp
jne 0x1312df
movabsq $-0xfffffff55553334, %rax # imm = 0xF0000000AAAACCCC
cmpq %rax, 0x8(%r14)
je 0x1312df
leaq 0x236285(%rip), %rsi    # 0x36753a
leaq 0x250bab(%rip), %rdx    # 0x381e67
leaq 0x250a33(%rip), %rcx    # 0x381cf6
leaq 0x25053c(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x45d, %r9d            # imm = 0x45D
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movups (%r14), %xmm0
andps 0x2502b6(%rip), %xmm0   # 0x3815a0
orps 0x2502cf(%rip), %xmm0   # 0x3815c0
movq 0x8(%r14), %rax
movups %xmm0, (%r14)
testl %ebp, %ebp
jne 0x131346
movq 0x10(%r14), %rcx
shldq $0x38, %rcx, %rax
movabsq $-0x3300553333555534, %rcx # imm = 0xCCFFAACCCCAAAACC
cmpq %rcx, %rax
je 0x131346
leaq 0x23621e(%rip), %rsi    # 0x36753a
leaq 0x250b74(%rip), %rdx    # 0x381e97
leaq 0x2509cc(%rip), %rcx    # 0x381cf6
leaq 0x2504d5(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x461, %r9d            # imm = 0x461
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %ebp, %ebp
movq %r13, 0x8(%rsp)
movaps 0x25023c(%rip), %xmm0   # 0x381590
jne 0x131677
xorl %eax, %eax
movups %xmm0, (%r14,%rax,8)
addq $0x2, %rax
cmpq $0x100, %rax            # imm = 0x100
jne 0x13135c
testq %r13, %r13
je 0x131382
movq %r13, %rdi
callq 0x101a9a
testb %al, %al
jne 0x131b5e
movl $0x3ffc, %edx           # imm = 0x3FFC
movq %r14, %rdi
movl $0x20, %esi
callq 0x12f230
movq %rax, %r15
xorl %ebp, %ebp
testq %rax, %rax
jne 0x1313cf
leaq 0x236195(%rip), %rsi    # 0x36753a
leaq 0x2504c4(%rip), %rdx    # 0x381870
leaq 0x250b14(%rip), %rcx    # 0x381ec7
leaq 0x25044c(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x478, %r9d            # imm = 0x478
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %r15, %r15
je 0x1313dd
movl 0xd8(%r15), %eax
jmp 0x1313dd
movq %rax, 0x10(%rsp)
testq %r15, %r15
je 0x13166f
movq 0xb8(%r15), %rax
testq %rax, %rax
je 0x13166f
xorl %r12d, %r12d
decq %rax
cmpq %rax, %r12
jne 0x131412
movl 0xe0(%r15), %eax
movq %rax, 0x10(%rsp)
movl 0xec(%r15), %esi
movq %r12, %rax
xorl %edx, %edx
divq %rsi
movq %rax, %r13
movl $0x0, %ebp
cmpq %rsi, %r12
jb 0x131486
movl 0xe4(%r15), %eax
cmpq $0x41, %rax
jae 0x131b4f
testq %rax, %rax
je 0x131484
movq 0x80(%r15), %rdx
leaq -0x1(%r13), %rcx
imulq %rax, %rcx
movq %rcx, %rdi
shrq $0x6, %rdi
movq (%rdx,%rdi,8), %rbp
shlq %cl, %rbp
andl $0x3f, %ecx
leal (%rcx,%rax), %r8d
cmpl $0x41, %r8d
jb 0x13147b
movq 0x8(%rdx,%rdi,8), %rdx
negb %cl
shrq %cl, %rdx
orq %rdx, %rbp
negb %al
movl %eax, %ecx
shrq %cl, %rbp
jmp 0x131486
xorl %ebp, %ebp
imulq %rsi, %r13
cmpq %r12, %r13
jae 0x1314ff
movq 0x78(%r15), %rdx
testq %rdx, %rdx
je 0x131b31
movl 0xdc(%r15), %eax
cmpq $0x41, %rax
jae 0x131b36
testq %rax, %rax
je 0x1314ea
movq %r13, %rcx
imulq %rax, %rcx
movq %rcx, %rdi
shrq $0x6, %rdi
movq (%rdx,%rdi,8), %rsi
shlq %cl, %rsi
andl $0x3f, %ecx
leal (%rcx,%rax), %r8d
cmpl $0x41, %r8d
jb 0x1314e1
movq 0x8(%rdx,%rdi,8), %rdx
negb %cl
shrq %cl, %rdx
orq %rdx, %rsi
negb %al
movl %eax, %ecx
shrq %cl, %rsi
jmp 0x1314ec
xorl %esi, %esi
movq 0x68(%r15), %rdi
callq 0x16c234
movl %eax, %eax
addq %rax, %rbp
incq %r13
jmp 0x13148a
movq 0x78(%r15), %rdx
testq %rdx, %rdx
je 0x131b45
movl 0xdc(%r15), %eax
cmpq $0x41, %rax
jae 0x131b3b
testq %rax, %rax
je 0x131558
movq %r12, %rcx
imulq %rax, %rcx
movq %rcx, %rsi
shrq $0x6, %rsi
movq (%rdx,%rsi,8), %r13
shlq %cl, %r13
andl $0x3f, %ecx
leal (%rcx,%rax), %edi
cmpl $0x41, %edi
jb 0x13154f
movq 0x8(%rdx,%rsi,8), %rdx
negb %cl
shrq %cl, %rdx
orq %rdx, %r13
negb %al
movl %eax, %ecx
shrq %cl, %r13
jmp 0x13155b
xorl %r13d, %r13d
movq 0x68(%r15), %rdi
movl %r13d, %esi
callq 0x16c234
cmpl $0x41, %eax
jae 0x131b4a
testl %eax, %eax
je 0x1315b2
movq 0x70(%r15), %rsi
movq %rbp, %rdi
shrq $0x6, %rdi
movq (%rsi,%rdi,8), %rdx
movl %ebp, %ecx
shlq %cl, %rdx
movl %ebp, %ecx
andl $0x3f, %ecx
leal (%rax,%rcx), %r8d
cmpl $0x41, %r8d
jb 0x1315a4
movq 0x8(%rsi,%rdi,8), %rsi
negb %cl
shrq %cl, %rsi
orq %rsi, %rdx
movq 0x10(%rsp), %rbp
negb %al
movl %eax, %ecx
shrq %cl, %rdx
jmp 0x1315b9
xorl %edx, %edx
movq 0x10(%rsp), %rbp
movq 0x68(%r15), %rdi
movl %r13d, %esi
callq 0x16c104
cmpl $0x41, %ebp
jae 0x131b40
movq %rax, %r13
testl %ebp, %ebp
je 0x13160f
movl 0xd8(%r15), %ecx
imulq %r12, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%r14,%rax,8), %rbx
shlq %cl, %rbx
andl $0x3f, %ecx
leal (%rcx,%rbp), %edx
cmpl $0x41, %edx
jb 0x131606
movq 0x8(%r14,%rax,8), %rax
negb %cl
shrq %cl, %rax
orq %rax, %rbx
movl %ebp, %ecx
negb %cl
shrq %cl, %rbx
jmp 0x131611
xorl %ebx, %ebx
xorl %ebp, %ebp
cmpq %rbx, %r13
je 0x13164b
movq 0x8(%rsp), %rdi
leaq 0x235f16(%rip), %rsi    # 0x36753a
leaq 0x2508d0(%rip), %rdx    # 0x381efb
leaq 0x250895(%rip), %rcx    # 0x381ec7
leaq 0x2501cd(%rip), %r8     # 0x381806
movl $0x49b, %r9d            # imm = 0x49B
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpq %rbx, %r13
jne 0x13166a
incq %r12
movq 0xb8(%r15), %rax
cmpq %rax, %r12
movq 0x8(%rsp), %r13
jb 0x1313fe
jmp 0x13166f
movq 0x8(%rsp), %r13
movq %r15, %rdi
callq 0x130eb7
testl %ebp, %ebp
jne 0x131784
movl $0x3ffc, %edx           # imm = 0x3FFC
movq %r14, %rdi
movl $0x20, %esi
callq 0x12f230
movq %rax, %r15
xorl %ebp, %ebp
testq %rax, %rax
jne 0x1316cc
leaq 0x235e98(%rip), %rsi    # 0x36753a
leaq 0x2501c7(%rip), %rdx    # 0x381870
leaq 0x2503d4(%rip), %rcx    # 0x381a84
leaq 0x25014f(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x4c9, %r9d            # imm = 0x4C9
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %r15, %r15
je 0x131784
movl $0x1, %r13d
leaq 0x250124(%rip), %r12    # 0x381806
leaq -0x1(%r13), %rsi
movq %r15, %rdi
callq 0x12fb79
testl %eax, %eax
je 0x131728
movq %r15, %rdi
movq %r13, %rsi
callq 0x12fb79
testl %eax, %eax
je 0x13175b
xorl %ebx, %ebx
movq 0x8(%rsp), %rdi
leaq 0x235e2b(%rip), %rsi    # 0x36753a
leaq 0x2503c6(%rip), %rdx    # 0x381adc
leaq 0x250367(%rip), %rcx    # 0x381a84
movq %r12, %r8
movl $0x4cf, %r9d            # imm = 0x4CF
jmp 0x13174d
xorl %ebx, %ebx
movq 0x8(%rsp), %rdi
leaq 0x235e04(%rip), %rsi    # 0x36753a
leaq 0x25036b(%rip), %rdx    # 0x381aa8
leaq 0x250340(%rip), %rcx    # 0x381a84
movq %r12, %r8
movl $0x4ce, %r9d            # imm = 0x4CE
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x13175f
xorl %ebp, %ebp
movb $0x1, %bl
testb %bl, %bl
je 0x131777
leaq 0x20(%r13), %rax
cmpq $0x3fdc, %r13           # imm = 0x3FDC
movq %rax, %r13
jb 0x1316e2
movq %r15, %rdi
callq 0x130eb7
movq 0x8(%rsp), %r13
movq $0x0, 0x400(%r14)
movq $-0x1, 0x408(%r14)
testl %ebp, %ebp
jne 0x13192a
movl $0x3ffc, %edx           # imm = 0x3FFC
movq %r14, %rdi
movl $0x20, %esi
callq 0x12f230
movq %rax, %r15
xorl %ebp, %ebp
testq %rax, %rax
jne 0x1317ef
leaq 0x235d75(%rip), %rsi    # 0x36753a
leaq 0x2500a4(%rip), %rdx    # 0x381870
leaq 0x2502b1(%rip), %rcx    # 0x381a84
leaq 0x25002c(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x4da, %r9d            # imm = 0x4DA
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testq %r15, %r15
je 0x13192a
movl $0x3f, %esi
movq %r15, %rdi
callq 0x12fe07
cmpq $0x20, %rax
je 0x13183c
leaq 0x235d28(%rip), %rsi    # 0x36753a
leaq 0x2502f3(%rip), %rdx    # 0x381b0c
leaq 0x250264(%rip), %rcx    # 0x381a84
leaq 0x24ffdf(%rip), %r8     # 0x381806
movq %r13, %rdi
movl $0x4e1, %r9d            # imm = 0x4E1
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %ebp, %ebp
sete %bl
jne 0x1318bc
movl $0x3f, %r12d
movq %r15, %rdi
movq %r12, %rsi
callq 0x12fe07
movq %rax, %rbp
movq %r15, %rdi
movq %r12, %rsi
callq 0x12fe86
movq %rax, %r13
addq %rbp, %r13
leaq 0x1(%r12), %rbp
cmpq %rbp, %r13
sete %bl
je 0x1318a3
movq 0x8(%rsp), %rdi
leaq 0x235cb9(%rip), %rsi    # 0x36753a
leaq 0x2502af(%rip), %rdx    # 0x381b37
leaq 0x2501f5(%rip), %rcx    # 0x381a84
leaq 0x24ff70(%rip), %r8     # 0x381806
movl $0x4e7, %r9d            # imm = 0x4E7
xorl %eax, %eax
callq 0x1019cf
cmpq %rbp, %r13
jne 0x1318bc
leaq 0x1(,%r12,2), %rax
cmpq $0x1ffe, %r12           # imm = 0x1FFE
movq %rax, %r12
jb 0x131849
movl $0x3ffb, %esi           # imm = 0x3FFB
movq %r15, %rdi
callq 0x12fe07
movq %rax, %r12
movl $0x3ffb, %esi           # imm = 0x3FFB
movq %r15, %rdi
callq 0x12fe86
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %bl, %bl
je 0x131922
addq %r12, %rax
xorl %ebp, %ebp
cmpq $0x3ffc, %rax           # imm = 0x3FFC
movq 0x8(%rsp), %rdi
je 0x131922
leaq 0x235c3f(%rip), %rsi    # 0x36753a
leaq 0x25024c(%rip), %rdx    # 0x381b4e
leaq 0x25017b(%rip), %rcx    # 0x381a84
leaq 0x24fef6(%rip), %r8     # 0x381806
movl $0x4eb, %r9d            # imm = 0x4EB
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq %r15, %rdi
callq 0x130eb7
testl %ebp, %ebp
jne 0x131b0c
movl $0x3ffc, %edx           # imm = 0x3FFC
movq %r14, %rdi
movl $0x20, %esi
callq 0x12f230
movq %rax, %r15
testq %rax, %rax
je 0x131a25
movl $0x3ffb, %esi           # imm = 0x3FFB
movq %r15, %rdi
callq 0x12fe07
movq %rax, 0x10(%rsp)
testq %rax, %rax
je 0x131a2c
movl $0x1, %r13d
movq %r15, %rdi
movq %r13, %rsi
callq 0x12ff0c
movq %rax, %rbx
movq %r15, %rdi
movq %rax, %rsi
callq 0x12fb79
movl %eax, %r12d
testl %eax, %eax
jne 0x1319bf
movq 0x8(%rsp), %rdi
leaq 0x235b9d(%rip), %rsi    # 0x36753a
leaq 0x2501c8(%rip), %rdx    # 0x381b6c
leaq 0x2500d9(%rip), %rcx    # 0x381a84
leaq 0x24fe54(%rip), %r8     # 0x381806
movl $0x4f7, %r9d            # imm = 0x4F7
xorl %eax, %eax
callq 0x1019cf
movq %r15, %rdi
movq %rbx, %rsi
callq 0x12fe07
xorl %ebp, %ebp
testl %r12d, %r12d
je 0x131a0a
movb $0x1, %bl
cmpq %rax, %r13
je 0x131a11
xorl %ebx, %ebx
movq 0x8(%rsp), %rdi
leaq 0x235b54(%rip), %rsi    # 0x36753a
leaq 0x2501b3(%rip), %rdx    # 0x381ba0
leaq 0x250090(%rip), %rcx    # 0x381a84
leaq 0x24fe0b(%rip), %r8     # 0x381806
movl $0x4f9, %r9d            # imm = 0x4F9
xorl %eax, %eax
callq 0x1019cf
jmp 0x131a0c
xorl %ebx, %ebx
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %bl, %bl
je 0x131a2e
incq %r13
cmpq 0x10(%rsp), %r13
jbe 0x131971
jmp 0x131a2e
xorl %ebp, %ebp
jmp 0x131b04
xorl %ebp, %ebp
subq $0x3ffc, 0x10(%rsp)     # imm = 0x3FFC
sete %al
testl %ebp, %ebp
setne %cl
orb %al, %cl
jne 0x131b04
negq 0x10(%rsp)
movl $0x1, %r13d
movq %r15, %rdi
movq %r13, %rsi
callq 0x13040d
movq %rax, %rbx
movq %r15, %rdi
movq %rax, %rsi
callq 0x12fb79
movl %eax, %r12d
testl %eax, %eax
je 0x131aa0
movq 0x8(%rsp), %rdi
leaq 0x235abc(%rip), %rsi    # 0x36753a
leaq 0x250128(%rip), %rdx    # 0x381bad
leaq 0x24fff8(%rip), %rcx    # 0x381a84
leaq 0x24fd73(%rip), %r8     # 0x381806
movl $0x4fd, %r9d            # imm = 0x4FD
xorl %eax, %eax
callq 0x1019cf
movq %r15, %rdi
movq %rbx, %rsi
callq 0x12fe86
xorl %ebp, %ebp
testl %r12d, %r12d
je 0x131ab6
xorl %ebx, %ebx
jmp 0x131aed
movb $0x1, %bl
cmpq %rax, %r13
je 0x131af2
xorl %ebx, %ebx
movq 0x8(%rsp), %rdi
leaq 0x235a6f(%rip), %rsi    # 0x36753a
leaq 0x25010f(%rip), %rdx    # 0x381be1
leaq 0x24ffab(%rip), %rcx    # 0x381a84
leaq 0x24fd26(%rip), %r8     # 0x381806
movl $0x4ff, %r9d            # imm = 0x4FF
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %bl, %bl
je 0x131b04
incq %r13
cmpq 0x10(%rsp), %r13
jbe 0x131a52
movq %r15, %rdi
callq 0x130eb7
leaq 0x24fcf3(%rip), %rsi    # 0x381806
movq %r14, %rdi
movl $0x505, %edx            # imm = 0x505
callq 0x109670
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x3d861
callq 0x3d744
callq 0x3d77d
callq 0x3d7ef
callq 0x3d828
callq 0x3d7b6
callq 0x3d70b
callq 0x3d660
callq 0x3d699
callq 0x3d6d2
nop