// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/core/dlist.c
// Function: gt_dlist_unit_test
int gt_dlist_unit_test(GtError *err)
{
  GtDlist *dlist;
  GtDlistelem *dlistelem;
  int i, j, size, *data,
      elem_a = 7,
      elem_b = 6,
      elems[MAX_SIZE],
      elems_backup[MAX_SIZE],
      had_err = 0;
  gt_error_check(err);

  /* boundary case: empty dlist */
  dlist = gt_dlist_new(intcompare);
  gt_ensure(!gt_dlist_size(dlist));
  gt_dlist_delete(dlist);

  dlist = gt_dlist_new(NULL);
  gt_ensure(!gt_dlist_size(dlist));
  gt_dlist_delete(dlist);

  /* boundary case: dlist containing one element */
  dlist = gt_dlist_new(intcompare);
  gt_dlist_add(dlist, &elem_a);
  gt_ensure(gt_dlist_size(dlist) == 1);
  gt_ensure(
         elem_a == *(int*) gt_dlistelem_get_data(gt_dlist_first(dlist)));
  gt_dlist_delete(dlist);

  dlist = gt_dlist_new(NULL);
  gt_dlist_add(dlist, &elem_a);
  gt_ensure(gt_dlist_size(dlist) == 1);
  gt_ensure(
         elem_a == *(int*) gt_dlistelem_get_data(gt_dlist_first(dlist)));
  gt_dlist_delete(dlist);

  /* boundary case: dlist containing two elements */
  dlist = gt_dlist_new(intcompare);
  gt_dlist_add(dlist, &elem_a);
  gt_dlist_add(dlist, &elem_b);
  gt_ensure(gt_dlist_size(dlist) == 2);
  gt_ensure(
         elem_b == *(int*) gt_dlistelem_get_data(gt_dlist_first(dlist)));
  gt_dlist_delete(dlist);

  dlist = gt_dlist_new(NULL);
  gt_dlist_add(dlist, &elem_a);
  gt_dlist_add(dlist, &elem_b);
  gt_ensure(gt_dlist_size(dlist) == 2);
  gt_ensure(
         elem_a == *(int*) gt_dlistelem_get_data(gt_dlist_first(dlist)));
  gt_dlist_delete(dlist);

  for (i = 0; i < NUM_OF_TESTS && !had_err; i++) {
    /* construct the random elements for the list */
    size = gt_rand_max(MAX_SIZE);
    for (j = 0; j < size; j++) {
      elems[j] = gt_rand_max(INT_MAX);
      elems_backup[j] = elems[j];
    }

    /* sort the backup elements */
    qsort(elems_backup, size, sizeof (int), intcompare);

    /* test with compare function */
    dlist = gt_dlist_new(intcompare);
    gt_ensure(!gt_dlist_size(dlist));
    for (j = 0; j < size && !had_err; j++) {
      gt_dlist_add(dlist, elems + j);
      gt_ensure(gt_dlist_size(dlist) == j+1);

      for (dlistelem = gt_dlist_first(dlist); dlistelem != NULL;
           dlistelem = gt_dlistelem_next(dlistelem)) {
      }
    }
    j = 0;
    for (dlistelem = gt_dlist_first(dlist); dlistelem != NULL;
         dlistelem = gt_dlistelem_next(dlistelem)) {
      data = gt_dlistelem_get_data(dlistelem);
      gt_ensure(*data == elems_backup[j]);
      j++;
    }
    /* test gt_dlist_find() */
    for (j = 0; j < size; j++) {
      dlistelem = gt_dlist_find(dlist, elems_backup + j);
      gt_ensure(dlistelem);
      gt_ensure(
             *(int*) gt_dlistelem_get_data(dlistelem) == elems_backup[j]);
    }
    /* remove first element */
    if (gt_dlist_size(dlist)) {
      gt_dlist_remove(dlist, gt_dlist_first(dlist));
      if (gt_dlist_size(dlist)) {
        data = gt_dlistelem_get_data(gt_dlist_first(dlist));
        gt_ensure(*data == elems_backup[1]);
      }
    }
    /* remove last element */
    if (gt_dlist_size(dlist)) {
      gt_dlist_remove(dlist, gt_dlist_last(dlist));
      if (gt_dlist_size(dlist)) {
        data = gt_dlistelem_get_data(gt_dlist_last(dlist));
        gt_ensure(*data == elems_backup[size - 2]);
      }
    }
    /* XXX: fix this */
#if 0
    /* remove middle element */
    if (gt_dlist_size(dlist) >= 2) {
      dlistelem = gt_dlist_first(dlist);
      for (j = 1; j < gt_dlist_size(dlist) / 2; j++)
        dlistelem = gt_dlistelem_next(dlistelem);
      gt_dlist_remove(dlist, dlistelem);
      dlistelem = gt_dlist_first(dlist);
      for (j = 1; j < gt_dlist_size(dlist) / 2 + 1; j++)
        dlistelem = gt_dlistelem_next(dlistelem);
      data = gt_dlistelem_get_data(gt_dlist_last(dlist));
      gt_ensure(*data == elems_backup[size / 2 + 1]);
    }
#endif
    gt_dlist_delete(dlist);

    /* test without compare function */
    dlist = gt_dlist_new(NULL);
    gt_ensure(!gt_dlist_size(dlist));
    for (j = 0; j < size && !had_err; j++) {
      gt_dlist_add(dlist, elems + j);
      gt_ensure(gt_dlist_size(dlist) == j+1);
    }
    j = 0;
    for (dlistelem = gt_dlist_first(dlist); dlistelem != NULL;
         dlistelem = gt_dlistelem_next(dlistelem)) {
      data = gt_dlistelem_get_data(dlistelem);
      gt_assert(j < MAX_SIZE);
      gt_ensure(*data == elems[j]);
      j++;
    }
    /* remove first element */
    if (gt_dlist_size(dlist)) {
      gt_dlist_remove(dlist, gt_dlist_first(dlist));
      if (gt_dlist_size(dlist)) {
        data = gt_dlistelem_get_data(gt_dlist_first(dlist));
        gt_ensure(*data == elems[1]);
      }
    }
    /* remove last element */
    if (gt_dlist_size(dlist)) {
      gt_dlist_remove(dlist, gt_dlist_last(dlist));
      if (gt_dlist_size(dlist)) {
        data = gt_dlistelem_get_data(gt_dlist_last(dlist));
        gt_ensure(*data == elems[size - 2]);
      }
    }
    gt_dlist_delete(dlist);
  }

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2038, %rsp           # imm = 0x2038
movq %rdi, %r12
movl $0x7, 0x14(%rsp)
movl $0x6, 0x1c(%rsp)
testq %rdi, %rdi
je 0x730c6
movq %r12, %rdi
callq 0x3566a
testb %al, %al
jne 0x73b7d
leaq 0x7d447(%rip), %rdx     # 0xf0514
movl $0x1, %edi
movl $0x28, %esi
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r14
leaq -0x3f1(%rip), %rax      # 0x72cfa
movq %rax, (%r14)
leaq 0xa8d(%rip), %rax       # 0x73b82
movq %rax, 0x18(%r14)
movq 0x20(%r14), %r15
testq %r15, %r15
je 0x7312e
leaq 0x70070(%rip), %rsi     # 0xe3179
leaq 0x7d57e(%rip), %rdx     # 0xf068e
leaq 0x7d564(%rip), %rcx     # 0xf067b
leaq 0x7d3f6(%rip), %r8      # 0xf0514
movq %r12, %rdi
movl $0xdc, %r9d
xorl %eax, %eax
callq 0x3559f
movq %r14, %rdi
callq 0x73029
leaq 0x7d3d7(%rip), %rdx     # 0xf0514
movl $0x1, %edi
movl $0x28, %esi
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r14
xorl %ebx, %ebx
movq %rbx, (%rax)
movq %rbx, 0x18(%rax)
testq %r15, %r15
jne 0x7319b
cmpq $0x0, 0x20(%r14)
je 0x73199
leaq 0x70009(%rip), %rsi     # 0xe3179
leaq 0x7d517(%rip), %rdx     # 0xf068e
leaq 0x7d4fd(%rip), %rcx     # 0xf067b
leaq 0x7d38f(%rip), %r8      # 0xf0514
xorl %ebx, %ebx
movq %r12, %rdi
movl $0xe0, %r9d
xorl %eax, %eax
callq 0x3559f
jmp 0x7319b
movb $0x1, %bl
movq %r14, %rdi
callq 0x73029
leaq 0x7d36a(%rip), %rdx     # 0xf0514
movl $0x1, %edi
movl $0x28, %esi
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r14
leaq -0x4ce(%rip), %rax      # 0x72cfa
movq %rax, (%r14)
leaq 0x9b0(%rip), %rax       # 0x73b82
movq %rax, 0x18(%r14)
leaq 0x14(%rsp), %rsi
movq %r14, %rdi
callq 0x72dd9
testb %bl, %bl
movq %r12, 0x8(%rsp)
je 0x73239
cmpq $0x1, 0x20(%r14)
jne 0x7323d
movl 0x14(%rsp), %ebx
movq %r14, %rdi
callq 0x72d30
movq %rax, %rdi
callq 0x72dac
movb $0x1, %bpl
cmpl (%rax), %ebx
je 0x7326d
leaq 0x6ff64(%rip), %rsi     # 0xe3179
leaq 0x7d4a2(%rip), %rdx     # 0xf06be
leaq 0x7d458(%rip), %rcx     # 0xf067b
leaq 0x7d2ea(%rip), %r8      # 0xf0514
xorl %ebp, %ebp
movq 0x8(%rsp), %rdi
movl $0xe8, %r9d
jmp 0x73266
xorl %ebp, %ebp
jmp 0x7326d
leaq 0x6ff35(%rip), %rsi     # 0xe3179
leaq 0x7d459(%rip), %rdx     # 0xf06a4
leaq 0x7d429(%rip), %rcx     # 0xf067b
leaq 0x7d2bb(%rip), %r8      # 0xf0514
xorl %ebp, %ebp
movq 0x8(%rsp), %rdi
movl $0xe6, %r9d
xorl %eax, %eax
callq 0x3559f
movq %r14, %rdi
callq 0x73029
leaq 0x7d298(%rip), %rdx     # 0xf0514
movl $0x1, %edi
movl $0x28, %esi
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r14
xorl %ebx, %ebx
movq %rbx, (%rax)
movq %rbx, 0x18(%rax)
leaq 0x14(%rsp), %rsi
movq %rax, %rdi
callq 0x72dd9
testb %bpl, %bpl
movq 0x8(%rsp), %r15
je 0x73330
cmpq $0x1, 0x20(%r14)
jne 0x73302
movl 0x14(%rsp), %ebp
movq %r14, %rdi
callq 0x72d30
movq %rax, %rdi
callq 0x72dac
movb $0x1, %bl
cmpl (%rax), %ebp
movq 0x8(%rsp), %r15
je 0x73330
leaq 0x6fe99(%rip), %rsi     # 0xe3179
leaq 0x7d3d7(%rip), %rdx     # 0xf06be
leaq 0x7d38d(%rip), %rcx     # 0xf067b
leaq 0x7d21f(%rip), %r8      # 0xf0514
xorl %ebx, %ebx
movq %r15, %rdi
movl $0xef, %r9d
jmp 0x73329
leaq 0x6fe70(%rip), %rsi     # 0xe3179
leaq 0x7d394(%rip), %rdx     # 0xf06a4
leaq 0x7d364(%rip), %rcx     # 0xf067b
leaq 0x7d1f6(%rip), %r8      # 0xf0514
xorl %ebx, %ebx
movq %r15, %rdi
movl $0xed, %r9d
xorl %eax, %eax
callq 0x3559f
movq %r14, %rdi
callq 0x73029
leaq 0x7d1d5(%rip), %rdx     # 0xf0514
movl $0x1, %edi
movl $0x28, %esi
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r14
leaq -0x663(%rip), %rax      # 0x72cfa
movq %rax, (%r14)
leaq 0x81b(%rip), %rax       # 0x73b82
movq %rax, 0x18(%r14)
leaq 0x14(%rsp), %rsi
movq %r14, %rdi
callq 0x72dd9
leaq 0x1c(%rsp), %rsi
movq %r14, %rdi
callq 0x72dd9
testb %bl, %bl
je 0x733d5
cmpq $0x2, 0x20(%r14)
jne 0x733d9
movl 0x1c(%rsp), %ebp
movq %r14, %rdi
callq 0x72d30
movq %rax, %rdi
callq 0x72dac
movb $0x1, %bl
cmpl (%rax), %ebp
je 0x73407
leaq 0x6fdc8(%rip), %rsi     # 0xe3179
leaq 0x7d35f(%rip), %rdx     # 0xf0717
leaq 0x7d2bc(%rip), %rcx     # 0xf067b
leaq 0x7d14e(%rip), %r8      # 0xf0514
xorl %ebx, %ebx
movq 0x8(%rsp), %rdi
movl $0xf8, %r9d
jmp 0x73400
xorl %ebx, %ebx
jmp 0x73407
leaq 0x6fd99(%rip), %rsi     # 0xe3179
leaq 0x7d316(%rip), %rdx     # 0xf06fd
leaq 0x7d28d(%rip), %rcx     # 0xf067b
leaq 0x7d11f(%rip), %r8      # 0xf0514
xorl %ebx, %ebx
movq %r15, %rdi
movl $0xf6, %r9d
xorl %eax, %eax
callq 0x3559f
movq %r14, %rdi
callq 0x73029
leaq 0x7d0fe(%rip), %rdx     # 0xf0514
movl $0x1, %edi
movl $0x28, %esi
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r14
xorl %r15d, %r15d
movq %r15, (%rax)
movq %r15, 0x18(%rax)
leaq 0x14(%rsp), %rsi
movq %rax, %rdi
callq 0x72dd9
leaq 0x1c(%rsp), %rsi
movq %r14, %rdi
callq 0x72dd9
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testb %bl, %bl
je 0x734e1
cmpq $0x2, 0x20(%r14)
jne 0x73484
movl 0x14(%rsp), %ebx
movq %r14, %rdi
callq 0x72d30
movq %rax, %rdi
callq 0x72dac
cmpl (%rax), %ebx
jne 0x734b0
xorl %ebp, %ebp
movb $0x1, %r15b
jmp 0x734e1
leaq 0x6fcee(%rip), %rsi     # 0xe3179
leaq 0x7d26b(%rip), %rdx     # 0xf06fd
leaq 0x7d1e2(%rip), %rcx     # 0xf067b
leaq 0x7d074(%rip), %r8      # 0xf0514
xorl %r15d, %r15d
movq 0x8(%rsp), %rdi
movl $0xfe, %r9d
jmp 0x734da
leaq 0x6fcc2(%rip), %rsi     # 0xe3179
leaq 0x7d200(%rip), %rdx     # 0xf06be
leaq 0x7d1b6(%rip), %rcx     # 0xf067b
leaq 0x7d048(%rip), %r8      # 0xf0514
xorl %r15d, %r15d
movq 0x8(%rsp), %rdi
movl $0x100, %r9d            # imm = 0x100
xorl %eax, %eax
callq 0x3559f
movq %r14, %rdi
callq 0x73029
testb %r15b, %r15b
je 0x73b64
xorl %eax, %eax
movl %eax, 0x2c(%rsp)
movl $0x400, %edi            # imm = 0x400
callq 0x7a188
movq %rax, %r14
movq %rax, 0x20(%rsp)
movl %eax, 0x18(%rsp)
testl %eax, %eax
jle 0x7353d
movl %r14d, %ebx
andl $0x7fffffff, %ebx       # imm = 0x7FFFFFFF
xorl %r15d, %r15d
movl $0x7fffffff, %edi       # imm = 0x7FFFFFFF
callq 0x7a188
movl %eax, 0x1030(%rsp,%r15,4)
movl %eax, 0x30(%rsp,%r15,4)
incq %r15
cmpq %r15, %rbx
jne 0x7351e
movslq %r14d, %rsi
movl $0x4, %edx
leaq 0x30(%rsp), %rdi
leaq 0x631(%rip), %rbx       # 0x73b82
movq %rbx, %rcx
callq 0xbc80
movl $0x1, %edi
movl $0x28, %esi
leaq 0x7cfaa(%rip), %rdx     # 0xf0514
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r15
leaq -0x884(%rip), %rax      # 0x72cfa
movq %rax, (%r15)
movq %rbx, 0x18(%r15)
xorl %r12d, %r12d
movb $0x1, %bl
testq %r15, %r15
movq 0x8(%rsp), %rdi
je 0x735cc
cmpq $0x0, 0x20(%r15)
je 0x735cc
xorl %ebx, %ebx
leaq 0x6fbd5(%rip), %rsi     # 0xe3179
leaq 0x7d0e3(%rip), %rdx     # 0xf068e
leaq 0x7d0c9(%rip), %rcx     # 0xf067b
leaq 0x7cf5b(%rip), %r8      # 0xf0514
movl $0x110, %r9d            # imm = 0x110
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
cmpl $0x0, 0x18(%rsp)
setle %al
xorb $0x1, %bl
orb %al, %bl
jne 0x73660
movl %r14d, %ebx
andl $0x7fffffff, %ebx       # imm = 0x7FFFFFFF
movl $0x1, %r13d
leaq 0x1030(%rsp), %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x72dd9
testq %r15, %r15
je 0x7360c
movq 0x20(%r15), %rax
jmp 0x7360e
xorl %eax, %eax
cmpq %rax, %r13
je 0x73647
movq 0x8(%rsp), %rdi
leaq 0x6fb5a(%rip), %rsi     # 0xe3179
leaq 0x7d130(%rip), %rdx     # 0xf0756
leaq 0x7d04e(%rip), %rcx     # 0xf067b
leaq 0x7cee0(%rip), %r8      # 0xf0514
movl $0x113, %r9d            # imm = 0x113
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movq %r15, %rdi
callq 0x72d30
cmpq %rbx, %r13
jae 0x73660
addq $0x4, %rbp
incq %r13
testl %r12d, %r12d
je 0x735f6
movq %r15, %rdi
callq 0x72d30
testq %rax, %rax
je 0x736d3
movq %rax, %r13
leaq 0x30(%rsp), %rbx
movq 0x8(%rsp), %rbp
movl %r12d, %eax
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x736c6
movq 0x10(%r13), %rax
movl (%rax), %eax
xorl %r12d, %r12d
cmpl (%rbx), %eax
je 0x736c6
movq %rbp, %rdi
leaq 0x6fadb(%rip), %rsi     # 0xe3179
leaq 0x7d0cd(%rip), %rdx     # 0xf0772
leaq 0x7cfcf(%rip), %rcx     # 0xf067b
leaq 0x7ce61(%rip), %r8      # 0xf0514
movl $0x11d, %r9d            # imm = 0x11D
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movq 0x8(%r13), %r13
addq $0x4, %rbx
testq %r13, %r13
jne 0x7367a
cmpl $0x0, 0x18(%rsp)
jle 0x7379e
movl %r14d, %ebx
andl $0x7fffffff, %ebx       # imm = 0x7FFFFFFF
leaq 0x30(%rsp), %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x72d50
movq %rax, %r13
testl %r12d, %r12d
setne %al
testq %r13, %r13
setne %cl
orb %al, %cl
jne 0x7373e
movq 0x8(%rsp), %rdi
leaq 0x6fa63(%rip), %rsi     # 0xe3179
leaq 0x7ceb9(%rip), %rdx     # 0xf05d6
leaq 0x7cf57(%rip), %rcx     # 0xf067b
leaq 0x7cde9(%rip), %r8      # 0xf0514
movl $0x123, %r9d            # imm = 0x123
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movl %r12d, %eax
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x73791
movq %r13, %rdi
callq 0x72dac
movl (%rax), %eax
xorl %r12d, %r12d
cmpl (%rbp), %eax
je 0x73791
movq 0x8(%rsp), %rdi
leaq 0x6fa10(%rip), %rsi     # 0xe3179
leaq 0x7d01b(%rip), %rdx     # 0xf078b
leaq 0x7cf04(%rip), %rcx     # 0xf067b
leaq 0x7cd96(%rip), %r8      # 0xf0514
movl $0x125, %r9d            # imm = 0x125
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
addq $0x4, %rbp
decq %rbx
jne 0x736ec
testq %r15, %r15
je 0x73822
cmpq $0x0, 0x20(%r15)
movq 0x8(%rsp), %rbp
je 0x73827
movq %r15, %rdi
callq 0x72d30
movq %r15, %rdi
movq %rax, %rsi
callq 0x72f25
testq %r15, %r15
je 0x73827
cmpq $0x0, 0x20(%r15)
je 0x73827
movq %r15, %rdi
callq 0x72d30
movq %rax, %rdi
callq 0x72dac
testl %r12d, %r12d
jne 0x7381a
movl (%rax), %eax
xorl %r12d, %r12d
cmpl 0x34(%rsp), %eax
je 0x73827
movq %rbp, %rdi
leaq 0x6f981(%rip), %rsi     # 0xe3179
leaq 0x7cfc8(%rip), %rdx     # 0xf07c7
leaq 0x7ce75(%rip), %rcx     # 0xf067b
leaq 0x7cd07(%rip), %r8      # 0xf0514
movl $0x12c, %r9d            # imm = 0x12C
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
jmp 0x73827
movq 0x8(%rsp), %rbp
shlq $0x20, 0x20(%rsp)
testq %r15, %r15
je 0x738c8
cmpq $0x0, 0x20(%r15)
je 0x738c8
movq %r15, %rdi
callq 0x72d40
movq %r15, %rdi
movq %rax, %rsi
callq 0x72f25
testq %r15, %r15
je 0x738c8
cmpq $0x0, 0x20(%r15)
je 0x738c8
movq %r15, %rdi
callq 0x72d40
movq %rax, %rdi
callq 0x72dac
testl %r12d, %r12d
jne 0x738c2
movl (%rax), %eax
movabsq $-0x200000000, %rcx     # imm = 0xFFFFFFFE00000000
movq 0x20(%rsp), %rdx
addq %rdx, %rcx
sarq $0x1e, %rcx
xorl %r12d, %r12d
cmpl 0x30(%rsp,%rcx), %eax
je 0x738c8
movq %rbp, %rdi
leaq 0x6f8d9(%rip), %rsi     # 0xe3179
leaq 0x7cf39(%rip), %rdx     # 0xf07e0
leaq 0x7cdcd(%rip), %rcx     # 0xf067b
leaq 0x7cc5f(%rip), %r8      # 0xf0514
movl $0x134, %r9d            # imm = 0x134
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movq %r15, %rdi
callq 0x73029
movl $0x1, %edi
movl $0x28, %esi
leaq 0x7cc33(%rip), %rdx     # 0xf0514
movl $0x31, %ecx
callq 0x3601f
movq %rax, %r15
xorl %ebx, %ebx
movq %rbx, (%rax)
movq %rbx, 0x18(%rax)
testl %r12d, %r12d
je 0x73901
xorl %r12d, %r12d
jmp 0x7393b
cmpq $0x0, 0x20(%r15)
je 0x73b5c
xorl %r12d, %r12d
movq %rbp, %rdi
leaq 0x6f860(%rip), %rsi     # 0xe3179
leaq 0x7cd6e(%rip), %rdx     # 0xf068e
leaq 0x7cd54(%rip), %rcx     # 0xf067b
leaq 0x7cbe6(%rip), %r8      # 0xf0514
movl $0x14a, %r9d            # imm = 0x14A
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpl $0x0, 0x18(%rsp)
setle %al
xorb $0x1, %r12b
orb %al, %r12b
jne 0x739b8
andl $0x7fffffff, %r14d      # imm = 0x7FFFFFFF
movl $0x1, %r12d
leaq 0x1030(%rsp), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x72dd9
cmpq 0x20(%r15), %r12
je 0x739a8
movq %rbp, %rdi
leaq 0x6f7f8(%rip), %rsi     # 0xe3179
leaq 0x7cdce(%rip), %rdx     # 0xf0756
leaq 0x7ccec(%rip), %rcx     # 0xf067b
leaq 0x7cb7e(%rip), %r8      # 0xf0514
movl $0x14d, %r9d            # imm = 0x14D
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpq %r14, %r12
jae 0x739b8
addq $0x4, %r13
incq %r12
testl %ebx, %ebx
je 0x73966
movq %r15, %rdi
callq 0x72d30
testq %rax, %rax
je 0x73a39
movq %rax, %r13
xorl %r14d, %r14d
leaq 0x7ce3b(%rip), %r12     # 0xf080d
cmpq $0x400, %r14            # imm = 0x400
je 0x73b78
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %ebx, %ebx
jne 0x73a29
movq 0x10(%r13), %rax
movl (%rax), %eax
xorl %ebp, %ebp
cmpl 0x1030(%rsp,%r14,4), %eax
je 0x73a29
movq 0x8(%rsp), %rdi
leaq 0x6f773(%rip), %rsi     # 0xe3179
movq %r12, %rdx
leaq 0x7cc6b(%rip), %rcx     # 0xf067b
leaq 0x7cafd(%rip), %r8      # 0xf0514
movl $0x154, %r9d            # imm = 0x154
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
incq %r14
movq 0x8(%r13), %r13
movl %ebp, %ebx
testq %r13, %r13
jne 0x739d2
jmp 0x73a3b
movl %ebx, %ebp
cmpq $0x0, 0x20(%r15)
je 0x73ab0
movq %r15, %rdi
callq 0x72d30
movq %r15, %rdi
movq %rax, %rsi
callq 0x72f25
cmpq $0x0, 0x20(%r15)
je 0x73ab0
movq %r15, %rdi
callq 0x72d30
movq %rax, %rdi
callq 0x72dac
testl %ebp, %ebp
jne 0x73aab
movl (%rax), %eax
xorl %ebp, %ebp
cmpl 0x1034(%rsp), %eax
je 0x73ab0
movq 0x8(%rsp), %rdi
leaq 0x6f6f0(%rip), %rsi     # 0xe3179
leaq 0x7cd8f(%rip), %rdx     # 0xf081f
leaq 0x7cbe4(%rip), %rcx     # 0xf067b
leaq 0x7ca76(%rip), %r8      # 0xf0514
movl $0x15c, %r9d            # imm = 0x15C
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpq $0x0, 0x20(%r15)
je 0x73b3f
movq %r15, %rdi
callq 0x72d40
movq %r15, %rdi
movq %rax, %rsi
callq 0x72f25
cmpq $0x0, 0x20(%r15)
je 0x73b3f
movq %r15, %rdi
callq 0x72d40
movq %rax, %rdi
callq 0x72dac
testl %ebp, %ebp
jne 0x73b3a
movl (%rax), %eax
movabsq $-0x200000000, %rcx     # imm = 0xFFFFFFFE00000000
movq 0x20(%rsp), %rdx
addq %rcx, %rdx
sarq $0x1e, %rdx
xorl %ebp, %ebp
cmpl 0x1030(%rsp,%rdx), %eax
je 0x73b3f
movq 0x8(%rsp), %rdi
leaq 0x6f661(%rip), %rsi     # 0xe3179
leaq 0x7cd12(%rip), %rdx     # 0xf0831
leaq 0x7cb55(%rip), %rcx     # 0xf067b
leaq 0x7c9e7(%rip), %r8      # 0xf0514
movl $0x164, %r9d            # imm = 0x164
xorl %eax, %eax
callq 0x3559f
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq %r15, %rdi
callq 0x73029
movl 0x2c(%rsp), %eax
cmpl $0x62, %eax
ja 0x73b64
incl %eax
testl %ebp, %ebp
je 0x734f4
jmp 0x73b64
movb $0x1, %r12b
jmp 0x73940
movl %ebp, %eax
addq $0x2038, %rsp           # imm = 0x2038
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1a85a
callq 0x1a821