// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/huffcode.c
// Function: test_mem
int test_mem(GtError *err)
{
  unsigned char bits = (unsigned char) (sizeof (GtBitsequence) * 8),
                bits_remain = bits;
  unsigned int code_len;
  int decoder_stat = 1,
      had_err = 0;
  GtUword const max_num = (GtUword) (1000 * gt_rand_0_to_1() + 100),
                      dist_size = (GtUword) (10 + 10 * gt_rand_0_to_1()),
                      step_size = (GtUword) (10 + 5 * gt_rand_0_to_1());
  GtUword range = 0,
                idx, idx_j;
  uint64_t total_bits = 0;
  GtUint64 *distribution = gt_malloc(sizeof (*distribution) *
                                     dist_size);
  GtBitsequence buffer = 0,
                code;
  GtArray *numbers = gt_array_new(sizeof (unsigned char));
  GtArray *encoded = gt_array_new(sizeof (GtUword));
  GtArray *codes = gt_array_new(sizeof (GtBitsequence));
  GtHuffman *huff = NULL;
  GtHuffmanDecoder *huffdec = NULL;
  HuffmanUnitTestMeminfo *meminfo = gt_malloc(sizeof (*meminfo));

  for (idx = 0; idx < dist_size; idx++) {
    distribution[idx] = 0;
  }

  /*produce numbers with more numbers 0-(dist_size/2) */
  while (gt_array_size(numbers) < max_num) {
    unsigned char x;
    if (range) {
      x = (unsigned char) ((dist_size >> 1) * gt_rand_0_to_1());
      range = 0;
    }
    else {
      x = (unsigned char) (dist_size * gt_rand_0_to_1());
      range = 1UL;
    }
    gt_array_add(numbers, x);
  }

  gt_ensure(gt_array_size(numbers) == max_num);

  /*calculate distribution*/
  for (idx = 0; !had_err && idx < max_num; idx++) {
    unsigned char *c = (unsigned char*) gt_array_get(numbers, idx);
    distribution[*c]++;
  }

  if (!had_err) {
    uint64_t chars;
    huff = gt_huffman_new(distribution, unit_test_distr_func, dist_size);
    gt_ensure(huff);
    gt_huffman_size(huff, &total_bits, &chars);
    gt_ensure(chars == (uint64_t) max_num);
  }

  for (idx = 0; !had_err && idx < max_num; idx++) {
    gt_huffman_encode(huff,
                      *(unsigned char*) gt_array_get(numbers, idx),
                      &code,
                      &code_len);
    if (bits_remain < code_len) {
      unsigned char overhang = code_len - bits_remain;
      buffer |= code >> overhang;
      gt_array_add(codes, buffer);
      buffer = 0;
      bits_remain = bits - overhang;
    }
    else
      bits_remain -= code_len;
    buffer |= code << bits_remain;
  }
  if (!had_err)
    gt_array_add(codes, buffer);

  gt_ensure(
            total_bits == (uint64_t) gt_array_size(codes) *
                          gt_array_elem_size(codes) * 8 - bits_remain);

  if (!had_err) {
    meminfo->chunk = 0;
    meminfo->padding = bits_remain;
    meminfo->size = gt_array_size(codes) / 4;
    meminfo->lastchunk_size = gt_array_size(codes) % meminfo->size;
    if (meminfo->lastchunk_size) {
      meminfo->chunks = gt_array_size(codes) / meminfo->size + 1;
    }
    else {
      meminfo->chunks = gt_array_size(codes) / meminfo->size;
      meminfo->lastchunk_size = meminfo->size;
    }
    meminfo->data = gt_array_get_space(codes);

    huffdec = gt_huffman_decoder_new(huff,
                                     gt_array_get_space(codes),
                                     gt_array_size(codes),
                                     0, /*offset*/
                                     bits_remain);
    gt_ensure(huffdec);
  }

  for (idx = 0; !had_err && idx < max_num; idx += step_size) {
    gt_array_reset(encoded);
    gt_ensure(decoder_stat == 1);
    decoder_stat = gt_huffman_decoder_next(huffdec,
                                           encoded,
                                           (GtUword) step_size,
                                           err);
    if (decoder_stat == 1)
      gt_ensure(gt_array_size(encoded) == (GtUword) step_size);
    else
      gt_ensure(decoder_stat == 0);

    gt_ensure(decoder_stat != -1);
    if (!had_err) {
      for (idx_j = 0; !had_err && idx_j < gt_array_size(encoded); idx_j++) {
        GtUword ist = *(GtUword*) gt_array_get(encoded, idx_j);
        unsigned char soll =
          *(unsigned char*)gt_array_get(numbers, idx + idx_j);
        gt_ensure((ist == soll));
      }
    }
  }

  gt_ensure(idx >= max_num);
  if (!had_err)
    decoder_stat = gt_huffman_decoder_next(huffdec,
                                           encoded,
                                           1UL,
                                           err);
  gt_ensure(decoder_stat == 0);

  if (!had_err) {
    gt_huffman_decoder_delete(huffdec);

    huffdec = gt_huffman_decoder_new_from_memory(huff,
                                                 huffman_unit_get_next_block,
                                                 meminfo,
                                                 err);
    gt_ensure(huffdec);
  }

  decoder_stat = 1;
  for (idx = 0; !had_err && idx < max_num; idx += step_size) {
    gt_array_reset(encoded);
    gt_ensure(decoder_stat == 1);
    decoder_stat = gt_huffman_decoder_next(huffdec,
                                           encoded,
                                           step_size,
                                           err);
    if (decoder_stat == 1)
      gt_ensure(gt_array_size(encoded) == step_size);
    else
      gt_ensure(decoder_stat == 0);

    gt_ensure(decoder_stat != -1);
    if (!had_err) {
      for (idx_j = 0; !had_err && idx_j < gt_array_size(encoded); idx_j++) {
        GtUword ist = *(GtUword*)gt_array_get(encoded, idx_j);
        unsigned char soll =
          *(unsigned char*)gt_array_get(numbers, idx + idx_j);
        gt_ensure((ist == soll));
      }
    }
  }

  gt_ensure(idx >= max_num);
  if (!had_err)
    decoder_stat = gt_huffman_decoder_next(huffdec,
                                           encoded,
                                           1UL,
                                           err);
  gt_ensure(decoder_stat == 0);

  gt_huffman_decoder_delete(huffdec);
  gt_free(meminfo);
  gt_huffman_delete(huff);
  gt_array_delete(numbers);
  gt_array_delete(codes);
  gt_array_delete(encoded);
  gt_free(distribution);
  return had_err;
}

// Assembly:
subq $0x148, %rsp            # imm = 0x148
movq %rdi, 0x140(%rsp)
movb $0x40, 0x13f(%rsp)
movb 0x13f(%rsp), %al
movb %al, 0x13e(%rsp)
movl $0x1, 0x134(%rsp)
movl $0x0, 0x130(%rsp)
callq 0xec560
movsd 0x3c3828(%rip), %xmm1   # 0x556a00
mulsd %xmm1, %xmm0
movsd 0x387654(%rip), %xmm1   # 0x51a838
addsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x385b71(%rip), %xmm1   # 0x518d70
movsd %xmm1, 0x68(%rsp)
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x128(%rsp)
callq 0xec560
movsd 0x68(%rsp), %xmm1
movsd 0x392e51(%rip), %xmm2   # 0x526080
movsd %xmm2, 0x60(%rsp)
mulsd %xmm2, %xmm0
addsd %xmm2, %xmm0
movaps %xmm0, %xmm2
cvttsd2si %xmm2, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x120(%rsp)
callq 0xec560
movsd 0x60(%rsp), %xmm2
movsd 0x68(%rsp), %xmm1
movsd 0x385adc(%rip), %xmm3   # 0x518d58
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
movaps %xmm0, %xmm2
cvttsd2si %xmm2, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x118(%rsp)
movq $0x0, 0x110(%rsp)
movq $0x0, 0xf8(%rsp)
movq 0x120(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x3c3765(%rip), %rsi    # 0x556a3a
movl $0x312, %edx            # imm = 0x312
callq 0xe80f0
movq %rax, 0xf0(%rsp)
movq $0x0, 0xe8(%rsp)
movl $0x1, %edi
callq 0x80990
movq %rax, 0xd8(%rsp)
movl $0x8, %edi
callq 0x80990
movq %rax, 0xd0(%rsp)
movl $0x8, %edi
callq 0x80990
movq %rax, 0xc8(%rsp)
movq $0x0, 0xc0(%rsp)
movq $0x0, 0xb8(%rsp)
movl $0x30, %edi
leaq 0x3c36ed(%rip), %rsi    # 0x556a3a
movl $0x31a, %edx            # imm = 0x31A
callq 0xe80f0
movq %rax, 0xb0(%rsp)
movq $0x0, 0x108(%rsp)
movq 0x108(%rsp), %rax
cmpq 0x120(%rsp), %rax
jae 0x1933ab
movq 0xf0(%rsp), %rax
movq 0x108(%rsp), %rcx
movq $0x0, (%rax,%rcx,8)
movq 0x108(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x108(%rsp)
jmp 0x19336b
jmp 0x1933ad
movq 0xd8(%rsp), %rdi
callq 0x81370
cmpq 0x128(%rsp), %rax
jae 0x19348d
cmpq $0x0, 0x110(%rsp)
je 0x193414
movq 0x120(%rsp), %rax
shrq %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, 0x58(%rsp)
callq 0xec560
movaps %xmm0, %xmm1
movsd 0x58(%rsp), %xmm0
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movb %al, 0xaf(%rsp)
movq $0x0, 0x110(%rsp)
jmp 0x19346e
movaps 0x385515(%rip), %xmm1   # 0x518930
movq 0x120(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x385510(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, 0x50(%rsp)
callq 0xec560
movaps %xmm0, %xmm1
movsd 0x50(%rsp), %xmm0
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movb %al, 0xaf(%rsp)
movq $0x1, 0x110(%rsp)
movq 0xd8(%rsp), %rdi
leaq 0xaf(%rsp), %rsi
movl $0x1, %edx
callq 0x81100
jmp 0x1933ad
jmp 0x19348f
cmpl $0x0, 0x130(%rsp)
jne 0x1934ee
movq 0xd8(%rsp), %rdi
callq 0x81370
cmpq 0x128(%rsp), %rax
je 0x1934ec
movq 0x140(%rsp), %rdi
leaq 0x39c13b(%rip), %rsi    # 0x52f5fa
leaq 0x3c387f(%rip), %rdx    # 0x556d45
leaq 0x3c389a(%rip), %rcx    # 0x556d67
leaq 0x3c3566(%rip), %r8     # 0x556a3a
movl $0x32e, %r9d            # imm = 0x32E
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x1934ee
jmp 0x1934f0
movq $0x0, 0x108(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x130(%rsp)
movb %al, 0x4f(%rsp)
jne 0x193523
movq 0x108(%rsp), %rax
cmpq 0x128(%rsp), %rax
setb %al
movb %al, 0x4f(%rsp)
movb 0x4f(%rsp), %al
testb $0x1, %al
jne 0x19352d
jmp 0x193582
movq 0xd8(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x80b60
movq %rax, 0xa0(%rsp)
movq 0xf0(%rsp), %rax
movq 0xa0(%rsp), %rcx
movzbl (%rcx), %ecx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x108(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x108(%rsp)
jmp 0x1934fc
cmpl $0x0, 0x130(%rsp)
jne 0x193684
movq 0xf0(%rsp), %rdi
movq 0x120(%rsp), %rdx
leaq -0x447(%rip), %rsi      # 0x193160
callq 0x191820
movq %rax, 0xc0(%rsp)
cmpl $0x0, 0x130(%rsp)
jne 0x193607
cmpq $0x0, 0xc0(%rsp)
jne 0x193605
movq 0x140(%rsp), %rdi
leaq 0x39c022(%rip), %rsi    # 0x52f5fa
leaq 0x3c3791(%rip), %rdx    # 0x556d70
leaq 0x3c3781(%rip), %rcx    # 0x556d67
leaq 0x3c344d(%rip), %r8     # 0x556a3a
movl $0x339, %r9d            # imm = 0x339
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193607
jmp 0x193609
movq 0xc0(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x1922f0
cmpl $0x0, 0x130(%rsp)
jne 0x193680
movq 0x98(%rsp), %rax
cmpq 0x128(%rsp), %rax
je 0x19367e
movq 0x140(%rsp), %rdi
leaq 0x39bfa9(%rip), %rsi    # 0x52f5fa
leaq 0x3c371d(%rip), %rdx    # 0x556d75
leaq 0x3c3708(%rip), %rcx    # 0x556d67
leaq 0x3c33d4(%rip), %r8     # 0x556a3a
movl $0x33b, %r9d            # imm = 0x33B
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193680
jmp 0x193682
jmp 0x193684
movq $0x0, 0x108(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x130(%rsp)
movb %al, 0x4e(%rsp)
jne 0x1936b7
movq 0x108(%rsp), %rax
cmpq 0x128(%rsp), %rax
setb %al
movb %al, 0x4e(%rsp)
movb 0x4e(%rsp), %al
testb $0x1, %al
jne 0x1936c4
jmp 0x1937ea
movq 0xc0(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xd8(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x80b60
movq 0x40(%rsp), %rdi
movzbl (%rax), %eax
movl %eax, %esi
leaq 0xe0(%rsp), %rdx
leaq 0x138(%rsp), %rcx
callq 0x192440
movzbl 0x13e(%rsp), %eax
cmpl 0x138(%rsp), %eax
jae 0x193794
movl 0x138(%rsp), %eax
movzbl 0x13e(%rsp), %ecx
subl %ecx, %eax
movb %al, 0x97(%rsp)
movq 0xe0(%rsp), %rax
movzbl 0x97(%rsp), %ecx
movl %ecx, %ecx
shrq %cl, %rax
orq 0xe8(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0xc8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
movq $0x0, 0xe8(%rsp)
movzbl 0x13f(%rsp), %eax
movzbl 0x97(%rsp), %ecx
subl %ecx, %eax
movb %al, 0x13e(%rsp)
jmp 0x1937ac
movl 0x138(%rsp), %ecx
movzbl 0x13e(%rsp), %eax
subl %ecx, %eax
movb %al, 0x13e(%rsp)
movq 0xe0(%rsp), %rax
movzbl 0x13e(%rsp), %ecx
movl %ecx, %ecx
shlq %cl, %rax
orq 0xe8(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0x108(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x108(%rsp)
jmp 0x193690
cmpl $0x0, 0x130(%rsp)
jne 0x19380e
movq 0xc8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
jmp 0x193810
cmpl $0x0, 0x130(%rsp)
jne 0x1938ad
movq 0xf8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x81370
movq %rax, 0x30(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x813a0
movq 0x30(%rsp), %rcx
movq %rax, %rdx
movq 0x38(%rsp), %rax
imulq %rdx, %rcx
shlq $0x3, %rcx
movzbl 0x13e(%rsp), %edx
subq %rdx, %rcx
cmpq %rcx, %rax
je 0x1938ab
movq 0x140(%rsp), %rdi
leaq 0x39bd7c(%rip), %rsi    # 0x52f5fa
leaq 0x3c350c(%rip), %rdx    # 0x556d91
leaq 0x3c34db(%rip), %rcx    # 0x556d67
leaq 0x3c31a7(%rip), %r8     # 0x556a3a
movl $0x353, %r9d            # imm = 0x353
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x1938ad
jmp 0x1938af
cmpl $0x0, 0x130(%rsp)
jne 0x193a72
movq 0xb0(%rsp), %rax
movq $0x0, 0x8(%rax)
movzbl 0x13e(%rsp), %eax
movl %eax, %ecx
movq 0xb0(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0xc8(%rsp), %rdi
callq 0x81370
movq %rax, %rcx
shrq $0x2, %rcx
movq 0xb0(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0xc8(%rsp), %rdi
callq 0x81370
movq 0xb0(%rsp), %rcx
xorl %edx, %edx
divq 0x18(%rcx)
movq 0xb0(%rsp), %rax
movq %rdx, 0x20(%rax)
movq 0xb0(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x193969
movq 0xc8(%rsp), %rdi
callq 0x81370
movq 0xb0(%rsp), %rcx
xorl %edx, %edx
divq 0x18(%rcx)
movq %rax, %rcx
addq $0x1, %rcx
movq 0xb0(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x1939ab
movq 0xc8(%rsp), %rdi
callq 0x81370
movq 0xb0(%rsp), %rcx
xorl %edx, %edx
divq 0x18(%rcx)
movq %rax, %rcx
movq 0xb0(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0xb0(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0xb0(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0xc8(%rsp), %rdi
callq 0x81080
movq %rax, %rcx
movq 0xb0(%rsp), %rax
movq %rcx, (%rax)
movq 0xc0(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x81080
movq %rax, 0x28(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x81370
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
movzbl 0x13e(%rsp), %eax
movl %eax, %r8d
xorl %eax, %eax
movl %eax, %ecx
callq 0x1925d0
movq %rax, 0xb8(%rsp)
cmpl $0x0, 0x130(%rsp)
jne 0x193a6e
cmpq $0x0, 0xb8(%rsp)
jne 0x193a6c
movq 0x140(%rsp), %rdi
leaq 0x39bbbb(%rip), %rsi    # 0x52f5fa
leaq 0x3c33a7(%rip), %rdx    # 0x556ded
leaq 0x3c331a(%rip), %rcx    # 0x556d67
leaq 0x3c2fe6(%rip), %r8     # 0x556a3a
movl $0x368, %r9d            # imm = 0x368
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193a6e
jmp 0x193a70
jmp 0x193a72
movq $0x0, 0x108(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x130(%rsp)
movb %al, 0x1f(%rsp)
jne 0x193aa5
movq 0x108(%rsp), %rax
cmpq 0x128(%rsp), %rax
setb %al
movb %al, 0x1f(%rsp)
movb 0x1f(%rsp), %al
testb $0x1, %al
jne 0x193ab2
jmp 0x193da0
movq 0xd0(%rsp), %rdi
callq 0x814a0
cmpl $0x0, 0x130(%rsp)
jne 0x193b11
cmpl $0x1, 0x134(%rsp)
je 0x193b0f
movq 0x140(%rsp), %rdi
leaq 0x39bb18(%rip), %rsi    # 0x52f5fa
leaq 0x3c330c(%rip), %rdx    # 0x556df5
leaq 0x3c3277(%rip), %rcx    # 0x556d67
leaq 0x3c2f43(%rip), %r8     # 0x556a3a
movl $0x36d, %r9d            # imm = 0x36D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193b11
jmp 0x193b13
movq 0xb8(%rsp), %rdi
movq 0xd0(%rsp), %rsi
movq 0x118(%rsp), %rdx
movq 0x140(%rsp), %rcx
callq 0x1929b0
movl %eax, 0x134(%rsp)
cmpl $0x1, 0x134(%rsp)
jne 0x193bae
jmp 0x193b4b
cmpl $0x0, 0x130(%rsp)
jne 0x193baa
movq 0xd0(%rsp), %rdi
callq 0x81370
cmpq 0x118(%rsp), %rax
je 0x193ba8
movq 0x140(%rsp), %rdi
leaq 0x39ba7f(%rip), %rsi    # 0x52f5fa
leaq 0x3c3285(%rip), %rdx    # 0x556e07
leaq 0x3c31de(%rip), %rcx    # 0x556d67
leaq 0x3c2eaa(%rip), %r8     # 0x556a3a
movl $0x373, %r9d            # imm = 0x373
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193baa
jmp 0x193bac
jmp 0x193c06
jmp 0x193bb0
cmpl $0x0, 0x130(%rsp)
jne 0x193c02
cmpl $0x0, 0x134(%rsp)
je 0x193c00
movq 0x140(%rsp), %rdi
leaq 0x39ba27(%rip), %rsi    # 0x52f5fa
leaq 0x3c325b(%rip), %rdx    # 0x556e35
leaq 0x3c3186(%rip), %rcx    # 0x556d67
leaq 0x3c2e52(%rip), %r8     # 0x556a3a
movl $0x375, %r9d            # imm = 0x375
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193c02
jmp 0x193c04
jmp 0x193c06
jmp 0x193c08
cmpl $0x0, 0x130(%rsp)
jne 0x193c5a
cmpl $-0x1, 0x134(%rsp)
jne 0x193c58
movq 0x140(%rsp), %rdi
leaq 0x39b9cf(%rip), %rsi    # 0x52f5fa
leaq 0x3c3215(%rip), %rdx    # 0x556e47
leaq 0x3c312e(%rip), %rcx    # 0x556d67
leaq 0x3c2dfa(%rip), %r8     # 0x556a3a
movl $0x377, %r9d            # imm = 0x377
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193c5a
jmp 0x193c5c
cmpl $0x0, 0x130(%rsp)
jne 0x193d81
movq $0x0, 0x100(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x130(%rsp)
movb %al, 0x1e(%rsp)
jne 0x193cb2
movq 0x100(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xd0(%rsp), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
setb %al
movb %al, 0x1e(%rsp)
movb 0x1e(%rsp), %al
testb $0x1, %al
jne 0x193cbf
jmp 0x193d7f
movq 0xd0(%rsp), %rdi
movq 0x100(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x88(%rsp)
movq 0xd8(%rsp), %rdi
movq 0x108(%rsp), %rsi
addq 0x100(%rsp), %rsi
callq 0x80b60
movb (%rax), %al
movb %al, 0x87(%rsp)
cmpl $0x0, 0x130(%rsp)
jne 0x193d62
movq 0x88(%rsp), %rax
movzbl 0x87(%rsp), %ecx
cmpq %rcx, %rax
je 0x193d60
movq 0x140(%rsp), %rdi
leaq 0x39b8c7(%rip), %rsi    # 0x52f5fa
leaq 0x3c3120(%rip), %rdx    # 0x556e5a
leaq 0x3c3026(%rip), %rcx    # 0x556d67
leaq 0x3c2cf2(%rip), %r8     # 0x556a3a
movl $0x37d, %r9d            # imm = 0x37D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193d62
jmp 0x193d64
jmp 0x193d66
movq 0x100(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x100(%rsp)
jmp 0x193c76
jmp 0x193d81
jmp 0x193d83
movq 0x118(%rsp), %rax
addq 0x108(%rsp), %rax
movq %rax, 0x108(%rsp)
jmp 0x193a7e
jmp 0x193da2
cmpl $0x0, 0x130(%rsp)
jne 0x193dfc
movq 0x108(%rsp), %rax
cmpq 0x128(%rsp), %rax
jae 0x193dfa
movq 0x140(%rsp), %rdi
leaq 0x39b82d(%rip), %rsi    # 0x52f5fa
leaq 0x3c3094(%rip), %rdx    # 0x556e68
leaq 0x3c2f8c(%rip), %rcx    # 0x556d67
leaq 0x3c2c58(%rip), %r8     # 0x556a3a
movl $0x382, %r9d            # imm = 0x382
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193dfc
jmp 0x193dfe
cmpl $0x0, 0x130(%rsp)
jne 0x193e31
movq 0xb8(%rsp), %rdi
movq 0xd0(%rsp), %rsi
movq 0x140(%rsp), %rcx
movl $0x1, %edx
callq 0x1929b0
movl %eax, 0x134(%rsp)
jmp 0x193e33
cmpl $0x0, 0x130(%rsp)
jne 0x193e85
cmpl $0x0, 0x134(%rsp)
je 0x193e83
movq 0x140(%rsp), %rdi
leaq 0x39b7a4(%rip), %rsi    # 0x52f5fa
leaq 0x3c2fd8(%rip), %rdx    # 0x556e35
leaq 0x3c2f03(%rip), %rcx    # 0x556d67
leaq 0x3c2bcf(%rip), %r8     # 0x556a3a
movl $0x388, %r9d            # imm = 0x388
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193e85
jmp 0x193e87
cmpl $0x0, 0x130(%rsp)
jne 0x193f25
movq 0xb8(%rsp), %rdi
callq 0x192f10
movq 0xc0(%rsp), %rdi
movq 0xb0(%rsp), %rdx
movq 0x140(%rsp), %rcx
leaq 0x4ff(%rip), %rsi       # 0x1943c0
callq 0x1926f0
movq %rax, 0xb8(%rsp)
cmpl $0x0, 0x130(%rsp)
jne 0x193f21
cmpq $0x0, 0xb8(%rsp)
jne 0x193f1f
movq 0x140(%rsp), %rdi
leaq 0x39b708(%rip), %rsi    # 0x52f5fa
leaq 0x3c2ef4(%rip), %rdx    # 0x556ded
leaq 0x3c2e67(%rip), %rcx    # 0x556d67
leaq 0x3c2b33(%rip), %r8     # 0x556a3a
movl $0x391, %r9d            # imm = 0x391
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193f21
jmp 0x193f23
jmp 0x193f25
movl $0x1, 0x134(%rsp)
movq $0x0, 0x108(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x130(%rsp)
movb %al, 0xf(%rsp)
jne 0x193f63
movq 0x108(%rsp), %rax
cmpq 0x128(%rsp), %rax
setb %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x193f70
jmp 0x194250
movq 0xd0(%rsp), %rdi
callq 0x814a0
cmpl $0x0, 0x130(%rsp)
jne 0x193fcf
cmpl $0x1, 0x134(%rsp)
je 0x193fcd
movq 0x140(%rsp), %rdi
leaq 0x39b65a(%rip), %rsi    # 0x52f5fa
leaq 0x3c2e4e(%rip), %rdx    # 0x556df5
leaq 0x3c2db9(%rip), %rcx    # 0x556d67
leaq 0x3c2a85(%rip), %r8     # 0x556a3a
movl $0x397, %r9d            # imm = 0x397
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x193fcf
jmp 0x193fd1
movq 0xb8(%rsp), %rdi
movq 0xd0(%rsp), %rsi
movq 0x118(%rsp), %rdx
movq 0x140(%rsp), %rcx
callq 0x1929b0
movl %eax, 0x134(%rsp)
cmpl $0x1, 0x134(%rsp)
jne 0x19406c
jmp 0x194009
cmpl $0x0, 0x130(%rsp)
jne 0x194068
movq 0xd0(%rsp), %rdi
callq 0x81370
cmpq 0x118(%rsp), %rax
je 0x194066
movq 0x140(%rsp), %rdi
leaq 0x39b5c1(%rip), %rsi    # 0x52f5fa
leaq 0x3c2e37(%rip), %rdx    # 0x556e77
leaq 0x3c2d20(%rip), %rcx    # 0x556d67
leaq 0x3c29ec(%rip), %r8     # 0x556a3a
movl $0x39d, %r9d            # imm = 0x39D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x194068
jmp 0x19406a
jmp 0x1940c4
jmp 0x19406e
cmpl $0x0, 0x130(%rsp)
jne 0x1940c0
cmpl $0x0, 0x134(%rsp)
je 0x1940be
movq 0x140(%rsp), %rdi
leaq 0x39b569(%rip), %rsi    # 0x52f5fa
leaq 0x3c2d9d(%rip), %rdx    # 0x556e35
leaq 0x3c2cc8(%rip), %rcx    # 0x556d67
leaq 0x3c2994(%rip), %r8     # 0x556a3a
movl $0x39f, %r9d            # imm = 0x39F
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x1940c0
jmp 0x1940c2
jmp 0x1940c4
jmp 0x1940c6
cmpl $0x0, 0x130(%rsp)
jne 0x194118
cmpl $-0x1, 0x134(%rsp)
jne 0x194116
movq 0x140(%rsp), %rdi
leaq 0x39b511(%rip), %rsi    # 0x52f5fa
leaq 0x3c2d57(%rip), %rdx    # 0x556e47
leaq 0x3c2c70(%rip), %rcx    # 0x556d67
leaq 0x3c293c(%rip), %r8     # 0x556a3a
movl $0x3a1, %r9d            # imm = 0x3A1
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x194118
jmp 0x19411a
cmpl $0x0, 0x130(%rsp)
jne 0x194231
movq $0x0, 0x100(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x130(%rsp)
movb %al, 0xe(%rsp)
jne 0x19416e
movq 0x100(%rsp), %rax
movq %rax, (%rsp)
movq 0xd0(%rsp), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
setb %al
movb %al, 0xe(%rsp)
movb 0xe(%rsp), %al
testb $0x1, %al
jne 0x19417b
jmp 0x19422f
movq 0xd0(%rsp), %rdi
movq 0x100(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x78(%rsp)
movq 0xd8(%rsp), %rdi
movq 0x108(%rsp), %rsi
addq 0x100(%rsp), %rsi
callq 0x80b60
movb (%rax), %al
movb %al, 0x77(%rsp)
cmpl $0x0, 0x130(%rsp)
jne 0x194212
movq 0x78(%rsp), %rax
movzbl 0x77(%rsp), %ecx
cmpq %rcx, %rax
je 0x194210
movq 0x140(%rsp), %rdi
leaq 0x39b417(%rip), %rsi    # 0x52f5fa
leaq 0x3c2c70(%rip), %rdx    # 0x556e5a
leaq 0x3c2b76(%rip), %rcx    # 0x556d67
leaq 0x3c2842(%rip), %r8     # 0x556a3a
movl $0x3a7, %r9d            # imm = 0x3A7
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x194212
jmp 0x194214
jmp 0x194216
movq 0x100(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x100(%rsp)
jmp 0x194134
jmp 0x194231
jmp 0x194233
movq 0x118(%rsp), %rax
addq 0x108(%rsp), %rax
movq %rax, 0x108(%rsp)
jmp 0x193f3c
jmp 0x194252
cmpl $0x0, 0x130(%rsp)
jne 0x1942ac
movq 0x108(%rsp), %rax
cmpq 0x128(%rsp), %rax
jae 0x1942aa
movq 0x140(%rsp), %rdi
leaq 0x39b37d(%rip), %rsi    # 0x52f5fa
leaq 0x3c2be4(%rip), %rdx    # 0x556e68
leaq 0x3c2adc(%rip), %rcx    # 0x556d67
leaq 0x3c27a8(%rip), %r8     # 0x556a3a
movl $0x3ac, %r9d            # imm = 0x3AC
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x1942ac
jmp 0x1942ae
cmpl $0x0, 0x130(%rsp)
jne 0x1942e1
movq 0xb8(%rsp), %rdi
movq 0xd0(%rsp), %rsi
movq 0x140(%rsp), %rcx
movl $0x1, %edx
callq 0x1929b0
movl %eax, 0x134(%rsp)
jmp 0x1942e3
cmpl $0x0, 0x130(%rsp)
jne 0x194335
cmpl $0x0, 0x134(%rsp)
je 0x194333
movq 0x140(%rsp), %rdi
leaq 0x39b2f4(%rip), %rsi    # 0x52f5fa
leaq 0x3c2b28(%rip), %rdx    # 0x556e35
leaq 0x3c2a53(%rip), %rcx    # 0x556d67
leaq 0x3c271f(%rip), %r8     # 0x556a3a
movl $0x3b2, %r9d            # imm = 0x3B2
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x130(%rsp) # imm = 0xFFFFFFFF
jmp 0x194335
jmp 0x194337
movq 0xb8(%rsp), %rdi
callq 0x192f10
movq 0xb0(%rsp), %rdi
leaq 0x3c26e7(%rip), %rsi    # 0x556a3a
movl $0x3b5, %edx            # imm = 0x3B5
callq 0xe88c0
movq 0xc0(%rsp), %rdi
callq 0x192210
movq 0xd8(%rsp), %rdi
callq 0x81f80
movq 0xc8(%rsp), %rdi
callq 0x81f80
movq 0xd0(%rsp), %rdi
callq 0x81f80
movq 0xf0(%rsp), %rdi
leaq 0x3c269a(%rip), %rsi    # 0x556a3a
movl $0x3ba, %edx            # imm = 0x3BA
callq 0xe88c0
movl 0x130(%rsp), %eax
addq $0x148, %rsp            # imm = 0x148
retq
nopl (%rax)