// File: /workspace/github_c_makefile_star2_O3/madler[P]pigz/pigz.c
// Function: show_info
local void show_info(int method, unsigned long check, length_t len, int cont) {
    size_t max;             // maximum name length for current verbosity
    size_t n;               // name length without suffix
    time_t now;             // for getting current year
    char mod[26];           // modification time in text
    char tag[NAMEMAX1+1];   // header or file name, possibly truncated

    // create abbreviated name from header file name or actual file name
    max = g.verbosity > 1 ? NAMEMAX2 : NAMEMAX1;
    memset(tag, 0, max + 1);
    if (cont)
        strncpy(tag, "<...>", max + 1);
    else if (g.hname == NULL) {
        n = strlen(g.inf) - compressed_suffix(g.inf);
        memcpy(tag, g.inf, n > max + 1 ? max + 1 : n);
        if (strcmp(g.inf + n, ".tgz") == 0 && n < max + 1)
            strncpy(tag + n, ".tar", max + 1 - n);
    }
    else
        strncpy(tag, g.hname, max + 1);
    if (tag[max])
        strcpy(tag + max - 3, "...");

    // convert time stamp to text
    if (g.stamp && !cont) {
        strcpy(mod, ctime(&g.stamp));
        now = time(NULL);
        if (strcmp(mod + 20, ctime(&now) + 20) != 0)
            strcpy(mod + 11, mod + 19);
    }
    else
        strcpy(mod + 4, "------ -----");
    mod[16] = 0;

    // if first time, print header
    if (g.first) {
        if (g.verbosity > 1)
            fputs("method    check    timestamp    ", stdout);
        if (g.verbosity > 0)
            puts("compressed   original reduced  name");
        g.first = 0;
    }

    // print information
    if (g.verbosity > 1) {
        if (g.form == 3 && !g.decode)
            printf("zip%3d  --------  %s  ", method, mod + 4);
        else if (g.form > 1)
            printf("zip%3d  %08lx  %s  ", method, check, mod + 4);
        else if (g.form == 1)
            printf("zlib%2d  %08lx  %s  ", method, check, mod + 4);
        else if (method == 257)
            printf("lzw     --------  %s  ", mod + 4);
        else
            printf("gzip%2d  %08lx  %s  ", method, check, mod + 4);
    }
    if (g.verbosity > 0) {
        // compute reduction percent -- allow divide-by-zero, displays as -inf%
        double red = 100. * (len - (double)g.in_tot) / len;
        if ((g.form == 3 && !g.decode) ||
            (method == 8 && g.in_tot > (len + (len >> 10) + 12)) ||
            (method == 257 && g.in_tot > len + (len >> 1) + 3))
#if __STDC_VERSION__-0 >= 199901L || __GNUC__-0 >= 3
            printf("%10ju %10ju?  unk    %s\n", g.in_tot, len, tag);
        else
            printf("%10ju %10ju %6.1f%%  %s\n", g.in_tot, len, red, tag);
#else
            printf("%10lu %10lu?  unk    %s\n", g.in_tot, len, tag);
        else
            printf("%10lu %10lu %6.1f%%  %s\n", g.in_tot, len, red, tag);
#endif
    }
    if (g.verbosity > 1 && g.hcomm != NULL)
        puts(g.hcomm);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movl %ecx, %r15d
movq %rdx, %r14
movq %rsi, 0x8(%rsp)
movl %edi, 0x4(%rsp)
movl 0x13b21(%rip), %ebx     # 0x1d380
xorl %ebp, %ebp
cmpl $0x2, %ebx
setl %bpl
shll $0x5, %ebp
leaq 0x11(%rbp), %r12
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x3260
testl %r15d, %r15d
je 0x988c
leaq 0xcedc(%rip), %rsi      # 0x16766
jmp 0x989c
movq 0x13b8d(%rip), %rsi     # 0x1d420
testq %rsi, %rsi
je 0x99fe
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
callq 0x3090
xorl %eax, %eax
cmpl $0x2, %ebx
setl %al
shll $0x5, %eax
cmpb $0x0, 0x50(%rsp,%rax)
je 0x98ce
xorl %eax, %eax
cmpl $0x2, %ebx
setl %al
shll $0x5, %eax
movl $0x2e2e2e, 0x4d(%rsp,%rax) # imm = 0x2E2E2E
testl %r15d, %r15d
jne 0x993d
cmpq $0x0, 0x13b3d(%rip)     # 0x1d418
je 0x993d
leaq 0x13b34(%rip), %rdi     # 0x1d418
callq 0x3190
leaq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x30b0
xorl %edi, %edi
callq 0x3390
leaq 0x80(%rsp), %rdi
movq %rax, (%rdi)
movq %r14, %rbx
leaq 0x24(%rsp), %r14
callq 0x3190
leaq 0x14(%rax), %rsi
movq %r14, %rdi
movq %rbx, %r14
callq 0x3330
testl %eax, %eax
movl 0x4(%rsp), %ebx
je 0x9958
leaq 0x1b(%rsp), %rdi
leaq 0x23(%rsp), %rsi
callq 0x30b0
jmp 0x9958
movabsq $0x2d202d2d2d2d2d2d, %rax # imm = 0x2D202D2D2D2D2D2D
movq %rax, 0x14(%rsp)
movl $0x2d2d2d2d, 0x1c(%rsp) # imm = 0x2D2D2D2D
movl 0x4(%rsp), %ebx
movb $0x0, 0x20(%rsp)
cmpl $0x0, 0x13a70(%rip)     # 0x1d3d4
movl 0x13a16(%rip), %eax     # 0x1d380
je 0x99ad
cmpl $0x2, %eax
jl 0x998d
movq 0x13658(%rip), %rax     # 0x1cfd0
movq (%rax), %rsi
leaq 0xcdf7(%rip), %rdi      # 0x16779
callq 0x3230
movl 0x139f3(%rip), %eax     # 0x1d380
testl %eax, %eax
jle 0x99a3
leaq 0xce02(%rip), %rdi      # 0x1679a
callq 0x30d0
movl 0x139dd(%rip), %eax     # 0x1d380
movl $0x0, 0x13a27(%rip)     # 0x1d3d4
cmpl $0x2, %eax
jl 0x9ac0
movl 0x139dc(%rip), %eax     # 0x1d398
cmpl $0x3, %eax
jne 0x99e4
cmpl $0x0, 0x13a10(%rip)     # 0x1d3d8
jne 0x99e4
leaq 0x14(%rsp), %rdx
leaq 0xcde8(%rip), %rdi      # 0x167be
movl %ebx, %esi
xorl %eax, %eax
callq 0x31d0
jmp 0x9aba
leaq 0x14(%rsp), %rcx
cmpl $0x2, %eax
jl 0x9a7c
leaq 0xcddc(%rip), %rdi      # 0x167d5
jmp 0x9aac
orq $0x10, %rbp
movq %r14, 0x38(%rsp)
movq 0x1395a(%rip), %r14     # 0x1d368
movq %r14, %rdi
callq 0x31a0
movq %rax, %r13
movq %r14, %rdi
callq 0x6893
subq %rax, %r13
cmpq %r12, %r13
movq %r12, %rdx
cmovbq %r13, %rdx
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0x3370
addq %r13, %r14
leaq 0xc7ca(%rip), %rsi      # 0x1620f
movq %r14, %rdi
movq 0x38(%rsp), %r14
callq 0x3330
testl %eax, %eax
setne %al
cmpq %rbp, %r13
seta %cl
orb %al, %cl
jne 0x98a9
leaq (%rsp,%r13), %rdi
addq $0x40, %rdi
subq %r13, %r12
leaq 0xc9c8(%rip), %rsi      # 0x1643f
jmp 0x98a1
cmpl $0x1, %eax
jne 0x9a8a
leaq 0xcd61(%rip), %rdi      # 0x167e9
jmp 0x9aac
cmpl $0x101, %ebx            # imm = 0x101
jne 0x9aa5
leaq 0xcd65(%rip), %rdi      # 0x167fe
movq %rcx, %rsi
xorl %eax, %eax
callq 0x31d0
jmp 0x9aba
leaq 0xcd69(%rip), %rdi      # 0x16815
movl %ebx, %esi
movq 0x8(%rsp), %rdx
xorl %eax, %eax
callq 0x31d0
movl 0x138c0(%rip), %eax     # 0x1d380
testl %eax, %eax
jle 0x9b94
movq 0x1b9c1(%rip), %rsi     # 0x25490
cmpl $0x3, 0x138c2(%rip)     # 0x1d398
jne 0x9ae1
cmpl $0x0, 0x138f9(%rip)     # 0x1d3d8
je 0x9b10
cmpl $0x101, %ebx            # imm = 0x101
je 0x9afe
cmpl $0x8, %ebx
jne 0x9b28
movq %r14, %rax
shrq $0xa, %rax
addq %r14, %rax
addq $0xc, %rax
jmp 0x9b0b
movq %r14, %rax
shrq %rax
addq %r14, %rax
addq $0x3, %rax
cmpq %rax, %rsi
jbe 0x9b28
leaq 0xcd13(%rip), %rdi      # 0x1682a
leaq 0x40(%rsp), %rcx
movq %r14, %rdx
xorl %eax, %eax
callq 0x31d0
jmp 0x9b94
movq %r14, %xmm0
movq 0xb4eb(%rip), %xmm1     # 0x15020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xb4ef(%rip), %xmm2     # 0x15030
subpd %xmm2, %xmm0
movapd %xmm0, %xmm3
unpckhpd %xmm0, %xmm3            # xmm3 = xmm3[1],xmm0[1]
addsd %xmm0, %xmm3
movq %rsi, %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
subpd %xmm2, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm3, %xmm0
subsd %xmm1, %xmm0
mulsd 0xb74e(%rip), %xmm0     # 0x152c8
divsd %xmm3, %xmm0
leaq 0xccbe(%rip), %rdi      # 0x16843
leaq 0x40(%rsp), %rcx
movq %r14, %rdx
movb $0x1, %al
callq 0x31d0
cmpl $0x2, 0x137e5(%rip)     # 0x1d380
setge %al
movq 0x13883(%rip), %rdi     # 0x1d428
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x9bb7
callq 0x30d0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq