// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/faidx.c
// Function: fai_build_core
static faidx_t *fai_build_core(BGZF *bgzf) {
    kstring_t name = { 0, 0, NULL };
    int c, read_done, line_num;
    faidx_t *idx;
    uint64_t seq_offset, qual_offset;
    uint64_t seq_len, qual_len;
    uint64_t char_len, cl, line_len, ll;
    enum read_state {OUT_READ, IN_NAME, IN_SEQ, SEQ_END, IN_QUAL} state;

    idx = (faidx_t*)calloc(1, sizeof(faidx_t));
    idx->hash = kh_init(s);
    idx->format = FAI_NONE;

    state = OUT_READ, read_done = 0, line_num = 1;
    seq_offset = qual_offset = seq_len = qual_len = char_len = cl = line_len = ll = 0;

    while ((c = bgzf_getc(bgzf)) >= 0) {
        switch (state) {
            case OUT_READ:
                switch (c) {
                    case '>':
                        if (idx->format == FAI_FASTQ) {
                            hts_log_error("Found '>' in a FASTQ file, error at line %d", line_num);
                            goto fail;
                        }

                        idx->format = FAI_FASTA;
                        state = IN_NAME;
                    break;

                    case '@':
                        if (idx->format == FAI_FASTA) {
                            hts_log_error("Found '@' in a FASTA file, error at line %d", line_num);
                            goto fail;
                        }

                        idx->format = FAI_FASTQ;
                        state = IN_NAME;
                    break;

                    case '\r':
                        // Blank line with cr-lf ending?
                        if ((c = bgzf_getc(bgzf)) == '\n') {
                            line_num++;
                        } else {
                            hts_log_error("Format error, carriage return not followed by new line at line %d", line_num);
                            goto fail;
                        }
                    break;

                    case '\n':
                        // just move onto the next line
                        line_num++;
                    break;

                    default: {
                        char s[4] = { '"', c, '"', '\0' };
                        hts_log_error("Format error, unexpected %s at line %d", isprint(c) ? s : "character", line_num);
                        goto fail;
                    }
                }
            break;

            case IN_NAME:
                if (read_done) {
                    if (fai_insert_index(idx, name.s, seq_len, line_len, char_len, seq_offset, qual_offset) != 0)
                        goto fail;

                    read_done = 0;
                }

                name.l = 0;

                do {
                    if (!isspace(c)) {
                        kputc(c, &name);
                    } else if (name.l > 0 || c == '\n') {
                        break;
                    }
                } while ((c = bgzf_getc(bgzf)) >= 0);

                kputsn("", 0, &name);

                if (c < 0) {
                    hts_log_error("The last entry '%s' has no sequence at line %d", name.s, line_num);
                    goto fail;
                }

                // read the rest of the line if necessary
                if (c != '\n') while ((c = bgzf_getc(bgzf)) >= 0 && c != '\n');

                state = IN_SEQ; seq_len = qual_len = char_len = line_len = 0;
                seq_offset = bgzf_utell(bgzf);
                line_num++;
            break;

            case IN_SEQ:
                if (idx->format == FAI_FASTA) {
                    if (c == '\n') {
                        state = OUT_READ;
                        line_num++;
                        continue;
                    } else if (c == '>') {
                        state = IN_NAME;
                        continue;
                    }
                } else if (idx->format == FAI_FASTQ) {
                    if (c == '+') {
                        state = IN_QUAL;
                        if (c != '\n') while ((c = bgzf_getc(bgzf)) >= 0 && c != '\n');
                        qual_offset = bgzf_utell(bgzf);
                        line_num++;
                        continue;
                    } else if (c == '\n') {
                        hts_log_error("Inlined empty line is not allowed in sequence '%s' at line %d", name.s, line_num);
                        goto fail;
                    }
                }

                ll = cl = 0;

                if (idx->format == FAI_FASTA) read_done = 1;

                do {
                    ll++;
                    if (isgraph(c)) cl++;
                } while ((c = bgzf_getc(bgzf)) >= 0 && c != '\n');

                ll++; seq_len += cl;

                if (line_len == 0) {
                    line_len = ll;
                    char_len = cl;
                } else if (line_len > ll) {

                    if (idx->format == FAI_FASTA)
                        state = OUT_READ;
                    else
                        state = SEQ_END;

                } else if (line_len < ll) {
                    hts_log_error("Different line length in sequence '%s' at line %d", name.s, line_num);
                    goto fail;
                }

                line_num++;
            break;

            case SEQ_END:
                if (c == '+') {
                    state = IN_QUAL;
                    while ((c = bgzf_getc(bgzf)) >= 0 && c != '\n');
                    qual_offset = bgzf_utell(bgzf);
                    line_num++;
                } else {
                    hts_log_error("Format error, expecting '+', got '%c' at line %d", c, line_num);
                    goto fail;
                }
            break;

            case IN_QUAL:
                if (c == '\n') {
                    if (!read_done) {
                        hts_log_error("Inlined empty line is not allowed in quality of sequence '%s' at line %d", name.s, line_num);
                        goto fail;
                    }

                    state = OUT_READ;
                    line_num++;
                    continue;
                } else if (c == '@' && read_done) {
                    state = IN_NAME;
                    continue;
                }

                ll = cl = 0;

                do {
                    ll++;
                    if (isgraph(c)) cl++;
                } while ((c = bgzf_getc(bgzf)) >= 0 && c != '\n');

                ll++; qual_len += cl;

                if (line_len < ll) {
                    hts_log_error("Quality line length too long in '%s' at line %d", name.s, line_num);
                    goto fail;
                } else if (qual_len == seq_len) {
                    read_done = 1;
                } else if (qual_len > seq_len) {
                    hts_log_error("Quality length longer than sequence in '%s' at line %d", name.s, line_num);
                    goto fail;
                } else if (line_len > ll) {
                    hts_log_error("Quality line length too short in '%s' at line %d", name.s, line_num);
                    goto fail;
                }

                line_num++;
            break;
        }
    }

    if (read_done) {
        if (fai_insert_index(idx, name.s, seq_len, line_len, char_len, seq_offset, qual_offset) != 0)
            goto fail;
    } else {
        hts_log_error("File truncated at line %d", line_num);
        goto fail;
    }

    free(name.s);
    return idx;

fail:
    free(name.s);
    fai_destroy(idx);
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
leaq -0x28(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x4250
movl $0x1, %edi
movl $0x28, %esi
callq 0x42f0
movq %rax, -0x40(%rbp)
callq 0xd5f40
movq %rax, %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x40(%rbp), %rax
movl $0x0, 0x20(%rax)
movl $0x0, -0x84(%rbp)
movl $0x0, -0x30(%rbp)
movl $0x1, -0x34(%rbp)
movq $0x0, -0x80(%rbp)
movq $0x0, -0x78(%rbp)
movq $0x0, -0x70(%rbp)
movq $0x0, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x48(%rbp)
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, -0x2c(%rbp)
cmpl $0x0, %eax
jl 0xd5d14
movl -0x84(%rbp), %eax
movq %rax, -0x90(%rbp)
subq $0x4, %rax
ja 0xd5d0f
movq -0x90(%rbp), %rax
leaq 0x221e1(%rip), %rcx     # 0xf77b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl -0x2c(%rbp), %eax
movl %eax, -0x94(%rbp)
subl $0xa, %eax
je 0xd56e9
jmp 0xd55ec
movl -0x94(%rbp), %eax
subl $0xd, %eax
je 0xd56a6
jmp 0xd55fd
movl -0x94(%rbp), %eax
subl $0x3e, %eax
je 0xd561a
jmp 0xd560a
movl -0x94(%rbp), %eax
subl $0x40, %eax
je 0xd5660
jmp 0xd56f7
movq -0x40(%rbp), %rax
cmpl $0x2, 0x20(%rax)
jne 0xd5646
movl -0x34(%rbp), %ecx
movl $0x1, %edi
leaq 0x223b0(%rip), %rsi     # 0xf79e3
leaq 0x223b8(%rip), %rdx     # 0xf79f2
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
movq -0x40(%rbp), %rax
movl $0x1, 0x20(%rax)
movl $0x1, -0x84(%rbp)
jmp 0xd5779
movq -0x40(%rbp), %rax
cmpl $0x1, 0x20(%rax)
jne 0xd568c
movl -0x34(%rbp), %ecx
movl $0x1, %edi
leaq 0x2236a(%rip), %rsi     # 0xf79e3
leaq 0x2239e(%rip), %rdx     # 0xf7a1e
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
movq -0x40(%rbp), %rax
movl $0x2, 0x20(%rax)
movl $0x1, -0x84(%rbp)
jmp 0xd5779
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, -0x2c(%rbp)
cmpl $0xa, %eax
jne 0xd56c2
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd56e4
movl -0x34(%rbp), %ecx
movl $0x1, %edi
leaq 0x22312(%rip), %rsi     # 0xf79e3
leaq 0x22372(%rip), %rdx     # 0xf7a4a
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
jmp 0xd5779
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5779
movb $0x22, -0x88(%rbp)
movl -0x2c(%rbp), %eax
movb %al, -0x87(%rbp)
movb $0x22, -0x86(%rbp)
movb $0x0, -0x85(%rbp)
callq 0x44f0
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0xd573f
leaq -0x88(%rbp), %rax
movq %rax, -0xa0(%rbp)
jmp 0xd574f
leaq 0x1c960(%rip), %rax     # 0xf20a6
movq %rax, -0xa0(%rbp)
jmp 0xd574f
movq -0xa0(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x2227d(%rip), %rsi     # 0xf79e3
leaq 0x2231f(%rip), %rdx     # 0xf7a8c
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
jmp 0xd5d0f
cmpl $0x0, -0x30(%rbp)
je 0xd57bf
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq -0x78(%rbp), %rax
movl %eax, %ecx
movq -0x68(%rbp), %rax
movl %eax, %r8d
movq -0x48(%rbp), %r9
movq -0x50(%rbp), %rax
movq %rax, (%rsp)
callq 0xd5fd0
cmpl $0x0, %eax
je 0xd57b8
jmp 0xd5d7f
movl $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
callq 0x44f0
movq (%rax), %rax
movslq -0x2c(%rbp), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
jne 0xd57ef
movl -0x2c(%rbp), %edi
leaq -0x28(%rbp), %rsi
callq 0xd61b0
jmp 0xd5800
cmpq $0x0, -0x28(%rbp)
ja 0xd57fc
cmpl $0xa, -0x2c(%rbp)
jne 0xd57fe
jmp 0xd5813
jmp 0xd5800
jmp 0xd5802
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, -0x2c(%rbp)
cmpl $0x0, %eax
jge 0xd57c7
leaq 0x1a75b(%rip), %rdi     # 0xeff75
xorl %eax, %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdx
callq 0xd6230
cmpl $0x0, -0x2c(%rbp)
jge 0xd5854
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x221a2(%rip), %rsi     # 0xf79e3
leaq 0x2226b(%rip), %rdx     # 0xf7ab3
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
cmpl $0xa, -0x2c(%rbp)
je 0xd5894
jmp 0xd585c
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, %ecx
movl %ecx, -0x2c(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xa1(%rbp)
jl 0xd5884
cmpl $0xa, -0x2c(%rbp)
setne %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0xd5890
jmp 0xd5892
jmp 0xd585c
jmp 0xd5894
movl $0x2, -0x84(%rbp)
movq $0x0, -0x78(%rbp)
movq $0x0, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rdi
callq 0x11df0
movq %rax, -0x48(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5d0f
movq -0x40(%rbp), %rax
cmpl $0x1, 0x20(%rax)
jne 0xd591d
cmpl $0xa, -0x2c(%rbp)
jne 0xd5901
movl $0x0, -0x84(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5595
cmpl $0x3e, -0x2c(%rbp)
jne 0xd5916
movl $0x1, -0x84(%rbp)
jmp 0xd5595
jmp 0xd5918
jmp 0xd59c9
movq -0x40(%rbp), %rax
cmpl $0x2, 0x20(%rax)
jne 0xd59c7
cmpl $0x2b, -0x2c(%rbp)
jne 0xd5996
movl $0x4, -0x84(%rbp)
cmpl $0xa, -0x2c(%rbp)
je 0xd597b
jmp 0xd5943
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, %ecx
movl %ecx, -0x2c(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xa2(%rbp)
jl 0xd596b
cmpl $0xa, -0x2c(%rbp)
setne %al
movb %al, -0xa2(%rbp)
movb -0xa2(%rbp), %al
testb $0x1, %al
jne 0xd5977
jmp 0xd5979
jmp 0xd5943
jmp 0xd597b
movq -0x10(%rbp), %rdi
callq 0x11df0
movq %rax, -0x50(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5595
cmpl $0xa, -0x2c(%rbp)
jne 0xd59c3
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x22033(%rip), %rsi     # 0xf79e3
leaq 0x2212b(%rip), %rdx     # 0xf7ae2
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
jmp 0xd59c5
jmp 0xd59c7
jmp 0xd59c9
movq $0x0, -0x70(%rbp)
movq $0x0, -0x80(%rbp)
movq -0x40(%rbp), %rax
cmpl $0x1, 0x20(%rax)
jne 0xd59ea
movl $0x1, -0x30(%rbp)
jmp 0xd59ec
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movl -0x2c(%rbp), %eax
movzbl %al, %edi
callq 0xd62e0
cmpl $0x0, %eax
je 0xd5a14
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0xd5a16
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, %ecx
movl %ecx, -0x2c(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xa3(%rbp)
jl 0xd5a3e
cmpl $0xa, -0x2c(%rbp)
setne %al
movb %al, -0xa3(%rbp)
movb -0xa3(%rbp), %al
testb $0x1, %al
jne 0xd59ec
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x70(%rbp), %rax
addq -0x58(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x78(%rbp)
jne 0xd5a79
movq -0x80(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0xd5ada
movq -0x78(%rbp), %rax
cmpq -0x80(%rbp), %rax
jbe 0xd5aa5
movq -0x40(%rbp), %rax
cmpl $0x1, 0x20(%rax)
jne 0xd5a99
movl $0x0, -0x84(%rbp)
jmp 0xd5aa3
movl $0x3, -0x84(%rbp)
jmp 0xd5ad8
movq -0x78(%rbp), %rax
cmpq -0x80(%rbp), %rax
jae 0xd5ad6
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x21f20(%rip), %rsi     # 0xf79e3
leaq 0x22056(%rip), %rdx     # 0xf7b20
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
jmp 0xd5ad8
jmp 0xd5ada
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5d0f
cmpl $0x2b, -0x2c(%rbp)
jne 0xd5b46
movl $0x4, -0x84(%rbp)
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, %ecx
movl %ecx, -0x2c(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xa4(%rbp)
jl 0xd5b20
cmpl $0xa, -0x2c(%rbp)
setne %al
movb %al, -0xa4(%rbp)
movb -0xa4(%rbp), %al
testb $0x1, %al
jne 0xd5b2c
jmp 0xd5b2e
jmp 0xd5af8
movq -0x10(%rbp), %rdi
callq 0x11df0
movq %rax, -0x50(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5b6c
movl -0x2c(%rbp), %ecx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x21e8a(%rip), %rsi     # 0xf79e3
leaq 0x21ff2(%rip), %rdx     # 0xf7b52
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
jmp 0xd5d0f
cmpl $0xa, -0x2c(%rbp)
jne 0xd5bbc
cmpl $0x0, -0x30(%rbp)
jne 0xd5ba4
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x21e52(%rip), %rsi     # 0xf79e3
leaq 0x21feb(%rip), %rdx     # 0xf7b83
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
movl $0x0, -0x84(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5595
cmpl $0x40, -0x2c(%rbp)
jne 0xd5bd7
cmpl $0x0, -0x30(%rbp)
je 0xd5bd7
movl $0x1, -0x84(%rbp)
jmp 0xd5595
jmp 0xd5bd9
movq $0x0, -0x70(%rbp)
movq $0x0, -0x80(%rbp)
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movl -0x2c(%rbp), %eax
movzbl %al, %edi
callq 0xd62e0
cmpl $0x0, %eax
je 0xd5c11
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0xd5c13
movq -0x10(%rbp), %rdi
callq 0xd5f60
movl %eax, %ecx
movl %ecx, -0x2c(%rbp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0xa5(%rbp)
jl 0xd5c3b
cmpl $0xa, -0x2c(%rbp)
setne %al
movb %al, -0xa5(%rbp)
movb -0xa5(%rbp), %al
testb $0x1, %al
jne 0xd5be9
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
movq -0x70(%rbp), %rax
addq -0x60(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x78(%rbp), %rax
cmpq -0x80(%rbp), %rax
jae 0xd5c8e
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x21d68(%rip), %rsi     # 0xf79e3
leaq 0x21f4a(%rip), %rdx     # 0xf7bcc
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jne 0xd5ca1
movl $0x1, -0x30(%rbp)
jmp 0xd5d04
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jbe 0xd5cd2
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x21d24(%rip), %rsi     # 0xf79e3
leaq 0x21f36(%rip), %rdx     # 0xf7bfc
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
movq -0x78(%rbp), %rax
cmpq -0x80(%rbp), %rax
jbe 0xd5d00
movq -0x18(%rbp), %rcx
movl -0x34(%rbp), %r8d
movl $0x1, %edi
leaq 0x21cf3(%rip), %rsi     # 0xf79e3
leaq 0x21f3c(%rip), %rdx     # 0xf7c33
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
jmp 0xd5d02
jmp 0xd5d04
jmp 0xd5d06
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xd5595
cmpl $0x0, -0x30(%rbp)
je 0xd5d4d
movq -0x40(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq -0x78(%rbp), %rax
movl %eax, %ecx
movq -0x68(%rbp), %rax
movl %eax, %r8d
movq -0x48(%rbp), %r9
movq -0x50(%rbp), %rax
movq %rax, (%rsp)
callq 0xd5fd0
cmpl $0x0, %eax
je 0xd5d4b
jmp 0xd5d7f
jmp 0xd5d6c
movl -0x34(%rbp), %ecx
movl $0x1, %edi
leaq 0x21c87(%rip), %rsi     # 0xf79e3
leaq 0x21f01(%rip), %rdx     # 0xf7c64
movb $0x0, %al
callq 0x1b030
jmp 0xd5d7f
movq -0x18(%rbp), %rdi
callq 0x45a0
movq -0x40(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xd5d99
movq -0x18(%rbp), %rdi
callq 0x45a0
movq -0x40(%rbp), %rdi
callq 0xd38a0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)