// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_unit_test
int gt_intset_32_unit_test(GtError *err)
{
  int had_err = 0;
  GtIntset *is;
  GtUword num_of_elems = gt_rand_max(((GtUword) 1) << 10) + 1,
          *arr = gt_malloc(sizeof (*arr) * num_of_elems),
          stepsize = GT_DIV2(num_of_elems <<4 / num_of_elems),
          idx;
  size_t is_size;

  gt_error_check(err);

  arr[0] = gt_rand_max(stepsize) + 1;
  for (idx = (GtUword) 1; idx < num_of_elems; ++idx) {
    arr[idx] = arr[idx - 1] + gt_rand_max(stepsize) + 1;
  }

  is_size = gt_intset_32_size_of_rep(arr[num_of_elems - 1], num_of_elems);

  if (!had_err) {
    if (is_size < (size_t) UINT_MAX) {
      is = gt_intset_32_new(arr[num_of_elems - 1], num_of_elems);
      for (idx = 0; idx < num_of_elems; idx++) {
        gt_intset_32_add(is, arr[idx]);
        gt_ensure(idx + 1 == gt_intset_32_size(is));
        if (idx < num_of_elems - 1)
          gt_ensure(gt_intset_32_get_idx_smallest_geq(is,
                                                      arr[idx] + 1) ==
                    num_of_elems);
      }

      gt_ensure(gt_intset_32_elems_is_valid(is));
      gt_ensure(gt_intset_32_secstart_is_valid(is));

      GT_INTSET_TEST_32_BINSEARCH(0);
      for (idx = 1; !had_err && idx < num_of_elems; idx++) {
        GtUword to_find = (arr[idx - 1] == (arr[idx] - 1)) ? idx - 1 : idx;
        gt_ensure(
          gt_intset_32_get_idx_smallest_geq_test(is, arr[idx] - 1) ==
          to_find);
        gt_ensure(
          gt_intset_32_get_idx_smallest_geq(is, arr[idx] - 1) ==
          to_find);
        GT_INTSET_TEST_32_BINSEARCH(idx);
      }
      if (!had_err)
        had_err = gt_intset_unit_test_notinset(is, 0, arr[0] - 1, err);
      if (!had_err)
        had_err = gt_intset_unit_test_check_seqnum(is, 0, arr[0] - 1, 0, err);
      for (idx = (GtUword) 1; !had_err && idx < num_of_elems; idx++) {
        had_err = gt_intset_unit_test_notinset(is, arr[idx - 1] + 1,
                                               arr[idx] - 1, err);
        if (!had_err)
          had_err = gt_intset_unit_test_check_seqnum(is, arr[idx - 1] + 1,
                                                     arr[idx] - 1, idx, err);
      }
      gt_intset_delete(is);
    }
  }
  gt_free(arr);
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movl $0x0, 0x6c(%rsp)
movl $0x400, %edi            # imm = 0x400
callq 0xec350
addq $0x1, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x11dd5e(%rip), %rsi    # 0x5b3b42
movl $0x1e7, %edx            # imm = 0x1E7
callq 0xe80f0
movq %rax, 0x50(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x28(%rsp)
movl $0x4, %eax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x58(%rsp)
movq %rax, %rcx
movq 0x28(%rsp), %rax
shlq %cl, %rax
shrq %rax
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x495e6e
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x495e36
jmp 0x495e6e
movq 0x1a6163(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x801cc(%rip), %rsi     # 0x516013
leaq 0x80371(%rip), %rdx     # 0x5161bf
leaq 0x11ddde(%rip), %rcx    # 0x5b3c33
leaq 0x11dce6(%rip), %r8     # 0x5b3b42
movl $0x1ec, %r9d            # imm = 0x1EC
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x495e70
movq 0x48(%rsp), %rdi
callq 0xec350
movq %rax, %rcx
addq $0x1, %rcx
movq 0x50(%rsp), %rax
movq %rcx, (%rax)
movq $0x1, 0x40(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x495ee9
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rdi
callq 0xec350
movq 0x20(%rsp), %rdx
addq %rax, %rdx
addq $0x1, %rdx
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x495e92
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x58(%rsp), %rsi
callq 0x495cf0
movq %rax, 0x38(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x4966af
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x38(%rsp)
jae 0x4966ad
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x58(%rsp), %rsi
callq 0x494b00
movq %rax, 0x60(%rsp)
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x49606d
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x495380
cmpl $0x0, 0x6c(%rsp)
jne 0x495fdb
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rdi
callq 0x495880
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
je 0x495fd9
movq 0x70(%rsp), %rdi
leaq 0x9964b(%rip), %rsi     # 0x52f5fa
leaq 0x11dc94(%rip), %rdx    # 0x5b3c4a
leaq 0x11dc76(%rip), %rcx    # 0x5b3c33
leaq 0x11db7e(%rip), %r8     # 0x5b3b42
movl $0x1fa, %r9d            # imm = 0x1FA
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x495fdb
jmp 0x495fdd
movq 0x40(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x496058
jmp 0x495ff2
cmpl $0x0, 0x6c(%rsp)
jne 0x496054
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x495a40
cmpq 0x58(%rsp), %rax
je 0x496052
movq 0x70(%rsp), %rdi
leaq 0x995d2(%rip), %rsi     # 0x52f5fa
leaq 0x11dc3c(%rip), %rdx    # 0x5b3c6b
leaq 0x11dbfd(%rip), %rcx    # 0x5b3c33
leaq 0x11db05(%rip), %r8     # 0x5b3b42
movl $0x1fe, %r9d            # imm = 0x1FE
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x496054
jmp 0x496056
jmp 0x496058
jmp 0x49605a
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x495f4f
jmp 0x49606f
cmpl $0x0, 0x6c(%rsp)
jne 0x4960bc
movq 0x60(%rsp), %rdi
callq 0x4966d0
testb $0x1, %al
jne 0x4960ba
movq 0x70(%rsp), %rdi
leaq 0x9956a(%rip), %rsi     # 0x52f5fa
leaq 0x11dc18(%rip), %rdx    # 0x5b3caf
leaq 0x11db95(%rip), %rcx    # 0x5b3c33
leaq 0x11da9d(%rip), %r8     # 0x5b3b42
movl $0x201, %r9d            # imm = 0x201
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4960bc
jmp 0x4960be
jmp 0x4960c0
cmpl $0x0, 0x6c(%rsp)
jne 0x49610d
movq 0x60(%rsp), %rdi
callq 0x4967c0
testb $0x1, %al
jne 0x49610b
movq 0x70(%rsp), %rdi
leaq 0x99519(%rip), %rsi     # 0x52f5fa
leaq 0x11dbe7(%rip), %rdx    # 0x5b3ccf
leaq 0x11db44(%rip), %rcx    # 0x5b3c33
leaq 0x11da4c(%rip), %r8     # 0x5b3b42
movl $0x202, %r9d            # imm = 0x202
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49610d
jmp 0x49610f
jmp 0x496111
cmpl $0x0, 0x6c(%rsp)
jne 0x496168
movq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x496840
movq 0x50(%rsp), %rcx
cmpq (%rcx), %rax
je 0x496166
movq 0x70(%rsp), %rdi
leaq 0x994be(%rip), %rsi     # 0x52f5fa
leaq 0x11dbaf(%rip), %rdx    # 0x5b3cf2
leaq 0x11dae9(%rip), %rcx    # 0x5b3c33
leaq 0x11d9f1(%rip), %r8     # 0x5b3b42
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x496168
jmp 0x49616a
jmp 0x49616c
cmpl $0x0, 0x6c(%rsp)
jne 0x4961c3
movq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x495640
movq 0x50(%rsp), %rcx
cmpq (%rcx), %rax
je 0x4961c1
movq 0x70(%rsp), %rdi
leaq 0x99463(%rip), %rsi     # 0x52f5fa
leaq 0x11db7b(%rip), %rdx    # 0x5b3d19
leaq 0x11da8e(%rip), %rcx    # 0x5b3c33
leaq 0x11d996(%rip), %r8     # 0x5b3b42
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4961c3
jmp 0x4961c5
jmp 0x4961c7
cmpl $0x0, 0x6c(%rsp)
jne 0x496222
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0x496900
cmpq $0x1, %rax
je 0x496220
movq 0x70(%rsp), %rdi
leaq 0x99404(%rip), %rsi     # 0x52f5fa
leaq 0x11db3e(%rip), %rdx    # 0x5b3d3b
leaq 0x11da2f(%rip), %rcx    # 0x5b3c33
leaq 0x11d937(%rip), %r8     # 0x5b3b42
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x496222
jmp 0x496224
jmp 0x496226
cmpl $0x0, 0x6c(%rsp)
jne 0x496281
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0x495a40
cmpq $0x1, %rax
je 0x49627f
movq 0x70(%rsp), %rdi
leaq 0x993a5(%rip), %rsi     # 0x52f5fa
leaq 0x11db1f(%rip), %rdx    # 0x5b3d7b
leaq 0x11d9d0(%rip), %rcx    # 0x5b3c33
leaq 0x11d8d8(%rip), %r8     # 0x5b3b42
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x496281
jmp 0x496283
movq $0x1, 0x40(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x6c(%rsp)
movb %al, 0x17(%rsp)
jne 0x4962aa
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
setb %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x4962b7
jmp 0x496581
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x4962f0
movq 0x40(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x4962fa
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x496366
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
subq $0x1, %rsi
callq 0x496900
cmpq 0x30(%rsp), %rax
je 0x496364
movq 0x70(%rsp), %rdi
leaq 0x992c0(%rip), %rsi     # 0x52f5fa
leaq 0x11da75(%rip), %rdx    # 0x5b3db6
leaq 0x11d8eb(%rip), %rcx    # 0x5b3c33
leaq 0x11d7f3(%rip), %r8     # 0x5b3b42
movl $0x209, %r9d            # imm = 0x209
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x496366
jmp 0x496368
jmp 0x49636a
cmpl $0x0, 0x6c(%rsp)
jne 0x4963cc
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
subq $0x1, %rsi
callq 0x495a40
cmpq 0x30(%rsp), %rax
je 0x4963ca
movq 0x70(%rsp), %rdi
leaq 0x9925a(%rip), %rsi     # 0x52f5fa
leaq 0x11da53(%rip), %rdx    # 0x5b3dfa
leaq 0x11d885(%rip), %rcx    # 0x5b3c33
leaq 0x11d78d(%rip), %r8     # 0x5b3b42
movl $0x20c, %r9d            # imm = 0x20C
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4963cc
jmp 0x4963ce
jmp 0x4963d0
cmpl $0x0, 0x6c(%rsp)
jne 0x49642e
movq 0x60(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x496840
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x49642c
movq 0x70(%rsp), %rdi
leaq 0x991f8(%rip), %rsi     # 0x52f5fa
leaq 0x11da30(%rip), %rdx    # 0x5b3e39
leaq 0x11d823(%rip), %rcx    # 0x5b3c33
leaq 0x11d72b(%rip), %r8     # 0x5b3b42
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49642e
jmp 0x496430
jmp 0x496432
cmpl $0x0, 0x6c(%rsp)
jne 0x496490
movq 0x60(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x495640
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x49648e
movq 0x70(%rsp), %rdi
leaq 0x99196(%rip), %rsi     # 0x52f5fa
leaq 0x11d9f9(%rip), %rdx    # 0x5b3e64
leaq 0x11d7c1(%rip), %rcx    # 0x5b3c33
leaq 0x11d6c9(%rip), %r8     # 0x5b3b42
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x496490
jmp 0x496492
jmp 0x496494
cmpl $0x0, 0x6c(%rsp)
jne 0x4964fd
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x496900
movq 0x40(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x4964fb
movq 0x70(%rsp), %rdi
leaq 0x99129(%rip), %rsi     # 0x52f5fa
leaq 0x11d9b2(%rip), %rdx    # 0x5b3e8a
leaq 0x11d754(%rip), %rcx    # 0x5b3c33
leaq 0x11d65c(%rip), %r8     # 0x5b3b42
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4964fd
jmp 0x4964ff
jmp 0x496501
cmpl $0x0, 0x6c(%rsp)
jne 0x49656a
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x495a40
movq 0x40(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x496568
movq 0x70(%rsp), %rdi
leaq 0x990bc(%rip), %rsi     # 0x52f5fa
leaq 0x11d989(%rip), %rdx    # 0x5b3ece
leaq 0x11d6e7(%rip), %rcx    # 0x5b3c33
leaq 0x11d5ef(%rip), %r8     # 0x5b3b42
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49656a
jmp 0x49656c
jmp 0x49656e
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x49628c
cmpl $0x0, 0x6c(%rsp)
jne 0x4965ab
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x197230
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x4965d8
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %r8
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rsi
callq 0x1972e0
movl %eax, 0x6c(%rsp)
movq $0x1, 0x40(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x6c(%rsp)
movb %al, 0x7(%rsp)
jne 0x4965ff
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
setb %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x49660c
jmp 0x4966a3
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %rcx
callq 0x197230
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x49668e
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
subq $0x1, %rdx
movq 0x40(%rsp), %rcx
movq 0x70(%rsp), %r8
callq 0x1972e0
movl %eax, 0x6c(%rsp)
jmp 0x496690
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x4965e1
movq 0x60(%rsp), %rdi
callq 0x197140
jmp 0x4966af
movq 0x50(%rsp), %rdi
leaq 0x11d487(%rip), %rsi    # 0x5b3b42
movl $0x21d, %edx            # imm = 0x21D
callq 0xe88c0
movl 0x6c(%rsp), %eax
addq $0x78, %rsp
retq
nop