// File: /workspace/github_c_makefile_star2_O2/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 0x12b44(%rip), %ebx     # 0x1c370
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 0x9859
leaq 0xbf17(%rip), %rsi      # 0x1576e
jmp 0x9869
movq 0x12bb0(%rip), %rsi     # 0x1c410
testq %rsi, %rsi
je 0x99c8
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 0x989b
xorl %eax, %eax
cmpl $0x2, %ebx
setl %al
shll $0x5, %eax
movl $0x2e2e2e, 0x4d(%rsp,%rax) # imm = 0x2E2E2E
testl %r15d, %r15d
jne 0x990a
cmpq $0x0, 0x12b60(%rip)     # 0x1c408
je 0x990a
leaq 0x12b57(%rip), %rdi     # 0x1c408
callq 0x3190
leaq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x30b0
xorl %edi, %edi
callq 0x3380
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 0x3320
testl %eax, %eax
movl 0x4(%rsp), %ebx
je 0x9925
leaq 0x1b(%rsp), %rdi
leaq 0x23(%rsp), %rsi
callq 0x30b0
jmp 0x9925
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, 0x12a93(%rip)     # 0x1c3c4
movl 0x12a39(%rip), %eax     # 0x1c370
je 0x9977
cmpl $0x2, %eax
jl 0x995a
movq 0x1268b(%rip), %rax     # 0x1bfd0
movq (%rax), %rsi
leaq 0xbe32(%rip), %rdi      # 0x15781
callq 0x3230
movl 0x12a16(%rip), %eax     # 0x1c370
testl %eax, %eax
jle 0x9970
leaq 0xbe3d(%rip), %rdi      # 0x157a2
callq 0x30d0
movl 0x12a00(%rip), %eax     # 0x1c370
andl $0x0, 0x12a4d(%rip)     # 0x1c3c4
cmpl $0x2, %eax
jl 0x9a8a
movl 0x12a02(%rip), %eax     # 0x1c388
cmpl $0x3, %eax
jne 0x99ae
cmpl $0x0, 0x12a36(%rip)     # 0x1c3c8
jne 0x99ae
leaq 0x14(%rsp), %rdx
leaq 0xbe26(%rip), %rdi      # 0x157c6
movl %ebx, %esi
xorl %eax, %eax
callq 0x31d0
jmp 0x9a84
leaq 0x14(%rsp), %rcx
cmpl $0x2, %eax
jl 0x9a46
leaq 0xbe1a(%rip), %rdi      # 0x157dd
jmp 0x9a76
orq $0x10, %rbp
movq %r14, 0x38(%rsp)
movq 0x12980(%rip), %r14     # 0x1c358
movq %r14, %rdi
callq 0x31a0
movq %rax, %r13
movq %r14, %rdi
callq 0x5f11
subq %rax, %r13
cmpq %r12, %r13
movq %r12, %rdx
cmovbq %r13, %rdx
leaq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0x3360
addq %r13, %r14
leaq 0xb800(%rip), %rsi      # 0x1520f
movq %r14, %rdi
movq 0x38(%rsp), %r14
callq 0x3320
testl %eax, %eax
setne %al
cmpq %rbp, %r13
seta %cl
orb %al, %cl
jne 0x9876
leaq (%rsp,%r13), %rdi
addq $0x40, %rdi
subq %r13, %r12
leaq 0xba06(%rip), %rsi      # 0x15447
jmp 0x986e
cmpl $0x1, %eax
jne 0x9a54
leaq 0xbd9f(%rip), %rdi      # 0x157f1
jmp 0x9a76
cmpl $0x101, %ebx            # imm = 0x101
jne 0x9a6f
leaq 0xbda3(%rip), %rdi      # 0x15806
movq %rcx, %rsi
xorl %eax, %eax
callq 0x31d0
jmp 0x9a84
leaq 0xbda7(%rip), %rdi      # 0x1581d
movl %ebx, %esi
movq 0x8(%rsp), %rdx
xorl %eax, %eax
callq 0x31d0
movl 0x128e6(%rip), %eax     # 0x1c370
testl %eax, %eax
jle 0x9b5e
movq 0x1a9e7(%rip), %rsi     # 0x24480
cmpl $0x3, 0x128e8(%rip)     # 0x1c388
jne 0x9aab
cmpl $0x0, 0x1291f(%rip)     # 0x1c3c8
je 0x9ada
cmpl $0x101, %ebx            # imm = 0x101
je 0x9ac8
cmpl $0x8, %ebx
jne 0x9af2
movq %r14, %rax
shrq $0xa, %rax
addq %r14, %rax
addq $0xc, %rax
jmp 0x9ad5
movq %r14, %rax
shrq %rax
addq %r14, %rax
addq $0x3, %rax
cmpq %rax, %rsi
jbe 0x9af2
leaq 0xbd51(%rip), %rdi      # 0x15832
leaq 0x40(%rsp), %rcx
movq %r14, %rdx
xorl %eax, %eax
callq 0x31d0
jmp 0x9b5e
movq %r14, %xmm0
movq 0xa521(%rip), %xmm1     # 0x14020
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xa525(%rip), %xmm2     # 0x14030
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 0xa784(%rip), %xmm0     # 0x142c8
divsd %xmm3, %xmm0
leaq 0xbcfc(%rip), %rdi      # 0x1584b
leaq 0x40(%rsp), %rcx
movq %r14, %rdx
movb $0x1, %al
callq 0x31d0
cmpl $0x2, 0x1280b(%rip)     # 0x1c370
setge %al
movq 0x128a9(%rip), %rdi     # 0x1c418
testq %rdi, %rdi
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x9b81
callq 0x30d0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq