// File: /workspace/github_c_makefile_star2_O3/madler[P]pigz/pigz.c
// Function: read_extra
local int read_extra(unsigned len, int save) {
    unsigned id, size, tmp2;
    unsigned long tmp4;

    // process extra blocks
    while (len >= 4) {
        id = GET2();
        size = GET2();
        if (g.in_eof)
            return -1;
        len -= 4;
        if (size > len)
            break;
        len -= size;
        if (id == 0x0001) {
            // Zip64 Extended Information Extra Field
            g.zip64 = 1;
            if (g.zip_ulen == LOW32 && size >= 8) {
                g.zip_ulen = GET4();
                SKIP(4);
                size -= 8;
            }
            if (g.zip_clen == LOW32 && size >= 8) {
                g.zip_clen = GET4();
                SKIP(4);
                size -= 8;
            }
        }
        if (save) {
            if ((id == 0x000d || id == 0x5855) && size >= 8) {
                // PKWare Unix or Info-ZIP Type 1 Unix block
                SKIP(4);
                g.stamp = tolong(GET4());
                size -= 8;
            }
            if (id == 0x5455 && size >= 5) {
                // Extended Timestamp block
                size--;
                if (GET() & 1) {
                    g.stamp = tolong(GET4());
                    size -= 4;
                }
            }
        }
        SKIP(size);
    }
    SKIP(len);
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edi, %ebp
cmpl $0x4, %edi
jb 0xbea0
movl %esi, %r14d
movq 0x19f60(%rip), %rcx     # 0x25480
testq %rcx, %rcx
jne 0xb547
cmpl $0x0, 0x19f5c(%rip)     # 0x25488
jne 0xbed3
callq 0xb08c
movq 0x19f42(%rip), %rcx     # 0x25480
testq %rax, %rax
je 0xb759
decq %rcx
movq %rcx, 0x19f2f(%rip)     # 0x25480
movq 0x19f20(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19f15(%rip)     # 0x25478
movzbl (%rax), %r13d
testq %rcx, %rcx
jne 0xb58e
cmpl $0x0, 0x19f15(%rip)     # 0x25488
jne 0xbed3
callq 0xb08c
movq 0x19efb(%rip), %rcx     # 0x25480
testq %rax, %rax
je 0xb761
decq %rcx
movq %rcx, 0x19ee8(%rip)     # 0x25480
movq 0x19ed9(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19ece(%rip)     # 0x25478
movzbl (%rax), %r12d
shll $0x8, %r12d
testq %rcx, %rcx
jne 0xb5d9
cmpl $0x0, 0x19eca(%rip)     # 0x25488
jne 0xbed3
callq 0xb08c
movq 0x19eb0(%rip), %rcx     # 0x25480
testq %rax, %rax
je 0xb769
decq %rcx
movq %rcx, 0x19e9d(%rip)     # 0x25480
movq 0x19e8e(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19e83(%rip)     # 0x25478
movzbl (%rax), %ebx
testq %rcx, %rcx
jne 0xb61f
cmpl $0x0, 0x19e84(%rip)     # 0x25488
jne 0xbed3
callq 0xb08c
testq %rax, %rax
je 0xb770
movq 0x19e61(%rip), %rcx     # 0x25480
decq %rcx
movq %rcx, 0x19e57(%rip)     # 0x25480
movq 0x19e48(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rcx
movq %rcx, 0x19e3d(%rip)     # 0x25478
movzbl (%rax), %r15d
shll $0x8, %r15d
cmpl $0x0, 0x19e3e(%rip)     # 0x25488
jne 0xbed3
orl %ebx, %r15d
movl %ebp, %eax
addl $-0x4, %eax
movl %eax, %ebp
subl %r15d, %ebp
jb 0xbea2
orl %r13d, %r12d
cmpl $0x1, %r12d
jne 0xb995
movl $0x1, 0x11dce(%rip)     # 0x1d448
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x11dba(%rip)     # 0x1d440
jne 0xb801
cmpl $0x8, %r15d
jb 0xb801
movq 0x19de3(%rip), %rcx     # 0x25480
testq %rcx, %rcx
jne 0xb6b7
callq 0xb08c
movq 0x19dd2(%rip), %rcx     # 0x25480
testq %rax, %rax
je 0xb90f
decq %rcx
movq %rcx, 0x19dbf(%rip)     # 0x25480
movq 0x19db0(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19da5(%rip)     # 0x25478
movzbl (%rax), %ebx
testq %rcx, %rcx
movl %r14d, 0x4(%rsp)
je 0xb778
decq %rcx
movq %rcx, 0x19d92(%rip)     # 0x25480
movq 0x19d83(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19d78(%rip)     # 0x25478
movzbl (%rax), %r13d
shll $0x8, %r13d
orq %rbx, %r13
testq %rcx, %rcx
je 0xb78d
decq %rcx
movq %rcx, 0x19d66(%rip)     # 0x25480
movq 0x19d57(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19d4c(%rip)     # 0x25478
movzbl (%rax), %r14d
testq %rcx, %rcx
je 0xb79f
decq %rcx
movq %rcx, 0x19d41(%rip)     # 0x25480
movq 0x19d32(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rcx
movq %rcx, 0x19d27(%rip)     # 0x25478
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xb7ae
xorl %r13d, %r13d
jmp 0xb567
xorl %r12d, %r12d
jmp 0xb5b2
xorl %ebx, %ebx
jmp 0xb5f8
xorl %r15d, %r15d
jmp 0xb643
cmpl $0x0, 0x19d09(%rip)     # 0x25488
je 0xb916
xorl %r14d, %r14d
movq %rbx, %r13
jmp 0xb7ac
cmpl $0x0, 0x19cf4(%rip)     # 0x25488
je 0xba1f
xorl %r14d, %r14d
jmp 0xb7ac
cmpl $0x0, 0x19ce2(%rip)     # 0x25488
je 0xbb31
xorl %eax, %eax
addq %rax, %r14
shlq $0x10, %r14
orq %r13, %r14
movq %r14, 0x11c81(%rip)     # 0x1d440
movl $0x4, %ecx
movl $0x4, %ebx
movl 0x4(%rsp), %r14d
movq 0x19cab(%rip), %rax     # 0x25480
subq %rax, %rbx
jbe 0xb7ec
callq 0xb08c
movq %rbx, %rcx
testq %rax, %rax
jne 0xb7ce
jmp 0xbed3
subq %rcx, %rax
movq %rax, 0x19c8a(%rip)     # 0x25480
addq %rcx, 0x19c7b(%rip)     # 0x25478
addl $-0x8, %r15d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x11c2b(%rip)     # 0x1d438
jne 0xb995
cmpl $0x8, %r15d
jb 0xb995
movq 0x19c5c(%rip), %rcx     # 0x25480
testq %rcx, %rcx
movl %r14d, 0x4(%rsp)
je 0xb8d3
decq %rcx
movq %rcx, 0x19c44(%rip)     # 0x25480
movq 0x19c35(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19c2a(%rip)     # 0x25478
movzbl (%rax), %ebx
testq %rcx, %rcx
je 0xb8e8
decq %rcx
movq %rcx, 0x19c1c(%rip)     # 0x25480
movq 0x19c0d(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19c02(%rip)     # 0x25478
movzbl (%rax), %r13d
shll $0x8, %r13d
orq %rbx, %r13
testq %rcx, %rcx
je 0xb8fd
decq %rcx
movq %rcx, 0x19bf0(%rip)     # 0x25480
movq 0x19be1(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x19bd6(%rip)     # 0x25478
movzbl (%rax), %r14d
testq %rcx, %rcx
je 0xb933
decq %rcx
movq %rcx, 0x19bc7(%rip)     # 0x25480
movq 0x19bb8(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rcx
movq %rcx, 0x19bad(%rip)     # 0x25478
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xb942
cmpl $0x0, 0x19bae(%rip)     # 0x25488
je 0xba3c
xorl %r14d, %r14d
xorl %r13d, %r13d
jmp 0xb940
cmpl $0x0, 0x19b99(%rip)     # 0x25488
je 0xbb4b
xorl %r14d, %r14d
movq %rbx, %r13
jmp 0xb940
cmpl $0x0, 0x19b84(%rip)     # 0x25488
je 0xbd39
xorl %r14d, %r14d
jmp 0xb940
xorl %ebx, %ebx
jmp 0xb6d6
callq 0xb08c
movq 0x19b5e(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xb6e4
xorl %r13d, %r13d
jmp 0xb708
cmpl $0x0, 0x19b4e(%rip)     # 0x25488
je 0xbd88
xorl %eax, %eax
addq %rax, %r14
shlq $0x10, %r14
orq %r13, %r14
movq %r14, 0x11ae5(%rip)     # 0x1d438
movl $0x4, %ecx
movl $0x4, %ebx
movl 0x4(%rsp), %r14d
movq 0x19b17(%rip), %rax     # 0x25480
subq %rax, %rbx
jbe 0xb980
callq 0xb08c
movq %rbx, %rcx
testq %rax, %rax
jne 0xb962
jmp 0xbed3
subq %rcx, %rax
movq %rax, 0x19af6(%rip)     # 0x25480
addq %rcx, 0x19ae7(%rip)     # 0x25478
addl $-0x8, %r15d
testl %r14d, %r14d
je 0xbca0
cmpl $0xd, %r12d
setne %al
cmpl $0x5855, %r12d          # imm = 0x5855
setne %cl
testb %cl, %al
jne 0xbba3
cmpl $0x8, %r15d
jb 0xbba3
movl $0x4, %edx
movl $0x4, %ebx
movq 0x19aae(%rip), %rcx     # 0x25480
subq %rcx, %rbx
jbe 0xb9e9
callq 0xb08c
movq %rbx, %rdx
testq %rax, %rax
jne 0xb9cb
jmp 0xbed3
movq 0x19a88(%rip), %rax     # 0x25478
addq %rdx, %rax
subq %rdx, %rcx
movq %rcx, 0x19a83(%rip)     # 0x25480
movq %rax, 0x19a74(%rip)     # 0x25478
movl %r14d, 0x4(%rsp)
jne 0xba74
cmpl $0x0, 0x19a76(%rip)     # 0x25488
je 0xba58
xorl %r14d, %r14d
xorl %r13d, %r13d
jmp 0xbb75
callq 0xb08c
movq 0x19a55(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xb710
xorl %r14d, %r14d
jmp 0xb730
callq 0xb08c
movq 0x19a38(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xb832
xorl %ebx, %ebx
jmp 0xb851
callq 0xb08c
movq 0x19a1c(%rip), %rcx     # 0x25480
testq %rax, %rax
je 0xbe21
movq 0x19a04(%rip), %rax     # 0x25478
decq %rcx
movq %rcx, 0x19a02(%rip)     # 0x25480
leaq 0x1(%rax), %rdx
movq %rdx, 0x199ef(%rip)     # 0x25478
movzbl (%rax), %ebx
testq %rcx, %rcx
je 0xbb0a
decq %rcx
movq %rcx, 0x199e5(%rip)     # 0x25480
movq 0x199d6(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x199cb(%rip)     # 0x25478
movzbl (%rax), %r13d
shll $0x8, %r13d
orq %rbx, %r13
testq %rcx, %rcx
je 0xbb1f
decq %rcx
movq %rcx, 0x199b9(%rip)     # 0x25480
movq 0x199aa(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x1999f(%rip)     # 0x25478
movzbl (%rax), %r14d
testq %rcx, %rcx
je 0xbb68
decq %rcx
movq %rcx, 0x19990(%rip)     # 0x25480
movq 0x19981(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rcx
movq %rcx, 0x19976(%rip)     # 0x25478
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xbb77
cmpl $0x0, 0x19977(%rip)     # 0x25488
je 0xbd6b
xorl %r14d, %r14d
movq %rbx, %r13
jmp 0xbb75
cmpl $0x0, 0x19962(%rip)     # 0x25488
je 0xbe04
xorl %r14d, %r14d
jmp 0xbb75
callq 0xb08c
testq %rax, %rax
je 0xb7ac
movq 0x1993a(%rip), %rcx     # 0x25480
jmp 0xb735
callq 0xb08c
movq 0x19929(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xb85a
xorl %r13d, %r13d
jmp 0xb87e
cmpl $0x0, 0x19919(%rip)     # 0x25488
je 0xbe45
xorl %eax, %eax
addq %rax, %r14
shlq $0x10, %r14
orq %r13, %r14
movl %r14d, %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl $0x80000000, %r14d      # imm = 0x80000000
subq %r14, %rax
movq %rax, 0x1187e(%rip)     # 0x1d418
addl $-0x8, %r15d
movl 0x4(%rsp), %r14d
cmpl $0x5455, %r12d          # imm = 0x5455
jne 0xbca0
cmpl $0x5, %r15d
jb 0xbca0
leal -0x1(%r15), %ebx
movq 0x198bb(%rip), %rcx     # 0x25480
testq %rcx, %rcx
je 0xbce7
decq %rcx
movq %rcx, 0x198a8(%rip)     # 0x25480
movq 0x19899(%rip), %rdx     # 0x25478
leaq 0x1(%rdx), %rax
movq %rax, 0x1988e(%rip)     # 0x25478
testb $0x1, (%rdx)
je 0xbca3
testq %rcx, %rcx
je 0xbd06
decq %rcx
movq %rcx, 0x1987a(%rip)     # 0x25480
leaq 0x1(%rax), %rdx
movq %rdx, 0x19867(%rip)     # 0x25478
movzbl (%rax), %ebx
testq %rcx, %rcx
je 0xbd21
decq %rcx
movq %rcx, 0x19859(%rip)     # 0x25480
movq 0x1984a(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x1983f(%rip)     # 0x25478
movzbl (%rax), %r12d
shll $0x8, %r12d
orq %rbx, %r12
testq %rcx, %rcx
je 0xbd56
movl %r14d, %r13d
decq %rcx
movq %rcx, 0x19826(%rip)     # 0x25480
movq 0x19817(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rdx
movq %rdx, 0x1980c(%rip)     # 0x25478
movzbl (%rax), %r14d
testq %rcx, %rcx
je 0xbda2
decq %rcx
movq %rcx, 0x197fd(%rip)     # 0x25480
movq 0x197ee(%rip), %rax     # 0x25478
leaq 0x1(%rax), %rcx
movq %rcx, 0x197e3(%rip)     # 0x25478
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xbdb1
movl %r15d, %ebx
movl %ebx, %edx
movq %rdx, %rbx
movq 0x197d1(%rip), %rcx     # 0x25480
subq %rcx, %rbx
jbe 0xbcc6
callq 0xb08c
movq %rbx, %rdx
testq %rax, %rax
jne 0xbca8
jmp 0xbed3
subq %rdx, %rcx
movq %rcx, 0x197b0(%rip)     # 0x25480
addq %rdx, 0x197a1(%rip)     # 0x25478
movl %ebp, %eax
cmpl $0x3, %ebp
ja 0xb520
jmp 0xbea2
cmpl $0x0, 0x1979a(%rip)     # 0x25488
jne 0xbca3
callq 0xb08c
testq %rax, %rax
je 0xbca3
movq 0x1977f(%rip), %rcx     # 0x25480
jmp 0xbbce
cmpl $0x0, 0x1977b(%rip)     # 0x25488
je 0xbde3
movl %r14d, %r13d
xorl %r14d, %r14d
xorl %r12d, %r12d
jmp 0xbdaf
cmpl $0x0, 0x19760(%rip)     # 0x25488
je 0xbe28
movl %r14d, %r13d
xorl %r14d, %r14d
movq %rbx, %r12
jmp 0xbdaf
callq 0xb08c
movq 0x1973b(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xb886
xorl %r14d, %r14d
jmp 0xb8a6
cmpl $0x0, 0x1972b(%rip)     # 0x25488
je 0xbe5f
movl %r14d, %r13d
xorl %r14d, %r14d
jmp 0xbdaf
callq 0xb08c
movq 0x19709(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xba91
xorl %r13d, %r13d
jmp 0xbab5
callq 0xb08c
testq %rax, %rax
je 0xb940
movq 0x196e3(%rip), %rcx     # 0x25480
jmp 0xb8af
cmpl $0x0, 0x196df(%rip)     # 0x25488
je 0xbe7f
xorl %eax, %eax
addq %rax, %r14
shlq $0x10, %r14
orq %r12, %r14
movl %r14d, %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl $0x80000000, %r14d      # imm = 0x80000000
subq %r14, %rax
movq %rax, 0x11644(%rip)     # 0x1d418
addl $-0x5, %r15d
movl %r15d, %ebx
movl %r13d, %r14d
jmp 0xbca3
callq 0xb08c
movq 0x19691(%rip), %rcx     # 0x25480
testq %rax, %rax
je 0xbe99
movq 0x19679(%rip), %rax     # 0x25478
jmp 0xbbfc
callq 0xb08c
movq 0x19670(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xbabd
xorl %r14d, %r14d
jmp 0xbadd
xorl %ebx, %ebx
jmp 0xba8c
callq 0xb08c
movq 0x1964c(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xbc1d
xorl %r12d, %r12d
jmp 0xbc41
callq 0xb08c
testq %rax, %rax
je 0xbb75
movq 0x19626(%rip), %rcx     # 0x25480
jmp 0xbae6
callq 0xb08c
movq 0x19615(%rip), %rcx     # 0x25480
testq %rax, %rax
jne 0xbc4d
movl %r14d, %r13d
xorl %r14d, %r14d
jmp 0xbc70
callq 0xb08c
testq %rax, %rax
je 0xbdaf
movq 0x195ec(%rip), %rcx     # 0x25480
jmp 0xbc79
xorl %ebx, %ebx
jmp 0xbc14
movl %ebp, %eax
movl %eax, %ecx
movq %rcx, %rbx
movq 0x195d2(%rip), %rax     # 0x25480
subq %rax, %rbx
jbe 0xbec2
callq 0xb08c
movq %rbx, %rcx
testq %rax, %rax
jne 0xbea7
jmp 0xbed3
subq %rcx, %rax
movq %rax, 0x195b4(%rip)     # 0x25480
addq %rcx, 0x195a5(%rip)     # 0x25478
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq