// File: /workspace/github_c_makefile_star2_O0/kyz[P]amostools/dumpamos.c
// Function: decode_pacpic
void decode_pacpic(char *fname, uint8_t *src, size_t len) {
    uint8_t *end = &src[len], *s, *pal, *picdata, *rledata,
        *points, *ilbm;
    uint32_t i, j, k, l, bplcon0, width, ilbm_width, lumps,
        lump_height, ilbm_height, bitplanes, ilbm_len, ilbm_line,
        rledata_offset, points_offset;

    /* check if screen header present */
    if (len < 24) return;
    i = amos_leek(&src[20]);
    if (len > 134 && (i == 0x12031990 || i == 0x00031990 || i == 0x12030090)) {
        bplcon0 = amos_deek(&src[20 + 20]); /* screen mode */
        pal = &src[20 + 26]; /* palette */
        s = &src[110]; /* picture header */
    }
    else if (len > 44 && (i == 0x06071963 || i == 0x06070063)) {
        bplcon0 = amos_deek(&src[20 + 14]) << 12 | 0x200; /* guess BPLCON0 */
        pal = NULL; /* no palette */
        s = &src[20]; /* picture header */
    }
    else {
        fprintf(stderr, "%s: unknown Pic.Pac. header $%08X\n", fname, i);
        return;
    }

    width = amos_deek(&s[8]);
    lumps            = amos_deek(&s[10]);
    lump_height      = amos_deek(&s[12]);
    bitplanes        = amos_deek(&s[14]);
    rledata_offset   = amos_leek(&s[16]);
    points_offset    = amos_leek(&s[20]);

    if (rledata_offset > (len - (s - src)) ||
        points_offset > (len - (s - src)))
    {
        return;
    }

    /* IFF ILBM requires an even width */
    ilbm_width = width;
    if (ilbm_width & 1) ilbm_width++;

    /* number of bytes jump to get to the next line in IFF */
    ilbm_line = ilbm_width * bitplanes;
    ilbm_height = lumps * lump_height;

    ilbm_len = IFF_ILBM_HEADER_LEN + ilbm_line * ilbm_height;
    if ((ilbm = malloc(ilbm_len))) {
        uint8_t *plane, rbit, rrbit, picbyte, rlebyte;
        char *outname;

        memcpy(ilbm, iff_ilbm_header, IFF_ILBM_HEADER_LEN);
        amos_loke(&ilbm[0x04], ilbm_len - 8);
        amos_doke(&ilbm[0x14], ilbm_width * 8);  /* width */
        amos_doke(&ilbm[0x16], ilbm_height);     /* height */
        ilbm[0x1c] = bitplanes & 0xFF;           /* number of bitplanes */
        amos_doke(&ilbm[0x24], ilbm_width * 8);  /* page width */
        amos_doke(&ilbm[0x26], ilbm_height);     /* page height */
        amos_loke(&ilbm[0x30], bplcon0);         /* viewmode */
        memcpy(&ilbm[0xA8], "BODY", 4);
        amos_loke(&ilbm[0xAC], ilbm_len - IFF_ILBM_HEADER_LEN); /* body length */
        /* convert palette from 0x0RGB to 0xRR 0xGG 0xBB */
        for (int i = 0; i < 32; i++) {
            uint32_t c = pal ? amos_deek(&pal[i*2]) : (i & 0x0F) * 0x111;
            ilbm[0x48 + (i * 3) + 0] = ((c >> 8) & 0xF) * 0x11;
            ilbm[0x48 + (i * 3) + 1] = ((c >> 4) & 0xF) * 0x11;
            ilbm[0x48 + (i * 3) + 2] = ((c     ) & 0xF) * 0x11;
        }

        /* decrunch RLE streams */
        rbit = 7;
        rrbit = 6;
        picdata = &s[24];
        rledata = &s[rledata_offset];
        points  = &s[points_offset];
        picbyte = *picdata++;
        rlebyte = *rledata++;
        if (*points & 0x80) rlebyte = *rledata++;
        plane = &ilbm[IFF_ILBM_HEADER_LEN];
        for (i = 0; i < bitplanes; i++) {
            uint8_t *lump_start = plane;
            for (j = 0; j < lumps; j++) {
                uint8_t *lump_offset = lump_start;
                for (k = 0; k < width; k++) {
                    uint8_t *d = lump_offset;
                    for (l = 0; l < lump_height; l++) {
                        /* if the current RLE bit is set to 1, read in a new picture byte */
                        if (rlebyte & (1 << rbit--)) {
                            picbyte = *picdata++;
                            if (picdata > end) {free(ilbm); return;}
                        }

                        /* write picture byte and move down by one line in the picture */
                        *d = picbyte; d += ilbm_line;

                        /* if we've run out of RLE bits, check the POINTS bits to see if
                         * a new RLE byte is needed */
                        if (rbit > 7) {
                            rbit = 7;
                            if (*points & (1 << rrbit--)) {
                                rlebyte = *rledata++;
                                if (rledata > end) {free(ilbm); return;}

                            }
                            if (rrbit > 7) {
                                rrbit = 7, points++;
                                if (points > end) {free(ilbm); return;}
                            }
                        }
                    }
                    lump_offset++;
                }
                lump_start += ilbm_line * lump_height;
            }
            plane += ilbm_width; /* ILBM interleaved bitplanes */
        }

        /* save IFF ILBM */
        if ((outname = output_fname(fname, "pic%02X.iff", bank_number(src, len)))) {
            printf("%s: unpacking to ILBM image %s (%d bytes)\n", fname, outname, ilbm_len);
            write_file(outname, ilbm, ilbm_len);
            free(outname);
        }
        else {
            perror(fname);
        }


        free(ilbm);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
addq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $0x18, -0x18(%rbp)
jae 0x1f1f
jmp 0x27c5
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
shll $0x18, %eax
movq -0x10(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
shll $0x10, %ecx
orl %ecx, %eax
movq -0x10(%rbp), %rcx
movzbl 0x16(%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movq -0x10(%rbp), %rcx
movzbl 0x17(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x54(%rbp)
cmpq $0x86, -0x18(%rbp)
jbe 0x1fa8
cmpl $0x12031990, -0x54(%rbp) # imm = 0x12031990
je 0x1f76
cmpl $0x31990, -0x54(%rbp)   # imm = 0x31990
je 0x1f76
cmpl $0x12030090, -0x54(%rbp) # imm = 0x12030090
jne 0x1fa8
movq -0x10(%rbp), %rax
movzbl 0x28(%rax), %eax
shll $0x8, %eax
movq -0x10(%rbp), %rcx
movzbl 0x29(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x64(%rbp)
movq -0x10(%rbp), %rax
addq $0x2e, %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
addq $0x6e, %rax
movq %rax, -0x28(%rbp)
jmp 0x201d
cmpq $0x2c, -0x18(%rbp)
jbe 0x1ff7
cmpl $0x6071963, -0x54(%rbp) # imm = 0x6071963
je 0x1fc1
cmpl $0x6070063, -0x54(%rbp) # imm = 0x6070063
jne 0x1ff7
movq -0x10(%rbp), %rax
movzbl 0x22(%rax), %eax
shll $0x8, %eax
movq -0x10(%rbp), %rcx
movzbl 0x23(%rcx), %ecx
orl %ecx, %eax
shll $0xc, %eax
orl $0x200, %eax            # imm = 0x200
movl %eax, -0x64(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
addq $0x14, %rax
movq %rax, -0x28(%rbp)
jmp 0x201b
movq 0x3ff2(%rip), %rax      # 0x5ff0
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
movl -0x54(%rbp), %ecx
leaq 0x2056(%rip), %rsi      # 0x4065
movb $0x0, %al
callq 0x10e0
jmp 0x27c5
jmp 0x201d
movq -0x28(%rbp), %rax
movzbl 0x8(%rax), %eax
shll $0x8, %eax
movq -0x28(%rbp), %rcx
movzbl 0x9(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x68(%rbp)
movq -0x28(%rbp), %rax
movzbl 0xa(%rax), %eax
shll $0x8, %eax
movq -0x28(%rbp), %rcx
movzbl 0xb(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x70(%rbp)
movq -0x28(%rbp), %rax
movzbl 0xc(%rax), %eax
shll $0x8, %eax
movq -0x28(%rbp), %rcx
movzbl 0xd(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x74(%rbp)
movq -0x28(%rbp), %rax
movzbl 0xe(%rax), %eax
shll $0x8, %eax
movq -0x28(%rbp), %rcx
movzbl 0xf(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x7c(%rbp)
movq -0x28(%rbp), %rax
movzbl 0x10(%rax), %eax
shll $0x18, %eax
movq -0x28(%rbp), %rcx
movzbl 0x11(%rcx), %ecx
shll $0x10, %ecx
orl %ecx, %eax
movq -0x28(%rbp), %rcx
movzbl 0x12(%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movq -0x28(%rbp), %rcx
movzbl 0x13(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x88(%rbp)
movq -0x28(%rbp), %rax
movzbl 0x14(%rax), %eax
shll $0x18, %eax
movq -0x28(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
shll $0x10, %ecx
orl %ecx, %eax
movq -0x28(%rbp), %rcx
movzbl 0x16(%rcx), %ecx
shll $0x8, %ecx
orl %ecx, %eax
movq -0x28(%rbp), %rcx
movzbl 0x17(%rcx), %ecx
orl %ecx, %eax
movl %eax, -0x8c(%rbp)
movl -0x88(%rbp), %eax
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rdx
movq -0x10(%rbp), %rsi
subq %rsi, %rdx
subq %rdx, %rcx
cmpq %rcx, %rax
ja 0x2121
movl -0x8c(%rbp), %eax
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rdx
movq -0x10(%rbp), %rsi
subq %rsi, %rdx
subq %rdx, %rcx
cmpq %rcx, %rax
jbe 0x2126
jmp 0x27c5
movl -0x68(%rbp), %eax
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x2140
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
imull -0x7c(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x70(%rbp), %eax
imull -0x74(%rbp), %eax
movl %eax, -0x78(%rbp)
movl -0x84(%rbp), %eax
imull -0x78(%rbp), %eax
addl $0xb0, %eax
movl %eax, -0x80(%rbp)
movl -0x80(%rbp), %eax
movl %eax, %edi
callq 0x1110
movq %rax, -0x50(%rbp)
cmpq $0x0, %rax
je 0x27c5
movq -0x50(%rbp), %rdi
leaq 0x21d4(%rip), %rsi      # 0x4360
movl $0xb0, %edx
callq 0x1100
movl -0x80(%rbp), %eax
subl $0x8, %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x4(%rax)
movl -0x80(%rbp), %eax
subl $0x8, %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x5(%rax)
movl -0x80(%rbp), %eax
subl $0x8, %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x6(%rax)
movl -0x80(%rbp), %eax
subl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x7(%rax)
jmp 0x21f1
movl -0x6c(%rbp), %eax
shll $0x3, %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x14(%rax)
movl -0x6c(%rbp), %eax
shll $0x3, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x15(%rax)
jmp 0x221e
movl -0x78(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x16(%rax)
movl -0x78(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x17(%rax)
movl -0x7c(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x1c(%rax)
movl -0x6c(%rbp), %eax
shll $0x3, %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x24(%rax)
movl -0x6c(%rbp), %eax
shll $0x3, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x25(%rax)
jmp 0x2281
movl -0x78(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x26(%rax)
movl -0x78(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x27(%rax)
jmp 0x22a8
movl -0x64(%rbp), %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x30(%rax)
movl -0x64(%rbp), %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x31(%rax)
movl -0x64(%rbp), %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x32(%rax)
movl -0x64(%rbp), %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0x33(%rax)
movq -0x50(%rbp), %rax
movl 0x1d24(%rip), %ecx      # 0x4023
movl %ecx, 0xa8(%rax)
movl -0x80(%rbp), %eax
subl $0xb0, %eax
shrl $0x18, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0xac(%rax)
movl -0x80(%rbp), %eax
subl $0xb0, %eax
shrl $0x10, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0xad(%rax)
movl -0x80(%rbp), %eax
subl $0xb0, %eax
shrl $0x8, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0xae(%rax)
movl -0x80(%rbp), %eax
subl $0xb0, %eax
andl $0xff, %eax
movb %al, %cl
movq -0x50(%rbp), %rax
movb %cl, 0xaf(%rax)
movl $0x0, -0xac(%rbp)
cmpl $0x20, -0xac(%rbp)
jge 0x246e
cmpq $0x0, -0x30(%rbp)
je 0x23c4
movq -0x30(%rbp), %rax
movl -0xac(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
shll $0x8, %eax
movq -0x30(%rbp), %rcx
movl -0xac(%rbp), %edx
shll %edx
movslq %edx, %rdx
movzbl 0x1(%rcx,%rdx), %ecx
orl %ecx, %eax
movl %eax, -0xcc(%rbp)
jmp 0x23d9
movl -0xac(%rbp), %eax
andl $0xf, %eax
imull $0x111, %eax, %eax      # imm = 0x111
movl %eax, -0xcc(%rbp)
movl -0xcc(%rbp), %eax
movl %eax, -0xb0(%rbp)
movl -0xb0(%rbp), %eax
shrl $0x8, %eax
andl $0xf, %eax
imull $0x11, %eax, %eax
movb %al, %dl
movq -0x50(%rbp), %rax
imull $0x3, -0xac(%rbp), %ecx
addl $0x48, %ecx
addl $0x0, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xb0(%rbp), %eax
shrl $0x4, %eax
andl $0xf, %eax
imull $0x11, %eax, %eax
movb %al, %dl
movq -0x50(%rbp), %rax
imull $0x3, -0xac(%rbp), %ecx
addl $0x48, %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xb0(%rbp), %eax
andl $0xf, %eax
imull $0x11, %eax, %eax
movb %al, %dl
movq -0x50(%rbp), %rax
imull $0x3, -0xac(%rbp), %ecx
addl $0x48, %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movb %dl, (%rax,%rcx)
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x237c
movb $0x7, -0x99(%rbp)
movb $0x6, -0x9a(%rbp)
movq -0x28(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movl -0x88(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rax
movl -0x8c(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movb %al, -0x9b(%rbp)
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movb (%rax), %al
movb %al, -0x9c(%rbp)
movq -0x48(%rbp), %rax
movzbl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x2500
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movb (%rax), %al
movb %al, -0x9c(%rbp)
movq -0x50(%rbp), %rax
addq $0xb0, %rax
movq %rax, -0x98(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jae 0x2738
movq -0x98(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl $0x0, -0x58(%rbp)
movl -0x58(%rbp), %eax
cmpl -0x70(%rbp), %eax
jae 0x2714
movq -0xb8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
cmpl -0x68(%rbp), %eax
jae 0x26e9
movq -0xc0(%rbp), %rax
movq %rax, -0xc8(%rbp)
movl $0x0, -0x60(%rbp)
movl -0x60(%rbp), %eax
cmpl -0x74(%rbp), %eax
jae 0x26c9
movzbl -0x9c(%rbp), %eax
movb -0x99(%rbp), %cl
movb %cl, %dl
addb $-0x1, %dl
movb %dl, -0x99(%rbp)
movzbl %cl, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x25e3
movq -0x38(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x38(%rbp)
movb (%rax), %al
movb %al, -0x9b(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x20(%rbp), %rax
jbe 0x25e1
movq -0x50(%rbp), %rdi
callq 0x1030
jmp 0x27c5
jmp 0x25e3
movb -0x9b(%rbp), %cl
movq -0xc8(%rbp), %rax
movb %cl, (%rax)
movl -0x84(%rbp), %ecx
movq -0xc8(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movzbl -0x99(%rbp), %eax
cmpl $0x7, %eax
jle 0x26b9
movb $0x7, -0x99(%rbp)
movq -0x48(%rbp), %rax
movzbl (%rax), %eax
movb -0x9a(%rbp), %cl
movb %cl, %dl
addb $-0x1, %dl
movb %dl, -0x9a(%rbp)
movzbl %cl, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x267e
movq -0x40(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x40(%rbp)
movb (%rax), %al
movb %al, -0x9c(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x20(%rbp), %rax
jbe 0x267c
movq -0x50(%rbp), %rdi
callq 0x1030
jmp 0x27c5
jmp 0x267e
movzbl -0x9a(%rbp), %eax
cmpl $0x7, %eax
jle 0x26b7
movb $0x7, -0x9a(%rbp)
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
cmpq -0x20(%rbp), %rax
jbe 0x26b5
movq -0x50(%rbp), %rdi
callq 0x1030
jmp 0x27c5
jmp 0x26b7
jmp 0x26b9
jmp 0x26bb
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x257b
movq -0xc0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xc0(%rbp)
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x255a
movl -0x84(%rbp), %ecx
imull -0x74(%rbp), %ecx
movq -0xb8(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x2539
movl -0x6c(%rbp), %ecx
movq -0x98(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x98(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x2518
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1840
movq -0xd8(%rbp), %rdi
movl %eax, %edx
leaq 0x1928(%rip), %rsi      # 0x4088
movb $0x0, %al
callq 0x1420
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
je 0x27b3
movq -0x8(%rbp), %rsi
movq -0xa8(%rbp), %rdx
movl -0x80(%rbp), %ecx
leaq 0x190b(%rip), %rdi      # 0x4094
movb $0x0, %al
callq 0x10b0
movq -0xa8(%rbp), %rdi
movq -0x50(%rbp), %rsi
movl -0x80(%rbp), %eax
movl %eax, %edx
callq 0x13a0
movq -0xa8(%rbp), %rdi
callq 0x1030
jmp 0x27bc
movq -0x8(%rbp), %rdi
callq 0x1130
movq -0x50(%rbp), %rdi
callq 0x1030
addq $0xe0, %rsp
popq %rbp
retq
nop