// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/encdesc.c
// Function: encdesc_next_desc
static int encdesc_next_desc(GtEncdesc *encdesc, GtStr *desc, GtError *err)
{
  int stat, had_err = 0;
  bool bit,
       sampled = false;
  GtWord tmp = 0;
  GtUword cur_field_num,
          fieldlen = 0,
          idx,
          numoffields,
          nearestsample,
          zero_count = 0,
          tmp_symbol = 0;
  GtBitsequence bitseq;
  GtHuffmanBitwiseDecoder *huff_bitwise_decoder;

  if (encdesc->cur_desc == encdesc->num_of_descs) {
    gt_error_set(err,"nothing done, eof?");
    return -1;
  }

  if (encdesc->sampling != NULL &&
      encdesc->cur_desc == gt_sampling_get_next_elementnum(encdesc->sampling)) {
    int sample_status;
    size_t startofnearestsample;
    gt_log_log("get next sampled description (" GT_WU ")", encdesc->cur_desc);
    sample_status = gt_sampling_get_next_sample(encdesc->sampling,
                                                &nearestsample,
                                                &startofnearestsample);
    if (sample_status == 1) {
      gt_bitinstream_reinit(encdesc->bitinstream, startofnearestsample);
      sampled = true;
    }
    else
      had_err = sample_status;
  }

  if (had_err)
    gt_error_set(err, "sampling did not work, input data corrupt?");

  if (desc != NULL)
    gt_str_reset(desc);
  if (!had_err && !encdesc->num_of_fields_is_const) {
    had_err = encdesc_read_bits(encdesc->bitinstream,
                                encdesc->bits_per_field,
                                &bitseq, err);
    numoffields = (GtUword) bitseq;
  }
  else
    numoffields = encdesc->num_of_fields;

  gt_assert(numoffields <= encdesc->num_of_fields);
  for (cur_field_num = 0;
       !had_err && cur_field_num < numoffields;
       cur_field_num++) {
    DescField *cur_field = &encdesc->fields[cur_field_num];
    if (cur_field->is_const) {
      if (desc != NULL) {
        gt_assert(cur_field->data != NULL);
        gt_str_append_cstr(desc, cur_field->data);
        gt_str_append_char(desc, cur_field->sep);
      }
      continue;
    }
    if (cur_field->is_numeric) {
      if (cur_field->has_zero_padding && !cur_field->fieldlen_is_const) {
        huff_bitwise_decoder = gt_huffman_bitwise_decoder_new(
                                            cur_field->huffman_zero_count, err);
        stat = -1;
        while (!had_err && stat != 0) {
          if (gt_bitinstream_get_next_bit(encdesc->bitinstream, &bit) != 1) {
            gt_error_set(err, "could not get next bit");
            had_err = -1;
          }
          else {
            stat = gt_huffman_bitwise_decoder_next(huff_bitwise_decoder, bit,
                                                   &zero_count, err);
            if (stat == -1) {
              had_err = -1;
              gt_assert(gt_error_is_set(err));
            }
          }
        }
        gt_huffman_bitwise_decoder_delete(huff_bitwise_decoder);
        for (idx = 0;
             !had_err && desc != NULL && idx < zero_count;
             idx++)
          gt_str_append_char(desc, '0');
      }
      /* read absolute value if description is first or sampled */
      if (!had_err && (encdesc->cur_desc == 0 || sampled)) {
        had_err = encdesc_read_bits(encdesc->bitinstream,
                                    cur_field->bits_per_value,
                                    &bitseq, err);
        if (!had_err) {
          tmp = (GtWord) bitseq + cur_field->min_value;
        }
      }
      else if (!had_err) {
        if (!cur_field->is_value_const || !cur_field->is_delta_const) {
          if (cur_field->bits_per_num) {
            if (cur_field->use_hc) {
              huff_bitwise_decoder =
                gt_huffman_bitwise_decoder_new(cur_field->huffman_num, err);
              stat = 1;
              while (!had_err && stat != 0) {
                if (gt_bitinstream_get_next_bit(encdesc->bitinstream,
                                                &bit) != 1) {
                  gt_error_set(err, "could not get next bit");
                  had_err = -1;
                }
                else {
                  stat = gt_huffman_bitwise_decoder_next(huff_bitwise_decoder,
                                                         bit, &tmp_symbol, err);
                  if (stat == -1) {
                    had_err = -1;
                    gt_assert(gt_error_is_set(err));
                  }
                  else
                    tmp = (GtWord) tmp_symbol;
                }
              }
              gt_huffman_bitwise_decoder_delete(huff_bitwise_decoder);
            }
            else {
              had_err = encdesc_read_bits(encdesc->bitinstream,
                                          cur_field->bits_per_num,
                                          &bitseq, err);
              tmp = (GtWord) bitseq;
            }
          }
          else
            tmp = 0;
        }
        else {
          if (cur_field->use_delta_coding)
            tmp = 0;
          else
            tmp = cur_field->prev_value - cur_field->min_value;
        }
        if (cur_field->use_delta_coding)
          tmp += cur_field->prev_value + cur_field->min_delta;
        else
          tmp += cur_field->min_value;
      }
      if (!had_err) {
        if (!(encdesc->cur_desc == 0) && !sampled) {
          if (cur_field->is_delta_negative)
            gt_assert(tmp < cur_field->prev_value);
          if (cur_field->is_delta_positive)
            gt_assert(tmp > cur_field->prev_value);
        }
        cur_field->prev_value = tmp;
        if (cur_field->has_zero_padding && cur_field->fieldlen_is_const) {
          zero_count = cur_field->len -
            encdesc_digits_per_value((GtUword) tmp, 10UL);
          for (idx = 0;
               desc != NULL && idx < zero_count;
               idx++)
            gt_str_append_char(desc, '0');
        }
        if (desc != NULL) {
          gt_str_append_uword(desc, (GtUword) tmp);
          gt_str_append_char(desc, cur_field->sep);
        }
        continue;
      }
    }
    /* variable cur_field len */
    if (!cur_field->fieldlen_is_const) {
      had_err = encdesc_read_bits(encdesc->bitinstream,
                                  cur_field->bits_per_len,
                                  &bitseq, err);
      fieldlen = (GtUword) bitseq + cur_field->min_len;
    }
    else
      fieldlen = cur_field->len;

    for (idx = 0; !had_err && idx < fieldlen; idx++) {
      if (idx < cur_field->len &&
          gt_bittab_bit_is_set(cur_field->bittab, idx)) {
        if (desc != NULL)
          gt_str_append_char(desc, cur_field->data[idx]);
      }
      else {
        huff_bitwise_decoder = gt_huffman_bitwise_decoder_new(
                                            cur_field->huffman_chars[idx], err);
        stat = -1;
        while (!had_err && stat != 0) {
          if (gt_bitinstream_get_next_bit(encdesc->bitinstream, &bit) != 1) {
            gt_error_set(err, "could not get next bit");
            had_err = -1;
          }
          else {
            stat = gt_huffman_bitwise_decoder_next(huff_bitwise_decoder,
                                                   bit, &tmp_symbol, err);
            if (stat == -1) {
              gt_assert(gt_error_is_set(err));
              had_err = stat;
            }
            else
              tmp = (GtWord) tmp_symbol;
          }
        }
        if (!had_err && desc != NULL) {
          gt_assert(tmp < 256L);
          gt_str_append_char(desc, (char) tmp);
        }
        gt_huffman_bitwise_decoder_delete(huff_bitwise_decoder);
      }
    }
    if (!had_err && desc != NULL)
      gt_str_append_char(desc, cur_field->sep);
  }
  if (desc != NULL && gt_str_length(desc) != 0)
    gt_str_set_length(desc, gt_str_length(desc) - 1);
  if (!had_err) {
    encdesc->cur_desc++;
  }

  if (had_err)
    gt_assert(gt_error_is_set(err));
  return had_err;
}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xb8(%rsp)
movq %rsi, 0xb0(%rsp)
movq %rdx, 0xa8(%rsp)
movl $0x0, 0xa0(%rsp)
movb $0x0, 0x9e(%rsp)
movq $0x0, 0x90(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x58(%rsp)
movq 0xb8(%rsp), %rax
movq 0x48(%rax), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jne 0x161fec
movq 0xa8(%rsp), %rdi
leaq 0x3eccba(%rip), %rsi    # 0x54ec8f
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xc4(%rsp) # imm = 0xFFFFFFFF
jmp 0x162d21
movq 0xb8(%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x16209b
movq 0xb8(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0xb8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x1d0800
movq %rax, %rcx
movq 0x28(%rsp), %rax
cmpq %rcx, %rax
jne 0x16209b
movq 0xb8(%rsp), %rax
movq 0x48(%rax), %rsi
leaq 0x3ecc61(%rip), %rdi    # 0x54eca2
movb $0x0, %al
callq 0xe7740
movq 0xb8(%rsp), %rax
movq 0x28(%rax), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x38(%rsp), %rdx
callq 0x1d0990
movl %eax, 0x44(%rsp)
cmpl $0x1, 0x44(%rsp)
jne 0x16208e
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x489b50
movb $0x1, 0x9e(%rsp)
jmp 0x162099
movl 0x44(%rsp), %eax
movl %eax, 0xa0(%rsp)
jmp 0x16209b
cmpl $0x0, 0xa0(%rsp)
je 0x1620bb
movq 0xa8(%rsp), %rdi
leaq 0x3ecc11(%rip), %rsi    # 0x54ecc5
movb $0x0, %al
callq 0xd88c0
cmpq $0x0, 0xb0(%rsp)
je 0x1620d3
movq 0xb0(%rsp), %rdi
callq 0x11e110
cmpl $0x0, 0xa0(%rsp)
jne 0x162127
movq 0xb8(%rsp), %rax
testb $0x1, 0x6c(%rax)
jne 0x162127
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0xb8(%rsp), %rax
movl 0x68(%rax), %esi
movq 0xa8(%rsp), %rcx
leaq 0x50(%rsp), %rdx
callq 0x164520
movl %eax, 0xa0(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x70(%rsp)
jmp 0x162138
movq 0xb8(%rsp), %rax
movq 0x40(%rax), %rax
movq %rax, 0x70(%rsp)
jmp 0x16213a
movq 0x70(%rsp), %rax
movq 0xb8(%rsp), %rcx
cmpq 0x40(%rcx), %rax
jbe 0x162185
movq 0x4d9e4c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b3eb5(%rip), %rsi    # 0x516013
leaq 0x3ecb8b(%rip), %rdx    # 0x54ecf0
leaq 0x3ecbaa(%rip), %rcx    # 0x54ed16
leaq 0x3ec0f5(%rip), %r8     # 0x54e268
movl $0x4da, %r9d            # imm = 0x4DA
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x162187
movq $0x0, 0x88(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xa0(%rsp)
movb %al, 0x27(%rsp)
jne 0x1621b7
movq 0x88(%rsp), %rax
cmpq 0x70(%rsp), %rax
setb %al
movb %al, 0x27(%rsp)
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0x1621c4
jmp 0x162c53
movq 0xb8(%rsp), %rax
movq 0x18(%rax), %rax
imulq $0xc8, 0x88(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
testb $0x1, 0xbb(%rax)
je 0x16227d
cmpq $0x0, 0xb0(%rsp)
je 0x162278
jmp 0x162203
movq 0x30(%rsp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x162247
movq 0x4d9d8a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b3df3(%rip), %rsi    # 0x516013
leaq 0x3ecb01(%rip), %rdx    # 0x54ed28
leaq 0x3ecae8(%rip), %rcx    # 0x54ed16
leaq 0x3ec033(%rip), %r8     # 0x54e268
movl $0x4e1, %r9d            # imm = 0x4E1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x162249
movq 0xb0(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x40(%rax), %rsi
callq 0x11d550
movq 0xb0(%rsp), %rdi
movq 0x30(%rsp), %rax
movsbl 0xb8(%rax), %esi
callq 0x11da70
jmp 0x162c3a
movq 0x30(%rsp), %rax
testb $0x1, 0xbf(%rax)
je 0x162938
movq 0x30(%rsp), %rax
testb $0x1, 0xba(%rax)
je 0x16244f
movq 0x30(%rsp), %rax
testb $0x1, 0xb9(%rax)
jne 0x16244f
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0xa8(%rsp), %rsi
callq 0x192f30
movq %rax, 0x48(%rsp)
movl $0xffffffff, 0xa4(%rsp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, 0xa0(%rsp)
movb %al, 0x26(%rsp)
jne 0x1622f8
cmpl $0x0, 0xa4(%rsp)
setne %al
movb %al, 0x26(%rsp)
movb 0x26(%rsp), %al
testb $0x1, %al
jne 0x162305
jmp 0x1623dc
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x9f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x162349
movq 0xa8(%rsp), %rdi
leaq 0x3eca0e(%rip), %rsi    # 0x54ed40
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xa0(%rsp) # imm = 0xFFFFFFFF
jmp 0x1623d7
movq 0x48(%rsp), %rdi
movb 0x9f(%rsp), %al
movq 0xa8(%rsp), %rcx
leaq 0x60(%rsp), %rdx
andb $0x1, %al
movzbl %al, %esi
callq 0x192fd0
movl %eax, 0xa4(%rsp)
cmpl $-0x1, 0xa4(%rsp)
jne 0x1623d5
movl $0xffffffff, 0xa0(%rsp) # imm = 0xFFFFFFFF
movq 0xa8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1623d1
movq 0x4d9c00(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b3c69(%rip), %rsi    # 0x516013
leaq 0x3d7bd6(%rip), %rdx    # 0x539f87
leaq 0x3ec95e(%rip), %rcx    # 0x54ed16
leaq 0x3ebea9(%rip), %r8     # 0x54e268
movl $0x4f6, %r9d            # imm = 0x4F6
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1623d3
jmp 0x1623d5
jmp 0x1623d7
jmp 0x1622d9
movq 0x48(%rsp), %rdi
callq 0x193140
movq $0x0, 0x78(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xa0(%rsp)
movb %al, 0x25(%rsp)
jne 0x162421
xorl %eax, %eax
cmpq $0x0, 0xb0(%rsp)
movb %al, 0x25(%rsp)
je 0x162421
movq 0x78(%rsp), %rax
cmpq 0x60(%rsp), %rax
setb %al
movb %al, 0x25(%rsp)
movb 0x25(%rsp), %al
testb $0x1, %al
jne 0x16242b
jmp 0x16244d
movq 0xb0(%rsp), %rdi
movl $0x30, %esi
callq 0x11da70
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
jmp 0x1623ef
jmp 0x16244f
cmpl $0x0, 0xa0(%rsp)
jne 0x1624ca
movq 0xb8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
je 0x162472
testb $0x1, 0x9e(%rsp)
je 0x1624ca
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x30(%rsp), %rax
movl 0xb0(%rax), %esi
movq 0xa8(%rsp), %rcx
leaq 0x50(%rsp), %rdx
callq 0x164520
movl %eax, 0xa0(%rsp)
cmpl $0x0, 0xa0(%rsp)
jne 0x1624c5
movq 0x50(%rsp), %rax
movq 0x30(%rsp), %rcx
addq 0x98(%rcx), %rax
movq %rax, 0x90(%rsp)
jmp 0x162741
cmpl $0x0, 0xa0(%rsp)
jne 0x16273f
movq 0x30(%rsp), %rax
testb $0x1, 0xc0(%rax)
je 0x1624f8
movq 0x30(%rsp), %rax
testb $0x1, 0xbc(%rax)
jne 0x1626ab
movq 0x30(%rsp), %rax
cmpl $0x0, 0xac(%rax)
je 0x16269d
movq 0x30(%rsp), %rax
testb $0x1, 0xc2(%rax)
je 0x16265e
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0xa8(%rsp), %rsi
callq 0x192f30
movq %rax, 0x48(%rsp)
movl $0x1, 0xa4(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xa0(%rsp)
movb %al, 0x24(%rsp)
jne 0x162561
cmpl $0x0, 0xa4(%rsp)
setne %al
movb %al, 0x24(%rsp)
movb 0x24(%rsp), %al
testb $0x1, %al
jne 0x16256e
jmp 0x162652
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x9f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x1625b2
movq 0xa8(%rsp), %rdi
leaq 0x3ec7a5(%rip), %rsi    # 0x54ed40
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xa0(%rsp) # imm = 0xFFFFFFFF
jmp 0x16264d
movq 0x48(%rsp), %rdi
movb 0x9f(%rsp), %al
movq 0xa8(%rsp), %rcx
leaq 0x58(%rsp), %rdx
andb $0x1, %al
movzbl %al, %esi
callq 0x192fd0
movl %eax, 0xa4(%rsp)
cmpl $-0x1, 0xa4(%rsp)
jne 0x16263e
movl $0xffffffff, 0xa0(%rsp) # imm = 0xFFFFFFFF
movq 0xa8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x16263a
movq 0x4d9997(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b3a00(%rip), %rsi    # 0x516013
leaq 0x3d796d(%rip), %rdx    # 0x539f87
leaq 0x3ec6f5(%rip), %rcx    # 0x54ed16
leaq 0x3ebc40(%rip), %r8     # 0x54e268
movl $0x51b, %r9d            # imm = 0x51B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x16263c
jmp 0x16264b
movq 0x58(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x16264d
jmp 0x162542
movq 0x48(%rsp), %rdi
callq 0x193140
jmp 0x16269b
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x30(%rsp), %rax
movl 0xac(%rax), %esi
movq 0xa8(%rsp), %rcx
leaq 0x50(%rsp), %rdx
callq 0x164520
movl %eax, 0xa0(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x1626a9
movq $0x0, 0x90(%rsp)
jmp 0x1626e9
movq 0x30(%rsp), %rax
testb $0x1, 0xc1(%rax)
je 0x1626c7
movq $0x0, 0x90(%rsp)
jmp 0x1626e7
movq 0x30(%rsp), %rax
movq 0xa0(%rax), %rax
movq 0x30(%rsp), %rcx
subq 0x98(%rcx), %rax
movq %rax, 0x90(%rsp)
jmp 0x1626e9
movq 0x30(%rsp), %rax
testb $0x1, 0xc1(%rax)
je 0x162721
movq 0x30(%rsp), %rax
movq 0xa0(%rax), %rax
movq 0x30(%rsp), %rcx
addq 0x90(%rcx), %rax
addq 0x90(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x16273d
movq 0x30(%rsp), %rax
movq 0x98(%rax), %rax
addq 0x90(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x16273f
jmp 0x162741
cmpl $0x0, 0xa0(%rsp)
jne 0x162936
movq 0xb8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
je 0x162836
testb $0x1, 0x9e(%rsp)
jne 0x162836
movq 0x30(%rsp), %rax
testb $0x1, 0xbe(%rax)
je 0x1627d2
jmp 0x162780
movq 0x90(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0xa0(%rcx), %rax
jl 0x1627ce
movq 0x4d9803(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b386c(%rip), %rsi    # 0x516013
leaq 0x3ec5a9(%rip), %rdx    # 0x54ed57
leaq 0x3ec561(%rip), %rcx    # 0x54ed16
leaq 0x3ebaac(%rip), %r8     # 0x54e268
movl $0x53b, %r9d            # imm = 0x53B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1627d0
jmp 0x1627d2
movq 0x30(%rsp), %rax
testb $0x1, 0xbd(%rax)
je 0x162834
jmp 0x1627e2
movq 0x90(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0xa0(%rcx), %rax
jg 0x162830
movq 0x4d97a1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b380a(%rip), %rsi    # 0x516013
leaq 0x3ec563(%rip), %rdx    # 0x54ed73
leaq 0x3ec4ff(%rip), %rcx    # 0x54ed16
leaq 0x3eba4a(%rip), %r8     # 0x54e268
movl $0x53d, %r9d            # imm = 0x53D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x162832
jmp 0x162834
jmp 0x162836
movq 0x90(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0xa0(%rax)
movq 0x30(%rsp), %rax
testb $0x1, 0xba(%rax)
je 0x1628f8
movq 0x30(%rsp), %rax
testb $0x1, 0xb9(%rax)
je 0x1628f8
movq 0x30(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x90(%rsp), %rdi
movl $0xa, %esi
callq 0x1635f0
movl %eax, %ecx
movq 0x18(%rsp), %rax
movl %ecx, %ecx
subq %rcx, %rax
movq %rax, 0x60(%rsp)
movq $0x0, 0x78(%rsp)
xorl %eax, %eax
cmpq $0x0, 0xb0(%rsp)
movb %al, 0x17(%rsp)
je 0x1628ca
movq 0x78(%rsp), %rax
cmpq 0x60(%rsp), %rax
setb %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x1628d4
jmp 0x1628f6
movq 0xb0(%rsp), %rdi
movl $0x30, %esi
callq 0x11da70
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
jmp 0x1628a8
jmp 0x1628f8
cmpq $0x0, 0xb0(%rsp)
je 0x162931
movq 0xb0(%rsp), %rdi
movq 0x90(%rsp), %rsi
callq 0x11d930
movq 0xb0(%rsp), %rdi
movq 0x30(%rsp), %rax
movsbl 0xb8(%rax), %esi
callq 0x11da70
jmp 0x162c3a
jmp 0x162938
movq 0x30(%rsp), %rax
testb $0x1, 0xb9(%rax)
jne 0x16298e
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x30(%rsp), %rax
movl 0xa8(%rax), %esi
movq 0xa8(%rsp), %rcx
leaq 0x50(%rsp), %rdx
callq 0x164520
movl %eax, 0xa0(%rsp)
movq 0x50(%rsp), %rax
movq 0x30(%rsp), %rcx
addq 0x58(%rcx), %rax
movq %rax, 0x80(%rsp)
jmp 0x16299f
movq 0x30(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x80(%rsp)
movq $0x0, 0x78(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xa0(%rsp)
movb %al, 0x16(%rsp)
jne 0x1629cc
movq 0x78(%rsp), %rax
cmpq 0x80(%rsp), %rax
setb %al
movb %al, 0x16(%rsp)
movb 0x16(%rsp), %al
testb $0x1, %al
jne 0x1629d9
jmp 0x162c0a
movq 0x78(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0x50(%rcx), %rax
jae 0x162a31
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x78(%rsp), %rsi
callq 0x8a780
testb $0x1, %al
jne 0x162a02
jmp 0x162a31
cmpq $0x0, 0xb0(%rsp)
je 0x162a2c
movq 0xb0(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x40(%rax), %rax
movq 0x78(%rsp), %rcx
movsbl (%rax,%rcx), %esi
callq 0x11da70
jmp 0x162bf5
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x78(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0xa8(%rsp), %rsi
callq 0x192f30
movq %rax, 0x48(%rsp)
movl $0xffffffff, 0xa4(%rsp) # imm = 0xFFFFFFFF
xorl %eax, %eax
cmpl $0x0, 0xa0(%rsp)
movb %al, 0x15(%rsp)
jne 0x162a7e
cmpl $0x0, 0xa4(%rsp)
setne %al
movb %al, 0x15(%rsp)
movb 0x15(%rsp), %al
testb $0x1, %al
jne 0x162a8b
jmp 0x162b74
movq 0xb8(%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x9f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x162acf
movq 0xa8(%rsp), %rdi
leaq 0x3ec288(%rip), %rsi    # 0x54ed40
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xa0(%rsp) # imm = 0xFFFFFFFF
jmp 0x162b6f
movq 0x48(%rsp), %rdi
movb 0x9f(%rsp), %al
movq 0xa8(%rsp), %rcx
leaq 0x58(%rsp), %rdx
andb $0x1, %al
movzbl %al, %esi
callq 0x192fd0
movl %eax, 0xa4(%rsp)
cmpl $-0x1, 0xa4(%rsp)
jne 0x162b60
jmp 0x162b05
movq 0xa8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x162b4e
movq 0x4d9483(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b34ec(%rip), %rsi    # 0x516013
leaq 0x3d7459(%rip), %rdx    # 0x539f87
leaq 0x3ec1e1(%rip), %rcx    # 0x54ed16
leaq 0x3eb72c(%rip), %r8     # 0x54e268
movl $0x56c, %r9d            # imm = 0x56C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x162b50
movl 0xa4(%rsp), %eax
movl %eax, 0xa0(%rsp)
jmp 0x162b6d
movq 0x58(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x162b6f
jmp 0x162a5f
cmpl $0x0, 0xa0(%rsp)
jne 0x162beb
cmpq $0x0, 0xb0(%rsp)
je 0x162beb
jmp 0x162b8b
cmpq $0x100, 0x90(%rsp) # imm = 0x100
jl 0x162bd1
movq 0x4d9400(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b3469(%rip), %rsi    # 0x516013
leaq 0x3ec1de(%rip), %rdx    # 0x54ed8f
leaq 0x3ec15e(%rip), %rcx    # 0x54ed16
leaq 0x3eb6a9(%rip), %r8     # 0x54e268
movl $0x574, %r9d            # imm = 0x574
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x162bd3
movq 0xb0(%rsp), %rdi
movq 0x90(%rsp), %rax
movsbl %al, %esi
callq 0x11da70
movq 0x48(%rsp), %rdi
callq 0x193140
jmp 0x162bf7
movq 0x78(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x78(%rsp)
jmp 0x1629a8
cmpl $0x0, 0xa0(%rsp)
jne 0x162c38
cmpq $0x0, 0xb0(%rsp)
je 0x162c38
movq 0xb0(%rsp), %rdi
movq 0x30(%rsp), %rax
movsbl 0xb8(%rax), %esi
callq 0x11da70
jmp 0x162c3a
movq 0x88(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x88(%rsp)
jmp 0x162193
cmpq $0x0, 0xb0(%rsp)
je 0x162c9c
movq 0xb0(%rsp), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
je 0x162c9c
movq 0xb0(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xb0(%rsp), %rdi
callq 0x11dfa0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x11dfd0
cmpl $0x0, 0xa0(%rsp)
jne 0x162cba
movq 0xb8(%rsp), %rax
movq 0x48(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x48(%rax)
cmpl $0x0, 0xa0(%rsp)
je 0x162d13
jmp 0x162cc6
movq 0xa8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x162d0f
movq 0x4d92c2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3b332b(%rip), %rsi    # 0x516013
leaq 0x3d7298(%rip), %rdx    # 0x539f87
leaq 0x3ec020(%rip), %rcx    # 0x54ed16
leaq 0x3eb56b(%rip), %r8     # 0x54e268
movl $0x584, %r9d            # imm = 0x584
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x162d11
jmp 0x162d13
movl 0xa0(%rsp), %eax
movl %eax, 0xc4(%rsp)
movl 0xc4(%rsp), %eax
addq $0xc8, %rsp
retq