// File: /workspace/github_c_makefile_star2_O2/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 $0x18, %rsp
movq %rdi, %r15
andl $0x0, 0x10(%rsp)
testq %rdi, %rdi
je 0x9fab8
movq %r15, %rdi
callq 0xc103
testb %al, %al
jne 0xa0b2b
pushq $0x4
popq %r12
movq %r12, %rdi
callq 0x4b380
movq %rax, %rbx
pushq $0x8
popq %rdi
callq 0x4b380
movq %rax, %r14
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0x1070(%rip), %r9       # 0xa0b61
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
movq %r13, %rdx
movq %rax, %rcx
movq %r12, %r8
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
pushq $0x7
popq %rbp
testq %rax, %rax
je 0x9fb3e
leaq 0x2c63b(%rip), %rsi     # 0xcc159
leaq 0x4b638(%rip), %rdx     # 0xeb15d
leaq 0x4b61c(%rip), %rcx     # 0xeb148
leaq 0x4b5ee(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0x81, %r9d
jmp 0x9fb9c
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0x1009(%rip), %r8       # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
testq %rax, %rax
je 0x9ff39
leaq 0x2c5db(%rip), %rsi     # 0xcc159
leaq 0x4b5f0(%rip), %rdx     # 0xeb175
leaq 0x4b5bc(%rip), %rcx     # 0xeb148
leaq 0x4b58e(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0x84, %r9d
xorl %eax, %eax
callq 0xc007
leaq 0x10(%rsp), %r12
movl %ebp, (%r12)
leaq 0x14(%rsp), %rsi
movl %ebp, (%rsi)
pushq $0x4
popq %r13
movq %rbx, %rdi
movq %r13, %rdx
callq 0x4b801
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %rbp
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xf80(%rip), %r9        # 0xa0b61
movq %r14, %rdi
movq %r12, %rsi
movq %rbp, %rdx
movq %rax, %rcx
movq %r13, %r8
callq 0x9fa02
xorl %ebp, %ebp
xorl %r13d, %r13d
movq %r14, %rdi
xorl %esi, %esi
callq 0x4b48e
testb %bpl, %bpl
je 0x9fc46
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %r13b
cmpl 0x14(%rsp), %eax
je 0x9fc46
leaq 0x2c53b(%rip), %rsi     # 0xcc159
leaq 0x4b5d3(%rip), %rdx     # 0xeb1f8
leaq 0x4b51c(%rip), %rcx     # 0xeb148
leaq 0x4b4ee(%rip), %r8      # 0xeb121
xorl %r13d, %r13d
movq %r15, %rdi
movl $0x8e, %r9d
xorl %eax, %eax
callq 0xc007
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0xf01(%rip), %r8        # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
testb %r13b, %r13b
je 0x9fd3f
movl (%rax), %eax
cmpl 0x14(%rsp), %eax
jne 0x9fd13
leaq 0x10(%rsp), %r12
movl $0xfffffff9, (%r12)     # imm = 0xFFFFFFF9
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xea2(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
testq %rax, %rax
je 0x9ffd3
leaq 0x2c46d(%rip), %rsi     # 0xcc159
leaq 0x4b46a(%rip), %rdx     # 0xeb15d
leaq 0x4b44e(%rip), %rcx     # 0xeb148
leaq 0x4b420(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0x98, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x9fd88
leaq 0x2c43f(%rip), %rsi     # 0xcc159
leaq 0x4b4d7(%rip), %rdx     # 0xeb1f8
leaq 0x4b420(%rip), %rcx     # 0xeb148
leaq 0x4b3f2(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0x92, %r9d
xorl %eax, %eax
callq 0xc007
leaq 0x10(%rsp), %r12
movl $0xfffffff9, (%r12)     # imm = 0xFFFFFFF9
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xdee(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
movl $0x7, 0x10(%rsp)
movq %r14, %rdi
callq 0x4ba50
leaq 0x14(%rsp), %rsi
pushq $0x4
popq %rdx
movq %rbx, %rdi
callq 0x4b801
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xd9a(%rip), %r9        # 0xa0b61
leaq 0x10(%rsp), %rsi
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rdx
movq %rax, %rcx
callq 0x9fa02
xorl %ebp, %ebp
xorl %r12d, %r12d
movq %r14, %rdi
xorl %esi, %esi
callq 0x4b48e
testb %bpl, %bpl
je 0x9fe2f
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %r12b
cmpl 0x14(%rsp), %eax
je 0x9fe2f
leaq 0x2c352(%rip), %rsi     # 0xcc159
leaq 0x4b3ea(%rip), %rdx     # 0xeb1f8
leaq 0x4b333(%rip), %rcx     # 0xeb148
leaq 0x4b305(%rip), %r8      # 0xeb121
xorl %r12d, %r12d
movq %r15, %rdi
movl $0xa3, %r9d
xorl %eax, %eax
callq 0xc007
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x4b48e
testb %r12b, %r12b
je 0xa00af
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x14(%rsp), %eax
jne 0x9ff0f
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0xcf5(%rip), %r8        # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
testq %rax, %rax
je 0xa0083
leaq 0x10(%rsp), %r12
movl $0xfffffff9, (%r12)     # imm = 0xFFFFFFF9
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xca2(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
testq %rax, %rax
je 0xa08e3
leaq 0x2c26d(%rip), %rsi     # 0xcc159
leaq 0x4b26a(%rip), %rdx     # 0xeb15d
leaq 0x4b24e(%rip), %rcx     # 0xeb148
leaq 0x4b220(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xae, %r9d
jmp 0xa0941
leaq 0x2c243(%rip), %rsi     # 0xcc159
leaq 0x4b2db(%rip), %rdx     # 0xeb1f8
leaq 0x4b224(%rip), %rcx     # 0xeb148
leaq 0x4b1f6(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xa5, %r9d
jmp 0xa00a8
leaq 0x10(%rsp), %r12
movl %ebp, (%r12)
leaq 0x14(%rsp), %rsi
movl %ebp, (%rsi)
pushq $0x4
popq %r13
movq %rbx, %rdi
movq %r13, %rdx
callq 0x4b801
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %rbp
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xbea(%rip), %r9        # 0xa0b61
movq %r14, %rdi
movq %r12, %rsi
movq %rbp, %rdx
movq %rax, %rcx
movq %r13, %r8
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
movb $0x1, %bpl
cmpq $0x1, %rax
je 0x9fbf7
leaq 0x2c1b2(%rip), %rsi     # 0xcc159
leaq 0x4b22e(%rip), %rdx     # 0xeb1dc
leaq 0x4b193(%rip), %rcx     # 0xeb148
leaq 0x4b165(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0x8c, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x9fbf7
movl $0x7, 0x10(%rsp)
movq %r14, %rdi
callq 0x4ba50
leaq 0x14(%rsp), %rsi
pushq $0x4
popq %rdx
movq %rbx, %rdi
callq 0x4b801
movq %rbx, %rdi
callq 0x4b988
cmpq $0x2, %rax
jne 0xa09b9
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xb3d(%rip), %r9        # 0xa0b61
leaq 0x10(%rsp), %rsi
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rdx
movq %rax, %rcx
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
movb $0x1, %bpl
cmpq $0x2, %rax
je 0x9fde0
leaq 0x2c102(%rip), %rsi     # 0xcc159
leaq 0x4b1ce(%rip), %rdx     # 0xeb22c
leaq 0x4b0e3(%rip), %rcx     # 0xeb148
leaq 0x4b0b5(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xa1, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x9fde0
leaq 0x2c0cf(%rip), %rsi     # 0xcc159
leaq 0x4b0e5(%rip), %rdx     # 0xeb176
leaq 0x4b0b0(%rip), %rcx     # 0xeb148
leaq 0x4b082(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xa8, %r9d
xorl %eax, %eax
callq 0xc007
leaq 0x10(%rsp), %r12
movl $0xfffffff9, (%r12)     # imm = 0xFFFFFFF9
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xa7e(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
movl $0x7, 0x10(%rsp)
movq %r14, %rdi
callq 0x4ba50
leaq 0x14(%rsp), %rsi
pushq $0x4
popq %rdx
movq %rbx, %rdi
callq 0x4b801
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xa2a(%rip), %r9        # 0xa0b61
leaq 0x10(%rsp), %rsi
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rdx
movq %rax, %rcx
callq 0x9fa02
xorl %ebp, %ebp
xorl %r12d, %r12d
movq %r14, %rdi
xorl %esi, %esi
callq 0x4b48e
testb %bpl, %bpl
je 0xa019f
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %r12b
cmpl 0x14(%rsp), %eax
je 0xa019f
leaq 0x2bfe2(%rip), %rsi     # 0xcc159
leaq 0x4b07a(%rip), %rdx     # 0xeb1f8
leaq 0x4afc3(%rip), %rcx     # 0xeb148
leaq 0x4af95(%rip), %r8      # 0xeb121
xorl %r12d, %r12d
movq %r15, %rdi
movl $0xbc, %r9d
xorl %eax, %eax
callq 0xc007
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x4b48e
testb %r12b, %r12b
je 0xa01ed
movq (%rax), %rax
movl (%rax), %eax
movb $0x1, %bpl
cmpl 0x14(%rsp), %eax
je 0xa01ef
leaq 0x2bf95(%rip), %rsi     # 0xcc159
leaq 0x4b02d(%rip), %rdx     # 0xeb1f8
leaq 0x4af76(%rip), %rcx     # 0xeb148
leaq 0x4af48(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xbe, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa01ef
xorl %ebp, %ebp
pushq $0x2
popq %rsi
movq %r14, %rdi
callq 0x4b48e
testb %bpl, %bpl
je 0xa0324
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x14(%rsp), %eax
jne 0xa02d1
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0x935(%rip), %r8        # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
testq %rax, %rax
je 0xa02f8
leaq 0x10(%rsp), %r12
movl $0xfffffff9, (%r12)     # imm = 0xFFFFFFF9
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0x8e2(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
testq %rax, %rax
je 0xa094d
leaq 0x2bead(%rip), %rsi     # 0xcc159
leaq 0x4aeaa(%rip), %rdx     # 0xeb15d
leaq 0x4ae8e(%rip), %rcx     # 0xeb148
leaq 0x4ae60(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xc9, %r9d
jmp 0xa09ad
leaq 0x2be81(%rip), %rsi     # 0xcc159
leaq 0x4af19(%rip), %rdx     # 0xeb1f8
leaq 0x4ae62(%rip), %rcx     # 0xeb148
leaq 0x4ae34(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xc0, %r9d
jmp 0xa031d
leaq 0x2be5a(%rip), %rsi     # 0xcc159
leaq 0x4ae70(%rip), %rdx     # 0xeb176
leaq 0x4ae3b(%rip), %rcx     # 0xeb148
leaq 0x4ae0d(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xc3, %r9d
xorl %eax, %eax
callq 0xc007
leaq 0x10(%rsp), %r12
movl $0xfffffff9, (%r12)     # imm = 0xFFFFFFF9
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0x809(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0x4ba50
leaq 0x14(%rsp), %r12
movl $0xfffffff6, (%r12)     # imm = 0xFFFFFFF6
pushq $0x4
popq %r13
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movl $0xfffffffb, (%r12)     # imm = 0xFFFFFFFB
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movl $0xfffffffd, (%r12)     # imm = 0xFFFFFFFD
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
andl $0x0, (%r12)
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movl $0x1, (%r12)
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movl $0x2, (%r12)
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
movl $0x3, (%r12)
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4b801
testb %bpl, %bpl
je 0xa0508
movq %rbx, %rdi
callq 0x4b988
cmpq $0x9, %rax
jne 0xa04dc
leaq 0x10(%rsp), %r12
movl $0xfffffffd, (%r12)     # imm = 0xFFFFFFFD
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0x6df(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
movb $0x1, %bpl
cmpq $0x3, %rax
je 0xa0553
leaq 0x2bca6(%rip), %rsi     # 0xcc159
leaq 0x4adab(%rip), %rdx     # 0xeb265
leaq 0x4ac87(%rip), %rcx     # 0xeb148
leaq 0x4ac59(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xe5, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa0553
leaq 0x2bc76(%rip), %rsi     # 0xcc159
leaq 0x4ad97(%rip), %rdx     # 0xeb281
leaq 0x4ac57(%rip), %rcx     # 0xeb148
leaq 0x4ac29(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xe0, %r9d
xorl %eax, %eax
callq 0xc007
leaq 0x10(%rsp), %r12
movl $0xfffffffd, (%r12)     # imm = 0xFFFFFFFD
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0x625(%rip), %r9        # 0xa0b61
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa02
xorl %ebp, %ebp
xorl %r12d, %r12d
movq %r14, %rdi
xorl %esi, %esi
callq 0x4b48e
testb %bpl, %bpl
je 0xa059f
movq (%rax), %rax
movb $0x1, %r12b
cmpl $-0x3, (%rax)
je 0xa059f
leaq 0x2bbe2(%rip), %rsi     # 0xcc159
leaq 0x4ad20(%rip), %rdx     # 0xeb29e
leaq 0x4abc3(%rip), %rcx     # 0xeb148
leaq 0x4ab95(%rip), %r8      # 0xeb121
xorl %r12d, %r12d
movq %r15, %rdi
movl $0xe7, %r9d
xorl %eax, %eax
callq 0xc007
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x4b48e
testb %r12b, %r12b
je 0xa05ea
movq (%rax), %rax
movb $0x1, %bpl
cmpl $-0x3, (%rax)
je 0xa05ec
leaq 0x2bb98(%rip), %rsi     # 0xcc159
leaq 0x4acd6(%rip), %rdx     # 0xeb29e
leaq 0x4ab79(%rip), %rcx     # 0xeb148
leaq 0x4ab4b(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xe9, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa05ec
xorl %ebp, %ebp
pushq $0x2
popq %rsi
movq %r14, %rdi
callq 0x4b48e
testb %bpl, %bpl
je 0xa0665
movq (%rax), %rax
cmpl $-0x3, (%rax)
jne 0xa0669
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0x543(%rip), %r8        # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
movb $0x1, %bpl
testq %rax, %rax
jne 0xa0697
leaq 0x2bb16(%rip), %rsi     # 0xcc159
leaq 0x4ac66(%rip), %rdx     # 0xeb2b0
leaq 0x4aaf7(%rip), %rcx     # 0xeb148
leaq 0x4aac9(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xee, %r9d
jmp 0xa0690
xorl %ebp, %ebp
jmp 0xa0697
leaq 0x2bae9(%rip), %rsi     # 0xcc159
leaq 0x4ac27(%rip), %rdx     # 0xeb29e
leaq 0x4aaca(%rip), %rcx     # 0xeb148
leaq 0x4aa9c(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xeb, %r9d
xorl %eax, %eax
callq 0xc007
movq %r14, %rdi
callq 0x4ba50
movq %rbx, %rdi
callq 0x4b988
movq %rax, %rdi
callq 0x4d6a4
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r13
movq %rbx, %rdi
callq 0x4b988
movq %r12, 0x8(%rsp)
andq $0x0, (%rsp)
leaq 0x48b(%rip), %r9        # 0xa0b61
leaq 0x10(%rsp), %rsi
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r13, %rdx
movq %rax, %rcx
callq 0x9fa4d
testb %bpl, %bpl
je 0xa0733
movq %r14, %rdi
callq 0x4b988
movb $0x1, %bpl
cmpq $0x3, %rax
je 0xa0735
leaq 0x2ba4f(%rip), %rsi     # 0xcc159
leaq 0x4ab54(%rip), %rdx     # 0xeb265
leaq 0x4aa30(%rip), %rcx     # 0xeb148
leaq 0x4aa02(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xf5, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa0735
xorl %ebp, %ebp
xorl %r13d, %r13d
movq %r14, %rdi
xorl %esi, %esi
callq 0x4b48e
testb %bpl, %bpl
je 0xa0781
movq (%rax), %rax
movb $0x1, %r13b
cmpl $-0x3, (%rax)
je 0xa0781
leaq 0x2ba00(%rip), %rsi     # 0xcc159
leaq 0x4ab3e(%rip), %rdx     # 0xeb29e
leaq 0x4a9e1(%rip), %rcx     # 0xeb148
leaq 0x4a9b3(%rip), %r8      # 0xeb121
xorl %r13d, %r13d
movq %r15, %rdi
movl $0xf7, %r9d
xorl %eax, %eax
callq 0xc007
pushq $0x1
popq %rsi
movq %r14, %rdi
callq 0x4b48e
testb %r13b, %r13b
je 0xa07cc
movq (%rax), %rax
movb $0x1, %bpl
cmpl $-0x3, (%rax)
je 0xa07ce
leaq 0x2b9b6(%rip), %rsi     # 0xcc159
leaq 0x4aaf4(%rip), %rdx     # 0xeb29e
leaq 0x4a997(%rip), %rcx     # 0xeb148
leaq 0x4a969(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xf9, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa07ce
xorl %ebp, %ebp
pushq $0x2
popq %rsi
movq %r14, %rdi
callq 0x4b48e
pushq $-0x1
popq %r13
testb %bpl, %bpl
je 0xa0a16
movq (%rax), %rax
cmpl $-0x3, (%rax)
jne 0xa0865
pushq $0x2
popq %rsi
movq %r12, %rdi
callq 0x4de2d
testb %al, %al
je 0xa088f
pushq $0x3
popq %rsi
movq %r12, %rdi
callq 0x4de2d
testb %al, %al
je 0xa08b9
pushq $0x4
popq %rsi
movq %r12, %rdi
callq 0x4de2d
testb %al, %al
je 0xa09ea
movq %r12, %rdi
callq 0x4e0f8
xorl %ebp, %ebp
cmpq $0x3, %rax
je 0xa0a19
leaq 0x2b917(%rip), %rsi     # 0xcc159
leaq 0x4ab1d(%rip), %rdx     # 0xeb366
leaq 0x4a8f8(%rip), %rcx     # 0xeb148
leaq 0x4a8ca(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0x100, %r9d            # imm = 0x100
jmp 0xa0a0f
leaq 0x2b8ed(%rip), %rsi     # 0xcc159
leaq 0x4aa2b(%rip), %rdx     # 0xeb29e
leaq 0x4a8ce(%rip), %rcx     # 0xeb148
leaq 0x4a8a0(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xfb, %r9d
jmp 0xa0a0f
leaq 0x2b8c3(%rip), %rsi     # 0xcc159
leaq 0x4aa78(%rip), %rdx     # 0xeb315
leaq 0x4a8a4(%rip), %rcx     # 0xeb148
leaq 0x4a876(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xfd, %r9d
jmp 0xa0a0f
leaq 0x2b899(%rip), %rsi     # 0xcc159
leaq 0x4aa69(%rip), %rdx     # 0xeb330
leaq 0x4a87a(%rip), %rcx     # 0xeb148
leaq 0x4a84c(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xfe, %r9d
jmp 0xa0a0f
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0x264(%rip), %r8        # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
testq %rax, %rax
je 0xa0a42
leaq 0x2b836(%rip), %rsi     # 0xcc159
leaq 0x4a84b(%rip), %rdx     # 0xeb175
leaq 0x4a817(%rip), %rcx     # 0xeb148
leaq 0x4a7e9(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xb1, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa00f8
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
leaq 0x1fa(%rip), %r8        # 0xa0b61
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rcx
movq %r12, %rsi
movq %rax, %rdx
xorl %r9d, %r9d
callq 0x9f78c
testq %rax, %rax
je 0xa0af2
leaq 0x2b7cc(%rip), %rsi     # 0xcc159
leaq 0x4a7e1(%rip), %rdx     # 0xeb175
leaq 0x4a7ad(%rip), %rcx     # 0xeb148
leaq 0x4a77f(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xcc, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa036f
leaq 0x2b799(%rip), %rsi     # 0xcc159
leaq 0x4a848(%rip), %rdx     # 0xeb20f
leaq 0x4a77a(%rip), %rcx     # 0xeb148
leaq 0x4a74c(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0x9e, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0x9fda8
leaq 0x2b768(%rip), %rsi     # 0xcc159
leaq 0x4a953(%rip), %rdx     # 0xeb34b
leaq 0x4a749(%rip), %rcx     # 0xeb148
leaq 0x4a71b(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xff, %r9d
xorl %eax, %eax
callq 0xc007
movl %r13d, %ebp
movq %rbx, %rdi
callq 0x4c19d
movq %r14, %rdi
callq 0x4c19d
movq %r12, %rdi
callq 0x4e2ea
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x7, 0x10(%rsp)
movq %r14, %rdi
callq 0x4ba50
leaq 0x14(%rsp), %rsi
pushq $0x4
popq %rdx
movq %rbx, %rdi
callq 0x4b801
movq %rbx, %rdi
callq 0x4b988
cmpq $0x3, %rax
jne 0xa0afa
movq %rbx, %rdi
callq 0x4b7ab
movq %rax, %r12
movq %rbx, %rdi
callq 0x4b988
andq $0x0, (%rsp)
leaq 0xce(%rip), %r9         # 0xa0b61
leaq 0x10(%rsp), %rsi
pushq $0x4
popq %r8
movq %r14, %rdi
movq %r12, %rdx
movq %rax, %rcx
callq 0x9fa02
movq %r14, %rdi
callq 0x4b988
movb $0x1, %bpl
cmpq $0x3, %rax
je 0xa0150
leaq 0x2b693(%rip), %rsi     # 0xcc159
leaq 0x4a798(%rip), %rdx     # 0xeb265
leaq 0x4a674(%rip), %rcx     # 0xeb148
leaq 0x4a646(%rip), %r8      # 0xeb121
xorl %ebp, %ebp
movq %r15, %rdi
movl $0xba, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa0150
movb $0x1, %bpl
jmp 0xa036f
leaq 0x2b658(%rip), %rsi     # 0xcc159
leaq 0x4a740(%rip), %rdx     # 0xeb248
leaq 0x4a639(%rip), %rcx     # 0xeb148
leaq 0x4a60b(%rip), %r8      # 0xeb121
movq %r15, %rdi
movl $0xb7, %r9d
xorl %eax, %eax
callq 0xc007
jmp 0xa0118
movq 0x8d486(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2952a(%rip), %rsi     # 0xca066
leaq 0x29b16(%rip), %rdx     # 0xca659
leaq 0x4a5fe(%rip), %rcx     # 0xeb148
leaq 0x4a5d0(%rip), %r8      # 0xeb121
pushq $0x79
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300