// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/core/bsearch.c
// Function: gt_bsearch_unit_test
int gt_bsearch_unit_test(GtError *err)
{
  GtArray *elements, *members;
  int key = 0, element, *member_ptr;
  GtBittab *b;
  int had_err = 0;

  gt_error_check(err);

  elements = gt_array_new(sizeof (int));
  members = gt_array_new(sizeof (int*));

  /* the empty case */
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(!gt_array_size(members)); /* no member found */
  gt_ensure(!gt_bsearch_data(&key, gt_array_get_space(elements),
                                   gt_array_size(elements), sizeof (int), cmp,
                                   NULL));

  /* 1 element */
  key = 7;
  element = 7;
  gt_array_add(elements, element);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(gt_array_size(members) == 1); /* one member found */
  member_ptr = *(int**) gt_array_get(members, 0);
  gt_ensure(*member_ptr == element);
  member_ptr = gt_bsearch_data(&key, gt_array_get_space(elements),
                               gt_array_size(elements), sizeof (int), cmp,
                               NULL);
  gt_ensure(*member_ptr == element);

  key = -7;
  gt_array_reset(members);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(!gt_array_size(members)); /* no member found */

  /* 2 elements */
  key = 7;
  gt_array_reset(members);
  gt_array_add(elements, element);
  gt_ensure(gt_array_size(elements) == 2);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(gt_array_size(members) == 2); /* two members found */
  member_ptr = *(int**) gt_array_get(members, 0);
  gt_ensure(*member_ptr == element);
  member_ptr = *(int**) gt_array_get(members, 1);
  gt_ensure(*member_ptr == element);
  gt_ensure(gt_bsearch_data(&key, gt_array_get_space(elements),
                                  gt_array_size(elements), sizeof (int), cmp,
                                  NULL));

  key = -7;
  gt_array_reset(members);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(!gt_array_size(members)); /* no member found */
  gt_ensure(!gt_bsearch_data(&key, gt_array_get_space(elements),
                                   gt_array_size(elements), sizeof (int), cmp,
                                   NULL));

  /* 3 elements */
  key = 7;
  gt_array_reset(members);
  gt_array_add(elements, element);
  gt_ensure(gt_array_size(elements) == 3);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(gt_array_size(members) == 3); /* three members found */
  member_ptr = *(int**) gt_array_get(members, 0);
  gt_ensure(*member_ptr == element);
  member_ptr = *(int**) gt_array_get(members, 1);
  gt_ensure(*member_ptr == element);
  member_ptr = *(int**) gt_array_get(members, 2);
  gt_ensure(*member_ptr == element);
  gt_ensure(gt_bsearch_data(&key, gt_array_get_space(elements),
                                  gt_array_size(elements), sizeof (int), cmp,
                                  NULL));

  key = -7;
  gt_array_reset(members);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(!gt_array_size(members)); /* no member found */
  gt_ensure(!gt_bsearch_data(&key, gt_array_get_space(elements),
                                   gt_array_size(elements), sizeof (int), cmp,
                                   NULL));

  /* large case: -10 -5 -3 -3 -3 0 1 2 3 */
  gt_array_reset(elements);
  element = -10;
  gt_array_add(elements, element);
  element = -5;
  gt_array_add(elements, element);
  element = -3;
  gt_array_add(elements, element);
  gt_array_add(elements, element);
  gt_array_add(elements, element);
  element = 0;
  gt_array_add(elements, element);
  element = 1;
  gt_array_add(elements, element);
  element = 2;
  gt_array_add(elements, element);
  element = 3;
  gt_array_add(elements, element);
  gt_ensure(gt_array_size(elements) == 9);
  key = -3;
  gt_array_reset(members);
  gt_bsearch_all(members, &key, gt_array_get_space(elements),
                 gt_array_size(elements), sizeof (int), cmp, NULL);
  gt_ensure(gt_array_size(members) == 3); /* three members found */
  member_ptr = *(int**) gt_array_get(members, 0);
  gt_ensure(*member_ptr == -3);
  member_ptr = *(int**) gt_array_get(members, 1);
  gt_ensure(*member_ptr == -3);
  member_ptr = *(int**) gt_array_get(members, 2);
  gt_ensure(*member_ptr == -3);
  gt_ensure(
         gt_bsearch_data(&key, gt_array_get_space(elements),
                         gt_array_size(elements), sizeof (int), cmp,NULL));

  /* test gt_bsearch_all_mark() with large case */
  gt_array_reset(members);
  b = gt_bittab_new(gt_array_size(elements));
  gt_bsearch_all_mark(members, &key, gt_array_get_space(elements),
                   gt_array_size(elements), sizeof (int), cmp, NULL, b);
  gt_ensure(gt_array_size(members) == 3); /* three members found */
  member_ptr = *(int**) gt_array_get(members, 0);
  gt_ensure(*member_ptr == -3);
  member_ptr = *(int**) gt_array_get(members, 1);
  gt_ensure(*member_ptr == -3);
  member_ptr = *(int**) gt_array_get(members, 2);
  gt_ensure(*member_ptr == -3);
  /* the correct elements are marked (and only these) */
  gt_ensure(gt_bittab_bit_is_set(b, 2));
  gt_ensure(gt_bittab_bit_is_set(b, 3));
  gt_ensure(gt_bittab_bit_is_set(b, 4));
  gt_ensure(gt_bittab_count_set_bits(b) == 3);

  /* free */
  gt_array_delete(elements);
  gt_array_delete(members);
  gt_bittab_delete(b);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
movl $0x0, 0x1c(%rsp)
testq %rdi, %rdi
je 0xbc946
movq %rbx, %rdi
callq 0x3566a
testb %al, %al
jne 0xbdc43
movq %rbx, 0x20(%rsp)
movl $0x4, %edi
callq 0x6e93c
movq %rax, %rbx
movl $0x8, %edi
callq 0x6e93c
movq %rax, %r13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x12c1(%rip), %r9       # 0xbdc48
leaq 0x1c(%rsp), %rsi
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
testq %rax, %rax
movq %r13, 0x30(%rsp)
je 0xbcb9b
leaq 0x267bc(%rip), %rsi     # 0xe3179
leaq 0x455a9(%rip), %rdx     # 0x101f6d
leaq 0x4558d(%rip), %rcx     # 0x101f58
leaq 0x4555f(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0x81, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x7, %eax
leaq 0x1c(%rsp), %r12
movl %eax, (%r12)
leaq 0x2c(%rsp), %rsi
movl %eax, (%rsi)
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6ec0e
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x1220(%rip), %r9       # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
xorl %ebp, %ebp
xorl %r14d, %r14d
movq %r13, %rdi
xorl %esi, %esi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbca92
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %r14b
cmpl 0x2c(%rsp), %eax
je 0xbca92
leaq 0x26711(%rip), %rsi     # 0xe3179
leaq 0x45599(%rip), %rdx     # 0x102008
leaq 0x454e2(%rip), %rcx     # 0x101f58
leaq 0x454b4(%rip), %r8      # 0x101f31
xorl %r14d, %r14d
movq 0x20(%rsp), %rdi
movl $0x8e, %r9d
xorl %eax, %eax
callq 0x3559f
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
testl %r13d, %r13d
je 0xbcaec
leaq 0x1c(%rsp), %rbp
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %rbp, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbcaef
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbcab2
xorl %r15d, %r15d
testb %r14b, %r14b
movq 0x30(%rsp), %r13
je 0xbcc6b
movl (%r15), %eax
cmpl 0x2c(%rsp), %eax
jne 0xbcc3d
leaq 0x1c(%rsp), %r15
movl $0xfffffff9, (%r15)     # imm = 0xFFFFFFF9
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x1108(%rip), %r9       # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
testq %rax, %rax
je 0xbd892
leaq 0x2660a(%rip), %rsi     # 0xe3179
leaq 0x453f7(%rip), %rdx     # 0x101f6d
leaq 0x453db(%rip), %rcx     # 0x101f58
leaq 0x453ad(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0x98, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbccb8
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
testl %r13d, %r13d
je 0xbcec0
leaq 0x1c(%rsp), %rbp
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %rbp, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbcbfc
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbcbbf
xorl %r15d, %r15d
testq %r15, %r15
je 0xbcec0
leaq 0x2656d(%rip), %rsi     # 0xe3179
leaq 0x45372(%rip), %rdx     # 0x101f85
leaq 0x4533e(%rip), %rcx     # 0x101f58
leaq 0x45310(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0x84, %r9d
xorl %eax, %eax
callq 0x3559f
movq 0x30(%rsp), %r13
jmp 0xbc9e4
leaq 0x26535(%rip), %rsi     # 0xe3179
leaq 0x453bd(%rip), %rdx     # 0x102008
leaq 0x45306(%rip), %rcx     # 0x101f58
leaq 0x452d8(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0x92, %r9d
xorl %eax, %eax
callq 0x3559f
leaq 0x1c(%rsp), %r15
movl $0xfffffff9, (%r15)     # imm = 0xFFFFFFF9
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xfa7(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
movl $0x7, 0x1c(%rsp)
movq %r13, %rdi
callq 0x6ed13
leaq 0x2c(%rsp), %rsi
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6ec0e
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xf4c(%rip), %r9        # 0xbdc48
leaq 0x1c(%rsp), %rsi
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
xorl %ebp, %ebp
xorl %r14d, %r14d
movq %r13, %rdi
xorl %esi, %esi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbcd68
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %r14b
cmpl 0x2c(%rsp), %eax
je 0xbcd68
leaq 0x2643b(%rip), %rsi     # 0xe3179
leaq 0x452c3(%rip), %rdx     # 0x102008
leaq 0x4520c(%rip), %rcx     # 0x101f58
leaq 0x451de(%rip), %r8      # 0x101f31
xorl %r14d, %r14d
movq 0x20(%rsp), %rdi
movl $0xa3, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x1, %esi
movq %r13, %rdi
callq 0x6e9fa
testb %r14b, %r14b
je 0xbcf9d
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jne 0xbce8d
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
testl %r13d, %r13d
je 0xbcf6a
leaq 0x1c(%rsp), %rbp
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %rbp, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbcdee
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbcdb1
xorl %r15d, %r15d
testq %r15, %r15
je 0xbcf6a
leaq 0x1c(%rsp), %r15
movl $0xfffffff9, (%r15)     # imm = 0xFFFFFFF9
movq 0x30(%rsp), %r13
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xe16(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
testq %rax, %rax
je 0xbd9aa
leaq 0x26318(%rip), %rsi     # 0xe3179
leaq 0x45105(%rip), %rdx     # 0x101f6d
leaq 0x450e9(%rip), %rcx     # 0x101f58
leaq 0x450bb(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xae, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbcfea
leaq 0x262e5(%rip), %rsi     # 0xe3179
leaq 0x4516d(%rip), %rdx     # 0x102008
leaq 0x450b6(%rip), %rcx     # 0x101f58
leaq 0x45088(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xa5, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbcf9d
movl $0x7, %eax
leaq 0x1c(%rsp), %r12
movl %eax, (%r12)
leaq 0x2c(%rsp), %rsi
movl %eax, (%rsi)
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6ec0e
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xd44(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq 0x30(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
movb $0x1, %bpl
cmpq $0x1, %rax
je 0xbca41
leaq 0x2623d(%rip), %rsi     # 0xe3179
leaq 0x450a9(%rip), %rdx     # 0x101fec
leaq 0x4500e(%rip), %rcx     # 0x101f58
leaq 0x44fe0(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0x8c, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbca41
leaq 0x26208(%rip), %rsi     # 0xe3179
leaq 0x4500e(%rip), %rdx     # 0x101f86
leaq 0x44fd9(%rip), %rcx     # 0x101f58
leaq 0x44fab(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xa8, %r9d
xorl %eax, %eax
callq 0x3559f
movq 0x30(%rsp), %r13
leaq 0x1c(%rsp), %r15
movl $0xfffffff9, (%r15)     # imm = 0xFFFFFFF9
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xc75(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
movl $0x7, 0x1c(%rsp)
movq %r13, %rdi
callq 0x6ed13
leaq 0x2c(%rsp), %rsi
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6ec0e
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xc1a(%rip), %r9        # 0xbdc48
leaq 0x1c(%rsp), %rsi
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
xorl %ebp, %ebp
xorl %r14d, %r14d
movq %r13, %rdi
xorl %esi, %esi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbd09a
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %r14b
cmpl 0x2c(%rsp), %eax
je 0xbd09a
leaq 0x26109(%rip), %rsi     # 0xe3179
leaq 0x44f91(%rip), %rdx     # 0x102008
leaq 0x44eda(%rip), %rcx     # 0x101f58
leaq 0x44eac(%rip), %r8      # 0x101f31
xorl %r14d, %r14d
movq 0x20(%rsp), %rdi
movl $0xbc, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x1, %esi
movq %r13, %rdi
callq 0x6e9fa
testb %r14b, %r14b
je 0xbd0ec
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %bpl
cmpl 0x2c(%rsp), %eax
je 0xbd0ee
leaq 0x260b8(%rip), %rsi     # 0xe3179
leaq 0x44f40(%rip), %rdx     # 0x102008
leaq 0x44e89(%rip), %rcx     # 0x101f58
leaq 0x44e5b(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xbe, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd0ee
xorl %ebp, %ebp
movl $0x2, %esi
movq %r13, %rdi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbd278
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jne 0xbd215
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
testl %r13d, %r13d
je 0xbd245
leaq 0x1c(%rsp), %rbp
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %rbp, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbd174
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbd137
xorl %r15d, %r15d
testq %r15, %r15
je 0xbd245
leaq 0x1c(%rsp), %r15
movl $0xfffffff9, (%r15)     # imm = 0xFFFFFFF9
movq 0x30(%rsp), %r13
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xa90(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
testq %rax, %rax
je 0xbda4c
leaq 0x25f92(%rip), %rsi     # 0xe3179
leaq 0x44d7f(%rip), %rdx     # 0x101f6d
leaq 0x44d63(%rip), %rcx     # 0x101f58
leaq 0x44d35(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xc9, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd2c7
leaq 0x25f5d(%rip), %rsi     # 0xe3179
leaq 0x44de5(%rip), %rdx     # 0x102008
leaq 0x44d2e(%rip), %rcx     # 0x101f58
leaq 0x44d00(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xc0, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd278
leaq 0x25f2d(%rip), %rsi     # 0xe3179
leaq 0x44d33(%rip), %rdx     # 0x101f86
leaq 0x44cfe(%rip), %rcx     # 0x101f58
leaq 0x44cd0(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xc3, %r9d
xorl %eax, %eax
callq 0x3559f
movq 0x30(%rsp), %r13
leaq 0x1c(%rsp), %r15
movl $0xfffffff9, (%r15)     # imm = 0xFFFFFFF9
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x99a(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0x6ed13
leaq 0x2c(%rsp), %r12
movl $0xfffffff6, (%r12)     # imm = 0xFFFFFFF6
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0xfffffffb, (%r12)     # imm = 0xFFFFFFFB
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0xfffffffd, (%r12)     # imm = 0xFFFFFFFD
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0x0, (%r12)
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0x1, (%r12)
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0x2, (%r12)
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
movl $0x3, (%r12)
movl $0x4, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6ec0e
testb %bpl, %bpl
je 0xbd479
movq %rbx, %rdi
callq 0x6ecda
cmpq $0x9, %rax
jne 0xbd44b
leaq 0x1c(%rsp), %r15
movl $0xfffffffd, (%r15)     # imm = 0xFFFFFFFD
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x85b(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
movb $0x1, %bpl
cmpq $0x3, %rax
je 0xbd4c8
leaq 0x25d59(%rip), %rsi     # 0xe3179
leaq 0x44c4e(%rip), %rdx     # 0x102075
leaq 0x44b2a(%rip), %rcx     # 0x101f58
leaq 0x44afc(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xe5, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd4c8
leaq 0x25d27(%rip), %rsi     # 0xe3179
leaq 0x44c38(%rip), %rdx     # 0x102091
leaq 0x44af8(%rip), %rcx     # 0x101f58
leaq 0x44aca(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xe0, %r9d
xorl %eax, %eax
callq 0x3559f
leaq 0x1c(%rsp), %r15
movl $0xfffffffd, (%r15)     # imm = 0xFFFFFFFD
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x799(%rip), %r9        # 0xbdc48
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xbc8ed
xorl %ebp, %ebp
xorl %r14d, %r14d
movq %r13, %rdi
xorl %esi, %esi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbd516
movq (%rax), %rax
movb $0x1, %r14b
cmpl $-0x3, (%rax)
je 0xbd516
leaq 0x25c8d(%rip), %rsi     # 0xe3179
leaq 0x44bbb(%rip), %rdx     # 0x1020ae
leaq 0x44a5e(%rip), %rcx     # 0x101f58
leaq 0x44a30(%rip), %r8      # 0x101f31
xorl %r14d, %r14d
movq 0x20(%rsp), %rdi
movl $0xe7, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x1, %esi
movq %r13, %rdi
callq 0x6e9fa
testb %r14b, %r14b
je 0xbd565
movq (%rax), %rax
movb $0x1, %bpl
cmpl $-0x3, (%rax)
je 0xbd567
leaq 0x25c3f(%rip), %rsi     # 0xe3179
leaq 0x44b6d(%rip), %rdx     # 0x1020ae
leaq 0x44a10(%rip), %rcx     # 0x101f58
leaq 0x449e2(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xe9, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd567
xorl %ebp, %ebp
movl $0x2, %esi
movq %r13, %rdi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbd619
movq (%rax), %rax
cmpl $-0x3, (%rax)
jne 0xbd61d
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
testl %r13d, %r13d
je 0xbd5ee
leaq 0x1c(%rsp), %rbp
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %rbp, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbd5e6
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbd5a9
xorl %r15d, %r15d
movb $0x1, %bpl
testq %r15, %r15
jne 0xbd64d
leaq 0x25b84(%rip), %rsi     # 0xe3179
leaq 0x44ac4(%rip), %rdx     # 0x1020c0
leaq 0x44955(%rip), %rcx     # 0x101f58
leaq 0x44927(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xee, %r9d
jmp 0xbd646
xorl %ebp, %ebp
jmp 0xbd64d
leaq 0x25b55(%rip), %rsi     # 0xe3179
leaq 0x44a83(%rip), %rdx     # 0x1020ae
leaq 0x44926(%rip), %rcx     # 0x101f58
leaq 0x448f8(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xeb, %r9d
xorl %eax, %eax
callq 0x3559f
movq 0x30(%rsp), %r13
movq %r13, %rdi
callq 0x6ed13
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %rdi
callq 0x70724
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq %r12, 0x8(%rsp)
movq $0x0, (%rsp)
leaq 0x5b4(%rip), %r9        # 0xbdc48
leaq 0x1c(%rsp), %rsi
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc909
testb %bpl, %bpl
je 0xbd6f5
movq %r13, %rdi
callq 0x6ecda
movb $0x1, %bpl
cmpq $0x3, %rax
je 0xbd6f7
leaq 0x25aaf(%rip), %rsi     # 0xe3179
leaq 0x449a4(%rip), %rdx     # 0x102075
leaq 0x44880(%rip), %rcx     # 0x101f58
leaq 0x44852(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xf5, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd6f7
xorl %ebp, %ebp
xorl %r14d, %r14d
movq %r13, %rdi
xorl %esi, %esi
callq 0x6e9fa
testb %bpl, %bpl
je 0xbd745
movq (%rax), %rax
movb $0x1, %r14b
cmpl $-0x3, (%rax)
je 0xbd745
leaq 0x25a5e(%rip), %rsi     # 0xe3179
leaq 0x4498c(%rip), %rdx     # 0x1020ae
leaq 0x4482f(%rip), %rcx     # 0x101f58
leaq 0x44801(%rip), %r8      # 0x101f31
xorl %r14d, %r14d
movq 0x20(%rsp), %rdi
movl $0xf7, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0x1, %esi
movq %r13, %rdi
callq 0x6e9fa
testb %r14b, %r14b
je 0xbd795
movq (%rax), %rax
movb $0x1, %r14b
cmpl $-0x3, (%rax)
je 0xbd798
leaq 0x25a10(%rip), %rsi     # 0xe3179
leaq 0x4493e(%rip), %rdx     # 0x1020ae
leaq 0x447e1(%rip), %rcx     # 0x101f58
leaq 0x447b3(%rip), %r8      # 0x101f31
xorl %r14d, %r14d
movq 0x20(%rsp), %rdi
movl $0xf9, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd798
xorl %r14d, %r14d
movl $0x2, %esi
movq %r13, %rdi
callq 0x6e9fa
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %r14b, %r14b
je 0xbdb1f
movq (%rax), %rax
cmpl $-0x3, (%rax)
jne 0xbd83a
movl $0x2, %esi
movq %r12, %rdi
callq 0x70b1b
testb %al, %al
je 0xbd866
movl $0x3, %esi
movq %r12, %rdi
callq 0x70b1b
testb %al, %al
je 0xbd94b
movl $0x4, %esi
movq %r12, %rdi
callq 0x70b1b
testb %al, %al
je 0xbdaec
movq %r12, %rdi
callq 0x70ca1
xorl %ebp, %ebp
cmpq $0x3, %rax
je 0xbdb1f
leaq 0x25964(%rip), %rsi     # 0xe3179
leaq 0x4495a(%rip), %rdx     # 0x102176
leaq 0x44735(%rip), %rcx     # 0x101f58
leaq 0x44707(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0x100, %r9d            # imm = 0x100
jmp 0xbdb13
leaq 0x25938(%rip), %rsi     # 0xe3179
leaq 0x44866(%rip), %rdx     # 0x1020ae
leaq 0x44709(%rip), %rcx     # 0x101f58
leaq 0x446db(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xfb, %r9d
jmp 0xbdb13
leaq 0x2590c(%rip), %rsi     # 0xe3179
leaq 0x448b1(%rip), %rdx     # 0x102125
leaq 0x446dd(%rip), %rcx     # 0x101f58
leaq 0x446af(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xfd, %r9d
jmp 0xbdb13
movl $0x7, 0x1c(%rsp)
movq %r13, %rdi
callq 0x6ed13
leaq 0x2c(%rsp), %rsi
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6ec0e
movq %rbx, %rdi
callq 0x6ecda
cmpq $0x2, %rax
jne 0xbd977
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0x360(%rip), %r9        # 0xbdc48
leaq 0x1c(%rsp), %rsi
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
movb $0x1, %bpl
cmpq $0x2, %rax
je 0xbcd17
leaq 0x2585c(%rip), %rsi     # 0xe3179
leaq 0x44718(%rip), %rdx     # 0x10203c
leaq 0x4462d(%rip), %rcx     # 0x101f58
leaq 0x445ff(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xa1, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbcd17
leaq 0x25827(%rip), %rsi     # 0xe3179
leaq 0x447e7(%rip), %rdx     # 0x102140
leaq 0x445f8(%rip), %rcx     # 0x101f58
leaq 0x445ca(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xfe, %r9d
jmp 0xbdb13
leaq 0x257fb(%rip), %rsi     # 0xe3179
leaq 0x4469a(%rip), %rdx     # 0x10201f
leaq 0x445cc(%rip), %rcx     # 0x101f58
leaq 0x4459e(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0x9e, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbccda
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
testl %r13d, %r13d
je 0xbdb48
leaq 0x1c(%rsp), %rbp
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %rbp, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbda0b
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbd9ce
xorl %r15d, %r15d
testq %r15, %r15
je 0xbdb48
leaq 0x2575e(%rip), %rsi     # 0xe3179
leaq 0x44563(%rip), %rdx     # 0x101f85
leaq 0x4452f(%rip), %rcx     # 0x101f58
leaq 0x44501(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xb1, %r9d
xorl %eax, %eax
callq 0x3559f
movq 0x30(%rsp), %r13
jmp 0xbcfea
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r12
movq %rbx, %rdi
callq 0x6ecda
movq %rax, %r13
movb $0x1, %bpl
testl %r13d, %r13d
je 0xbdc06
leaq 0x1c(%rsp), %r14
movl %r13d, %eax
sarl %eax
cltq
leaq (%r12,%rax,4), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0xbdc48
testl %eax, %eax
je 0xbdab0
addq $0x4, %r15
xorl %ecx, %ecx
testl %eax, %eax
setg %cl
cmovgq %r15, %r12
subl %ecx, %r13d
movl %r13d, %eax
sarl %eax
cmpl $0x1, %r13d
movl %eax, %r13d
ja 0xbda73
xorl %r15d, %r15d
testq %r15, %r15
movq 0x30(%rsp), %r13
je 0xbd2c7
leaq 0x256b4(%rip), %rsi     # 0xe3179
leaq 0x444b9(%rip), %rdx     # 0x101f85
leaq 0x44485(%rip), %rcx     # 0x101f58
leaq 0x44457(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xcc, %r9d
jmp 0xbd209
leaq 0x25686(%rip), %rsi     # 0xe3179
leaq 0x44661(%rip), %rdx     # 0x10215b
leaq 0x44457(%rip), %rcx     # 0x101f58
leaq 0x44429(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xff, %r9d
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq %rbx, %rdi
callq 0x6f134
movq %r13, %rdi
callq 0x6f134
movq %r12, %rdi
callq 0x70e34
movl %ebp, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x7, 0x1c(%rsp)
movq 0x30(%rsp), %r13
movq %r13, %rdi
callq 0x6ed13
leaq 0x2c(%rsp), %rsi
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6ec0e
movq %rbx, %rdi
callq 0x6ecda
cmpq $0x3, %rax
jne 0xbdc10
movq %rbx, %rdi
callq 0x6ebe9
movq %rax, %r15
movq %rbx, %rdi
callq 0x6ecda
movq $0x0, (%rsp)
leaq 0xa5(%rip), %r9         # 0xbdc48
leaq 0x1c(%rsp), %rsi
movl $0x4, %r8d
movq %r13, %rdi
movq %r15, %rdx
movq %rax, %rcx
callq 0xbc8ed
movq %r13, %rdi
callq 0x6ecda
movb $0x1, %bpl
cmpq $0x3, %rax
je 0xbd049
leaq 0x255a1(%rip), %rsi     # 0xe3179
leaq 0x44496(%rip), %rdx     # 0x102075
leaq 0x44372(%rip), %rcx     # 0x101f58
leaq 0x44344(%rip), %r8      # 0x101f31
xorl %ebp, %ebp
movq 0x20(%rsp), %rdi
movl $0xba, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd049
movq 0x30(%rsp), %r13
jmp 0xbd2c7
leaq 0x25562(%rip), %rsi     # 0xe3179
leaq 0x4443a(%rip), %rdx     # 0x102058
leaq 0x44333(%rip), %rcx     # 0x101f58
leaq 0x44305(%rip), %r8      # 0x101f31
movq 0x20(%rsp), %rdi
movl $0xb7, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0xbd00c
callq 0x29962