// File: /workspace/github_c_makefile_star2_O1/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 %esi, 0x4(%rsp)
movl %edi, %ebp
cmpl $0x4, %ebp
jb 0xbabd
cmpq $0x0, 0x1a21e(%rip)     # 0x25470
je 0xb273
decq 0x1a215(%rip)           # 0x25470
movq 0x1a206(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x1a1fb(%rip)     # 0x25468
movzbl (%rax), %r13d
jmp 0xb283
xorl %r13d, %r13d
cmpl $0x0, 0x1a1fb(%rip)     # 0x25478
je 0xb3eb
cmpq $0x0, 0x1a1e5(%rip)     # 0x25470
je 0xb2b0
decq 0x1a1dc(%rip)           # 0x25470
movq 0x1a1cd(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x1a1c2(%rip)     # 0x25468
movzbl (%rax), %r12d
shll $0x8, %r12d
jmp 0xb2c0
xorl %r12d, %r12d
cmpl $0x0, 0x1a1be(%rip)     # 0x25478
je 0xb3fe
cmpq $0x0, 0x1a1a8(%rip)     # 0x25470
je 0xb2e9
decq 0x1a19f(%rip)           # 0x25470
movq 0x1a190(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x1a185(%rip)     # 0x25468
movzbl (%rax), %r14d
jmp 0xb2f9
xorl %r14d, %r14d
cmpl $0x0, 0x1a185(%rip)     # 0x25478
je 0xb411
cmpq $0x0, 0x1a16f(%rip)     # 0x25470
je 0xb326
decq 0x1a166(%rip)           # 0x25470
movq 0x1a157(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x1a14c(%rip)     # 0x25468
movzbl (%rax), %r15d
shll $0x8, %r15d
jmp 0xb336
xorl %r15d, %r15d
cmpl $0x0, 0x1a148(%rip)     # 0x25478
je 0xb424
cmpl $0x0, 0x1a13b(%rip)     # 0x25478
jne 0xbaf0
orl %r14d, %r15d
movl %ebp, %eax
addl $-0x4, %eax
movl %eax, %ebp
subl %r15d, %ebp
jb 0xbabf
orl %r13d, %r12d
cmpl $0x1, %r12d
jne 0xb663
movl $0x1, 0x120cb(%rip)     # 0x1d438
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x120b7(%rip)     # 0x1d430
jne 0xb50c
cmpl $0x8, %r15d
jb 0xb50c
cmpq $0x0, 0x1a0df(%rip)     # 0x25470
jne 0xb3a1
callq 0xadbc
testq %rax, %rax
je 0xb9e4
decq 0x1a0c8(%rip)           # 0x25470
movq 0x1a0b9(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x1a0ae(%rip)     # 0x25468
movzbl (%rax), %r13d
cmpq $0x0, 0x1a0aa(%rip)     # 0x25470
je 0xb437
decq 0x1a0a1(%rip)           # 0x25470
movq 0x1a092(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x1a087(%rip)     # 0x25468
movzbl (%rax), %r14d
shll $0x8, %r14d
jmp 0xb447
callq 0xadbc
testq %rax, %rax
jne 0xb254
jmp 0xb283
callq 0xadbc
testq %rax, %rax
jne 0xb28d
jmp 0xb2c0
callq 0xadbc
testq %rax, %rax
jne 0xb2ca
jmp 0xb2f9
callq 0xadbc
testq %rax, %rax
jne 0xb303
jmp 0xb336
cmpl $0x0, 0x1a03a(%rip)     # 0x25478
je 0xb9ec
xorl %r14d, %r14d
cmpq $0x0, 0x1a021(%rip)     # 0x25470
je 0xb46f
decq 0x1a018(%rip)           # 0x25470
movq 0x1a009(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19ffe(%rip)     # 0x25468
movzbl (%rax), %ebx
jmp 0xb47e
cmpl $0x0, 0x1a002(%rip)     # 0x25478
je 0xb9ff
xorl %ebx, %ebx
cmpq $0x0, 0x19fea(%rip)     # 0x25470
je 0xb4a9
decq 0x19fe1(%rip)           # 0x25470
movq 0x19fd2(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19fc7(%rip)     # 0x25468
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xb4b8
cmpl $0x0, 0x19fc8(%rip)     # 0x25478
je 0xba12
xorl %eax, %eax
orq %r13, %r14
orl %ebx, %eax
shll $0x10, %eax
orq %r14, %rax
movq %rax, 0x11f66(%rip)     # 0x1d430
movl $0x4, %r13d
movq %r13, %rbx
movq 0x19f96(%rip), %r14     # 0x25470
subq %r14, %r13
jbe 0xb4eb
callq 0xadbc
testq %rax, %rax
jne 0xb4d0
jmp 0xb4ff
movq %r14, %rax
subq %rbx, %rax
movq %rax, 0x19f78(%rip)     # 0x25470
addq %rbx, 0x19f69(%rip)     # 0x25468
cmpq %r14, %rbx
ja 0xbaf0
addl $-0x8, %r15d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x11f10(%rip)     # 0x1d428
jne 0xb663
cmpl $0x8, %r15d
jb 0xb663
cmpq $0x0, 0x19f40(%rip)     # 0x25470
je 0xb551
decq 0x19f37(%rip)           # 0x25470
movq 0x19f28(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19f1d(%rip)     # 0x25468
movzbl (%rax), %r13d
jmp 0xb561
cmpl $0x0, 0x19f20(%rip)     # 0x25478
je 0xba25
xorl %r13d, %r13d
cmpq $0x0, 0x19f07(%rip)     # 0x25470
je 0xb58e
decq 0x19efe(%rip)           # 0x25470
movq 0x19eef(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19ee4(%rip)     # 0x25468
movzbl (%rax), %r14d
shll $0x8, %r14d
jmp 0xb59e
cmpl $0x0, 0x19ee3(%rip)     # 0x25478
je 0xba38
xorl %r14d, %r14d
cmpq $0x0, 0x19eca(%rip)     # 0x25470
je 0xb5c6
decq 0x19ec1(%rip)           # 0x25470
movq 0x19eb2(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19ea7(%rip)     # 0x25468
movzbl (%rax), %ebx
jmp 0xb5d5
cmpl $0x0, 0x19eab(%rip)     # 0x25478
je 0xba4b
xorl %ebx, %ebx
cmpq $0x0, 0x19e93(%rip)     # 0x25470
je 0xb600
decq 0x19e8a(%rip)           # 0x25470
movq 0x19e7b(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19e70(%rip)     # 0x25468
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xb60f
cmpl $0x0, 0x19e71(%rip)     # 0x25478
je 0xba5e
xorl %eax, %eax
orq %r13, %r14
orl %ebx, %eax
shll $0x10, %eax
orq %r14, %rax
movq %rax, 0x11e07(%rip)     # 0x1d428
movl $0x4, %r13d
movq %r13, %rbx
movq 0x19e3f(%rip), %r14     # 0x25470
subq %r14, %r13
jbe 0xb642
callq 0xadbc
testq %rax, %rax
jne 0xb627
jmp 0xb656
movq %r14, %rax
subq %rbx, %rax
movq %rax, 0x19e21(%rip)     # 0x25470
addq %rbx, 0x19e12(%rip)     # 0x25468
cmpq %r14, %rbx
ja 0xbaf0
addl $-0x8, %r15d
cmpl $0x0, 0x4(%rsp)
je 0xb9a1
cmpl $0xd, %r12d
setne %al
cmpl $0x5855, %r12d          # imm = 0x5855
setne %cl
testb %cl, %al
jne 0xb7dc
cmpl $0x8, %r15d
jb 0xb7dc
movl $0x4, %r13d
movq %r13, %rbx
movq 0x19dcf(%rip), %r14     # 0x25470
subq %r14, %r13
jbe 0xb6b2
callq 0xadbc
testq %rax, %rax
jne 0xb697
jmp 0xb6c6
movq %r14, %rax
subq %rbx, %rax
movq %rax, 0x19db1(%rip)     # 0x25470
addq %rbx, 0x19da2(%rip)     # 0x25468
cmpq %r14, %rbx
ja 0xbaf0
cmpq $0x0, 0x19d99(%rip)     # 0x25470
je 0xb6f8
decq 0x19d90(%rip)           # 0x25470
movq 0x19d81(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19d76(%rip)     # 0x25468
movzbl (%rax), %r13d
jmp 0xb708
cmpl $0x0, 0x19d79(%rip)     # 0x25478
je 0xb871
xorl %r13d, %r13d
cmpq $0x0, 0x19d60(%rip)     # 0x25470
je 0xb735
decq 0x19d57(%rip)           # 0x25470
movq 0x19d48(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19d3d(%rip)     # 0x25468
movzbl (%rax), %r14d
shll $0x8, %r14d
jmp 0xb745
cmpl $0x0, 0x19d3c(%rip)     # 0x25478
je 0xb884
xorl %r14d, %r14d
cmpq $0x0, 0x19d23(%rip)     # 0x25470
je 0xb76d
decq 0x19d1a(%rip)           # 0x25470
movq 0x19d0b(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19d00(%rip)     # 0x25468
movzbl (%rax), %ebx
jmp 0xb77c
cmpl $0x0, 0x19d04(%rip)     # 0x25478
je 0xb897
xorl %ebx, %ebx
cmpq $0x0, 0x19cec(%rip)     # 0x25470
je 0xb7a7
decq 0x19ce3(%rip)           # 0x25470
movq 0x19cd4(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19cc9(%rip)     # 0x25468
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xb7b6
cmpl $0x0, 0x19cca(%rip)     # 0x25478
je 0xb8aa
xorl %eax, %eax
orq %r13, %r14
orl %ebx, %eax
shll $0x10, %eax
orq %r14, %rax
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
andl $0x80000000, %eax       # imm = 0x80000000
subq %rax, %rcx
movq %rcx, 0x11c30(%rip)     # 0x1d408
addl $-0x8, %r15d
cmpl $0x5455, %r12d          # imm = 0x5455
jne 0xb9a1
cmpl $0x5, %r15d
jb 0xb9a1
leal -0x1(%r15), %ebx
cmpq $0x0, 0x19c71(%rip)     # 0x25470
je 0xb855
movq 0x19c68(%rip), %rax     # 0x25470
decq %rax
movq %rax, 0x19c5e(%rip)     # 0x25470
movq 0x19c4f(%rip), %rcx     # 0x25468
leaq 0x1(%rcx), %rdx
movq %rdx, 0x19c44(%rip)     # 0x25468
testb $0x1, (%rcx)
je 0xb9a4
testq %rax, %rax
je 0xb8bd
decq 0x19c33(%rip)           # 0x25470
movq 0x19c24(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19c19(%rip)     # 0x25468
movzbl (%rax), %r12d
jmp 0xb8cd
cmpl $0x0, 0x19c1c(%rip)     # 0x25478
jne 0xb9a4
callq 0xadbc
testq %rax, %rax
jne 0xb801
jmp 0xb9a4
callq 0xadbc
testq %rax, %rax
jne 0xb6d9
jmp 0xb705
callq 0xadbc
testq %rax, %rax
jne 0xb712
jmp 0xb742
callq 0xadbc
testq %rax, %rax
jne 0xb74f
jmp 0xb77a
callq 0xadbc
testq %rax, %rax
jne 0xb786
jmp 0xb7b4
cmpl $0x0, 0x19bb4(%rip)     # 0x25478
je 0xba71
xorl %r12d, %r12d
cmpq $0x0, 0x19b9b(%rip)     # 0x25470
je 0xb8fa
decq 0x19b92(%rip)           # 0x25470
movq 0x19b83(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19b78(%rip)     # 0x25468
movzbl (%rax), %r14d
shll $0x8, %r14d
jmp 0xb90a
cmpl $0x0, 0x19b77(%rip)     # 0x25478
je 0xba84
xorl %r14d, %r14d
cmpq $0x0, 0x19b5e(%rip)     # 0x25470
je 0xb932
decq 0x19b55(%rip)           # 0x25470
movq 0x19b46(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19b3b(%rip)     # 0x25468
movzbl (%rax), %ebx
jmp 0xb941
cmpl $0x0, 0x19b3f(%rip)     # 0x25478
je 0xba97
xorl %ebx, %ebx
cmpq $0x0, 0x19b27(%rip)     # 0x25470
je 0xb96c
decq 0x19b1e(%rip)           # 0x25470
movq 0x19b0f(%rip), %rax     # 0x25468
leaq 0x1(%rax), %rcx
movq %rcx, 0x19b04(%rip)     # 0x25468
movzbl (%rax), %eax
shll $0x8, %eax
jmp 0xb97b
cmpl $0x0, 0x19b05(%rip)     # 0x25478
je 0xbaaa
xorl %eax, %eax
orq %r12, %r14
orl %ebx, %eax
shll $0x10, %eax
orq %r14, %rax
movl %eax, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
andl $0x80000000, %eax       # imm = 0x80000000
subq %rax, %rcx
movq %rcx, 0x11a6b(%rip)     # 0x1d408
addl $-0x5, %r15d
movl %r15d, %ebx
movl %ebx, %r15d
movq %r15, %rbx
movq 0x19abf(%rip), %r14     # 0x25470
subq %r14, %r15
jbe 0xb9c2
callq 0xadbc
testq %rax, %rax
jne 0xb9a7
jmp 0xb9d6
movq %r14, %rax
subq %rbx, %rax
movq %rax, 0x19aa1(%rip)     # 0x25470
addq %rbx, 0x19a92(%rip)     # 0x25468
cmpq %r14, %rbx
jbe 0xb241
jmp 0xbaf0
xorl %r13d, %r13d
jmp 0xb3be
callq 0xadbc
testq %rax, %rax
jne 0xb3c8
jmp 0xb444
callq 0xadbc
testq %rax, %rax
jne 0xb451
jmp 0xb47c
callq 0xadbc
testq %rax, %rax
jne 0xb488
jmp 0xb4b6
callq 0xadbc
testq %rax, %rax
jne 0xb532
jmp 0xb55e
callq 0xadbc
testq %rax, %rax
jne 0xb56b
jmp 0xb59b
callq 0xadbc
testq %rax, %rax
jne 0xb5a8
jmp 0xb5d3
callq 0xadbc
testq %rax, %rax
jne 0xb5df
jmp 0xb60d
callq 0xadbc
testq %rax, %rax
jne 0xb836
jmp 0xb8ca
callq 0xadbc
testq %rax, %rax
jne 0xb8d7
jmp 0xb907
callq 0xadbc
testq %rax, %rax
jne 0xb914
jmp 0xb93f
callq 0xadbc
testq %rax, %rax
jne 0xb94b
jmp 0xb979
movl %ebp, %eax
movl %eax, %ecx
movq %rcx, %rbx
movq 0x199a5(%rip), %rax     # 0x25470
subq %rax, %rbx
jbe 0xbadf
callq 0xadbc
movq %rbx, %rcx
testq %rax, %rax
jne 0xbac4
jmp 0xbaf0
subq %rcx, %rax
movq %rax, 0x19987(%rip)     # 0x25470
addq %rcx, 0x19978(%rip)     # 0x25468
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq