// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rcr.c
// Function: rcr_write_decoding_to_file
static int rcr_write_decoding_to_file(GtRcrDecoder *rcr_dec, GtError *err)
{
  bool bit,
       strand;
  int had_err = 0;
  uint32_t mapping_qual = 0;
  GtUword
                cur_read = 0,
                i,
                l,
                prev_readpos = 0,
                readlength,
                readpos = 0,
                refnum = 0,
                rel_readpos,
                seqstart = 0,
                symbol;
  GtStr *qname;
  GtHuffmanBitwiseDecoder *readlen_hbwd = NULL,
                          *mapping_qual_hbwd = NULL;
  GtGolombBitwiseDecoder *readpos_gbwd = NULL;
  GtBitInStream *bitstream;
  RcrDecodeInfo *info = rcr_init_decode_info(rcr_dec, err);

  if (info == NULL)
    /* had_err = -1 is nicer, but splint does not like it */
    return -1;

  if (!had_err && !rcr_dec->cons_readlength) {
    readlen_hbwd =
      gt_huffman_bitwise_decoder_new(rcr_dec->readlenghts_huff, err);
  }

  if (!had_err && rcr_dec->store_mapping_qual) {
    mapping_qual_hbwd =
      gt_huffman_bitwise_decoder_new(rcr_dec->qual_mapping_huff, err);
  }

  if (!had_err) {
    readpos_gbwd =
      gt_golomb_bitwise_decoder_new(rcr_dec->readpos_golomb);

    qname = gt_str_new();

    bitstream = gt_bitinstream_new(gt_str_get(rcr_dec->inputname),
                                   (size_t) rcr_dec->startofencoding,
                                   1UL);

    for (i = 0; i < gt_encseq_num_of_sequences(rcr_dec->encseq); i++) {
      const char *seqname = gt_encseq_description(rcr_dec->encseq, &l, i);
      GtUword len = gt_encseq_seqlength(rcr_dec->encseq, i);
      fprintf(rcr_dec->fp, "@SQ\tSN:%.*s\tLN:" GT_WU "\n", (int) l, seqname,
              len);
    }

    gt_log_log("start to decode " GT_WU " reads", rcr_dec->numofreads);
  }

  while (!had_err &&
         cur_read < rcr_dec->numofreads) {

    /* check if there is a new seq in encseq */
    if (RCR_NEXT_BIT(bit)) {
      if (bit) {
        seqstart = gt_encseq_seqstartpos(rcr_dec->encseq, refnum);
        gt_log_log("get start for new ref " GT_WU ": " GT_WU, refnum, seqstart);
        refnum++;
        prev_readpos = 0;
      }
    }
    /* check if read was unmapped */
    if (!had_err && RCR_NEXT_BIT(bit)) {
      if (bit) {
        /* TODO DW this is ugly */
        continue;
      }
    }

    gt_str_reset(qname);
    /* read read name */
    if (!had_err && rcr_dec->encdesc != NULL) {
      if (gt_encdesc_decode(rcr_dec->encdesc, cur_read, qname, err) != 1) {
        had_err = -1;
      }
    }
    else
      gt_str_append_uword(qname, cur_read);

    /* read read length */
    if (!had_err) {
      if (rcr_dec->cons_readlength)
        readlength = rcr_dec->readlength;
      else
        had_err = rcr_huff_read(readlen_hbwd, bitstream, &readlength, err);
    }

    /* read read position */
    if (!had_err) {
      had_err = rcr_golomb_read(readpos_gbwd, bitstream, &rel_readpos, err);
      if (!had_err) {
        readpos = rel_readpos + prev_readpos;
        prev_readpos = readpos;
      }
    }

    /* read mapping qual */
    if (!had_err && rcr_dec->store_mapping_qual) {
      had_err = rcr_huff_read(mapping_qual_hbwd, bitstream, &symbol, err);
      if (!had_err) {
        gt_safe_assign(mapping_qual, symbol);
      }
    }

    /* read qual string */
    if (!had_err && rcr_dec->store_all_qual)
      had_err = rcr_huff_read_string(info->qual_hbwd, bitstream, readlength,
                                     info->qual_string, err);

    if (!had_err) {
      /* read strand */
      if (RCR_NEXT_BIT(bit)) {
        strand = bit;
      }
    }
    if (!had_err) {
      /* exact match? */
      GtUword seq_i = seqstart + readpos;
      if (RCR_NEXT_BIT(bit)) {
        if (bit)
          rcr_decode_exact(rcr_dec, info, readlength, seqstart, readpos);
        else
          had_err = rcr_decode_inexact(rcr_dec, bitstream, info, seq_i,
                                       readlength, err);

        /* write read to file */
        if (readlength != gt_str_length(info->base_string)) {
          gt_log_log("readlen: " GT_WU ", stringlen: " GT_WU ", read: " GT_WU,
                     readlength, gt_str_length(info->base_string), cur_read);
        }
        gt_assert(readlength == gt_str_length(info->base_string));
        gt_assert(readlength == gt_str_length(info->qual_string));
        fprintf(rcr_dec->fp, "%s", gt_str_get(qname));
        fprintf(rcr_dec->fp, "\t%c", strand?'-':'+');
        fprintf(rcr_dec->fp, "\t" GT_WU, readpos + 1);
        if (rcr_dec->store_mapping_qual)
          fprintf(rcr_dec->fp, "\t%u", (unsigned) mapping_qual);
        else
          fprintf(rcr_dec->fp, "\t%u", DEFAULTMQUAL);

        rcr_convert_cigar_string(info->cigar_string);
        fprintf(rcr_dec->fp, "\t%s", gt_str_get(info->cigar_string));
        fprintf(rcr_dec->fp,"\t%s", gt_str_get(info->base_string));
        fprintf(rcr_dec->fp, "\t%s\n", gt_str_get(info->qual_string));
        gt_str_reset(info->cigar_string);
        gt_str_reset(info->qual_string);
        gt_str_reset(info->base_string);
        cur_read++;
      }
    }
  }
  gt_str_delete(qname);
  gt_huffman_bitwise_decoder_delete(readlen_hbwd);
  gt_huffman_bitwise_decoder_delete(mapping_qual_hbwd);
  gt_golomb_bitwise_decoder_delete(readpos_gbwd);
  gt_bitinstream_delete(bitstream);
  rcr_delete_decode_info(info);
  gt_log_log("decoded " GT_WU " reads", cur_read);
  return had_err;
}

// Assembly:
subq $0x148, %rsp            # imm = 0x148
movq %rdi, 0x138(%rsp)
movq %rsi, 0x130(%rsp)
movl $0x0, 0x128(%rsp)
movl $0x0, 0x124(%rsp)
movq $0x0, 0x118(%rsp)
movq $0x0, 0x100(%rsp)
movq $0x0, 0xf0(%rsp)
movq $0x0, 0xe8(%rsp)
movq $0x0, 0xd8(%rsp)
movq $0x0, 0xc0(%rsp)
movq $0x0, 0xb8(%rsp)
movq $0x0, 0xb0(%rsp)
movq 0x138(%rsp), %rdi
movq 0x130(%rsp), %rsi
callq 0x1c2510
movq %rax, 0xa0(%rsp)
cmpq $0x0, 0xa0(%rsp)
jne 0x1be655
movl $0xffffffff, 0x144(%rsp) # imm = 0xFFFFFFFF
jmp 0x1bf178
cmpl $0x0, 0x128(%rsp)
jne 0x1be691
movq 0x138(%rsp), %rax
testb $0x1, 0xe0(%rax)
jne 0x1be691
movq 0x138(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x130(%rsp), %rsi
callq 0x192f30
movq %rax, 0xc0(%rsp)
cmpl $0x0, 0x128(%rsp)
jne 0x1be6cd
movq 0x138(%rsp), %rax
testb $0x1, 0xe3(%rax)
je 0x1be6cd
movq 0x138(%rsp), %rax
movq 0x30(%rax), %rdi
movq 0x130(%rsp), %rsi
callq 0x192f30
movq %rax, 0xb8(%rsp)
cmpl $0x0, 0x128(%rsp)
jne 0x1be824
movq 0x138(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x181620
movq %rax, 0xb0(%rsp)
callq 0x11d4a0
movq %rax, 0xc8(%rsp)
movq 0x138(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x138(%rsp), %rax
movq 0xd8(%rax), %rsi
movl $0x1, %edx
callq 0x4899a0
movq %rax, 0xa8(%rsp)
movq $0x0, 0x110(%rsp)
movq 0x110(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x138(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xa9d50
movq %rax, %rcx
movq 0x58(%rsp), %rax
cmpq %rcx, %rax
jae 0x1be807
movq 0x138(%rsp), %rax
movq 0x50(%rax), %rdi
movq 0x110(%rsp), %rdx
leaq 0x108(%rsp), %rsi
callq 0xb1b40
movq %rax, 0x98(%rsp)
movq 0x138(%rsp), %rax
movq 0x50(%rax), %rdi
movq 0x110(%rsp), %rsi
callq 0xb09f0
movq %rax, 0x90(%rsp)
movq 0x138(%rsp), %rax
movq (%rax), %rdi
movq 0x108(%rsp), %rax
movl %eax, %edx
movq 0x98(%rsp), %rcx
movq 0x90(%rsp), %r8
leaq 0x3a33c9(%rip), %rsi    # 0x561bb0
movb $0x0, %al
callq 0x199f0
movq 0x110(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x110(%rsp)
jmp 0x1be742
movq 0x138(%rsp), %rax
movq 0xb8(%rax), %rsi
leaq 0x3a33a7(%rip), %rdi    # 0x561bc4
movb $0x0, %al
callq 0xe7740
jmp 0x1be826
xorl %eax, %eax
cmpl $0x0, 0x128(%rsp)
movb %al, 0x57(%rsp)
jne 0x1be854
movq 0x118(%rsp), %rax
movq 0x138(%rsp), %rcx
cmpq 0xb8(%rcx), %rax
setb %al
movb %al, 0x57(%rsp)
movb 0x57(%rsp), %al
testb $0x1, %al
jne 0x1be861
jmp 0x1bf106
movq 0xa8(%rsp), %rdi
leaq 0x12f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x1be8b0
movq 0x130(%rsp), %rdi
leaq 0x3a3354(%rip), %rsi    # 0x561bde
movl $0x7ad, %edx            # imm = 0x7AD
leaq 0x3a2c49(%rip), %rcx    # 0x5614df
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x128(%rsp) # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, 0x50(%rsp)
jmp 0x1be8bb
movl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x1be8bb
movl 0x50(%rsp), %eax
movl %eax, 0x8c(%rsp)
cmpl $0x0, 0x8c(%rsp)
je 0x1be93b
testb $0x1, 0x12f(%rsp)
je 0x1be939
movq 0x138(%rsp), %rax
movq 0x50(%rax), %rdi
movq 0xe8(%rsp), %rsi
callq 0xb0530
movq %rax, 0xd8(%rsp)
movq 0xe8(%rsp), %rsi
movq 0xd8(%rsp), %rdx
leaq 0x3a32f9(%rip), %rdi    # 0x561c0b
movb $0x0, %al
callq 0xe7740
movq 0xe8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xe8(%rsp)
movq $0x0, 0x100(%rsp)
jmp 0x1be93b
cmpl $0x0, 0x128(%rsp)
jne 0x1be9c9
movq 0xa8(%rsp), %rdi
leaq 0x12f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x1be998
movq 0x130(%rsp), %rdi
leaq 0x3a326c(%rip), %rsi    # 0x561bde
movl $0x7b6, %edx            # imm = 0x7B6
leaq 0x3a2b61(%rip), %rcx    # 0x5614df
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x128(%rsp) # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, 0x4c(%rsp)
jmp 0x1be9a3
movl $0x1, %eax
movl %eax, 0x4c(%rsp)
jmp 0x1be9a3
movl 0x4c(%rsp), %eax
movl %eax, 0x88(%rsp)
cmpl $0x0, 0x88(%rsp)
je 0x1be9c9
testb $0x1, 0x12f(%rsp)
je 0x1be9c7
jmp 0x1be826
jmp 0x1be9c9
movq 0xc8(%rsp), %rdi
callq 0x11e110
cmpl $0x0, 0x128(%rsp)
jne 0x1bea2a
movq 0x138(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1bea2a
movq 0x138(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x118(%rsp), %rsi
movq 0xc8(%rsp), %rdx
movq 0x130(%rsp), %rcx
callq 0x161ca0
cmpl $0x1, %eax
je 0x1bea28
movl $0xffffffff, 0x128(%rsp) # imm = 0xFFFFFFFF
jmp 0x1bea3f
movq 0xc8(%rsp), %rdi
movq 0x118(%rsp), %rsi
callq 0x11d930
cmpl $0x0, 0x128(%rsp)
jne 0x1beaa1
movq 0x138(%rsp), %rax
testb $0x1, 0xe0(%rax)
je 0x1bea73
movq 0x138(%rsp), %rax
movq 0xd0(%rax), %rax
movq %rax, 0xf8(%rsp)
jmp 0x1bea9f
movq 0xc0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0x130(%rsp), %rcx
leaq 0xf8(%rsp), %rdx
callq 0x1c2730
movl %eax, 0x128(%rsp)
jmp 0x1beaa1
cmpl $0x0, 0x128(%rsp)
jne 0x1beb0b
movq 0xb0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0x130(%rsp), %rcx
leaq 0xe0(%rsp), %rdx
callq 0x1c2820
movl %eax, 0x128(%rsp)
cmpl $0x0, 0x128(%rsp)
jne 0x1beb09
movq 0xe0(%rsp), %rax
addq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x100(%rsp)
jmp 0x1beb0b
cmpl $0x0, 0x128(%rsp)
jne 0x1bec1b
movq 0x138(%rsp), %rax
testb $0x1, 0xe3(%rax)
je 0x1bec1b
movq 0xb8(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0x130(%rsp), %rcx
leaq 0xd0(%rsp), %rdx
callq 0x1c2730
movl %eax, 0x128(%rsp)
cmpl $0x0, 0x128(%rsp)
jne 0x1bec19
jmp 0x1beb6a
movq 0xd0(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
movl %eax, 0x7c(%rsp)
movq 0x80(%rsp), %rax
movl 0x7c(%rsp), %ecx
cmpq %rcx, %rax
jne 0x1bebcd
cmpq $0x1, 0x80(%rsp)
setb %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, 0x7c(%rsp)
setb %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0x1bebcd
movl 0x7c(%rsp), %eax
movl %eax, 0x124(%rsp)
xorl %eax, %eax
movl %eax, 0x48(%rsp)
jmp 0x1bebd8
movl $0x1, %eax
movl %eax, 0x48(%rsp)
jmp 0x1bebd8
movl 0x48(%rsp), %eax
movl %eax, 0x78(%rsp)
cmpl $0x0, 0x78(%rsp)
je 0x1bec15
movq 0x47d3b2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35942d(%rip), %rsi    # 0x518025
leaq 0x3a28e0(%rip), %rdx    # 0x5614df
movl $0x7dc, %ecx            # imm = 0x7DC
movb $0x0, %al
callq 0x199f0
movl $0x1, %edi
callq 0x19890
jmp 0x1bec17
jmp 0x1bec19
jmp 0x1bec1b
cmpl $0x0, 0x128(%rsp)
jne 0x1bec72
movq 0x138(%rsp), %rax
testb $0x1, 0xe1(%rax)
je 0x1bec72
movq 0xa0(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0xa8(%rsp), %rsi
movq 0xf8(%rsp), %rdx
movq 0xa0(%rsp), %rax
movq 0x38(%rax), %rcx
movq 0x130(%rsp), %r8
callq 0x1c2910
movl %eax, 0x128(%rsp)
cmpl $0x0, 0x128(%rsp)
jne 0x1becf7
movq 0xa8(%rsp), %rdi
leaq 0x12f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x1beccb
movq 0x130(%rsp), %rdi
leaq 0x3a2f39(%rip), %rsi    # 0x561bde
movl $0x7e7, %edx            # imm = 0x7E7
leaq 0x3a282e(%rip), %rcx    # 0x5614df
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x128(%rsp) # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, 0x44(%rsp)
jmp 0x1becd6
movl $0x1, %eax
movl %eax, 0x44(%rsp)
jmp 0x1becd6
movl 0x44(%rsp), %eax
movl %eax, 0x74(%rsp)
cmpl $0x0, 0x74(%rsp)
je 0x1becf5
movb 0x12f(%rsp), %al
andb $0x1, %al
movb %al, 0x12e(%rsp)
jmp 0x1becf7
cmpl $0x0, 0x128(%rsp)
jne 0x1bf101
movq 0xd8(%rsp), %rax
addq 0xf0(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0xa8(%rsp), %rdi
leaq 0x12f(%rsp), %rsi
callq 0x489d10
cmpl $0x1, %eax
je 0x1bed69
movq 0x130(%rsp), %rdi
leaq 0x3a2e9b(%rip), %rsi    # 0x561bde
movl $0x7ee, %edx            # imm = 0x7EE
leaq 0x3a2790(%rip), %rcx    # 0x5614df
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x128(%rsp) # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, 0x40(%rsp)
jmp 0x1bed74
movl $0x1, %eax
movl %eax, 0x40(%rsp)
jmp 0x1bed74
movl 0x40(%rsp), %eax
movl %eax, 0x64(%rsp)
cmpl $0x0, 0x64(%rsp)
je 0x1bf0ff
testb $0x1, 0x12f(%rsp)
je 0x1bedc0
movq 0x138(%rsp), %rdi
movq 0xa0(%rsp), %rsi
movq 0xf8(%rsp), %rdx
movq 0xd8(%rsp), %rcx
movq 0xf0(%rsp), %r8
callq 0x1c29c0
jmp 0x1bedf9
movq 0x138(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movq 0x68(%rsp), %rcx
movq 0xf8(%rsp), %r8
movq 0x130(%rsp), %r9
callq 0x1c2a10
movl %eax, 0x128(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xa0(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dfa0
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
je 0x1bee60
movq 0xf8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0xa0(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dfa0
movq 0x30(%rsp), %rsi
movq %rax, %rdx
movq 0x118(%rsp), %rcx
leaq 0x3a2dd1(%rip), %rdi    # 0x561c2a
movb $0x0, %al
callq 0xe7740
jmp 0x1bee62
movq 0xf8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xa0(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dfa0
movq %rax, %rcx
movq 0x28(%rsp), %rax
cmpq %rcx, %rax
je 0x1beec5
movq 0x47d10c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x357175(%rip), %rsi    # 0x516013
leaq 0x3a2dad(%rip), %rdx    # 0x561c52
leaq 0x3a2dd5(%rip), %rcx    # 0x561c81
leaq 0x3a262c(%rip), %r8     # 0x5614df
movl $0x7fa, %r9d            # imm = 0x7FA
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1beec7
jmp 0x1beec9
movq 0xf8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xa0(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11dfa0
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
je 0x1bef2c
movq 0x47d0a5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35710e(%rip), %rsi    # 0x516013
leaq 0x3a2d90(%rip), %rdx    # 0x561c9c
leaq 0x3a2d6e(%rip), %rcx    # 0x561c81
leaq 0x3a25c5(%rip), %r8     # 0x5614df
movl $0x7fb, %r9d            # imm = 0x7FB
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1bef2e
movq 0x138(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x11dee0
movq 0x18(%rsp), %rdi
movq %rax, %rdx
leaq 0x3dd0c7(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x199f0
movq 0x138(%rsp), %rax
movq (%rax), %rdi
movb 0x12e(%rsp), %cl
movl $0x2b, %edx
movl $0x2d, %eax
testb $0x1, %cl
cmovnel %eax, %edx
leaq 0x3a2d41(%rip), %rsi    # 0x561ccb
movb $0x0, %al
callq 0x199f0
movq 0x138(%rsp), %rax
movq (%rax), %rdi
movq 0xf0(%rsp), %rdx
addq $0x1, %rdx
leaq 0x3d0059(%rip), %rsi    # 0x58f008
movb $0x0, %al
callq 0x199f0
movq 0x138(%rsp), %rax
testb $0x1, 0xe3(%rax)
je 0x1befe9
movq 0x138(%rsp), %rax
movq (%rax), %rdi
movl 0x124(%rsp), %edx
leaq 0x3a2cef(%rip), %rsi    # 0x561ccf
movb $0x0, %al
callq 0x199f0
jmp 0x1bf004
movq 0x138(%rsp), %rax
movq (%rax), %rdi
leaq 0x3a2cd4(%rip), %rsi    # 0x561ccf
xorl %edx, %edx
movb $0x0, %al
callq 0x199f0
movq 0xa0(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x1c2f70
movq 0x138(%rsp), %rax
movq (%rax), %rax
movq %rax, (%rsp)
movq 0xa0(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x11dee0
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x3dcfdd(%rip), %rsi    # 0x59c020
movb $0x0, %al
callq 0x199f0
movq 0x138(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0xa0(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dee0
movq 0x8(%rsp), %rdi
movq %rax, %rdx
leaq 0x3dcfa6(%rip), %rsi    # 0x59c020
movb $0x0, %al
callq 0x199f0
movq 0x138(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0xa0(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11dee0
movq 0x10(%rsp), %rdi
movq %rax, %rdx
leaq 0x367e3a(%rip), %rsi    # 0x526eeb
movb $0x0, %al
callq 0x199f0
movq 0xa0(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x11e110
movq 0xa0(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11e110
movq 0xa0(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11e110
movq 0x118(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x118(%rsp)
jmp 0x1bf101
jmp 0x1be826
movq 0xc8(%rsp), %rdi
callq 0x11f560
movq 0xc0(%rsp), %rdi
callq 0x193140
movq 0xb8(%rsp), %rdi
callq 0x193140
movq 0xb0(%rsp), %rdi
callq 0x181a00
movq 0xa8(%rsp), %rdi
callq 0x489e80
movq 0xa0(%rsp), %rdi
callq 0x1c3110
movq 0x118(%rsp), %rsi
leaq 0x3a2b70(%rip), %rdi    # 0x561cd3
movb $0x0, %al
callq 0xe7740
movl 0x128(%rsp), %eax
movl %eax, 0x144(%rsp)
movl 0x144(%rsp), %eax
addq $0x148, %rsp            # imm = 0x148
retq
nopw (%rax,%rax)