// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/array.c
// Function: gt_array_unit_test
int gt_array_unit_test(GtError *err)
{
  GtArray *char_array, *int_array, *a = NULL, *aref, *aclone = NULL;
  char cc, *char_array_test;
  int ci, *int_array_test;
  GtUword i, j, size;
  GtRange range;
  int had_err = 0;
  gt_error_check(err);

  /* testing an empty array */
  char_array = gt_array_new(sizeof (char));
  gt_array_delete(char_array);
  int_array = gt_array_new(sizeof (int));
  gt_array_delete(int_array);

  char_array = gt_array_new(sizeof (char));
  int_array = gt_array_new(sizeof (int));
  char_array_test = gt_malloc((ARRAY_MAX_SIZE + 1) * sizeof (char));
  int_array_test = gt_malloc(ARRAY_MAX_SIZE * sizeof (int));

  for (i = 0; !had_err && i < ARRAY_NUM_OF_TESTS; i++) {
    size = gt_rand_max(ARRAY_MAX_SIZE);

    gt_array_reset(char_array);
    gt_array_set_size(int_array, 0);

    gt_ensure(gt_array_size(char_array) == 0);
    gt_ensure(gt_array_size(int_array) == 0);

    for (i = 0; !had_err && i < size; i++) {
      cc = gt_rand_max(CHAR_MAX);
      ci = gt_rand_max(INT_MAX);

      gt_array_add(char_array, cc);
      gt_array_add(int_array, ci);

      gt_ensure(gt_array_size(char_array) == i+1);
      gt_ensure(gt_array_size(int_array) == i+1);
      gt_ensure(*((char*) gt_array_get(char_array, i)) == cc);
      gt_ensure(*((int*) gt_array_get(int_array, i)) == ci);

      gt_array_add_elem(char_array, &cc, sizeof (char));
      gt_array_add_elem(int_array, &ci, sizeof (int));

      gt_ensure(gt_array_size(char_array) == i+2);
      gt_ensure(gt_array_size(int_array) == i+2);
      gt_ensure(*((char*) gt_array_get(char_array, i+1)) == cc);
      gt_ensure(*((int*) gt_array_get(int_array, i+1)) == ci);
      gt_ensure(*((char*) gt_array_pop(char_array)) == cc);
      gt_ensure(*((int*) gt_array_pop(int_array)) == ci);
      gt_ensure(gt_array_size(char_array) == i+1);
      gt_ensure(gt_array_size(int_array) == i+1);
      gt_ensure(*((char*) gt_array_get(char_array, i)) == cc);
      gt_ensure(*((int*) gt_array_get(int_array, i)) == ci);

      char_array_test[i] = cc;
      char_array_test[i+1]= '\0';
      int_array_test[i] = ci;

      gt_ensure(strncmp(gt_array_get_space(char_array),
                                 char_array_test,
                                 strlen(char_array_test)) == 0);

      for (j = 0; j <= i && !had_err; j++)
        gt_ensure(
               *(int*) gt_array_get(int_array, j) == int_array_test[j]);
    }
  }

  /* test gt_array_reverse(), gt_array_iterate(), gt_array_rem(),
     gt_array_rem_span(), and gt_array_ref() */
  if (!had_err) {
    a = gt_array_new(sizeof (GtRange));
    for (i = 0; i < 24; i++) {
      range.start = i + 1;
      range.end   = i + 101;
      gt_array_add(a, range);
    }
    gt_array_reverse(a);
    for (i = 0; !had_err && i < 24; i++) {
      range.start = i + 1;
      range.end   = i + 101;
      gt_ensure(!gt_range_compare(&range, gt_array_get(a, 23 - i)));
    }
    aref = gt_array_ref(a);
    gt_array_delete(aref);
  }
  if (!had_err) {
    i = 0;
    had_err = gt_array_iterate_reverse(a, iterate_test_func, &i, err);
    gt_ensure(
              gt_array_iterate_reverse(a, iterate_fail_func, NULL, err));
  }
  if (!had_err) {
    gt_array_reverse(a);
    i = 0;
    had_err = gt_array_iterate(a, iterate_test_func, &i, err);
    gt_ensure(gt_array_iterate(a, iterate_fail_func, NULL, err));
  }
  if (!had_err) {
    aclone = gt_array_clone(a);
    for (i = 0;!had_err && i < gt_array_size(a); i++) {
      gt_ensure(!gt_range_compare(gt_array_get(a, i),
                                        gt_array_get(aclone, i)));
    }
  }
  if (!had_err) {
    gt_array_rem(a, 13);
    gt_array_rem(a, 12);
    gt_array_rem(a, 11);
    gt_array_rem(a, 10);
    gt_ensure(gt_array_size(a) == 20);
    for (i = 0; !had_err && i < 10; i++) {
      range.start = i + 1;
      range.end   = i + 101;
      gt_ensure(!gt_range_compare(&range, gt_array_get(a, i)));
    }
    for (i = 10; !had_err && i < 20; i++) {
      range.start = 4 + i + 1;
      range.end   = 4 + i + 101;
      gt_ensure(!gt_range_compare(&range, gt_array_get(a, i)));
    }
  }
  if (!had_err) {
    gt_array_rem_span(aclone, 10, 13);
    gt_ensure(gt_array_size(aclone) == 20);
    for (i = 0; !had_err && i < 10; i++) {
      range.start = i + 1;
      range.end   = i + 101;
      gt_ensure(!gt_range_compare(&range, gt_array_get(aclone, i)));
    }
    for (i = 10; !had_err && i < 20; i++) {
      range.start = 4 + i + 1;
      range.end   = 4 + i + 101;
      gt_ensure(!gt_range_compare(&range, gt_array_get(aclone, i)));
    }
  }
  if (!had_err) {
    gt_array_rem_span(aclone, 10, 19);
    gt_array_prepend_array(a, aclone);
    gt_ensure(gt_array_size(a) == 30);
    for (i = 0; !had_err && i < 10; i++) {
      range.start = i + 1;
      range.end   = i + 101;
      gt_ensure(!gt_range_compare(&range, gt_array_get(a, i)));
    }
    for (i = 10; !had_err && i < 20; i++) {
      range.start = i + 1 - 10;
      range.end   = i + 101 - 10;
      gt_ensure(!gt_range_compare(&range, gt_array_get(a, i)));
    }
    for (i = 20; !had_err && i < 30; i++) {
      range.start = 4 + i + 1 - 10;
      range.end   = 4 + i + 101 - 10;
      gt_ensure(!gt_range_compare(&range, gt_array_get(a, i)));
    }
  }
  gt_array_delete(aclone);
  gt_array_delete(a);

  gt_array_delete(char_array);
  gt_array_delete(int_array);
  gt_free(char_array_test);
  gt_free(int_array_test);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdi, %r15
testq %rdi, %rdi
je 0x4c211
movq %r15, %rdi
callq 0xc103
testb %al, %al
jne 0x4d0b6
pushq $0x1
popq %rbx
movq %rbx, %rdi
callq 0x4b380
movq %rax, %rdi
callq 0x4c19d
pushq $0x4
popq %rbp
movq %rbp, %rdi
callq 0x4b380
movq %rax, %rdi
callq 0x4c19d
movq %rbx, %rdi
callq 0x4b380
movq %rax, %r13
movq %rbp, %rdi
callq 0x4b380
movq %rax, %r14
leaq 0x8bccf(%rip), %r12     # 0xd7f23
movl $0x401, %edi            # imm = 0x401
movq %r12, %rsi
movl $0x166, %edx            # imm = 0x166
callq 0xccb0
movq %rax, 0x50(%rsp)
movl $0x1000, %edi           # imm = 0x1000
movq %r12, %rsi
movl $0x167, %edx            # imm = 0x167
callq 0xccb0
movq %rax, %r12
xorl %ecx, %ecx
xorl %eax, %eax
movq %r13, 0x48(%rsp)
movq %rcx, 0x10(%rsp)
cmpq $0x63, %rcx
ja 0x4c884
testl %eax, %eax
jne 0x4c884
movl $0x400, %edi            # imm = 0x400
callq 0x58dd2
movq %rax, 0x20(%rsp)
movq %r13, %rdi
callq 0x4ba50
movq %r14, %rdi
xorl %esi, %esi
callq 0x4b9d8
testq %r13, %r13
je 0x4c2f4
cmpq $0x0, 0x8(%r13)
je 0x4c2f4
movq %r15, %rdi
leaq 0x7fe82(%rip), %rsi     # 0xcc159
leaq 0x8c048(%rip), %rdx     # 0xd8326
leaq 0x8c02e(%rip), %rcx     # 0xd8313
leaq 0x8bc37(%rip), %r8      # 0xd7f23
movl $0x16f, %r9d            # imm = 0x16F
jmp 0x4c327
xorl %eax, %eax
testq %r14, %r14
je 0x4c331
cmpq $0x0, 0x8(%r14)
je 0x4c331
movq %r15, %rdi
leaq 0x7fe4d(%rip), %rsi     # 0xcc159
leaq 0x8c032(%rip), %rdx     # 0xd8345
leaq 0x8bff9(%rip), %rcx     # 0xd8313
leaq 0x8bc02(%rip), %r8      # 0xd7f23
movl $0x170, %r9d            # imm = 0x170
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rax
xorl %ecx, %ecx
movq %rcx, 0x10(%rsp)
testl %eax, %eax
jne 0x4c87c
cmpq 0x20(%rsp), %rcx
jae 0x4c87c
pushq $0x7f
popq %rdi
callq 0x58dd2
movb %al, 0xf(%rsp)
movl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
callq 0x58dd2
movl %eax, 0x1c(%rsp)
movq %r13, %rdi
leaq 0xf(%rsp), %rsi
movq %rbx, %rdx
callq 0x4b801
movq %r14, %rdi
leaq 0x1c(%rsp), %rsi
movq %rbp, %rdx
callq 0x4b801
testq %r13, %r13
je 0x4c390
movq 0x8(%r13), %rax
jmp 0x4c392
xorl %eax, %eax
movq 0x10(%rsp), %rsi
leaq 0x1(%rsi), %rcx
cmpq %rcx, %rax
jne 0x4c3ab
testq %r14, %r14
je 0x4c3d5
movq 0x8(%r14), %rcx
jmp 0x4c3d7
movq %r15, %rdi
leaq 0x7fda4(%rip), %rsi     # 0xcc159
leaq 0x8bfa7(%rip), %rdx     # 0xd8363
leaq 0x8bf50(%rip), %rcx     # 0xd8313
leaq 0x8bb59(%rip), %r8      # 0xd7f23
movl $0x179, %r9d            # imm = 0x179
jmp 0x4c4aa
xorl %ecx, %ecx
cmpq %rax, %rcx
jne 0x4c437
movq %r13, %rdi
callq 0x4b48e
movb (%rax), %al
cmpb 0xf(%rsp), %al
jne 0x4c45e
movq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x4b48e
movl (%rax), %eax
cmpl 0x1c(%rsp), %eax
jne 0x4c485
movq %r13, %rdi
leaq 0xf(%rsp), %rsi
movq %rbx, %rdx
callq 0x4b801
movq %r14, %rdi
leaq 0x1c(%rsp), %rsi
movq %rbp, %rdx
callq 0x4b801
testq %r13, %r13
je 0x4c5dc
movq 0x8(%r13), %rax
jmp 0x4c5de
movq %r15, %rdi
leaq 0x7fd18(%rip), %rsi     # 0xcc159
leaq 0x8bf3c(%rip), %rdx     # 0xd8384
leaq 0x8bec4(%rip), %rcx     # 0xd8313
leaq 0x8bacd(%rip), %r8      # 0xd7f23
movl $0x17a, %r9d            # imm = 0x17A
jmp 0x4c4aa
movq %r15, %rdi
leaq 0x7fcf1(%rip), %rsi     # 0xcc159
leaq 0x8bf35(%rip), %rdx     # 0xd83a4
leaq 0x8be9d(%rip), %rcx     # 0xd8313
leaq 0x8baa6(%rip), %r8      # 0xd7f23
movl $0x17b, %r9d            # imm = 0x17B
jmp 0x4c4aa
movq %r15, %rdi
leaq 0x7fcca(%rip), %rsi     # 0xcc159
leaq 0x8bf3b(%rip), %rdx     # 0xd83d1
leaq 0x8be76(%rip), %rcx     # 0xd8313
leaq 0x8ba7f(%rip), %r8      # 0xd7f23
movl $0x17c, %r9d            # imm = 0x17C
xorl %eax, %eax
callq 0xc007
movq %r13, %rdi
leaq 0xf(%rsp), %rsi
movq %rbx, %rdx
callq 0x4b801
movq %r14, %rdi
leaq 0x1c(%rsp), %rsi
movq %rbp, %rdx
callq 0x4b801
xorl %r13d, %r13d
movb 0xf(%rsp), %al
movq 0x10(%rsp), %rcx
movq 0x50(%rsp), %rdx
movb %al, (%rdx,%rcx)
movq 0x10(%rsp), %rax
movb $0x0, 0x1(%rdx,%rax)
movl 0x1c(%rsp), %eax
movq 0x10(%rsp), %rcx
movl %eax, (%r12,%rcx,4)
pushq $-0x1
popq %rax
testb %r13b, %r13b
je 0x4c575
movq %rbx, %rbp
movq %r15, %rbx
movq 0x48(%rsp), %rdi
callq 0x4b7ab
movq %rax, %r13
movq 0x50(%rsp), %r15
movq %r15, %rdi
callq 0xb260
movq %r13, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0xb2a0
testl %eax, %eax
je 0x4c56a
movq %rbx, %r15
movq %rbx, %rdi
leaq 0x7fc16(%rip), %rsi     # 0xcc159
leaq 0x8bfa1(%rip), %rdx     # 0xd84eb
leaq 0x8bdc2(%rip), %rcx     # 0xd8313
leaq 0x8b9cb(%rip), %r8      # 0xd7f23
movl $0x192, %r9d            # imm = 0x192
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rax
jmp 0x4c56f
xorl %eax, %eax
movq %rbx, %r15
movq %rbp, %rbx
pushq $0x4
popq %rbp
xorl %r13d, %r13d
movq 0x10(%rsp), %rcx
testl %eax, %eax
jne 0x4c5cf
cmpq %rcx, %r13
ja 0x4c5cf
movq %r14, %rdi
movq %r13, %rsi
callq 0x4b48e
movl (%rax), %ecx
xorl %eax, %eax
cmpl (%r12,%r13,4), %ecx
je 0x4c5ca
movq %r15, %rdi
leaq 0x7fbb4(%rip), %rsi     # 0xcc159
leaq 0x8bf96(%rip), %rdx     # 0xd8542
leaq 0x8bd60(%rip), %rcx     # 0xd8313
leaq 0x8b969(%rip), %r8      # 0xd7f23
movl $0x196, %r9d            # imm = 0x196
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rax
incq %r13
jmp 0x4c578
incq %rcx
movq 0x48(%rsp), %r13
jmp 0x4c333
xorl %eax, %eax
movq 0x10(%rsp), %rsi
leaq 0x2(%rsi), %rcx
cmpq %rcx, %rax
jne 0x4c5f7
testq %r14, %r14
je 0x4c624
movq 0x8(%r14), %rcx
jmp 0x4c626
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7fb55(%rip), %rsi     # 0xcc159
leaq 0x8bdf1(%rip), %rdx     # 0xd83fc
leaq 0x8bd01(%rip), %rcx     # 0xd8313
leaq 0x8b90a(%rip), %r8      # 0xd7f23
movl $0x181, %r9d            # imm = 0x181
jmp 0x4c870
xorl %ecx, %ecx
cmpq %rax, %rcx
jne 0x4c698
incq %rsi
movq %r13, %rdi
callq 0x4b48e
movb (%rax), %al
cmpb 0xf(%rsp), %al
jne 0x4c6c5
movq 0x10(%rsp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x4b48e
movl (%rax), %eax
cmpl 0x1c(%rsp), %eax
jne 0x4c6f2
movq %r13, %rdi
callq 0x4b52b
movb (%rax), %al
cmpb 0xf(%rsp), %al
jne 0x4c71f
movq %r14, %rdi
callq 0x4b52b
movl (%rax), %eax
cmpl 0x1c(%rsp), %eax
jne 0x4c74c
testq %r13, %r13
je 0x4c779
movq 0x8(%r13), %rax
jmp 0x4c77b
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7fab4(%rip), %rsi     # 0xcc159
leaq 0x8bd71(%rip), %rdx     # 0xd841d
leaq 0x8bc60(%rip), %rcx     # 0xd8313
leaq 0x8b869(%rip), %r8      # 0xd7f23
movl $0x182, %r9d            # imm = 0x182
jmp 0x4c870
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7fa87(%rip), %rsi     # 0xcc159
leaq 0x8bd64(%rip), %rdx     # 0xd843d
leaq 0x8bc33(%rip), %rcx     # 0xd8313
leaq 0x8b83c(%rip), %r8      # 0xd7f23
movl $0x183, %r9d            # imm = 0x183
jmp 0x4c870
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7fa5a(%rip), %rsi     # 0xcc159
leaq 0x8bd66(%rip), %rdx     # 0xd846c
leaq 0x8bc06(%rip), %rcx     # 0xd8313
leaq 0x8b80f(%rip), %r8      # 0xd7f23
movl $0x184, %r9d            # imm = 0x184
jmp 0x4c870
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7fa2d(%rip), %rsi     # 0xcc159
leaq 0x8bd66(%rip), %rdx     # 0xd8499
leaq 0x8bbd9(%rip), %rcx     # 0xd8313
leaq 0x8b7e2(%rip), %r8      # 0xd7f23
movl $0x185, %r9d            # imm = 0x185
jmp 0x4c870
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7fa00(%rip), %rsi     # 0xcc159
leaq 0x8bd63(%rip), %rdx     # 0xd84c3
leaq 0x8bbac(%rip), %rcx     # 0xd8313
leaq 0x8b7b5(%rip), %r8      # 0xd7f23
movl $0x186, %r9d            # imm = 0x186
jmp 0x4c870
xorl %eax, %eax
movq 0x10(%rsp), %rsi
leaq 0x1(%rsi), %rcx
cmpq %rcx, %rax
jne 0x4c794
testq %r14, %r14
je 0x4c7c1
movq 0x8(%r14), %rcx
jmp 0x4c7c3
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7f9b8(%rip), %rsi     # 0xcc159
leaq 0x8bbbb(%rip), %rdx     # 0xd8363
leaq 0x8bb64(%rip), %rcx     # 0xd8313
leaq 0x8b76d(%rip), %r8      # 0xd7f23
movl $0x187, %r9d            # imm = 0x187
jmp 0x4c870
xorl %ecx, %ecx
cmpq %rax, %rcx
jne 0x4c81e
movq %r13, %rdi
callq 0x4b48e
movb (%rax), %al
cmpb 0xf(%rsp), %al
jne 0x4c848
movq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x4b48e
movl (%rax), %eax
movb $0x1, %r13b
cmpl 0x1c(%rsp), %eax
je 0x4c4d4
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7f958(%rip), %rsi     # 0xcc159
leaq 0x8bbc9(%rip), %rdx     # 0xd83d1
leaq 0x8bb04(%rip), %rcx     # 0xd8313
leaq 0x8b70d(%rip), %r8      # 0xd7f23
movl $0x18a, %r9d            # imm = 0x18A
jmp 0x4c870
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7f92e(%rip), %rsi     # 0xcc159
leaq 0x8bb52(%rip), %rdx     # 0xd8384
leaq 0x8bada(%rip), %rcx     # 0xd8313
leaq 0x8b6e3(%rip), %r8      # 0xd7f23
movl $0x188, %r9d            # imm = 0x188
jmp 0x4c870
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0x7f904(%rip), %rsi     # 0xcc159
leaq 0x8bb48(%rip), %rdx     # 0xd83a4
leaq 0x8bab0(%rip), %rcx     # 0xd8313
leaq 0x8b6b9(%rip), %r8      # 0xd7f23
movl $0x189, %r9d            # imm = 0x189
xorl %eax, %eax
callq 0xc007
jmp 0x4c4d4
incq %rcx
jmp 0x4c289
testl %eax, %eax
je 0x4c895
pushq $-0x1
popq %rbx
xorl %r15d, %r15d
xorl %ebp, %ebp
jmp 0x4c9d6
movq %r15, 0x28(%rsp)
pushq $0x10
popq %rbx
movq %rbx, %rdi
callq 0x4b380
movq %rax, %r13
xorl %eax, %eax
leaq 0x30(%rsp), %r15
movq %rax, 0x10(%rsp)
cmpq $0x17, %rax
ja 0x4c8e4
leaq 0x1(%rax), %rcx
movq %rcx, 0x30(%rsp)
addq $0x65, %rax
movq %rax, 0x38(%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x4b801
movq 0x10(%rsp), %rax
incq %rax
jmp 0x4c8af
movq %r13, 0x20(%rsp)
movq %r13, %rdi
callq 0x4b6dd
pushq $0x17
popq %r13
leaq 0x30(%rsp), %rbx
pushq $-0x1
popq %r15
xorl %eax, %eax
xorl %ebp, %ebp
movq %rax, 0x10(%rsp)
testl %ebp, %ebp
jne 0x4c981
cmpq $0x17, %rax
ja 0x4c981
leaq 0x1(%rax), %rcx
movq %rcx, 0x30(%rsp)
leaq 0x65(%rax), %rcx
movq %rcx, 0x38(%rsp)
movq %r13, %rsi
subq %rax, %rsi
movq 0x20(%rsp), %rdi
callq 0x4b48e
movq %rbx, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4c975
movq 0x28(%rsp), %rdi
leaq 0x7f80b(%rip), %rsi     # 0xcc159
leaq 0x8bc25(%rip), %rdx     # 0xd857a
leaq 0x8b9b7(%rip), %rcx     # 0xd8313
leaq 0x8b5c0(%rip), %r8      # 0xd7f23
movl $0x1a7, %r9d            # imm = 0x1A7
xorl %eax, %eax
callq 0xc007
movl %r15d, %ebp
jmp 0x4c977
xorl %ebp, %ebp
movq 0x10(%rsp), %rax
incq %rax
jmp 0x4c902
movq 0x20(%rsp), %rbx
testq %rbx, %rbx
je 0x4c98e
incl 0x20(%rbx)
movq %rbx, %rdi
callq 0x4c19d
testl %ebp, %ebp
movq 0x48(%rsp), %r13
movq 0x28(%rsp), %r15
je 0x4c9af
xorl %r15d, %r15d
movq %rbx, %rbp
pushq $-0x1
popq %rbx
jmp 0x4c9d6
leaq 0x10(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x72f(%rip), %rsi       # 0x4d0ee
movq %rbx, %rdi
movq %r15, %rcx
callq 0x4be61
testl %eax, %eax
movq %rbx, %rbp
je 0x4ca30
xorl %r15d, %r15d
movl %eax, %ebx
movq %r15, %rdi
callq 0x4c19d
movq %rbp, %rdi
callq 0x4c19d
movq %r13, %rdi
callq 0x4c19d
movq %r14, %rdi
callq 0x4c19d
leaq 0x8b526(%rip), %r14     # 0xd7f23
movq 0x50(%rsp), %rdi
movq %r14, %rsi
movl $0x1f7, %edx            # imm = 0x1F7
callq 0xd249
movq %r12, %rdi
movq %r14, %rsi
movl $0x1f8, %edx            # imm = 0x1F8
callq 0xd249
movl %ebx, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x785(%rip), %rsi       # 0x4d1bc
movq %rbp, %rdi
xorl %edx, %edx
movq %r15, %rcx
callq 0x4be61
testl %eax, %eax
je 0x4cb42
movq %rbp, %rdi
callq 0x4b6dd
leaq 0x10(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x68a(%rip), %rsi       # 0x4d0ee
movq %rbp, %rdi
movq %r15, %rcx
callq 0x4bd8a
testl %eax, %eax
pushq $-0x1
popq %rbx
jne 0x4c9d1
leaq 0x73b(%rip), %rsi       # 0x4d1bc
movq %rbp, %rdi
xorl %edx, %edx
movq %r15, %rcx
callq 0x4bd8a
testl %eax, %eax
je 0x4cb76
movq %rbp, %rdi
callq 0x4b3da
movq %rax, 0x40(%rsp)
pushq $-0x1
popq %rbx
leaq 0x8b866(%rip), %r15     # 0xd8313
leaq 0x8b46f(%rip), %r13     # 0xd7f23
xorl %esi, %esi
xorl %eax, %eax
movq %rsi, 0x10(%rsp)
testl %eax, %eax
jne 0x4cbaa
testq %rbp, %rbp
je 0x4cad0
movq 0x8(%rbp), %rax
jmp 0x4cad2
xorl %eax, %eax
cmpq %rax, %rsi
jae 0x4cbb4
movq %rbp, %rdi
callq 0x4b48e
movq %rax, %rbp
movq 0x10(%rsp), %rsi
movq 0x40(%rsp), %rdi
callq 0x4b48e
movq %rbp, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4cb2e
movq 0x28(%rsp), %rdi
leaq 0x7f649(%rip), %rsi     # 0xcc159
leaq 0x8bb02(%rip), %rdx     # 0xd8619
movq %r15, %rcx
movq %r13, %r8
movl $0x1bc, %r9d            # imm = 0x1BC
xorl %eax, %eax
callq 0xc007
movl %ebx, %eax
jmp 0x4cb30
xorl %eax, %eax
movq 0x10(%rsp), %rsi
incq %rsi
movq 0x20(%rsp), %rbp
jmp 0x4cab8
leaq 0x7f610(%rip), %rsi     # 0xcc159
leaq 0x8ba5d(%rip), %rdx     # 0xd85ad
leaq 0x8b7bc(%rip), %rcx     # 0xd8313
leaq 0x8b3c5(%rip), %r8      # 0xd7f23
movq %r15, %rdi
xorl %r15d, %r15d
movl $0x1b0, %r9d            # imm = 0x1B0
xorl %eax, %eax
callq 0xc007
jmp 0x4c9aa
leaq 0x7f5dc(%rip), %rsi     # 0xcc159
leaq 0x8ba63(%rip), %rdx     # 0xd85e7
leaq 0x8b788(%rip), %rcx     # 0xd8313
leaq 0x8b391(%rip), %r8      # 0xd7f23
movq %r15, %rdi
xorl %r15d, %r15d
movl $0x1b6, %r9d            # imm = 0x1B6
xorl %eax, %eax
callq 0xc007
jmp 0x4c9d6
movq 0x48(%rsp), %r13
jmp 0x4ceae
pushq $0xd
popq %rsi
movq %rbp, %rdi
callq 0x4b580
pushq $0xc
popq %rsi
movq %rbp, %rdi
callq 0x4b580
pushq $0xb
popq %rsi
movq %rbp, %rdi
callq 0x4b580
pushq $0xa
popq %rbx
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x4b580
testq %rbp, %rbp
je 0x4cbf1
xorl %eax, %eax
cmpq $0x14, 0x8(%rbp)
je 0x4cc22
leaq 0x7f561(%rip), %rsi     # 0xcc159
leaq 0x8ba59(%rip), %rdx     # 0xd8658
leaq 0x8b70d(%rip), %rcx     # 0xd8313
leaq 0x8b316(%rip), %r8      # 0xd7f23
movq 0x28(%rsp), %rdi
movl $0x1c4, %r9d            # imm = 0x1C4
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rax
leaq 0x30(%rsp), %r15
leaq 0x8b2f5(%rip), %rbp     # 0xd7f23
pushq $-0x1
popq %r13
xorl %esi, %esi
movq %rsi, 0x10(%rsp)
testl %eax, %eax
jne 0x4cca9
cmpq $0xa, %rsi
jae 0x4cca9
leaq 0x1(%rsi), %rax
movq %rax, 0x30(%rsp)
leaq 0x65(%rsi), %rax
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rdi
callq 0x4b48e
movq %r15, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4cc9d
movq 0x28(%rsp), %rdi
leaq 0x7f4df(%rip), %rsi     # 0xcc159
leaq 0x8b9ee(%rip), %rdx     # 0xd866f
leaq 0x8b68b(%rip), %rcx     # 0xd8313
movq %rbp, %r8
movl $0x1c8, %r9d            # imm = 0x1C8
xorl %eax, %eax
callq 0xc007
movl %r13d, %eax
jmp 0x4cc9f
xorl %eax, %eax
movq 0x10(%rsp), %rsi
incq %rsi
jmp 0x4cc34
leaq 0x30(%rsp), %r15
leaq 0x8b26e(%rip), %rbp     # 0xd7f23
pushq $-0x1
popq %r13
movq %rbx, 0x10(%rsp)
testl %eax, %eax
jne 0x4cd31
cmpq $0x13, %rbx
ja 0x4cd31
leaq 0x5(%rbx), %rax
movq %rax, 0x30(%rsp)
leaq 0x69(%rbx), %rax
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rdi
movq %rbx, %rsi
callq 0x4b48e
movq %r15, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4cd25
movq 0x28(%rsp), %rdi
leaq 0x7f457(%rip), %rsi     # 0xcc159
leaq 0x8b966(%rip), %rdx     # 0xd866f
leaq 0x8b603(%rip), %rcx     # 0xd8313
movq %rbp, %r8
movl $0x1cd, %r9d            # imm = 0x1CD
xorl %eax, %eax
callq 0xc007
movl %r13d, %eax
jmp 0x4cd27
xorl %eax, %eax
movq 0x10(%rsp), %rbx
incq %rbx
jmp 0x4ccb9
testl %eax, %eax
jne 0x4cea1
pushq $0xa
popq %rbx
pushq $0xd
popq %rdx
movq 0x40(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x4b60d
testq %r15, %r15
je 0x4cd5d
xorl %eax, %eax
cmpq $0x14, 0x8(%r15)
je 0x4cd8e
leaq 0x7f3f5(%rip), %rsi     # 0xcc159
leaq 0x8b932(%rip), %rdx     # 0xd869d
leaq 0x8b5a1(%rip), %rcx     # 0xd8313
leaq 0x8b1aa(%rip), %r8      # 0xd7f23
movq 0x28(%rsp), %rdi
movl $0x1d2, %r9d            # imm = 0x1D2
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rax
leaq 0x30(%rsp), %r15
leaq 0x8b189(%rip), %rbp     # 0xd7f23
pushq $-0x1
popq %r13
xorl %esi, %esi
movq %rsi, 0x10(%rsp)
testl %eax, %eax
jne 0x4ce15
cmpq $0xa, %rsi
jae 0x4ce15
leaq 0x1(%rsi), %rax
movq %rax, 0x30(%rsp)
leaq 0x65(%rsi), %rax
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
callq 0x4b48e
movq %r15, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4ce09
movq 0x28(%rsp), %rdi
leaq 0x7f373(%rip), %rsi     # 0xcc159
leaq 0x8b8cc(%rip), %rdx     # 0xd86b9
leaq 0x8b51f(%rip), %rcx     # 0xd8313
movq %rbp, %r8
movl $0x1d6, %r9d            # imm = 0x1D6
xorl %eax, %eax
callq 0xc007
movl %r13d, %eax
jmp 0x4ce0b
xorl %eax, %eax
movq 0x10(%rsp), %rsi
incq %rsi
jmp 0x4cda0
leaq 0x30(%rsp), %r15
leaq 0x8b102(%rip), %rbp     # 0xd7f23
pushq $-0x1
popq %r13
movq %rbx, 0x10(%rsp)
testl %eax, %eax
jne 0x4ce9d
cmpq $0x13, %rbx
ja 0x4ce9d
leaq 0x5(%rbx), %rax
movq %rax, 0x30(%rsp)
leaq 0x69(%rbx), %rax
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x4b48e
movq %r15, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4ce91
movq 0x28(%rsp), %rdi
leaq 0x7f2eb(%rip), %rsi     # 0xcc159
leaq 0x8b844(%rip), %rdx     # 0xd86b9
leaq 0x8b497(%rip), %rcx     # 0xd8313
movq %rbp, %r8
movl $0x1db, %r9d            # imm = 0x1DB
xorl %eax, %eax
callq 0xc007
movl %r13d, %eax
jmp 0x4ce93
xorl %eax, %eax
movq 0x10(%rsp), %rbx
incq %rbx
jmp 0x4ce25
testl %eax, %eax
je 0x4ceb8
pushq $-0x1
popq %rbx
movq 0x48(%rsp), %r13
movq 0x20(%rsp), %rbp
movq 0x40(%rsp), %r15
jmp 0x4c9d6
pushq $0xa
popq %r15
pushq $0x13
popq %rdx
movq 0x40(%rsp), %r13
movq %r13, %rdi
movq %r15, %rsi
callq 0x4b60d
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x4bf31
testq %rbx, %rbx
je 0x4cef0
cmpq $0x1e, 0x8(%rbx)
movl $0x0, %ebx
je 0x4cf21
leaq 0x7f262(%rip), %rsi     # 0xcc159
leaq 0x8b7ee(%rip), %rdx     # 0xd86ec
leaq 0x8b40e(%rip), %rcx     # 0xd8313
leaq 0x8b017(%rip), %r8      # 0xd7f23
movq 0x28(%rsp), %rdi
movl $0x1e1, %r9d            # imm = 0x1E1
xorl %eax, %eax
callq 0xc007
pushq $-0x1
popq %rbx
leaq 0x30(%rsp), %r13
pushq $-0x1
popq %rbp
xorl %esi, %esi
movq %rsi, 0x10(%rsp)
testl %ebx, %ebx
jne 0x4cfa3
cmpq $0xa, %rsi
jae 0x4cfa3
leaq 0x1(%rsi), %rax
movq %rax, 0x30(%rsp)
leaq 0x65(%rsi), %rax
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rdi
callq 0x4b48e
movq %r13, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4cf97
movq 0x28(%rsp), %rdi
leaq 0x7f1e8(%rip), %rsi     # 0xcc159
leaq 0x8b6f7(%rip), %rdx     # 0xd866f
leaq 0x8b394(%rip), %rcx     # 0xd8313
leaq 0x8af9d(%rip), %r8      # 0xd7f23
movl $0x1e5, %r9d            # imm = 0x1E5
xorl %eax, %eax
callq 0xc007
movl %ebp, %ebx
jmp 0x4cf99
xorl %ebx, %ebx
movq 0x10(%rsp), %rsi
incq %rsi
jmp 0x4cf2b
leaq 0x30(%rsp), %r13
pushq $-0x1
popq %rbp
movq %r15, 0x10(%rsp)
testl %ebx, %ebx
jne 0x4d026
cmpq $0x14, %r15
jae 0x4d026
leaq -0x9(%r15), %rax
movq %rax, 0x30(%rsp)
leaq 0x5b(%r15), %rax
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x4b48e
movq %r13, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4d01a
movq 0x28(%rsp), %rdi
leaq 0x7f165(%rip), %rsi     # 0xcc159
leaq 0x8b674(%rip), %rdx     # 0xd866f
leaq 0x8b311(%rip), %rcx     # 0xd8313
leaq 0x8af1a(%rip), %r8      # 0xd7f23
movl $0x1ea, %r9d            # imm = 0x1EA
xorl %eax, %eax
callq 0xc007
movl %ebp, %ebx
jmp 0x4d01c
xorl %ebx, %ebx
movq 0x10(%rsp), %r15
incq %r15
jmp 0x4cfab
pushq $0x14
popq %rsi
leaq 0x30(%rsp), %r15
leaq 0x8aeee(%rip), %rbp     # 0xd7f23
pushq $-0x1
popq %r13
movq %rsi, 0x10(%rsp)
testl %ebx, %ebx
jne 0x4cea4
cmpq $0x1d, %rsi
ja 0x4cea4
leaq -0x5(%rsi), %rax
movq %rax, 0x30(%rsp)
leaq 0x5f(%rsi), %rax
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rdi
callq 0x4b48e
movq %r15, %rdi
movq %rax, %rsi
callq 0x5cec8
testl %eax, %eax
je 0x4d0aa
movq 0x28(%rsp), %rdi
leaq 0x7f0d2(%rip), %rsi     # 0xcc159
leaq 0x8b5e1(%rip), %rdx     # 0xd866f
leaq 0x8b27e(%rip), %rcx     # 0xd8313
movq %rbp, %r8
movl $0x1ef, %r9d            # imm = 0x1EF
xorl %eax, %eax
callq 0xc007
movl %r13d, %ebx
jmp 0x4d0ac
xorl %ebx, %ebx
movq 0x10(%rsp), %rsi
incq %rsi
jmp 0x4d039
movq 0xe0efb(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x7cf9f(%rip), %rsi     # 0xca066
leaq 0x7d58b(%rip), %rdx     # 0xca659
leaq 0x8b23e(%rip), %rcx     # 0xd8313
leaq 0x8ae47(%rip), %r8      # 0xd7f23
movl $0x15c, %r9d            # imm = 0x15C
xorl %eax, %eax
callq 0xb8c0
callq 0xb300